From 926c2c1c19e99e814b5d0d7146ff2cb14d3f3e40 Mon Sep 17 00:00:00 2001 From: Copilot <223556219+Copilot@users.noreply.github.com> Date: Fri, 24 Apr 2026 20:10:23 +0200 Subject: [PATCH 1/7] Replace MemoryMarshal generic Read/Write with BitConverter equivalents Sweep src/libraries and System.Private.CoreLib (excluding tests) to replace MemoryMarshal.Read/Write/TryRead/TryWrite calls on primitive types with BitConverter.To*/TryWriteBytes (preferred, host-endian) or BinaryPrimitives equivalents. The generic MemoryMarshal.* APIs are planned to be marked caller-unsafe. Out of scope (intentionally untouched): struct Read/Write (Guid, IcmpHeader, DbRow, StackRow, Sec_Application_Protocols, ReparseBuffers), generic Read/Write helper methods, AsBytes/Cast/AsRef/GetReference/CreateSpan, and BinaryPrimitives implementations themselves. For projects targeting netstandard2.0/net4x where BitConverter.To*(ReadOnlySpan) and TryWriteBytes(Span, T) are not available, BitConverterPolyfills.cs is extended with C# 14 extension(BitConverter) overloads and conditionally included in the relevant csprojs (System.Text.Json, System.Diagnostics.PerformanceCounter, System.Security.Cryptography.Pkcs, System.Formats.Cbor, System.Security.Cryptography.Cose). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../src/Polyfills/BitConverterPolyfills.cs | 185 ++++++++++++++++++ .../Common/src/Polyfills/HashCodePolyfills.cs | 2 +- .../src/Microsoft/Win32/RegistryKey.cs | 4 +- ...stem.Diagnostics.PerformanceCounter.csproj | 4 + .../Diagnostics/PerformanceCounterLib.cs | 4 +- .../Diagnostics/ProcessManager.Windows.cs | 4 +- .../src/System.Formats.Cbor.csproj | 1 + .../Formats/Cbor/CborHelpers.netstandard.cs | 36 ++-- .../src/System/Net/IPAddress.cs | 13 +- .../src/Internal/Win32/RegistryKey.cs | 4 +- .../src/System/Boolean.cs | 18 +- .../Tracing/EventPipePayloadDecoder.cs | 4 +- .../System/Random.Xoshiro128StarStarImpl.cs | 3 +- .../System/Random.Xoshiro256StarStarImpl.cs | 3 +- .../System.Security.Cryptography.Cose.csproj | 1 + .../Pal/Windows/HelpersWindows.cs | 4 +- .../System.Security.Cryptography.Pkcs.csproj | 4 + .../X509Certificates/OpenSslCrlCache.cs | 2 +- .../src/System.Text.Json.csproj | 1 + .../Json/Document/JsonDocument.MetadataDb.cs | 15 +- .../Serialization/Metadata/PropertyRef.cs | 14 +- 21 files changed, 268 insertions(+), 58 deletions(-) diff --git a/src/libraries/Common/src/Polyfills/BitConverterPolyfills.cs b/src/libraries/Common/src/Polyfills/BitConverterPolyfills.cs index dd418d32f94406..326bffcbc5bee4 100644 --- a/src/libraries/Common/src/Polyfills/BitConverterPolyfills.cs +++ b/src/libraries/Common/src/Polyfills/BitConverterPolyfills.cs @@ -1,6 +1,8 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Runtime.CompilerServices; + namespace System; /// Provides downlevel polyfills for static methods on . @@ -23,5 +25,188 @@ public static ulong DoubleToUInt64Bits(double value) return *(ulong*)&value; } } + + // ---- ReadOnlySpan read overloads (host-endian, semantics match BCL net5+) ---- + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static short ToInt16(ReadOnlySpan value) + { + if (value.Length < sizeof(short)) + ThrowHelper_ArgumentOutOfRange(nameof(value)); + unsafe + { + fixed (byte* p = value) return *(short*)p; + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ushort ToUInt16(ReadOnlySpan value) + { + if (value.Length < sizeof(ushort)) + ThrowHelper_ArgumentOutOfRange(nameof(value)); + unsafe + { + fixed (byte* p = value) return *(ushort*)p; + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static int ToInt32(ReadOnlySpan value) + { + if (value.Length < sizeof(int)) + ThrowHelper_ArgumentOutOfRange(nameof(value)); + unsafe + { + fixed (byte* p = value) return *(int*)p; + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static uint ToUInt32(ReadOnlySpan value) + { + if (value.Length < sizeof(uint)) + ThrowHelper_ArgumentOutOfRange(nameof(value)); + unsafe + { + fixed (byte* p = value) return *(uint*)p; + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static long ToInt64(ReadOnlySpan value) + { + if (value.Length < sizeof(long)) + ThrowHelper_ArgumentOutOfRange(nameof(value)); + unsafe + { + fixed (byte* p = value) return *(long*)p; + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ulong ToUInt64(ReadOnlySpan value) + { + if (value.Length < sizeof(ulong)) + ThrowHelper_ArgumentOutOfRange(nameof(value)); + unsafe + { + fixed (byte* p = value) return *(ulong*)p; + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static float ToSingle(ReadOnlySpan value) + { + if (value.Length < sizeof(float)) + ThrowHelper_ArgumentOutOfRange(nameof(value)); + unsafe + { + fixed (byte* p = value) return *(float*)p; + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static double ToDouble(ReadOnlySpan value) + { + if (value.Length < sizeof(double)) + ThrowHelper_ArgumentOutOfRange(nameof(value)); + unsafe + { + fixed (byte* p = value) return *(double*)p; + } + } + + // ---- Span TryWriteBytes overloads (host-endian, return false on too-short) ---- + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool TryWriteBytes(Span destination, short value) + { + if (destination.Length < sizeof(short)) return false; + unsafe + { + fixed (byte* p = destination) *(short*)p = value; + } + return true; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool TryWriteBytes(Span destination, ushort value) + { + if (destination.Length < sizeof(ushort)) return false; + unsafe + { + fixed (byte* p = destination) *(ushort*)p = value; + } + return true; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool TryWriteBytes(Span destination, int value) + { + if (destination.Length < sizeof(int)) return false; + unsafe + { + fixed (byte* p = destination) *(int*)p = value; + } + return true; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool TryWriteBytes(Span destination, uint value) + { + if (destination.Length < sizeof(uint)) return false; + unsafe + { + fixed (byte* p = destination) *(uint*)p = value; + } + return true; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool TryWriteBytes(Span destination, long value) + { + if (destination.Length < sizeof(long)) return false; + unsafe + { + fixed (byte* p = destination) *(long*)p = value; + } + return true; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool TryWriteBytes(Span destination, ulong value) + { + if (destination.Length < sizeof(ulong)) return false; + unsafe + { + fixed (byte* p = destination) *(ulong*)p = value; + } + return true; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool TryWriteBytes(Span destination, float value) + { + if (destination.Length < sizeof(float)) return false; + unsafe + { + fixed (byte* p = destination) *(float*)p = value; + } + return true; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool TryWriteBytes(Span destination, double value) + { + if (destination.Length < sizeof(double)) return false; + unsafe + { + fixed (byte* p = destination) *(double*)p = value; + } + return true; + } } + + private static void ThrowHelper_ArgumentOutOfRange(string paramName) => + throw new ArgumentOutOfRangeException(paramName); } diff --git a/src/libraries/Common/src/Polyfills/HashCodePolyfills.cs b/src/libraries/Common/src/Polyfills/HashCodePolyfills.cs index 7b2bc309c24bfd..95aa9ad2ce5ea4 100644 --- a/src/libraries/Common/src/Polyfills/HashCodePolyfills.cs +++ b/src/libraries/Common/src/Polyfills/HashCodePolyfills.cs @@ -12,7 +12,7 @@ public static void AddBytes(this ref HashCode hashCode, ReadOnlySpan value { while (value.Length >= sizeof(int)) { - hashCode.Add(MemoryMarshal.Read(value)); + hashCode.Add(BitConverter.ToInt32(value)); value = value.Slice(sizeof(int)); } diff --git a/src/libraries/Microsoft.Win32.Registry/src/Microsoft/Win32/RegistryKey.cs b/src/libraries/Microsoft.Win32.Registry/src/Microsoft/Win32/RegistryKey.cs index 0aa1b22d5f316d..5da1144cd2e94a 100644 --- a/src/libraries/Microsoft.Win32.Registry/src/Microsoft/Win32/RegistryKey.cs +++ b/src/libraries/Microsoft.Win32.Registry/src/Microsoft/Win32/RegistryKey.cs @@ -1087,8 +1087,8 @@ public unsafe string[] GetValueNames() case Interop.Advapi32.RegistryValues.REG_QWORD: return dataLength switch { - 4 => MemoryMarshal.Read(span), - 8 => MemoryMarshal.Read(span), + 4 => BitConverter.ToInt32(span), + 8 => BitConverter.ToInt64(span), _ => span.Slice(0, dataLength).ToArray(), // This shouldn't happen, but the previous implementation included it defensively. }; diff --git a/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj b/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj index 1a6cc53679e5f8..539652d21f698c 100644 --- a/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj +++ b/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj @@ -137,6 +137,10 @@ System.Diagnostics.PerformanceCounter Link="Common\DisableRuntimeMarshalling.cs" /> + + + + diff --git a/src/libraries/System.Diagnostics.PerformanceCounter/src/System/Diagnostics/PerformanceCounterLib.cs b/src/libraries/System.Diagnostics.PerformanceCounter/src/System/Diagnostics/PerformanceCounterLib.cs index a9f4d8121f5033..34f317c812be5f 100644 --- a/src/libraries/System.Diagnostics.PerformanceCounter/src/System/Diagnostics/PerformanceCounterLib.cs +++ b/src/libraries/System.Diagnostics.PerformanceCounter/src/System/Diagnostics/PerformanceCounterLib.cs @@ -1713,11 +1713,11 @@ private long ReadValue(ReadOnlySpan data) { if (_size == 4) { - return (long)MemoryMarshal.Read(data.Slice(_offset)); + return (long)BitConverter.ToUInt32(data.Slice(_offset)); } else if (_size == 8) { - return MemoryMarshal.Read(data.Slice(_offset)); + return BitConverter.ToInt64(data.Slice(_offset)); } return -1; diff --git a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Windows.cs b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Windows.cs index 7c2bb7b35764b3..87fbf233f882c6 100644 --- a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Windows.cs +++ b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Windows.cs @@ -761,9 +761,9 @@ private static ValueId GetValueId(string counterName) private static long ReadCounterValue(int counterType, ReadOnlySpan data) { if ((counterType & PerfCounterOptions.NtPerfCounterSizeLarge) != 0) - return MemoryMarshal.Read(data); + return BitConverter.ToInt64(data); else - return MemoryMarshal.Read(data); + return BitConverter.ToInt32(data); } private enum ValueId diff --git a/src/libraries/System.Formats.Cbor/src/System.Formats.Cbor.csproj b/src/libraries/System.Formats.Cbor/src/System.Formats.Cbor.csproj index 04dfc7a44cf491..1c9501fdfd0c17 100644 --- a/src/libraries/System.Formats.Cbor/src/System.Formats.Cbor.csproj +++ b/src/libraries/System.Formats.Cbor/src/System.Formats.Cbor.csproj @@ -51,6 +51,7 @@ System.Formats.Cbor.CborWriter + diff --git a/src/libraries/System.Formats.Cbor/src/System/Formats/Cbor/CborHelpers.netstandard.cs b/src/libraries/System.Formats.Cbor/src/System/Formats/Cbor/CborHelpers.netstandard.cs index adb2eb362c0308..cca8e12d92b28b 100644 --- a/src/libraries/System.Formats.Cbor/src/System/Formats/Cbor/CborHelpers.netstandard.cs +++ b/src/libraries/System.Formats.Cbor/src/System/Formats/Cbor/CborHelpers.netstandard.cs @@ -93,8 +93,8 @@ public static string BuildStringFromIndefiniteLengthTextString(int lengt public static ushort ReadHalfBigEndian(ReadOnlySpan source) { ushort value = BitConverter.IsLittleEndian ? - BinaryPrimitives.ReverseEndianness(MemoryMarshal.Read(source)) : - MemoryMarshal.Read(source); + BinaryPrimitives.ReverseEndianness(BitConverter.ToUInt16(source)) : + BitConverter.ToUInt16(source); return value; } @@ -102,59 +102,57 @@ public static ushort ReadHalfBigEndian(ReadOnlySpan source) [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void WriteHalfBigEndian(Span destination, ushort value) { - if (BitConverter.IsLittleEndian) - { - ushort tmp = BinaryPrimitives.ReverseEndianness(value); - MemoryMarshal.Write(destination, ref tmp); - } - else - { - MemoryMarshal.Write(destination, ref value); - } + ushort tmp = BitConverter.IsLittleEndian ? BinaryPrimitives.ReverseEndianness(value) : value; + bool ok = BitConverter.TryWriteBytes(destination, tmp); + Debug.Assert(ok); } [MethodImpl(MethodImplOptions.AggressiveInlining)] public static float ReadSingleBigEndian(ReadOnlySpan source) { return BitConverter.IsLittleEndian ? - Int32BitsToSingle(BinaryPrimitives.ReverseEndianness(MemoryMarshal.Read(source))) : - MemoryMarshal.Read(source); + Int32BitsToSingle(BinaryPrimitives.ReverseEndianness(BitConverter.ToInt32(source))) : + BitConverter.ToSingle(source); } [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void WriteSingleBigEndian(Span destination, float value) { + bool ok; if (BitConverter.IsLittleEndian) { int tmp = BinaryPrimitives.ReverseEndianness(SingleToInt32Bits(value)); - MemoryMarshal.Write(destination, ref tmp); + ok = BitConverter.TryWriteBytes(destination, tmp); } else { - MemoryMarshal.Write(destination, ref value); + ok = BitConverter.TryWriteBytes(destination, value); } + Debug.Assert(ok); } [MethodImpl(MethodImplOptions.AggressiveInlining)] public static double ReadDoubleBigEndian(ReadOnlySpan source) { return BitConverter.IsLittleEndian ? - BitConverter.Int64BitsToDouble(BinaryPrimitives.ReverseEndianness(MemoryMarshal.Read(source))) : - MemoryMarshal.Read(source); + BitConverter.Int64BitsToDouble(BinaryPrimitives.ReverseEndianness(BitConverter.ToInt64(source))) : + BitConverter.ToDouble(source); } [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void WriteDoubleBigEndian(Span destination, double value) { + bool ok; if (BitConverter.IsLittleEndian) { long tmp = BinaryPrimitives.ReverseEndianness(BitConverter.DoubleToInt64Bits(value)); - MemoryMarshal.Write(destination, ref tmp); + ok = BitConverter.TryWriteBytes(destination, tmp); } else { - MemoryMarshal.Write(destination, ref value); + ok = BitConverter.TryWriteBytes(destination, value); } + Debug.Assert(ok); } internal static uint SingleToUInt32Bits(float value) diff --git a/src/libraries/System.Net.Primitives/src/System/Net/IPAddress.cs b/src/libraries/System.Net.Primitives/src/System/Net/IPAddress.cs index b53353cdf18edc..a07b97ebd0db39 100644 --- a/src/libraries/System.Net.Primitives/src/System/Net/IPAddress.cs +++ b/src/libraries/System.Net.Primitives/src/System/Net/IPAddress.cs @@ -183,7 +183,7 @@ public IPAddress(ReadOnlySpan address) { if (address.Length == IPAddressParserStatics.IPv4AddressBytes) { - PrivateAddress = MemoryMarshal.Read(address); + PrivateAddress = BitConverter.ToUInt32(address); } else if (address.Length == IPAddressParserStatics.IPv6AddressBytes) { @@ -379,7 +379,8 @@ private void WriteIPv6Bytes(Span destination) private void WriteIPv4Bytes(Span destination) { uint address = PrivateAddress; - MemoryMarshal.Write(destination, in address); + bool ok = BitConverter.TryWriteBytes(destination, address); + Debug.Assert(ok); } /// @@ -721,10 +722,10 @@ public override int GetHashCode() { ReadOnlySpan numbers = MemoryMarshal.AsBytes(_numbers).Slice(0, 16); _hashCode = HashCode.Combine( - MemoryMarshal.Read(numbers), - MemoryMarshal.Read(numbers.Slice(4)), - MemoryMarshal.Read(numbers.Slice(8)), - MemoryMarshal.Read(numbers.Slice(12)), + BitConverter.ToUInt32(numbers), + BitConverter.ToUInt32(numbers.Slice(4)), + BitConverter.ToUInt32(numbers.Slice(8)), + BitConverter.ToUInt32(numbers.Slice(12)), _addressOrScopeId); } else diff --git a/src/libraries/System.Private.CoreLib/src/Internal/Win32/RegistryKey.cs b/src/libraries/System.Private.CoreLib/src/Internal/Win32/RegistryKey.cs index fd590c9e2ba7f1..a0557322279ecb 100644 --- a/src/libraries/System.Private.CoreLib/src/Internal/Win32/RegistryKey.cs +++ b/src/libraries/System.Private.CoreLib/src/Internal/Win32/RegistryKey.cs @@ -287,8 +287,8 @@ public string[] GetValueNames() case Interop.Advapi32.RegistryValues.REG_QWORD: return dataLength switch { - 4 => MemoryMarshal.Read(span), - 8 => MemoryMarshal.Read(span), + 4 => BitConverter.ToInt32(span), + 8 => BitConverter.ToInt64(span), _ => span.Slice(0, dataLength).ToArray(), // This shouldn't happen, but the previous implementation included it defensively. }; diff --git a/src/libraries/System.Private.CoreLib/src/System/Boolean.cs b/src/libraries/System.Private.CoreLib/src/System/Boolean.cs index d2619daba89ebe..b0c8d3ddb9cbe6 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Boolean.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Boolean.cs @@ -189,19 +189,29 @@ public int CompareTo(bool value) internal static bool IsTrueStringIgnoreCase(ReadOnlySpan value) { // "true" as a ulong, each char |'d with 0x0020 for case-insensitivity - ulong true_val = BitConverter.IsLittleEndian ? 0x65007500720074ul : 0x74007200750065ul; + const ulong true_val = 0x65007500720074ul; return value.Length == 4 && - (MemoryMarshal.Read(MemoryMarshal.AsBytes(value)) | 0x0020002000200020) == true_val; + (FourCharsAsUInt64(value) | 0x0020002000200020) == true_val; } internal static bool IsFalseStringIgnoreCase(ReadOnlySpan value) { // "fals" as a ulong, each char |'d with 0x0020 for case-insensitivity - ulong fals_val = BitConverter.IsLittleEndian ? 0x73006C00610066ul : 0x660061006C0073ul; + const ulong fals_val = 0x73006C00610066ul; return value.Length == 5 && - (((MemoryMarshal.Read(MemoryMarshal.AsBytes(value)) | 0x0020002000200020) == fals_val) & + (((FourCharsAsUInt64(value) | 0x0020002000200020) == fals_val) & ((value[4] | 0x20) == 'e')); } + + // Composes the first four chars of `value` into a ulong with the same byte layout as + // a host-endian read of those 8 bytes on a little-endian system. Endian-independent by + // construction (each char read returns the host-language char value, which is then + // shifted into a fixed bit position). + private static ulong FourCharsAsUInt64(ReadOnlySpan value) => + value[0] | + ((ulong)value[1] << 16) | + ((ulong)value[2] << 32) | + ((ulong)value[3] << 48); #else internal static bool IsTrueStringIgnoreCase(ReadOnlySpan value) { diff --git a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventPipePayloadDecoder.cs b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventPipePayloadDecoder.cs index 661910025d8b1b..9def1dadecacfa 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventPipePayloadDecoder.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/EventPipePayloadDecoder.cs @@ -55,12 +55,12 @@ internal static object[] DecodePayload(ref EventSource.EventMetadata metadata, R } else if (parameterType == typeof(byte) || enumType == typeof(byte)) { - decodedFields[i] = MemoryMarshal.Read(payload); + decodedFields[i] = payload[0]; payload = payload.Slice(sizeof(byte)); } else if (parameterType == typeof(sbyte) || enumType == typeof(sbyte)) { - decodedFields[i] = MemoryMarshal.Read(payload); + decodedFields[i] = (sbyte)payload[0]; payload = payload.Slice(sizeof(sbyte)); } else if (parameterType == typeof(short) || enumType == typeof(short)) diff --git a/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro128StarStarImpl.cs b/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro128StarStarImpl.cs index e97e1fd5be1993..5b175f32005f65 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro128StarStarImpl.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro128StarStarImpl.cs @@ -182,7 +182,8 @@ public override unsafe void NextBytes(Span buffer) while (buffer.Length >= sizeof(uint)) { - MemoryMarshal.Write(buffer, BitOperations.RotateLeft(s1 * 5, 7) * 9); + bool ok = BitConverter.TryWriteBytes(buffer, BitOperations.RotateLeft(s1 * 5, 7) * 9); + Debug.Assert(ok); // Update PRNG state. uint t = s1 << 9; diff --git a/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro256StarStarImpl.cs b/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro256StarStarImpl.cs index 05866f417b4d80..0f3f1bfc14a978 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro256StarStarImpl.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro256StarStarImpl.cs @@ -139,7 +139,8 @@ public override unsafe void NextBytes(Span buffer) while (buffer.Length >= sizeof(ulong)) { - MemoryMarshal.Write(buffer, BitOperations.RotateLeft(s1 * 5, 7) * 9); + bool ok = BitConverter.TryWriteBytes(buffer, BitOperations.RotateLeft(s1 * 5, 7) * 9); + Debug.Assert(ok); // Update PRNG state. ulong t = s1 << 17; diff --git a/src/libraries/System.Security.Cryptography.Cose/src/System.Security.Cryptography.Cose.csproj b/src/libraries/System.Security.Cryptography.Cose/src/System.Security.Cryptography.Cose.csproj index b2b23ba884f621..b9951dd48a67b5 100644 --- a/src/libraries/System.Security.Cryptography.Cose/src/System.Security.Cryptography.Cose.csproj +++ b/src/libraries/System.Security.Cryptography.Cose/src/System.Security.Cryptography.Cose.csproj @@ -57,6 +57,7 @@ + diff --git a/src/libraries/System.Security.Cryptography.Pkcs/src/Internal/Cryptography/Pal/Windows/HelpersWindows.cs b/src/libraries/System.Security.Cryptography.Pkcs/src/Internal/Cryptography/Pal/Windows/HelpersWindows.cs index a7127751bc5c11..109c39635f6c28 100644 --- a/src/libraries/System.Security.Cryptography.Pkcs/src/Internal/Cryptography/Pal/Windows/HelpersWindows.cs +++ b/src/libraries/System.Security.Cryptography.Pkcs/src/Internal/Cryptography/Pal/Windows/HelpersWindows.cs @@ -385,7 +385,7 @@ public static CspParameters GetProvParameters(this SafeProvOrNCryptKeyHandle han throw new CryptographicException(); } - int provType = MemoryMarshal.Read(stackSpan.Slice(0, size)); + int provType = BitConverter.ToInt32(stackSpan.Slice(0, size)); size = stackSpan.Length; if (!Interop.Advapi32.CryptGetProvParam(handle, CryptProvParam.PP_KEYSET_TYPE, stackSpan, ref size)) @@ -399,7 +399,7 @@ public static CspParameters GetProvParameters(this SafeProvOrNCryptKeyHandle han throw new CryptographicException(); } - int keysetType = MemoryMarshal.Read(stackSpan.Slice(0, size)); + int keysetType = BitConverter.ToInt32(stackSpan.Slice(0, size)); // Only CRYPT_MACHINE_KEYSET is described as coming back, but be defensive. CspProviderFlags provFlags = diff --git a/src/libraries/System.Security.Cryptography.Pkcs/src/System.Security.Cryptography.Pkcs.csproj b/src/libraries/System.Security.Cryptography.Pkcs/src/System.Security.Cryptography.Pkcs.csproj index 19cc655555f692..098109f4a3b123 100644 --- a/src/libraries/System.Security.Cryptography.Pkcs/src/System.Security.Cryptography.Pkcs.csproj +++ b/src/libraries/System.Security.Cryptography.Pkcs/src/System.Security.Cryptography.Pkcs.csproj @@ -712,6 +712,10 @@ System.Security.Cryptography.Pkcs.EnvelopedCms + + + + diff --git a/src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/X509Certificates/OpenSslCrlCache.cs b/src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/X509Certificates/OpenSslCrlCache.cs index 1e69749ed681eb..d112569f31b54a 100644 --- a/src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/X509Certificates/OpenSslCrlCache.cs +++ b/src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/X509Certificates/OpenSslCrlCache.cs @@ -387,7 +387,7 @@ private static string GetCrlFileName(SafeX509Handle cert, string crlUrl) throw new CryptographicException(); } - uint urlHash = MemoryMarshal.Read(hash); + uint urlHash = BitConverter.ToUInt32(hash); // OpenSSL's hashed filename algorithm is the 8-character hex version of the 32-bit value // of X509_issuer_name_hash (or X509_subject_name_hash, depending on the context). diff --git a/src/libraries/System.Text.Json/src/System.Text.Json.csproj b/src/libraries/System.Text.Json/src/System.Text.Json.csproj index 687d263b4a3197..2f1a903683e201 100644 --- a/src/libraries/System.Text.Json/src/System.Text.Json.csproj +++ b/src/libraries/System.Text.Json/src/System.Text.Json.csproj @@ -369,6 +369,7 @@ The System.Text.Json library is built-in as part of the shared framework in .NET + diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.MetadataDb.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.MetadataDb.cs index 87ee6ca78d751c..e2dcee0a5fb33a 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.MetadataDb.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.MetadataDb.cs @@ -269,7 +269,8 @@ internal void SetLength(int index, int length) AssertValidIndex(index); Debug.Assert(length >= 0); Span destination = _data.AsSpan(index + SizeOrLengthOffset); - MemoryMarshal.Write(destination, ref length); + bool ok = BitConverter.TryWriteBytes(destination, length); + Debug.Assert(ok); } internal void SetNumberOfRows(int index, int numberOfRows) @@ -278,11 +279,12 @@ internal void SetNumberOfRows(int index, int numberOfRows) Debug.Assert(numberOfRows >= 1 && numberOfRows <= 0x0FFFFFFF); Span dataPos = _data.AsSpan(index + NumberOfRowsOffset); - int current = MemoryMarshal.Read(dataPos); + int current = BitConverter.ToInt32(dataPos); // Persist the most significant nybble int value = (current & unchecked((int)0xF0000000)) | numberOfRows; - MemoryMarshal.Write(dataPos, ref value); + bool ok = BitConverter.TryWriteBytes(dataPos, value); + Debug.Assert(ok); } internal void SetHasComplexChildren(int index) @@ -291,10 +293,11 @@ internal void SetHasComplexChildren(int index) // The HasComplexChildren bit is the most significant bit of "SizeOrLength" Span dataPos = _data.AsSpan(index + SizeOrLengthOffset); - int current = MemoryMarshal.Read(dataPos); + int current = BitConverter.ToInt32(dataPos); int value = current | unchecked((int)0x80000000); - MemoryMarshal.Write(dataPos, ref value); + bool ok = BitConverter.TryWriteBytes(dataPos, value); + Debug.Assert(ok); } internal int FindIndexOfFirstUnsetSizeOrLength(JsonTokenType lookupType) @@ -331,7 +334,7 @@ internal DbRow Get(int index) internal JsonTokenType GetJsonTokenType(int index) { AssertValidIndex(index); - uint union = MemoryMarshal.Read(_data.AsSpan(index + NumberOfRowsOffset)); + uint union = BitConverter.ToUInt32(_data.AsSpan(index + NumberOfRowsOffset)); return (JsonTokenType)(union >> 28); } diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/PropertyRef.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/PropertyRef.cs index aabcfdd2ee5f9f..1888c84cd3b218 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/PropertyRef.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/PropertyRef.cs @@ -58,13 +58,13 @@ public static ulong GetKey(ReadOnlySpan name) { 0 => 0, 1 => name[0], - 2 => MemoryMarshal.Read(name), - 3 => MemoryMarshal.Read(name) | ((ulong)name[2] << 16), - 4 => MemoryMarshal.Read(name), - 5 => MemoryMarshal.Read(name) | ((ulong)name[4] << 32), - 6 => MemoryMarshal.Read(name) | ((ulong)MemoryMarshal.Read(name.Slice(4, 2)) << 32), - 7 => MemoryMarshal.Read(name) | ((ulong)MemoryMarshal.Read(name.Slice(4, 2)) << 32) | ((ulong)name[6] << 48), - _ => MemoryMarshal.Read(name) & 0x00ffffffffffffffUL + 2 => BitConverter.ToUInt16(name), + 3 => BitConverter.ToUInt16(name) | ((ulong)name[2] << 16), + 4 => BitConverter.ToUInt32(name), + 5 => BitConverter.ToUInt32(name) | ((ulong)name[4] << 32), + 6 => BitConverter.ToUInt32(name) | ((ulong)BitConverter.ToUInt16(name.Slice(4, 2)) << 32), + 7 => BitConverter.ToUInt32(name) | ((ulong)BitConverter.ToUInt16(name.Slice(4, 2)) << 32) | ((ulong)name[6] << 48), + _ => BitConverter.ToUInt64(name) & 0x00ffffffffffffffUL }; #if DEBUG // Verify key contains the embedded bytes as expected. From d7efdaebcd4d156a1d10d8e505b62da3d270b6ed Mon Sep 17 00:00:00 2001 From: Copilot <223556219+Copilot@users.noreply.github.com> Date: Fri, 24 Apr 2026 20:31:43 +0200 Subject: [PATCH 2/7] Use BinaryPrimitives.Write*Endian instead of BitConverter.TryWriteBytes+Assert Replace the TryWriteBytes-plus-Debug.Assert(ok) pattern (which obscures the contract) with the throwing BinaryPrimitives.Write*LittleEndian / Write*BigEndian helpers, which match the exception semantics of the original MemoryMarshal.Write calls. CborHelpers.netstandard.cs is simplified by replacing the BitConverter.IsLittleEndian + ReverseEndianness ternary with direct BinaryPrimitives.*BigEndian calls. The TryWriteBytes overloads in BitConverterPolyfills.cs are no longer needed and have been removed; only the ReadOnlySpan read overloads remain. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../src/Polyfills/BitConverterPolyfills.cs | 90 ------------------- .../Formats/Cbor/CborHelpers.netstandard.cs | 54 ++--------- .../src/System/Net/IPAddress.cs | 4 +- .../System/Random.Xoshiro128StarStarImpl.cs | 4 +- .../System/Random.Xoshiro256StarStarImpl.cs | 4 +- .../Json/Document/JsonDocument.MetadataDb.cs | 16 ++-- 6 files changed, 18 insertions(+), 154 deletions(-) diff --git a/src/libraries/Common/src/Polyfills/BitConverterPolyfills.cs b/src/libraries/Common/src/Polyfills/BitConverterPolyfills.cs index 326bffcbc5bee4..605cde88a0860a 100644 --- a/src/libraries/Common/src/Polyfills/BitConverterPolyfills.cs +++ b/src/libraries/Common/src/Polyfills/BitConverterPolyfills.cs @@ -115,96 +115,6 @@ public static double ToDouble(ReadOnlySpan value) fixed (byte* p = value) return *(double*)p; } } - - // ---- Span TryWriteBytes overloads (host-endian, return false on too-short) ---- - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static bool TryWriteBytes(Span destination, short value) - { - if (destination.Length < sizeof(short)) return false; - unsafe - { - fixed (byte* p = destination) *(short*)p = value; - } - return true; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static bool TryWriteBytes(Span destination, ushort value) - { - if (destination.Length < sizeof(ushort)) return false; - unsafe - { - fixed (byte* p = destination) *(ushort*)p = value; - } - return true; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static bool TryWriteBytes(Span destination, int value) - { - if (destination.Length < sizeof(int)) return false; - unsafe - { - fixed (byte* p = destination) *(int*)p = value; - } - return true; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static bool TryWriteBytes(Span destination, uint value) - { - if (destination.Length < sizeof(uint)) return false; - unsafe - { - fixed (byte* p = destination) *(uint*)p = value; - } - return true; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static bool TryWriteBytes(Span destination, long value) - { - if (destination.Length < sizeof(long)) return false; - unsafe - { - fixed (byte* p = destination) *(long*)p = value; - } - return true; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static bool TryWriteBytes(Span destination, ulong value) - { - if (destination.Length < sizeof(ulong)) return false; - unsafe - { - fixed (byte* p = destination) *(ulong*)p = value; - } - return true; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static bool TryWriteBytes(Span destination, float value) - { - if (destination.Length < sizeof(float)) return false; - unsafe - { - fixed (byte* p = destination) *(float*)p = value; - } - return true; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static bool TryWriteBytes(Span destination, double value) - { - if (destination.Length < sizeof(double)) return false; - unsafe - { - fixed (byte* p = destination) *(double*)p = value; - } - return true; - } } private static void ThrowHelper_ArgumentOutOfRange(string paramName) => diff --git a/src/libraries/System.Formats.Cbor/src/System/Formats/Cbor/CborHelpers.netstandard.cs b/src/libraries/System.Formats.Cbor/src/System/Formats/Cbor/CborHelpers.netstandard.cs index cca8e12d92b28b..d62cd99e4cdbcb 100644 --- a/src/libraries/System.Formats.Cbor/src/System/Formats/Cbor/CborHelpers.netstandard.cs +++ b/src/libraries/System.Formats.Cbor/src/System/Formats/Cbor/CborHelpers.netstandard.cs @@ -91,69 +91,27 @@ public static string BuildStringFromIndefiniteLengthTextString(int lengt [MethodImpl(MethodImplOptions.AggressiveInlining)] public static ushort ReadHalfBigEndian(ReadOnlySpan source) - { - ushort value = BitConverter.IsLittleEndian ? - BinaryPrimitives.ReverseEndianness(BitConverter.ToUInt16(source)) : - BitConverter.ToUInt16(source); - - return value; - } + => BinaryPrimitives.ReadUInt16BigEndian(source); [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void WriteHalfBigEndian(Span destination, ushort value) - { - ushort tmp = BitConverter.IsLittleEndian ? BinaryPrimitives.ReverseEndianness(value) : value; - bool ok = BitConverter.TryWriteBytes(destination, tmp); - Debug.Assert(ok); - } + => BinaryPrimitives.WriteUInt16BigEndian(destination, value); [MethodImpl(MethodImplOptions.AggressiveInlining)] public static float ReadSingleBigEndian(ReadOnlySpan source) - { - return BitConverter.IsLittleEndian ? - Int32BitsToSingle(BinaryPrimitives.ReverseEndianness(BitConverter.ToInt32(source))) : - BitConverter.ToSingle(source); - } + => Int32BitsToSingle(BinaryPrimitives.ReadInt32BigEndian(source)); [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void WriteSingleBigEndian(Span destination, float value) - { - bool ok; - if (BitConverter.IsLittleEndian) - { - int tmp = BinaryPrimitives.ReverseEndianness(SingleToInt32Bits(value)); - ok = BitConverter.TryWriteBytes(destination, tmp); - } - else - { - ok = BitConverter.TryWriteBytes(destination, value); - } - Debug.Assert(ok); - } + => BinaryPrimitives.WriteInt32BigEndian(destination, SingleToInt32Bits(value)); [MethodImpl(MethodImplOptions.AggressiveInlining)] public static double ReadDoubleBigEndian(ReadOnlySpan source) - { - return BitConverter.IsLittleEndian ? - BitConverter.Int64BitsToDouble(BinaryPrimitives.ReverseEndianness(BitConverter.ToInt64(source))) : - BitConverter.ToDouble(source); - } + => BitConverter.Int64BitsToDouble(BinaryPrimitives.ReadInt64BigEndian(source)); [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void WriteDoubleBigEndian(Span destination, double value) - { - bool ok; - if (BitConverter.IsLittleEndian) - { - long tmp = BinaryPrimitives.ReverseEndianness(BitConverter.DoubleToInt64Bits(value)); - ok = BitConverter.TryWriteBytes(destination, tmp); - } - else - { - ok = BitConverter.TryWriteBytes(destination, value); - } - Debug.Assert(ok); - } + => BinaryPrimitives.WriteInt64BigEndian(destination, BitConverter.DoubleToInt64Bits(value)); internal static uint SingleToUInt32Bits(float value) => (uint)SingleToInt32Bits(value); diff --git a/src/libraries/System.Net.Primitives/src/System/Net/IPAddress.cs b/src/libraries/System.Net.Primitives/src/System/Net/IPAddress.cs index a07b97ebd0db39..f50aac7cf907e5 100644 --- a/src/libraries/System.Net.Primitives/src/System/Net/IPAddress.cs +++ b/src/libraries/System.Net.Primitives/src/System/Net/IPAddress.cs @@ -378,9 +378,7 @@ private void WriteIPv6Bytes(Span destination) [MethodImpl(MethodImplOptions.AggressiveInlining)] private void WriteIPv4Bytes(Span destination) { - uint address = PrivateAddress; - bool ok = BitConverter.TryWriteBytes(destination, address); - Debug.Assert(ok); + BinaryPrimitives.WriteUInt32LittleEndian(destination, PrivateAddress); } /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro128StarStarImpl.cs b/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro128StarStarImpl.cs index 5b175f32005f65..2cf96949575952 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro128StarStarImpl.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro128StarStarImpl.cs @@ -1,6 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Buffers.Binary; using System.Diagnostics; using System.Numerics; using System.Runtime.CompilerServices; @@ -182,8 +183,7 @@ public override unsafe void NextBytes(Span buffer) while (buffer.Length >= sizeof(uint)) { - bool ok = BitConverter.TryWriteBytes(buffer, BitOperations.RotateLeft(s1 * 5, 7) * 9); - Debug.Assert(ok); + BinaryPrimitives.WriteUInt32LittleEndian(buffer, BitOperations.RotateLeft(s1 * 5, 7) * 9); // Update PRNG state. uint t = s1 << 9; diff --git a/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro256StarStarImpl.cs b/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro256StarStarImpl.cs index 0f3f1bfc14a978..d7e781684e7c85 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro256StarStarImpl.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro256StarStarImpl.cs @@ -1,6 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Buffers.Binary; using System.Diagnostics; using System.Numerics; using System.Runtime.CompilerServices; @@ -139,8 +140,7 @@ public override unsafe void NextBytes(Span buffer) while (buffer.Length >= sizeof(ulong)) { - bool ok = BitConverter.TryWriteBytes(buffer, BitOperations.RotateLeft(s1 * 5, 7) * 9); - Debug.Assert(ok); + BinaryPrimitives.WriteUInt64LittleEndian(buffer, BitOperations.RotateLeft(s1 * 5, 7) * 9); // Update PRNG state. ulong t = s1 << 17; diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.MetadataDb.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.MetadataDb.cs index e2dcee0a5fb33a..ac01acc0fb5de0 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.MetadataDb.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.MetadataDb.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Buffers; +using System.Buffers.Binary; using System.Diagnostics; using System.Runtime.InteropServices; using System.Threading; @@ -269,8 +270,7 @@ internal void SetLength(int index, int length) AssertValidIndex(index); Debug.Assert(length >= 0); Span destination = _data.AsSpan(index + SizeOrLengthOffset); - bool ok = BitConverter.TryWriteBytes(destination, length); - Debug.Assert(ok); + BinaryPrimitives.WriteInt32LittleEndian(destination, length); } internal void SetNumberOfRows(int index, int numberOfRows) @@ -279,12 +279,11 @@ internal void SetNumberOfRows(int index, int numberOfRows) Debug.Assert(numberOfRows >= 1 && numberOfRows <= 0x0FFFFFFF); Span dataPos = _data.AsSpan(index + NumberOfRowsOffset); - int current = BitConverter.ToInt32(dataPos); + int current = BinaryPrimitives.ReadInt32LittleEndian(dataPos); // Persist the most significant nybble int value = (current & unchecked((int)0xF0000000)) | numberOfRows; - bool ok = BitConverter.TryWriteBytes(dataPos, value); - Debug.Assert(ok); + BinaryPrimitives.WriteInt32LittleEndian(dataPos, value); } internal void SetHasComplexChildren(int index) @@ -293,11 +292,10 @@ internal void SetHasComplexChildren(int index) // The HasComplexChildren bit is the most significant bit of "SizeOrLength" Span dataPos = _data.AsSpan(index + SizeOrLengthOffset); - int current = BitConverter.ToInt32(dataPos); + int current = BinaryPrimitives.ReadInt32LittleEndian(dataPos); int value = current | unchecked((int)0x80000000); - bool ok = BitConverter.TryWriteBytes(dataPos, value); - Debug.Assert(ok); + BinaryPrimitives.WriteInt32LittleEndian(dataPos, value); } internal int FindIndexOfFirstUnsetSizeOrLength(JsonTokenType lookupType) @@ -334,7 +332,7 @@ internal DbRow Get(int index) internal JsonTokenType GetJsonTokenType(int index) { AssertValidIndex(index); - uint union = BitConverter.ToUInt32(_data.AsSpan(index + NumberOfRowsOffset)); + uint union = BinaryPrimitives.ReadUInt32LittleEndian(_data.AsSpan(index + NumberOfRowsOffset)); return (JsonTokenType)(union >> 28); } From 06a8cc07d7c10bc5e53b713177f33ad1227fb87c Mon Sep 17 00:00:00 2001 From: Copilot <223556219+Copilot@users.noreply.github.com> Date: Fri, 24 Apr 2026 21:57:20 +0200 Subject: [PATCH 3/7] Use MemoryMarshal.Read inside BitConverterPolyfills; revert Boolean.cs touch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The polyfill itself is internal-only and we don't care if it uses generic MemoryMarshal.Read — the goal of marking those caller-unsafe is for the public API surface. Switching the polyfill body to MemoryMarshal.Read collapses each overload to a one-liner. The Boolean.cs change is reverted: keep the existing MemoryMarshal.Read(MemoryMarshal.AsBytes(value)) form. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../src/Polyfills/BitConverterPolyfills.cs | 100 ++---------------- .../src/System/Boolean.cs | 18 +--- 2 files changed, 13 insertions(+), 105 deletions(-) diff --git a/src/libraries/Common/src/Polyfills/BitConverterPolyfills.cs b/src/libraries/Common/src/Polyfills/BitConverterPolyfills.cs index 605cde88a0860a..92fed514916fa7 100644 --- a/src/libraries/Common/src/Polyfills/BitConverterPolyfills.cs +++ b/src/libraries/Common/src/Polyfills/BitConverterPolyfills.cs @@ -1,7 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; namespace System; @@ -28,95 +28,13 @@ public static ulong DoubleToUInt64Bits(double value) // ---- ReadOnlySpan read overloads (host-endian, semantics match BCL net5+) ---- - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static short ToInt16(ReadOnlySpan value) - { - if (value.Length < sizeof(short)) - ThrowHelper_ArgumentOutOfRange(nameof(value)); - unsafe - { - fixed (byte* p = value) return *(short*)p; - } - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static ushort ToUInt16(ReadOnlySpan value) - { - if (value.Length < sizeof(ushort)) - ThrowHelper_ArgumentOutOfRange(nameof(value)); - unsafe - { - fixed (byte* p = value) return *(ushort*)p; - } - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static int ToInt32(ReadOnlySpan value) - { - if (value.Length < sizeof(int)) - ThrowHelper_ArgumentOutOfRange(nameof(value)); - unsafe - { - fixed (byte* p = value) return *(int*)p; - } - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static uint ToUInt32(ReadOnlySpan value) - { - if (value.Length < sizeof(uint)) - ThrowHelper_ArgumentOutOfRange(nameof(value)); - unsafe - { - fixed (byte* p = value) return *(uint*)p; - } - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static long ToInt64(ReadOnlySpan value) - { - if (value.Length < sizeof(long)) - ThrowHelper_ArgumentOutOfRange(nameof(value)); - unsafe - { - fixed (byte* p = value) return *(long*)p; - } - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static ulong ToUInt64(ReadOnlySpan value) - { - if (value.Length < sizeof(ulong)) - ThrowHelper_ArgumentOutOfRange(nameof(value)); - unsafe - { - fixed (byte* p = value) return *(ulong*)p; - } - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static float ToSingle(ReadOnlySpan value) - { - if (value.Length < sizeof(float)) - ThrowHelper_ArgumentOutOfRange(nameof(value)); - unsafe - { - fixed (byte* p = value) return *(float*)p; - } - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static double ToDouble(ReadOnlySpan value) - { - if (value.Length < sizeof(double)) - ThrowHelper_ArgumentOutOfRange(nameof(value)); - unsafe - { - fixed (byte* p = value) return *(double*)p; - } - } + public static short ToInt16(ReadOnlySpan value) => MemoryMarshal.Read(value); + public static ushort ToUInt16(ReadOnlySpan value) => MemoryMarshal.Read(value); + public static int ToInt32(ReadOnlySpan value) => MemoryMarshal.Read(value); + public static uint ToUInt32(ReadOnlySpan value) => MemoryMarshal.Read(value); + public static long ToInt64(ReadOnlySpan value) => MemoryMarshal.Read(value); + public static ulong ToUInt64(ReadOnlySpan value) => MemoryMarshal.Read(value); + public static float ToSingle(ReadOnlySpan value) => MemoryMarshal.Read(value); + public static double ToDouble(ReadOnlySpan value) => MemoryMarshal.Read(value); } - - private static void ThrowHelper_ArgumentOutOfRange(string paramName) => - throw new ArgumentOutOfRangeException(paramName); } diff --git a/src/libraries/System.Private.CoreLib/src/System/Boolean.cs b/src/libraries/System.Private.CoreLib/src/System/Boolean.cs index b0c8d3ddb9cbe6..d2619daba89ebe 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Boolean.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Boolean.cs @@ -189,29 +189,19 @@ public int CompareTo(bool value) internal static bool IsTrueStringIgnoreCase(ReadOnlySpan value) { // "true" as a ulong, each char |'d with 0x0020 for case-insensitivity - const ulong true_val = 0x65007500720074ul; + ulong true_val = BitConverter.IsLittleEndian ? 0x65007500720074ul : 0x74007200750065ul; return value.Length == 4 && - (FourCharsAsUInt64(value) | 0x0020002000200020) == true_val; + (MemoryMarshal.Read(MemoryMarshal.AsBytes(value)) | 0x0020002000200020) == true_val; } internal static bool IsFalseStringIgnoreCase(ReadOnlySpan value) { // "fals" as a ulong, each char |'d with 0x0020 for case-insensitivity - const ulong fals_val = 0x73006C00610066ul; + ulong fals_val = BitConverter.IsLittleEndian ? 0x73006C00610066ul : 0x660061006C0073ul; return value.Length == 5 && - (((FourCharsAsUInt64(value) | 0x0020002000200020) == fals_val) & + (((MemoryMarshal.Read(MemoryMarshal.AsBytes(value)) | 0x0020002000200020) == fals_val) & ((value[4] | 0x20) == 'e')); } - - // Composes the first four chars of `value` into a ulong with the same byte layout as - // a host-endian read of those 8 bytes on a little-endian system. Endian-independent by - // construction (each char read returns the host-language char value, which is then - // shifted into a fixed bit position). - private static ulong FourCharsAsUInt64(ReadOnlySpan value) => - value[0] | - ((ulong)value[1] << 16) | - ((ulong)value[2] << 32) | - ((ulong)value[3] << 48); #else internal static bool IsTrueStringIgnoreCase(ReadOnlySpan value) { From f87a0963dc73608c5c113d09d532b2419ad34b2a Mon Sep 17 00:00:00 2001 From: EgorBo Date: Fri, 24 Apr 2026 22:09:10 +0200 Subject: [PATCH 4/7] Only include BitConverter polyfill on Windows for PerfCounter/Pkcs Both libraries compile their source files only when TargetPlatformIdentifier == 'windows'; on plain net462/ns2.0 the assembly is generated as a PlatformNotSupported facade. Including the polyfill (which uses ReadOnlySpan) unconditionally for non-NETCoreApp pulled it into the facade build where System.Memory isn't referenced, causing CS0246. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../src/System.Diagnostics.PerformanceCounter.csproj | 2 +- .../src/System.Security.Cryptography.Pkcs.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj b/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj index 539652d21f698c..cf181a3cf2e763 100644 --- a/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj +++ b/src/libraries/System.Diagnostics.PerformanceCounter/src/System.Diagnostics.PerformanceCounter.csproj @@ -137,7 +137,7 @@ System.Diagnostics.PerformanceCounter Link="Common\DisableRuntimeMarshalling.cs" /> - + diff --git a/src/libraries/System.Security.Cryptography.Pkcs/src/System.Security.Cryptography.Pkcs.csproj b/src/libraries/System.Security.Cryptography.Pkcs/src/System.Security.Cryptography.Pkcs.csproj index 098109f4a3b123..a6d789e4ff0fc3 100644 --- a/src/libraries/System.Security.Cryptography.Pkcs/src/System.Security.Cryptography.Pkcs.csproj +++ b/src/libraries/System.Security.Cryptography.Pkcs/src/System.Security.Cryptography.Pkcs.csproj @@ -712,7 +712,7 @@ System.Security.Cryptography.Pkcs.EnvelopedCms - + From f0d47ee0dc96832b818ad5545d70da0a77c8e996 Mon Sep 17 00:00:00 2001 From: EgorBo Date: Fri, 24 Apr 2026 22:14:19 +0200 Subject: [PATCH 5/7] Address review: keep host-endian semantics in Random/IPAddress/MetadataDb Copilot review correctly flagged that BinaryPrimitives.*LittleEndian changes behavior on big-endian platforms vs the original MemoryMarshal.Write/Read (which is host-endian). For these specific cases (Random.XoshiroImpl bulk fill, IPAddress.WriteIPv4Bytes, JsonDocument.MetadataDb DbRow accessors), revert to MemoryMarshal.Read/Write to preserve host-endian semantics and fail-fast on insufficient destination length. Drop now-unused System.Buffers.Binary using directives. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- dump.txt | 36454 ++++++++++++++++ .../src/System/Net/IPAddress.cs | 3 +- .../System/Random.Xoshiro128StarStarImpl.cs | 3 +- .../System/Random.Xoshiro256StarStarImpl.cs | 3 +- .../Json/Document/JsonDocument.MetadataDb.cs | 13 +- 5 files changed, 36464 insertions(+), 12 deletions(-) create mode 100644 dump.txt diff --git a/dump.txt b/dump.txt new file mode 100644 index 00000000000000..27547a00cfe073 --- /dev/null +++ b/dump.txt @@ -0,0 +1,36454 @@ +****** START compiling System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int (MethodHash=aa464451) +Generating code for Windows x64 +OPTIONS: compCodeOpt = BLENDED_CODE +OPTIONS: compDbgCode = false +OPTIONS: compDbgInfo = true +OPTIONS: compDbgEnC = false +OPTIONS: compProcedureSplitting = false +OPTIONS: compProcedureSplittingEH = false +OPTIONS: Jit invoked for AOT +IL to import: +IL_0000 04 ldarg.2 +IL_0001 16 ldc.i4.0 +IL_0002 fe 04 clt +IL_0004 16 ldc.i4.0 +IL_0005 fe 01 ceq +IL_0007 72 9f a8 00 70 ldstr 0x7000A89F +IL_000c 28 81 5c 00 06 call 0x6005C81 +IL_0011 03 ldarg.1 +IL_0012 8c 31 04 00 1b box 0x1B000431 +IL_0017 75 6f 00 00 02 isinst 0x200006F +IL_001c 2d 27 brtrue.s 39 (IL_0045) +IL_001e 03 ldarg.1 +IL_001f 8c 31 04 00 1b box 0x1B000431 +IL_0024 75 c8 00 00 02 isinst 0x20000C8 +IL_0029 2d 1a brtrue.s 26 (IL_0045) +IL_002b 03 ldarg.1 +IL_002c 8c 31 04 00 1b box 0x1B000431 +IL_0031 75 c9 00 00 02 isinst 0x20000C9 +IL_0036 2d 0d brtrue.s 13 (IL_0045) +IL_0038 03 ldarg.1 +IL_0039 8c 31 04 00 1b box 0x1B000431 +IL_003e 75 ca 00 00 02 isinst 0x20000CA +IL_0043 2c 04 brfalse.s 4 (IL_0049) +IL_0045 17 ldc.i4.1 +IL_0046 0a stloc.0 +IL_0047 2b 02 br.s 2 (IL_004b) +IL_0049 16 ldc.i4.0 +IL_004a 0a stloc.0 +IL_004b 06 ldloc.0 +IL_004c 72 d9 a8 00 70 ldstr 0x7000A8D9 +IL_0051 28 81 5c 00 06 call 0x6005C81 +IL_0056 28 65 64 00 06 call 0x6006465 +IL_005b 2c 0b brfalse.s 11 (IL_0068) +IL_005d 04 ldarg.2 +IL_005e 28 05 0f 00 0a call 0xA000F05 +IL_0063 3c 83 02 00 00 bge 643 (IL_02eb) +IL_0068 04 ldarg.2 +IL_0069 d3 conv.i +IL_006a 17 ldc.i4.1 +IL_006b d3 conv.i +IL_006c 59 sub +IL_006d 0b stloc.1 +IL_006e 38 74 01 00 00 br 372 (IL_01e7) +IL_0073 04 ldarg.2 +IL_0074 1e ldc.i4.8 +IL_0075 59 sub +IL_0076 10 02 starg.s 0x2 +IL_0078 02 ldarg.0 +IL_0079 07 ldloc.1 +IL_007a 28 7a 04 00 2b call 0x2B00047A +IL_007f 71 31 04 00 1b ldobj 0x1B000431 +IL_0084 03 ldarg.1 +IL_0085 fe 16 31 04 00 1b constrained. 0x1B000431 +IL_008b 28 fb 0c 00 0a call 0xA000CFB +IL_0090 fe 16 47 04 00 1b constrained. 0x1B000447 +IL_0096 28 0e 0f 00 0a call 0xA000F0E +IL_009b 2c 03 brfalse.s 3 (IL_00a0) +IL_009d 07 ldloc.1 +IL_009e 69 conv.i4 +IL_009f 2a ret +IL_00a0 02 ldarg.0 +IL_00a1 07 ldloc.1 +IL_00a2 17 ldc.i4.1 +IL_00a3 d3 conv.i +IL_00a4 59 sub +IL_00a5 28 7a 04 00 2b call 0x2B00047A +IL_00aa 71 31 04 00 1b ldobj 0x1B000431 +IL_00af 03 ldarg.1 +IL_00b0 fe 16 31 04 00 1b constrained. 0x1B000431 +IL_00b6 28 fb 0c 00 0a call 0xA000CFB +IL_00bb fe 16 47 04 00 1b constrained. 0x1B000447 +IL_00c1 28 0e 0f 00 0a call 0xA000F0E +IL_00c6 2c 06 brfalse.s 6 (IL_00ce) +IL_00c8 07 ldloc.1 +IL_00c9 17 ldc.i4.1 +IL_00ca d3 conv.i +IL_00cb 59 sub +IL_00cc 69 conv.i4 +IL_00cd 2a ret +IL_00ce 02 ldarg.0 +IL_00cf 07 ldloc.1 +IL_00d0 18 ldc.i4.2 +IL_00d1 d3 conv.i +IL_00d2 59 sub +IL_00d3 28 7a 04 00 2b call 0x2B00047A +IL_00d8 71 31 04 00 1b ldobj 0x1B000431 +IL_00dd 03 ldarg.1 +IL_00de fe 16 31 04 00 1b constrained. 0x1B000431 +IL_00e4 28 fb 0c 00 0a call 0xA000CFB +IL_00e9 fe 16 47 04 00 1b constrained. 0x1B000447 +IL_00ef 28 0e 0f 00 0a call 0xA000F0E +IL_00f4 2c 06 brfalse.s 6 (IL_00fc) +IL_00f6 07 ldloc.1 +IL_00f7 18 ldc.i4.2 +IL_00f8 d3 conv.i +IL_00f9 59 sub +IL_00fa 69 conv.i4 +IL_00fb 2a ret +IL_00fc 02 ldarg.0 +IL_00fd 07 ldloc.1 +IL_00fe 19 ldc.i4.3 +IL_00ff d3 conv.i +IL_0100 59 sub +IL_0101 28 7a 04 00 2b call 0x2B00047A +IL_0106 71 31 04 00 1b ldobj 0x1B000431 +IL_010b 03 ldarg.1 +IL_010c fe 16 31 04 00 1b constrained. 0x1B000431 +IL_0112 28 fb 0c 00 0a call 0xA000CFB +IL_0117 fe 16 47 04 00 1b constrained. 0x1B000447 +IL_011d 28 0e 0f 00 0a call 0xA000F0E +IL_0122 2c 06 brfalse.s 6 (IL_012a) +IL_0124 07 ldloc.1 +IL_0125 19 ldc.i4.3 +IL_0126 d3 conv.i +IL_0127 59 sub +IL_0128 69 conv.i4 +IL_0129 2a ret +IL_012a 02 ldarg.0 +IL_012b 07 ldloc.1 +IL_012c 1a ldc.i4.4 +IL_012d d3 conv.i +IL_012e 59 sub +IL_012f 28 7a 04 00 2b call 0x2B00047A +IL_0134 71 31 04 00 1b ldobj 0x1B000431 +IL_0139 03 ldarg.1 +IL_013a fe 16 31 04 00 1b constrained. 0x1B000431 +IL_0140 28 fb 0c 00 0a call 0xA000CFB +IL_0145 fe 16 47 04 00 1b constrained. 0x1B000447 +IL_014b 28 0e 0f 00 0a call 0xA000F0E +IL_0150 2c 06 brfalse.s 6 (IL_0158) +IL_0152 07 ldloc.1 +IL_0153 1a ldc.i4.4 +IL_0154 d3 conv.i +IL_0155 59 sub +IL_0156 69 conv.i4 +IL_0157 2a ret +IL_0158 02 ldarg.0 +IL_0159 07 ldloc.1 +IL_015a 1b ldc.i4.5 +IL_015b d3 conv.i +IL_015c 59 sub +IL_015d 28 7a 04 00 2b call 0x2B00047A +IL_0162 71 31 04 00 1b ldobj 0x1B000431 +IL_0167 03 ldarg.1 +IL_0168 fe 16 31 04 00 1b constrained. 0x1B000431 +IL_016e 28 fb 0c 00 0a call 0xA000CFB +IL_0173 fe 16 47 04 00 1b constrained. 0x1B000447 +IL_0179 28 0e 0f 00 0a call 0xA000F0E +IL_017e 2c 06 brfalse.s 6 (IL_0186) +IL_0180 07 ldloc.1 +IL_0181 1b ldc.i4.5 +IL_0182 d3 conv.i +IL_0183 59 sub +IL_0184 69 conv.i4 +IL_0185 2a ret +IL_0186 02 ldarg.0 +IL_0187 07 ldloc.1 +IL_0188 1c ldc.i4.6 +IL_0189 d3 conv.i +IL_018a 59 sub +IL_018b 28 7a 04 00 2b call 0x2B00047A +IL_0190 71 31 04 00 1b ldobj 0x1B000431 +IL_0195 03 ldarg.1 +IL_0196 fe 16 31 04 00 1b constrained. 0x1B000431 +IL_019c 28 fb 0c 00 0a call 0xA000CFB +IL_01a1 fe 16 47 04 00 1b constrained. 0x1B000447 +IL_01a7 28 0e 0f 00 0a call 0xA000F0E +IL_01ac 2c 06 brfalse.s 6 (IL_01b4) +IL_01ae 07 ldloc.1 +IL_01af 1c ldc.i4.6 +IL_01b0 d3 conv.i +IL_01b1 59 sub +IL_01b2 69 conv.i4 +IL_01b3 2a ret +IL_01b4 02 ldarg.0 +IL_01b5 07 ldloc.1 +IL_01b6 1d ldc.i4.7 +IL_01b7 d3 conv.i +IL_01b8 59 sub +IL_01b9 28 7a 04 00 2b call 0x2B00047A +IL_01be 71 31 04 00 1b ldobj 0x1B000431 +IL_01c3 03 ldarg.1 +IL_01c4 fe 16 31 04 00 1b constrained. 0x1B000431 +IL_01ca 28 fb 0c 00 0a call 0xA000CFB +IL_01cf fe 16 47 04 00 1b constrained. 0x1B000447 +IL_01d5 28 0e 0f 00 0a call 0xA000F0E +IL_01da 2c 06 brfalse.s 6 (IL_01e2) +IL_01dc 07 ldloc.1 +IL_01dd 1d ldc.i4.7 +IL_01de d3 conv.i +IL_01df 59 sub +IL_01e0 69 conv.i4 +IL_01e1 2a ret +IL_01e2 07 ldloc.1 +IL_01e3 1e ldc.i4.8 +IL_01e4 d3 conv.i +IL_01e5 59 sub +IL_01e6 0b stloc.1 +IL_01e7 04 ldarg.2 +IL_01e8 1e ldc.i4.8 +IL_01e9 3c 85 fe ff ff bge -379 (IL_0073) +IL_01ee 04 ldarg.2 +IL_01ef 1a ldc.i4.4 +IL_01f0 3f f0 00 00 00 blt 240 (IL_02e5) +IL_01f5 04 ldarg.2 +IL_01f6 1a ldc.i4.4 +IL_01f7 59 sub +IL_01f8 10 02 starg.s 0x2 +IL_01fa 02 ldarg.0 +IL_01fb 07 ldloc.1 +IL_01fc 28 7a 04 00 2b call 0x2B00047A +IL_0201 71 31 04 00 1b ldobj 0x1B000431 +IL_0206 03 ldarg.1 +IL_0207 fe 16 31 04 00 1b constrained. 0x1B000431 +IL_020d 28 fb 0c 00 0a call 0xA000CFB +IL_0212 fe 16 47 04 00 1b constrained. 0x1B000447 +IL_0218 28 0e 0f 00 0a call 0xA000F0E +IL_021d 2c 03 brfalse.s 3 (IL_0222) +IL_021f 07 ldloc.1 +IL_0220 69 conv.i4 +IL_0221 2a ret +IL_0222 02 ldarg.0 +IL_0223 07 ldloc.1 +IL_0224 17 ldc.i4.1 +IL_0225 d3 conv.i +IL_0226 59 sub +IL_0227 28 7a 04 00 2b call 0x2B00047A +IL_022c 71 31 04 00 1b ldobj 0x1B000431 +IL_0231 03 ldarg.1 +IL_0232 fe 16 31 04 00 1b constrained. 0x1B000431 +IL_0238 28 fb 0c 00 0a call 0xA000CFB +IL_023d fe 16 47 04 00 1b constrained. 0x1B000447 +IL_0243 28 0e 0f 00 0a call 0xA000F0E +IL_0248 2c 06 brfalse.s 6 (IL_0250) +IL_024a 07 ldloc.1 +IL_024b 17 ldc.i4.1 +IL_024c d3 conv.i +IL_024d 59 sub +IL_024e 69 conv.i4 +IL_024f 2a ret +IL_0250 02 ldarg.0 +IL_0251 07 ldloc.1 +IL_0252 18 ldc.i4.2 +IL_0253 d3 conv.i +IL_0254 59 sub +IL_0255 28 7a 04 00 2b call 0x2B00047A +IL_025a 71 31 04 00 1b ldobj 0x1B000431 +IL_025f 03 ldarg.1 +IL_0260 fe 16 31 04 00 1b constrained. 0x1B000431 +IL_0266 28 fb 0c 00 0a call 0xA000CFB +IL_026b fe 16 47 04 00 1b constrained. 0x1B000447 +IL_0271 28 0e 0f 00 0a call 0xA000F0E +IL_0276 2c 06 brfalse.s 6 (IL_027e) +IL_0278 07 ldloc.1 +IL_0279 18 ldc.i4.2 +IL_027a d3 conv.i +IL_027b 59 sub +IL_027c 69 conv.i4 +IL_027d 2a ret +IL_027e 02 ldarg.0 +IL_027f 07 ldloc.1 +IL_0280 19 ldc.i4.3 +IL_0281 d3 conv.i +IL_0282 59 sub +IL_0283 28 7a 04 00 2b call 0x2B00047A +IL_0288 71 31 04 00 1b ldobj 0x1B000431 +IL_028d 03 ldarg.1 +IL_028e fe 16 31 04 00 1b constrained. 0x1B000431 +IL_0294 28 fb 0c 00 0a call 0xA000CFB +IL_0299 fe 16 47 04 00 1b constrained. 0x1B000447 +IL_029f 28 0e 0f 00 0a call 0xA000F0E +IL_02a4 2c 06 brfalse.s 6 (IL_02ac) +IL_02a6 07 ldloc.1 +IL_02a7 19 ldc.i4.3 +IL_02a8 d3 conv.i +IL_02a9 59 sub +IL_02aa 69 conv.i4 +IL_02ab 2a ret +IL_02ac 07 ldloc.1 +IL_02ad 1a ldc.i4.4 +IL_02ae d3 conv.i +IL_02af 59 sub +IL_02b0 0b stloc.1 +IL_02b1 2b 32 br.s 50 (IL_02e5) +IL_02b3 04 ldarg.2 +IL_02b4 17 ldc.i4.1 +IL_02b5 59 sub +IL_02b6 10 02 starg.s 0x2 +IL_02b8 02 ldarg.0 +IL_02b9 07 ldloc.1 +IL_02ba 28 7a 04 00 2b call 0x2B00047A +IL_02bf 71 31 04 00 1b ldobj 0x1B000431 +IL_02c4 03 ldarg.1 +IL_02c5 fe 16 31 04 00 1b constrained. 0x1B000431 +IL_02cb 28 fb 0c 00 0a call 0xA000CFB +IL_02d0 fe 16 47 04 00 1b constrained. 0x1B000447 +IL_02d6 28 0e 0f 00 0a call 0xA000F0E +IL_02db 2c 03 brfalse.s 3 (IL_02e0) +IL_02dd 07 ldloc.1 +IL_02de 69 conv.i4 +IL_02df 2a ret +IL_02e0 07 ldloc.1 +IL_02e1 17 ldc.i4.1 +IL_02e2 d3 conv.i +IL_02e3 59 sub +IL_02e4 0b stloc.1 +IL_02e5 04 ldarg.2 +IL_02e6 16 ldc.i4.0 +IL_02e7 30 ca bgt.s -54 (IL_02b3) +IL_02e9 15 ldc.i4.m1 +IL_02ea 2a ret +IL_02eb 28 71 68 00 06 call 0x6006871 +IL_02f0 2c 11 brfalse.s 17 (IL_0303) +IL_02f2 04 ldarg.2 +IL_02f3 28 06 0f 00 0a call 0xA000F06 +IL_02f8 32 09 blt.s 9 (IL_0303) +IL_02fa 02 ldarg.0 +IL_02fb 03 ldarg.1 +IL_02fc 04 ldarg.2 +IL_02fd 28 ab 04 00 2b call 0x2B0004AB +IL_0302 2a ret +IL_0303 28 80 66 00 06 call 0x6006680 +IL_0308 2c 11 brfalse.s 17 (IL_031b) +IL_030a 04 ldarg.2 +IL_030b 28 07 0f 00 0a call 0xA000F07 +IL_0310 32 09 blt.s 9 (IL_031b) +IL_0312 02 ldarg.0 +IL_0313 03 ldarg.1 +IL_0314 04 ldarg.2 +IL_0315 28 ac 04 00 2b call 0x2B0004AC +IL_031a 2a ret +IL_031b 02 ldarg.0 +IL_031c 03 ldarg.1 +IL_031d 04 ldarg.2 +IL_031e 28 ad 04 00 2b call 0x2B0004AD +IL_0323 2a ret +1 return registers for return type int + [00..04) reg rax +Parameter V00 ABI info: [00..08) reg rcx +Parameter V01 ABI info: [00..08) reg rdx +Parameter V02 ABI info: [00..04) reg r8 + +lvaGrabTemp returning 5 (V05 tmp0) (a long lifetime temp) called for OutgoingArgSpace. + +Local V05 should not be enregistered because: it is address exposed +; Initial local variable assignments +; +; V00 arg0 byref +; V01 arg1 long +; V02 arg2 int +; V03 loc0 ubyte +; V04 loc1 long +; V05 OutArgs struct <0> do-not-enreg[XS] addr-exposed "OutgoingArgSpace" +*************** In compInitDebuggingInfo() for System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int +getVars() returned cVars = 0, extendOthers = true +info.compVarScopesCount = 5 + VarNum LVNum Name Beg End + 0: 00h 00h V00 arg0 000h 324h + 1: 01h 01h V01 arg1 000h 324h + 2: 02h 02h V02 arg2 000h 324h + 3: 03h 03h V03 loc0 000h 324h + 4: 04h 04h V04 loc1 000h 324h +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +Callee has no profile +Callee IL size 804 exceeds maxCodeSize 128 +*************** In fgFindBasicBlocks() for System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int +Callee has untrusted profile +Callee IL size 804 exceeds maxCodeSize 128 +Named Intrinsic System.Runtime.Intrinsics.Vector128.get_IsHardwareAccelerated: Notify VM instruction set (Vector128) must be supported. +Notify VM instruction set (X86Base) must be supported. +Recognized +Named Intrinsic System.Runtime.Intrinsics.Vector128`1.get_Count: Recognized +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized +Named Intrinsic System.Runtime.Intrinsics.Vector512.get_IsHardwareAccelerated: Notify VM instruction set (Vector512) must not be supported. +Unsupported - return falseNamed Intrinsic System.Runtime.Intrinsics.Vector512`1.get_Count: Unsupported - throw PlatformNotSupportedExceptionNamed Intrinsic System.Runtime.Intrinsics.Vector256.get_IsHardwareAccelerated: Notify VM instruction set (Vector256) must not be supported. +Unsupported - return falseNamed Intrinsic System.Runtime.Intrinsics.Vector256`1.get_Count: Unsupported - throw PlatformNotSupportedExceptionJump targets: + IL_0045 + IL_0049 + IL_004b + IL_0068 + IL_0073 + IL_00a0 + IL_00ce + IL_00fc + IL_012a + IL_0158 + IL_0186 + IL_01b4 + IL_01e2 + IL_01e7 + IL_0222 + IL_0250 + IL_027e + IL_02ac + IL_02b3 + IL_02e0 + IL_02e5 + IL_02eb + IL_0303 + IL_031b +New Basic Block BB01 [0000] created. +BB01 [0000] [000..01E) +New Basic Block BB02 [0001] created. +BB02 [0001] [01E..02B) +New Basic Block BB03 [0002] created. +BB03 [0002] [02B..038) +New Basic Block BB04 [0003] created. +BB04 [0003] [038..045) +New Basic Block BB05 [0004] created. +BB05 [0004] [045..049) +New Basic Block BB06 [0005] created. +BB06 [0005] [049..04B) +New Basic Block BB07 [0006] created. +BB07 [0006] [04B..05D) +New Basic Block BB08 [0007] created. +BB08 [0007] [05D..068) +New Basic Block BB09 [0008] created. +BB09 [0008] [068..073) +New Basic Block BB10 [0009] created. +BB10 [0009] [073..09D) +New Basic Block BB11 [0010] created. +BB11 [0010] [09D..0A0) +New Basic Block BB12 [0011] created. +BB12 [0011] [0A0..0C8) +New Basic Block BB13 [0012] created. +BB13 [0012] [0C8..0CE) +New Basic Block BB14 [0013] created. +BB14 [0013] [0CE..0F6) +New Basic Block BB15 [0014] created. +BB15 [0014] [0F6..0FC) +New Basic Block BB16 [0015] created. +BB16 [0015] [0FC..124) +New Basic Block BB17 [0016] created. +BB17 [0016] [124..12A) +New Basic Block BB18 [0017] created. +BB18 [0017] [12A..152) +New Basic Block BB19 [0018] created. +BB19 [0018] [152..158) +New Basic Block BB20 [0019] created. +BB20 [0019] [158..180) +New Basic Block BB21 [0020] created. +BB21 [0020] [180..186) +New Basic Block BB22 [0021] created. +BB22 [0021] [186..1AE) +New Basic Block BB23 [0022] created. +BB23 [0022] [1AE..1B4) +New Basic Block BB24 [0023] created. +BB24 [0023] [1B4..1DC) +New Basic Block BB25 [0024] created. +BB25 [0024] [1DC..1E2) +New Basic Block BB26 [0025] created. +BB26 [0025] [1E2..1E7) +New Basic Block BB27 [0026] created. +BB27 [0026] [1E7..1EE) +New Basic Block BB28 [0027] created. +BB28 [0027] [1EE..1F5) +New Basic Block BB29 [0028] created. +BB29 [0028] [1F5..21F) +New Basic Block BB30 [0029] created. +BB30 [0029] [21F..222) +New Basic Block BB31 [0030] created. +BB31 [0030] [222..24A) +New Basic Block BB32 [0031] created. +BB32 [0031] [24A..250) +New Basic Block BB33 [0032] created. +BB33 [0032] [250..278) +New Basic Block BB34 [0033] created. +BB34 [0033] [278..27E) +New Basic Block BB35 [0034] created. +BB35 [0034] [27E..2A6) +New Basic Block BB36 [0035] created. +BB36 [0035] [2A6..2AC) +New Basic Block BB37 [0036] created. +BB37 [0036] [2AC..2B3) +New Basic Block BB38 [0037] created. +BB38 [0037] [2B3..2DD) +New Basic Block BB39 [0038] created. +BB39 [0038] [2DD..2E0) +New Basic Block BB40 [0039] created. +BB40 [0039] [2E0..2E5) +New Basic Block BB41 [0040] created. +BB41 [0040] [2E5..2E9) +New Basic Block BB42 [0041] created. +BB42 [0041] [2E9..2EB) +New Basic Block BB43 [0042] created. +BB43 [0042] [2EB..2F2) +New Basic Block BB44 [0043] created. +BB44 [0043] [2F2..2FA) +New Basic Block BB45 [0044] created. +BB45 [0044] [2FA..303) +New Basic Block BB46 [0045] created. +BB46 [0045] [303..30A) +New Basic Block BB47 [0046] created. +BB47 [0046] [30A..312) +New Basic Block BB48 [0047] created. +BB48 [0047] [312..31B) +New Basic Block BB49 [0048] created. +BB49 [0048] [31B..324) +setting likelihood of BB01 -> BB05 to 0.5 +setting likelihood of BB01 -> BB02 to 0.5 +setting likelihood of BB02 -> BB05 to 0.5 +setting likelihood of BB02 -> BB03 to 0.5 +setting likelihood of BB03 -> BB05 to 0.5 +setting likelihood of BB03 -> BB04 to 0.5 +setting likelihood of BB04 -> BB06 to 0.5 +setting likelihood of BB04 -> BB05 to 0.5 +setting likelihood of BB05 -> BB07 to 1 +setting likelihood of BB06 -> BB07 to 1 +setting likelihood of BB07 -> BB09 to 0.5 +setting likelihood of BB07 -> BB08 to 0.5 +setting likelihood of BB08 -> BB43 to 0.5 +setting likelihood of BB08 -> BB09 to 0.5 +setting likelihood of BB09 -> BB27 to 1 +setting likelihood of BB10 -> BB12 to 0.5 +setting likelihood of BB10 -> BB11 to 0.5 +setting likelihood of BB12 -> BB14 to 0.5 +setting likelihood of BB12 -> BB13 to 0.5 +setting likelihood of BB14 -> BB16 to 0.5 +setting likelihood of BB14 -> BB15 to 0.5 +setting likelihood of BB16 -> BB18 to 0.5 +setting likelihood of BB16 -> BB17 to 0.5 +setting likelihood of BB18 -> BB20 to 0.5 +setting likelihood of BB18 -> BB19 to 0.5 +setting likelihood of BB20 -> BB22 to 0.5 +setting likelihood of BB20 -> BB21 to 0.5 +setting likelihood of BB22 -> BB24 to 0.5 +setting likelihood of BB22 -> BB23 to 0.5 +setting likelihood of BB24 -> BB26 to 0.5 +setting likelihood of BB24 -> BB25 to 0.5 +setting likelihood of BB26 -> BB27 to 1 +setting likelihood of BB27 -> BB10 to 0.5 +setting likelihood of BB27 -> BB28 to 0.5 +setting likelihood of BB28 -> BB41 to 0.5 +setting likelihood of BB28 -> BB29 to 0.5 +setting likelihood of BB29 -> BB31 to 0.5 +setting likelihood of BB29 -> BB30 to 0.5 +setting likelihood of BB31 -> BB33 to 0.5 +setting likelihood of BB31 -> BB32 to 0.5 +setting likelihood of BB33 -> BB35 to 0.5 +setting likelihood of BB33 -> BB34 to 0.5 +setting likelihood of BB35 -> BB37 to 0.5 +setting likelihood of BB35 -> BB36 to 0.5 +setting likelihood of BB37 -> BB41 to 1 +setting likelihood of BB38 -> BB40 to 0.5 +setting likelihood of BB38 -> BB39 to 0.5 +setting likelihood of BB40 -> BB41 to 1 +setting likelihood of BB41 -> BB38 to 0.5 +setting likelihood of BB41 -> BB42 to 0.5 +setting likelihood of BB43 -> BB46 to 0.5 +setting likelihood of BB43 -> BB44 to 0.5 +setting likelihood of BB44 -> BB46 to 0.5 +setting likelihood of BB44 -> BB45 to 0.5 +setting likelihood of BB46 -> BB49 to 0.5 +setting likelihood of BB46 -> BB47 to 0.5 +setting likelihood of BB47 -> BB49 to 0.5 +setting likelihood of BB47 -> BB48 to 0.5 +INLINER: during 'prejit' result 'failed this callee' reason 'too many il bytes' for 'n/a' calling 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + +INLINER: Marking System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int as NOINLINE (observation too many il bytes) +INLINER: during 'prejit' result 'failed this callee' reason 'too many il bytes' +IL Code Size,Instr 804, 306, Basic Block count 49, Local Variable Num,Ref count 6, 89 for method System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int +OPTIONS: opts.MinOpts() == false +Basic block list for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..01E)-> BB05(0.5),BB02(0.5) ( cond ) +BB02 [0001] 1 BB01 1 [01E..02B)-> BB05(0.5),BB03(0.5) ( cond ) +BB03 [0002] 1 BB02 1 [02B..038)-> BB05(0.5),BB04(0.5) ( cond ) +BB04 [0003] 1 BB03 1 [038..045)-> BB06(0.5),BB05(0.5) ( cond ) +BB05 [0004] 4 BB01,BB02,BB03,BB04 1 [045..049)-> BB07(1) (always) +BB06 [0005] 1 BB04 1 [049..04B)-> BB07(1) (always) +BB07 [0006] 2 BB05,BB06 1 [04B..05D)-> BB09(0.5),BB08(0.5) ( cond ) +BB08 [0007] 1 BB07 1 [05D..068)-> BB43(0.5),BB09(0.5) ( cond ) +BB09 [0008] 2 BB07,BB08 1 [068..073)-> BB27(1) (always) +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) bwd bwd-target +BB11 [0010] 1 BB10 1 [09D..0A0) (return) +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) bwd +BB13 [0012] 1 BB12 1 [0C8..0CE) (return) +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) bwd +BB15 [0014] 1 BB14 1 [0F6..0FC) (return) +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) bwd +BB17 [0016] 1 BB16 1 [124..12A) (return) +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) bwd +BB19 [0018] 1 BB18 1 [152..158) (return) +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) bwd +BB21 [0020] 1 BB20 1 [180..186) (return) +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) bwd +BB23 [0022] 1 BB22 1 [1AE..1B4) (return) +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) bwd +BB25 [0024] 1 BB24 1 [1DC..1E2) (return) +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB31(0.5),BB30(0.5) ( cond ) +BB30 [0029] 1 BB29 1 [21F..222) (return) +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) +BB32 [0031] 1 BB31 1 [24A..250) (return) +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) +BB34 [0033] 1 BB33 1 [278..27E) (return) +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) +BB36 [0035] 1 BB35 1 [2A6..2AC) (return) +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB40(0.5),BB39(0.5) ( cond ) bwd bwd-target +BB39 [0038] 1 BB38 1 [2DD..2E0) (return) +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB) (return) +BB43 [0042] 1 BB08 1 [2EB..2F2)-> BB46(0.5),BB44(0.5) ( cond ) +BB44 [0043] 1 BB43 1 [2F2..2FA)-> BB46(0.5),BB45(0.5) ( cond ) +BB45 [0044] 1 BB44 1 [2FA..303) (return) +BB46 [0045] 2 BB43,BB44 1 [303..30A)-> BB49(0.5),BB47(0.5) ( cond ) +BB47 [0046] 1 BB46 1 [30A..312)-> BB49(0.5),BB48(0.5) ( cond ) +BB48 [0047] 1 BB47 1 [312..31B) (return) +BB49 [0048] 2 BB46,BB47 1 [31B..324) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Starting PHASE Pre-import + +*************** Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..01E)-> BB05(0.5),BB02(0.5) ( cond ) +BB02 [0001] 1 BB01 1 [01E..02B)-> BB05(0.5),BB03(0.5) ( cond ) +BB03 [0002] 1 BB02 1 [02B..038)-> BB05(0.5),BB04(0.5) ( cond ) +BB04 [0003] 1 BB03 1 [038..045)-> BB06(0.5),BB05(0.5) ( cond ) +BB05 [0004] 4 BB01,BB02,BB03,BB04 1 [045..049)-> BB07(1) (always) +BB06 [0005] 1 BB04 1 [049..04B)-> BB07(1) (always) +BB07 [0006] 2 BB05,BB06 1 [04B..05D)-> BB09(0.5),BB08(0.5) ( cond ) +BB08 [0007] 1 BB07 1 [05D..068)-> BB43(0.5),BB09(0.5) ( cond ) +BB09 [0008] 2 BB07,BB08 1 [068..073)-> BB27(1) (always) +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) bwd bwd-target +BB11 [0010] 1 BB10 1 [09D..0A0) (return) +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) bwd +BB13 [0012] 1 BB12 1 [0C8..0CE) (return) +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) bwd +BB15 [0014] 1 BB14 1 [0F6..0FC) (return) +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) bwd +BB17 [0016] 1 BB16 1 [124..12A) (return) +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) bwd +BB19 [0018] 1 BB18 1 [152..158) (return) +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) bwd +BB21 [0020] 1 BB20 1 [180..186) (return) +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) bwd +BB23 [0022] 1 BB22 1 [1AE..1B4) (return) +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) bwd +BB25 [0024] 1 BB24 1 [1DC..1E2) (return) +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB31(0.5),BB30(0.5) ( cond ) +BB30 [0029] 1 BB29 1 [21F..222) (return) +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) +BB32 [0031] 1 BB31 1 [24A..250) (return) +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) +BB34 [0033] 1 BB33 1 [278..27E) (return) +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) +BB36 [0035] 1 BB35 1 [2A6..2AC) (return) +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB40(0.5),BB39(0.5) ( cond ) bwd bwd-target +BB39 [0038] 1 BB38 1 [2DD..2E0) (return) +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB) (return) +BB43 [0042] 1 BB08 1 [2EB..2F2)-> BB46(0.5),BB44(0.5) ( cond ) +BB44 [0043] 1 BB43 1 [2F2..2FA)-> BB46(0.5),BB45(0.5) ( cond ) +BB45 [0044] 1 BB44 1 [2FA..303) (return) +BB46 [0045] 2 BB43,BB44 1 [303..30A)-> BB49(0.5),BB47(0.5) ( cond ) +BB47 [0046] 1 BB46 1 [30A..312)-> BB49(0.5),BB48(0.5) ( cond ) +BB48 [0047] 1 BB47 1 [312..31B) (return) +BB49 [0048] 2 BB46,BB47 1 [31B..324) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..01E) -> BB05(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB05} + +------------ BB02 [0001] [01E..02B) -> BB05(0.5),BB03(0.5) (cond), preds={BB01} succs={BB03,BB05} + +------------ BB03 [0002] [02B..038) -> BB05(0.5),BB04(0.5) (cond), preds={BB02} succs={BB04,BB05} + +------------ BB04 [0003] [038..045) -> BB06(0.5),BB05(0.5) (cond), preds={BB03} succs={BB05,BB06} + +------------ BB05 [0004] [045..049) -> BB07(1) (always), preds={BB01,BB02,BB03,BB04} succs={BB07} + +------------ BB06 [0005] [049..04B) -> BB07(1) (always), preds={BB04} succs={BB07} + +------------ BB07 [0006] [04B..05D) -> BB09(0.5),BB08(0.5) (cond), preds={BB05,BB06} succs={BB08,BB09} + +------------ BB08 [0007] [05D..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB07} succs={BB09,BB43} + +------------ BB09 [0008] [068..073) -> BB27(1) (always), preds={BB07,BB08} succs={BB27} + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} + +------------ BB11 [0010] [09D..0A0) (return), preds={BB10} succs={} + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} + +------------ BB13 [0012] [0C8..0CE) (return), preds={BB12} succs={} + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} + +------------ BB15 [0014] [0F6..0FC) (return), preds={BB14} succs={} + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} + +------------ BB17 [0016] [124..12A) (return), preds={BB16} succs={} + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +------------ BB19 [0018] [152..158) (return), preds={BB18} succs={} + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +------------ BB21 [0020] [180..186) (return), preds={BB20} succs={} + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +------------ BB23 [0022] [1AE..1B4) (return), preds={BB22} succs={} + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +------------ BB25 [0024] [1DC..1E2) (return), preds={BB24} succs={} + +------------ BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} + +------------ BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} + +------------ BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} + +------------ BB29 [0028] [1F5..21F) -> BB31(0.5),BB30(0.5) (cond), preds={BB28} succs={BB30,BB31} + +------------ BB30 [0029] [21F..222) (return), preds={BB29} succs={} + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +------------ BB32 [0031] [24A..250) (return), preds={BB31} succs={} + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +------------ BB34 [0033] [278..27E) (return), preds={BB33} succs={} + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +------------ BB36 [0035] [2A6..2AC) (return), preds={BB35} succs={} + +------------ BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} + +------------ BB38 [0037] [2B3..2DD) -> BB40(0.5),BB39(0.5) (cond), preds={BB41} succs={BB39,BB40} + +------------ BB39 [0038] [2DD..2E0) (return), preds={BB38} succs={} + +------------ BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} + +------------ BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} + +------------ BB43 [0042] [2EB..2F2) -> BB46(0.5),BB44(0.5) (cond), preds={BB08} succs={BB44,BB46} + +------------ BB44 [0043] [2F2..2FA) -> BB46(0.5),BB45(0.5) (cond), preds={BB43} succs={BB45,BB46} + +------------ BB45 [0044] [2FA..303) (return), preds={BB44} succs={} + +------------ BB46 [0045] [303..30A) -> BB49(0.5),BB47(0.5) (cond), preds={BB43,BB44} succs={BB47,BB49} + +------------ BB47 [0046] [30A..312) -> BB49(0.5),BB48(0.5) (cond), preds={BB46} succs={BB48,BB49} + +------------ BB48 [0047] [312..31B) (return), preds={BB47} succs={} + +------------ BB49 [0048] [31B..324) (return), preds={BB46,BB47} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Starting PHASE Profile incorporation +BBOPT not set + +*************** Finishing PHASE Profile incorporation [no changes] + +*************** Starting PHASE Canonicalize entry + +*************** Finishing PHASE Canonicalize entry [no changes] + +*************** Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 0 (0x000) ldarg.2 + [ 1] 1 (0x001) ldc.i4.0 0 + [ 2] 2 (0x002) clt + [ 1] 4 (0x004) ldc.i4.0 0 + [ 2] 5 (0x005) ceq + [ 1] 7 (0x007) ldstr 7000A89F + [ 2] 12 (0x00c) call 06005C81 +In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 + +CheckCanInline: fetching method info for inline candidate Assert -- context 4000000000420549 +Class context: System.Diagnostics.Debug +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Diagnostics.Debug:Assert(bool,System.String)' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00000 ( 0x000[E--] ... ??? ) + [000006] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String) (exactContextHandle=0x4000000000420549) + [000004] ----------- arg0 +--* EQ int + [000002] ----------- | +--* LT int + [000000] ----------- | | +--* LCL_VAR int V02 arg2 + [000001] ----------- | | \--* CNS_INT int 0 + [000003] ----------- | \--* CNS_INT int 0 + [000005] ----------- arg1 \--* CNS_STR ref + + [ 0] 17 (0x011) ldarg.1 + [ 1] 18 (0x012) box 1B000431 + Importing BOX; ISINST; as null + + [ 1] 28 (0x01c) brtrue.s +Folding operator with constant nodes into a constant: + [000010] ----------- * NE int + [000008] ----------- +--* CNS_INT ref null + [000009] ----------- \--* CNS_INT ref null +Bashed to int constant: + [000010] ----------- * CNS_INT int 0 + +The conditional jump becomes an unconditional jump to BB02 +setting likelihood of BB01 -> BB02 from 0.5 to 1 + +impImportBlockPending for BB02 + +Importing BB02 (PC=030) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 30 (0x01e) ldarg.1 + [ 1] 31 (0x01f) box 1B000431 + Importing BOX; ISINST; as null + + [ 1] 41 (0x029) brtrue.s +Folding operator with constant nodes into a constant: + [000014] ----------- * NE int + [000012] ----------- +--* CNS_INT ref null + [000013] ----------- \--* CNS_INT ref null +Bashed to int constant: + [000014] ----------- * CNS_INT int 0 + +The conditional jump becomes an unconditional jump to BB03 +setting likelihood of BB02 -> BB03 from 0.5 to 1 + +impImportBlockPending for BB03 + +Importing BB03 (PC=043) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 43 (0x02b) ldarg.1 + [ 1] 44 (0x02c) box 1B000431 + Importing BOX; ISINST; as null + + [ 1] 54 (0x036) brtrue.s +Folding operator with constant nodes into a constant: + [000018] ----------- * NE int + [000016] ----------- +--* CNS_INT ref null + [000017] ----------- \--* CNS_INT ref null +Bashed to int constant: + [000018] ----------- * CNS_INT int 0 + +The conditional jump becomes an unconditional jump to BB04 +setting likelihood of BB03 -> BB04 from 0.5 to 1 + +impImportBlockPending for BB04 + +Importing BB04 (PC=056) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 56 (0x038) ldarg.1 + [ 1] 57 (0x039) box 1B000431 + Importing BOX; ISINST; BR_TRUE/FALSE as constant + + [ 1] 67 (0x043) brfalse.s +Folding operator with constant nodes into a constant: + [000022] ----------- * EQ int + [000020] ----------- +--* CNS_INT int 1 + [000021] ----------- \--* CNS_INT int 0 +Bashed to int constant: + [000022] ----------- * CNS_INT int 0 + +The conditional jump becomes an unconditional jump to BB05 +setting likelihood of BB04 -> BB05 from 0.5 to 1 + +impImportBlockPending for BB05 + +Importing BB05 (PC=069) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 69 (0x045) ldc.i4.1 1 + [ 1] 70 (0x046) stloc.0 + +STMT00001 ( 0x045[E--] ... ??? ) + [000024] DA--------- * STORE_LCL_VAR int V03 loc0 + [000023] ----------- \--* CNS_INT int 1 + + [ 0] 71 (0x047) br.s +impImportBlockPending for BB07 + +Importing BB07 (PC=075) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 75 (0x04b) ldloc.0 + [ 1] 76 (0x04c) ldstr 7000A8D9 + [ 2] 81 (0x051) call 06005C81 +In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 + +CheckCanInline: fetching method info for inline candidate Assert -- context 4000000000420549 +Class context: System.Diagnostics.Debug +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Diagnostics.Debug:Assert(bool,System.String)' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00002 ( 0x04B[E--] ... ??? ) + [000027] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String) (exactContextHandle=0x4000000000420549) + [000025] ----------- arg0 +--* LCL_VAR int V03 loc0 + [000026] ----------- arg1 \--* CNS_STR ref + + [ 0] 86 (0x056) call 06006465 +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 +Named Intrinsic System.Runtime.Intrinsics.Vector128.get_IsHardwareAccelerated: Recognized + + [ 1] 91 (0x05b) brfalse.s +Folding operator with constant nodes into a constant: + [000030] ----------- * EQ int + [000028] ----------- +--* CNS_INT int 1 + [000029] ----------- \--* CNS_INT int 0 +Bashed to int constant: + [000030] ----------- * CNS_INT int 0 + +The conditional jump becomes an unconditional jump to BB08 +setting likelihood of BB07 -> BB08 from 0.5 to 1 + +impImportBlockPending for BB08 + +Importing BB08 (PC=093) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 93 (0x05d) ldarg.2 + [ 1] 94 (0x05e) call 0A000F05 +In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0 +Named Intrinsic System.Runtime.Intrinsics.Vector128`1.get_Count: Recognized + + [ 2] 99 (0x063) bge + +STMT00003 ( 0x05D[E--] ... ??? ) + [000034] ----------- * JTRUE void + [000033] ----------- \--* GE int + [000031] ----------- +--* LCL_VAR int V02 arg2 + [000032] ----------- \--* CNS_INT int 2 vector element count + +impImportBlockPending for BB09 + +impImportBlockPending for BB43 + +Importing BB43 (PC=747) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 747 (0x2eb) call 06006871 +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 +Named Intrinsic System.Runtime.Intrinsics.Vector512.get_IsHardwareAccelerated: Unsupported - return false + [ 1] 752 (0x2f0) brfalse.s +Folding operator with constant nodes into a constant: + [000037] ----------- * EQ int + [000035] ----------- +--* CNS_INT int 0 + [000036] ----------- \--* CNS_INT int 0 +Bashed to int constant: + [000037] ----------- * CNS_INT int 1 + +The conditional jump becomes an unconditional jump to BB46 +setting likelihood of BB43 -> BB46 from 0.5 to 1 + +impImportBlockPending for BB46 + +Importing BB46 (PC=771) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 771 (0x303) call 06006680 +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 +Named Intrinsic System.Runtime.Intrinsics.Vector256.get_IsHardwareAccelerated: Unsupported - return false + [ 1] 776 (0x308) brfalse.s +Folding operator with constant nodes into a constant: + [000040] ----------- * EQ int + [000038] ----------- +--* CNS_INT int 0 + [000039] ----------- \--* CNS_INT int 0 +Bashed to int constant: + [000040] ----------- * CNS_INT int 1 + +The conditional jump becomes an unconditional jump to BB49 +setting likelihood of BB46 -> BB49 from 0.5 to 1 + +impImportBlockPending for BB49 + +Importing BB49 (PC=795) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 795 (0x31b) ldarg.0 + [ 1] 796 (0x31c) ldarg.1 + [ 2] 797 (0x31d) ldarg.2 + [ 3] 798 (0x31e) call 2B0004AD + (Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT) +In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0 + +GTF_CALL_M_IMPLICIT_TAILCALL set for call [000044] + +CheckCanInline: fetching method info for inline candidate -- context 4000000000443E98 +Method context: +INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'too many il bytes' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling '' + +INLINER: Marking as NOINLINE (observation too many il bytes) +INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'too many il bytes' + + [ 1] 803 (0x323) ret + +STMT00004 ( 0x31B[E--] ... ??? ) + [000045] --C-G------ * RETURN int + [000044] --C-G------ \--* CALL int + [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 + [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 + [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 + +Importing BB09 (PC=104) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 104 (0x068) ldarg.2 + [ 1] 105 (0x069) conv.i + [ 1] 106 (0x06a) ldc.i4.1 1 + [ 2] 107 (0x06b) conv.i +Folding long operator with constant nodes into a constant: + [000049] ----------- * CAST long <- int + [000048] ----------- \--* CNS_INT int 1 +Bashed to long constant: + [000049] ----------- * CNS_INT long 1 + + [ 2] 108 (0x06c) sub + [ 1] 109 (0x06d) stloc.1 + +STMT00005 ( 0x068[E--] ... ??? ) + [000051] DA--------- * STORE_LCL_VAR long V04 loc1 + [000050] ----------- \--* SUB long + [000047] ----------- +--* CAST long <- int + [000046] ----------- | \--* LCL_VAR int V02 arg2 + [000049] ----------- \--* CNS_INT long 1 + + [ 0] 110 (0x06e) br +impImportBlockPending for BB27 + +Importing BB27 (PC=487) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 487 (0x1e7) ldarg.2 + [ 1] 488 (0x1e8) ldc.i4.8 8 + [ 2] 489 (0x1e9) bge + +STMT00006 ( 0x1E7[E--] ... ??? ) + [000055] ----------- * JTRUE void + [000054] ----------- \--* GE int + [000052] ----------- +--* LCL_VAR int V02 arg2 + [000053] ----------- \--* CNS_INT int 8 + +impImportBlockPending for BB28 + +impImportBlockPending for BB10 + +Importing BB10 (PC=115) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 115 (0x073) ldarg.2 + [ 1] 116 (0x074) ldc.i4.8 8 + [ 2] 117 (0x075) sub + [ 1] 118 (0x076) starg.s 2 + +STMT00007 ( 0x073[E--] ... ??? ) + [000059] DA--------- * STORE_LCL_VAR int V02 arg2 + [000058] ----------- \--* SUB int + [000056] ----------- +--* LCL_VAR int V02 arg2 + [000057] ----------- \--* CNS_INT int 8 + + [ 0] 120 (0x078) ldarg.0 + [ 1] 121 (0x079) ldloc.1 + [ 2] 122 (0x07a) call 2B00047A +In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized + + [ 1] 127 (0x07f) ldobj 1B000431 + [ 1] 132 (0x084) ldarg.1 + [ 2] 133 (0x085) constrained. (1B000431) call 0A000CFB +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 +Class context: System.Int64 +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00008 ( 0x078[E--] ... ??? ) + [000067] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000065] ---XG------ arg0 +--* IND long + [000064] ----------- | \--* ADD byref + [000060] ----------- | +--* LCL_VAR byref V00 arg0 + [000063] ----------- | \--* MUL long + [000061] ----------- | +--* LCL_VAR long V04 loc1 + [000062] ----------- | \--* CNS_INT long 8 + [000066] ----------- arg1 \--* LCL_VAR long V01 arg1 + + [ 1] 144 (0x090) constrained. (1B000447) call 0A000F0E +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 +Class context: System.SpanHelpers+DontNegate`1[long] +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00009 ( 0x078[E--] ... ??? ) + [000069] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000068] --C-------- arg0 \--* RET_EXPR int (for [000067]) + + [ 1] 155 (0x09b) brfalse.s + +STMT00010 ( 0x078[E--] ... ??? ) + [000073] --C-------- * JTRUE void + [000072] --C-------- \--* EQ int + [000070] --C-------- +--* RET_EXPR int (for [000069]) + [000071] ----------- \--* CNS_INT int 0 + +impImportBlockPending for BB11 + +impImportBlockPending for BB12 + +Importing BB12 (PC=160) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 160 (0x0a0) ldarg.0 + [ 1] 161 (0x0a1) ldloc.1 + [ 2] 162 (0x0a2) ldc.i4.1 1 + [ 3] 163 (0x0a3) conv.i +Folding long operator with constant nodes into a constant: + [000077] ----------- * CAST long <- int + [000076] ----------- \--* CNS_INT int 1 +Bashed to long constant: + [000077] ----------- * CNS_INT long 1 + + [ 3] 164 (0x0a4) sub + [ 2] 165 (0x0a5) call 2B00047A +In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized + + [ 1] 170 (0x0aa) ldobj 1B000431 + [ 1] 175 (0x0af) ldarg.1 + [ 2] 176 (0x0b0) constrained. (1B000431) call 0A000CFB +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 +Class context: System.Int64 +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00011 ( 0x0A0[E--] ... ??? ) + [000084] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000082] ---XG------ arg0 +--* IND long + [000081] ----------- | \--* ADD byref + [000074] ----------- | +--* LCL_VAR byref V00 arg0 + [000080] ----------- | \--* MUL long + [000078] ----------- | +--* SUB long + [000075] ----------- | | +--* LCL_VAR long V04 loc1 + [000077] ----------- | | \--* CNS_INT long 1 + [000079] ----------- | \--* CNS_INT long 8 + [000083] ----------- arg1 \--* LCL_VAR long V01 arg1 + + [ 1] 187 (0x0bb) constrained. (1B000447) call 0A000F0E +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 +Class context: System.SpanHelpers+DontNegate`1[long] +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00012 ( 0x0A0[E--] ... ??? ) + [000086] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000085] --C-------- arg0 \--* RET_EXPR int (for [000084]) + + [ 1] 198 (0x0c6) brfalse.s + +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] --C-------- * JTRUE void + [000089] --C-------- \--* EQ int + [000087] --C-------- +--* RET_EXPR int (for [000086]) + [000088] ----------- \--* CNS_INT int 0 + +impImportBlockPending for BB13 + +impImportBlockPending for BB14 + +Importing BB14 (PC=206) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 206 (0x0ce) ldarg.0 + [ 1] 207 (0x0cf) ldloc.1 + [ 2] 208 (0x0d0) ldc.i4.2 2 + [ 3] 209 (0x0d1) conv.i +Folding long operator with constant nodes into a constant: + [000094] ----------- * CAST long <- int + [000093] ----------- \--* CNS_INT int 2 +Bashed to long constant: + [000094] ----------- * CNS_INT long 2 + + [ 3] 210 (0x0d2) sub + [ 2] 211 (0x0d3) call 2B00047A +In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized + + [ 1] 216 (0x0d8) ldobj 1B000431 + [ 1] 221 (0x0dd) ldarg.1 + [ 2] 222 (0x0de) constrained. (1B000431) call 0A000CFB +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 +Class context: System.Int64 +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00014 ( 0x0CE[E--] ... ??? ) + [000101] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000099] ---XG------ arg0 +--* IND long + [000098] ----------- | \--* ADD byref + [000091] ----------- | +--* LCL_VAR byref V00 arg0 + [000097] ----------- | \--* MUL long + [000095] ----------- | +--* SUB long + [000092] ----------- | | +--* LCL_VAR long V04 loc1 + [000094] ----------- | | \--* CNS_INT long 2 + [000096] ----------- | \--* CNS_INT long 8 + [000100] ----------- arg1 \--* LCL_VAR long V01 arg1 + + [ 1] 233 (0x0e9) constrained. (1B000447) call 0A000F0E +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 +Class context: System.SpanHelpers+DontNegate`1[long] +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00015 ( 0x0CE[E--] ... ??? ) + [000103] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000102] --C-------- arg0 \--* RET_EXPR int (for [000101]) + + [ 1] 244 (0x0f4) brfalse.s + +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] --C-------- * JTRUE void + [000106] --C-------- \--* EQ int + [000104] --C-------- +--* RET_EXPR int (for [000103]) + [000105] ----------- \--* CNS_INT int 0 + +impImportBlockPending for BB15 + +impImportBlockPending for BB16 + +Importing BB16 (PC=252) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 252 (0x0fc) ldarg.0 + [ 1] 253 (0x0fd) ldloc.1 + [ 2] 254 (0x0fe) ldc.i4.3 3 + [ 3] 255 (0x0ff) conv.i +Folding long operator with constant nodes into a constant: + [000111] ----------- * CAST long <- int + [000110] ----------- \--* CNS_INT int 3 +Bashed to long constant: + [000111] ----------- * CNS_INT long 3 + + [ 3] 256 (0x100) sub + [ 2] 257 (0x101) call 2B00047A +In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized + + [ 1] 262 (0x106) ldobj 1B000431 + [ 1] 267 (0x10b) ldarg.1 + [ 2] 268 (0x10c) constrained. (1B000431) call 0A000CFB +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 +Class context: System.Int64 +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00017 ( 0x0FC[E--] ... ??? ) + [000118] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000116] ---XG------ arg0 +--* IND long + [000115] ----------- | \--* ADD byref + [000108] ----------- | +--* LCL_VAR byref V00 arg0 + [000114] ----------- | \--* MUL long + [000112] ----------- | +--* SUB long + [000109] ----------- | | +--* LCL_VAR long V04 loc1 + [000111] ----------- | | \--* CNS_INT long 3 + [000113] ----------- | \--* CNS_INT long 8 + [000117] ----------- arg1 \--* LCL_VAR long V01 arg1 + + [ 1] 279 (0x117) constrained. (1B000447) call 0A000F0E +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 +Class context: System.SpanHelpers+DontNegate`1[long] +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00018 ( 0x0FC[E--] ... ??? ) + [000120] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000119] --C-------- arg0 \--* RET_EXPR int (for [000118]) + + [ 1] 290 (0x122) brfalse.s + +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] --C-------- * JTRUE void + [000123] --C-------- \--* EQ int + [000121] --C-------- +--* RET_EXPR int (for [000120]) + [000122] ----------- \--* CNS_INT int 0 + +impImportBlockPending for BB17 + +impImportBlockPending for BB18 + +Importing BB18 (PC=298) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 298 (0x12a) ldarg.0 + [ 1] 299 (0x12b) ldloc.1 + [ 2] 300 (0x12c) ldc.i4.4 4 + [ 3] 301 (0x12d) conv.i +Folding long operator with constant nodes into a constant: + [000128] ----------- * CAST long <- int + [000127] ----------- \--* CNS_INT int 4 +Bashed to long constant: + [000128] ----------- * CNS_INT long 4 + + [ 3] 302 (0x12e) sub + [ 2] 303 (0x12f) call 2B00047A +In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized + + [ 1] 308 (0x134) ldobj 1B000431 + [ 1] 313 (0x139) ldarg.1 + [ 2] 314 (0x13a) constrained. (1B000431) call 0A000CFB +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 +Class context: System.Int64 +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00020 ( 0x12A[E--] ... ??? ) + [000135] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000133] ---XG------ arg0 +--* IND long + [000132] ----------- | \--* ADD byref + [000125] ----------- | +--* LCL_VAR byref V00 arg0 + [000131] ----------- | \--* MUL long + [000129] ----------- | +--* SUB long + [000126] ----------- | | +--* LCL_VAR long V04 loc1 + [000128] ----------- | | \--* CNS_INT long 4 + [000130] ----------- | \--* CNS_INT long 8 + [000134] ----------- arg1 \--* LCL_VAR long V01 arg1 + + [ 1] 325 (0x145) constrained. (1B000447) call 0A000F0E +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 +Class context: System.SpanHelpers+DontNegate`1[long] +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00021 ( 0x12A[E--] ... ??? ) + [000137] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000136] --C-------- arg0 \--* RET_EXPR int (for [000135]) + + [ 1] 336 (0x150) brfalse.s + +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] --C-------- * JTRUE void + [000140] --C-------- \--* EQ int + [000138] --C-------- +--* RET_EXPR int (for [000137]) + [000139] ----------- \--* CNS_INT int 0 + +impImportBlockPending for BB19 + +impImportBlockPending for BB20 + +Importing BB20 (PC=344) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 344 (0x158) ldarg.0 + [ 1] 345 (0x159) ldloc.1 + [ 2] 346 (0x15a) ldc.i4.5 5 + [ 3] 347 (0x15b) conv.i +Folding long operator with constant nodes into a constant: + [000145] ----------- * CAST long <- int + [000144] ----------- \--* CNS_INT int 5 +Bashed to long constant: + [000145] ----------- * CNS_INT long 5 + + [ 3] 348 (0x15c) sub + [ 2] 349 (0x15d) call 2B00047A +In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized + + [ 1] 354 (0x162) ldobj 1B000431 + [ 1] 359 (0x167) ldarg.1 + [ 2] 360 (0x168) constrained. (1B000431) call 0A000CFB +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 +Class context: System.Int64 +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00023 ( 0x158[E--] ... ??? ) + [000152] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000150] ---XG------ arg0 +--* IND long + [000149] ----------- | \--* ADD byref + [000142] ----------- | +--* LCL_VAR byref V00 arg0 + [000148] ----------- | \--* MUL long + [000146] ----------- | +--* SUB long + [000143] ----------- | | +--* LCL_VAR long V04 loc1 + [000145] ----------- | | \--* CNS_INT long 5 + [000147] ----------- | \--* CNS_INT long 8 + [000151] ----------- arg1 \--* LCL_VAR long V01 arg1 + + [ 1] 371 (0x173) constrained. (1B000447) call 0A000F0E +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 +Class context: System.SpanHelpers+DontNegate`1[long] +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00024 ( 0x158[E--] ... ??? ) + [000154] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000153] --C-------- arg0 \--* RET_EXPR int (for [000152]) + + [ 1] 382 (0x17e) brfalse.s + +STMT00025 ( 0x158[E--] ... ??? ) + [000158] --C-------- * JTRUE void + [000157] --C-------- \--* EQ int + [000155] --C-------- +--* RET_EXPR int (for [000154]) + [000156] ----------- \--* CNS_INT int 0 + +impImportBlockPending for BB21 + +impImportBlockPending for BB22 + +Importing BB22 (PC=390) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 390 (0x186) ldarg.0 + [ 1] 391 (0x187) ldloc.1 + [ 2] 392 (0x188) ldc.i4.6 6 + [ 3] 393 (0x189) conv.i +Folding long operator with constant nodes into a constant: + [000162] ----------- * CAST long <- int + [000161] ----------- \--* CNS_INT int 6 +Bashed to long constant: + [000162] ----------- * CNS_INT long 6 + + [ 3] 394 (0x18a) sub + [ 2] 395 (0x18b) call 2B00047A +In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized + + [ 1] 400 (0x190) ldobj 1B000431 + [ 1] 405 (0x195) ldarg.1 + [ 2] 406 (0x196) constrained. (1B000431) call 0A000CFB +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 +Class context: System.Int64 +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00026 ( 0x186[E--] ... ??? ) + [000169] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000167] ---XG------ arg0 +--* IND long + [000166] ----------- | \--* ADD byref + [000159] ----------- | +--* LCL_VAR byref V00 arg0 + [000165] ----------- | \--* MUL long + [000163] ----------- | +--* SUB long + [000160] ----------- | | +--* LCL_VAR long V04 loc1 + [000162] ----------- | | \--* CNS_INT long 6 + [000164] ----------- | \--* CNS_INT long 8 + [000168] ----------- arg1 \--* LCL_VAR long V01 arg1 + + [ 1] 417 (0x1a1) constrained. (1B000447) call 0A000F0E +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 +Class context: System.SpanHelpers+DontNegate`1[long] +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00027 ( 0x186[E--] ... ??? ) + [000171] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000170] --C-------- arg0 \--* RET_EXPR int (for [000169]) + + [ 1] 428 (0x1ac) brfalse.s + +STMT00028 ( 0x186[E--] ... ??? ) + [000175] --C-------- * JTRUE void + [000174] --C-------- \--* EQ int + [000172] --C-------- +--* RET_EXPR int (for [000171]) + [000173] ----------- \--* CNS_INT int 0 + +impImportBlockPending for BB23 + +impImportBlockPending for BB24 + +Importing BB24 (PC=436) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 436 (0x1b4) ldarg.0 + [ 1] 437 (0x1b5) ldloc.1 + [ 2] 438 (0x1b6) ldc.i4.7 7 + [ 3] 439 (0x1b7) conv.i +Folding long operator with constant nodes into a constant: + [000179] ----------- * CAST long <- int + [000178] ----------- \--* CNS_INT int 7 +Bashed to long constant: + [000179] ----------- * CNS_INT long 7 + + [ 3] 440 (0x1b8) sub + [ 2] 441 (0x1b9) call 2B00047A +In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized + + [ 1] 446 (0x1be) ldobj 1B000431 + [ 1] 451 (0x1c3) ldarg.1 + [ 2] 452 (0x1c4) constrained. (1B000431) call 0A000CFB +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 +Class context: System.Int64 +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00029 ( 0x1B4[E--] ... ??? ) + [000186] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000184] ---XG------ arg0 +--* IND long + [000183] ----------- | \--* ADD byref + [000176] ----------- | +--* LCL_VAR byref V00 arg0 + [000182] ----------- | \--* MUL long + [000180] ----------- | +--* SUB long + [000177] ----------- | | +--* LCL_VAR long V04 loc1 + [000179] ----------- | | \--* CNS_INT long 7 + [000181] ----------- | \--* CNS_INT long 8 + [000185] ----------- arg1 \--* LCL_VAR long V01 arg1 + + [ 1] 463 (0x1cf) constrained. (1B000447) call 0A000F0E +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 +Class context: System.SpanHelpers+DontNegate`1[long] +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00030 ( 0x1B4[E--] ... ??? ) + [000188] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000187] --C-------- arg0 \--* RET_EXPR int (for [000186]) + + [ 1] 474 (0x1da) brfalse.s + +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] --C-------- * JTRUE void + [000191] --C-------- \--* EQ int + [000189] --C-------- +--* RET_EXPR int (for [000188]) + [000190] ----------- \--* CNS_INT int 0 + +impImportBlockPending for BB25 + +impImportBlockPending for BB26 + +Importing BB26 (PC=482) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 482 (0x1e2) ldloc.1 + [ 1] 483 (0x1e3) ldc.i4.8 8 + [ 2] 484 (0x1e4) conv.i +Folding long operator with constant nodes into a constant: + [000195] ----------- * CAST long <- int + [000194] ----------- \--* CNS_INT int 8 +Bashed to long constant: + [000195] ----------- * CNS_INT long 8 + + [ 2] 485 (0x1e5) sub + [ 1] 486 (0x1e6) stloc.1 + +STMT00032 ( 0x1E2[E--] ... ??? ) + [000197] DA--------- * STORE_LCL_VAR long V04 loc1 + [000196] ----------- \--* SUB long + [000193] ----------- +--* LCL_VAR long V04 loc1 + [000195] ----------- \--* CNS_INT long 8 + +impImportBlockPending for BB27 + +Importing BB25 (PC=476) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 476 (0x1dc) ldloc.1 + [ 1] 477 (0x1dd) ldc.i4.7 7 + [ 2] 478 (0x1de) conv.i +Folding long operator with constant nodes into a constant: + [000200] ----------- * CAST long <- int + [000199] ----------- \--* CNS_INT int 7 +Bashed to long constant: + [000200] ----------- * CNS_INT long 7 + + [ 2] 479 (0x1df) sub + [ 1] 480 (0x1e0) conv.i4 + [ 1] 481 (0x1e1) ret + +STMT00033 ( 0x1DC[E--] ... ??? ) + [000203] ----------- * RETURN int + [000202] ----------- \--* CAST int <- long + [000201] ----------- \--* SUB long + [000198] ----------- +--* LCL_VAR long V04 loc1 + [000200] ----------- \--* CNS_INT long 7 + +Importing BB23 (PC=430) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 430 (0x1ae) ldloc.1 + [ 1] 431 (0x1af) ldc.i4.6 6 + [ 2] 432 (0x1b0) conv.i +Folding long operator with constant nodes into a constant: + [000206] ----------- * CAST long <- int + [000205] ----------- \--* CNS_INT int 6 +Bashed to long constant: + [000206] ----------- * CNS_INT long 6 + + [ 2] 433 (0x1b1) sub + [ 1] 434 (0x1b2) conv.i4 + [ 1] 435 (0x1b3) ret + +STMT00034 ( 0x1AE[E--] ... ??? ) + [000209] ----------- * RETURN int + [000208] ----------- \--* CAST int <- long + [000207] ----------- \--* SUB long + [000204] ----------- +--* LCL_VAR long V04 loc1 + [000206] ----------- \--* CNS_INT long 6 + +Importing BB21 (PC=384) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 384 (0x180) ldloc.1 + [ 1] 385 (0x181) ldc.i4.5 5 + [ 2] 386 (0x182) conv.i +Folding long operator with constant nodes into a constant: + [000212] ----------- * CAST long <- int + [000211] ----------- \--* CNS_INT int 5 +Bashed to long constant: + [000212] ----------- * CNS_INT long 5 + + [ 2] 387 (0x183) sub + [ 1] 388 (0x184) conv.i4 + [ 1] 389 (0x185) ret + +STMT00035 ( 0x180[E--] ... ??? ) + [000215] ----------- * RETURN int + [000214] ----------- \--* CAST int <- long + [000213] ----------- \--* SUB long + [000210] ----------- +--* LCL_VAR long V04 loc1 + [000212] ----------- \--* CNS_INT long 5 + +Importing BB19 (PC=338) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 338 (0x152) ldloc.1 + [ 1] 339 (0x153) ldc.i4.4 4 + [ 2] 340 (0x154) conv.i +Folding long operator with constant nodes into a constant: + [000218] ----------- * CAST long <- int + [000217] ----------- \--* CNS_INT int 4 +Bashed to long constant: + [000218] ----------- * CNS_INT long 4 + + [ 2] 341 (0x155) sub + [ 1] 342 (0x156) conv.i4 + [ 1] 343 (0x157) ret + +STMT00036 ( 0x152[E--] ... ??? ) + [000221] ----------- * RETURN int + [000220] ----------- \--* CAST int <- long + [000219] ----------- \--* SUB long + [000216] ----------- +--* LCL_VAR long V04 loc1 + [000218] ----------- \--* CNS_INT long 4 + +Importing BB17 (PC=292) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 292 (0x124) ldloc.1 + [ 1] 293 (0x125) ldc.i4.3 3 + [ 2] 294 (0x126) conv.i +Folding long operator with constant nodes into a constant: + [000224] ----------- * CAST long <- int + [000223] ----------- \--* CNS_INT int 3 +Bashed to long constant: + [000224] ----------- * CNS_INT long 3 + + [ 2] 295 (0x127) sub + [ 1] 296 (0x128) conv.i4 + [ 1] 297 (0x129) ret + +STMT00037 ( 0x124[E--] ... ??? ) + [000227] ----------- * RETURN int + [000226] ----------- \--* CAST int <- long + [000225] ----------- \--* SUB long + [000222] ----------- +--* LCL_VAR long V04 loc1 + [000224] ----------- \--* CNS_INT long 3 + +Importing BB15 (PC=246) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 246 (0x0f6) ldloc.1 + [ 1] 247 (0x0f7) ldc.i4.2 2 + [ 2] 248 (0x0f8) conv.i +Folding long operator with constant nodes into a constant: + [000230] ----------- * CAST long <- int + [000229] ----------- \--* CNS_INT int 2 +Bashed to long constant: + [000230] ----------- * CNS_INT long 2 + + [ 2] 249 (0x0f9) sub + [ 1] 250 (0x0fa) conv.i4 + [ 1] 251 (0x0fb) ret + +STMT00038 ( 0x0F6[E--] ... ??? ) + [000233] ----------- * RETURN int + [000232] ----------- \--* CAST int <- long + [000231] ----------- \--* SUB long + [000228] ----------- +--* LCL_VAR long V04 loc1 + [000230] ----------- \--* CNS_INT long 2 + +Importing BB13 (PC=200) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 200 (0x0c8) ldloc.1 + [ 1] 201 (0x0c9) ldc.i4.1 1 + [ 2] 202 (0x0ca) conv.i +Folding long operator with constant nodes into a constant: + [000236] ----------- * CAST long <- int + [000235] ----------- \--* CNS_INT int 1 +Bashed to long constant: + [000236] ----------- * CNS_INT long 1 + + [ 2] 203 (0x0cb) sub + [ 1] 204 (0x0cc) conv.i4 + [ 1] 205 (0x0cd) ret + +STMT00039 ( 0x0C8[E--] ... ??? ) + [000239] ----------- * RETURN int + [000238] ----------- \--* CAST int <- long + [000237] ----------- \--* SUB long + [000234] ----------- +--* LCL_VAR long V04 loc1 + [000236] ----------- \--* CNS_INT long 1 + +Importing BB11 (PC=157) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 157 (0x09d) ldloc.1 + [ 1] 158 (0x09e) conv.i4 + [ 1] 159 (0x09f) ret + +STMT00040 ( 0x09D[E--] ... ??? ) + [000242] ----------- * RETURN int + [000241] ----------- \--* CAST int <- long + [000240] ----------- \--* LCL_VAR long V04 loc1 + +Importing BB28 (PC=494) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 494 (0x1ee) ldarg.2 + [ 1] 495 (0x1ef) ldc.i4.4 4 + [ 2] 496 (0x1f0) blt + +STMT00041 ( 0x1EE[E--] ... ??? ) + [000246] ----------- * JTRUE void + [000245] ----------- \--* LT int + [000243] ----------- +--* LCL_VAR int V02 arg2 + [000244] ----------- \--* CNS_INT int 4 + +impImportBlockPending for BB29 + +impImportBlockPending for BB41 + +Importing BB41 (PC=741) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 741 (0x2e5) ldarg.2 + [ 1] 742 (0x2e6) ldc.i4.0 0 + [ 2] 743 (0x2e7) bgt.s + +STMT00042 ( 0x2E5[E--] ... ??? ) + [000250] ----------- * JTRUE void + [000249] ----------- \--* GT int + [000247] ----------- +--* LCL_VAR int V02 arg2 + [000248] ----------- \--* CNS_INT int 0 + +impImportBlockPending for BB42 + +impImportBlockPending for BB38 + +Importing BB38 (PC=691) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 691 (0x2b3) ldarg.2 + [ 1] 692 (0x2b4) ldc.i4.1 1 + [ 2] 693 (0x2b5) sub + [ 1] 694 (0x2b6) starg.s 2 + +STMT00043 ( 0x2B3[E--] ... ??? ) + [000254] DA--------- * STORE_LCL_VAR int V02 arg2 + [000253] ----------- \--* SUB int + [000251] ----------- +--* LCL_VAR int V02 arg2 + [000252] ----------- \--* CNS_INT int 1 + + [ 0] 696 (0x2b8) ldarg.0 + [ 1] 697 (0x2b9) ldloc.1 + [ 2] 698 (0x2ba) call 2B00047A +In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized + + [ 1] 703 (0x2bf) ldobj 1B000431 + [ 1] 708 (0x2c4) ldarg.1 + [ 2] 709 (0x2c5) constrained. (1B000431) call 0A000CFB +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 +Class context: System.Int64 +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00044 ( 0x2B8[E--] ... ??? ) + [000262] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000260] ---XG------ arg0 +--* IND long + [000259] ----------- | \--* ADD byref + [000255] ----------- | +--* LCL_VAR byref V00 arg0 + [000258] ----------- | \--* MUL long + [000256] ----------- | +--* LCL_VAR long V04 loc1 + [000257] ----------- | \--* CNS_INT long 8 + [000261] ----------- arg1 \--* LCL_VAR long V01 arg1 + + [ 1] 720 (0x2d0) constrained. (1B000447) call 0A000F0E +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 +Class context: System.SpanHelpers+DontNegate`1[long] +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00045 ( 0x2B8[E--] ... ??? ) + [000264] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000263] --C-------- arg0 \--* RET_EXPR int (for [000262]) + + [ 1] 731 (0x2db) brfalse.s + +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] --C-------- * JTRUE void + [000267] --C-------- \--* EQ int + [000265] --C-------- +--* RET_EXPR int (for [000264]) + [000266] ----------- \--* CNS_INT int 0 + +impImportBlockPending for BB39 + +impImportBlockPending for BB40 + +Importing BB40 (PC=736) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 736 (0x2e0) ldloc.1 + [ 1] 737 (0x2e1) ldc.i4.1 1 + [ 2] 738 (0x2e2) conv.i +Folding long operator with constant nodes into a constant: + [000271] ----------- * CAST long <- int + [000270] ----------- \--* CNS_INT int 1 +Bashed to long constant: + [000271] ----------- * CNS_INT long 1 + + [ 2] 739 (0x2e3) sub + [ 1] 740 (0x2e4) stloc.1 + +STMT00047 ( 0x2E0[E--] ... ??? ) + [000273] DA--------- * STORE_LCL_VAR long V04 loc1 + [000272] ----------- \--* SUB long + [000269] ----------- +--* LCL_VAR long V04 loc1 + [000271] ----------- \--* CNS_INT long 1 + +impImportBlockPending for BB41 + +Importing BB39 (PC=733) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 733 (0x2dd) ldloc.1 + [ 1] 734 (0x2de) conv.i4 + [ 1] 735 (0x2df) ret + +STMT00048 ( 0x2DD[E--] ... ??? ) + [000276] ----------- * RETURN int + [000275] ----------- \--* CAST int <- long + [000274] ----------- \--* LCL_VAR long V04 loc1 + +Importing BB42 (PC=745) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 745 (0x2e9) ldc.i4.m1 -1 + [ 1] 746 (0x2ea) ret + +STMT00049 ( 0x2E9[E--] ... ??? ) + [000278] ----------- * RETURN int + [000277] ----------- \--* CNS_INT int -1 + +Importing BB29 (PC=501) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 501 (0x1f5) ldarg.2 + [ 1] 502 (0x1f6) ldc.i4.4 4 + [ 2] 503 (0x1f7) sub + [ 1] 504 (0x1f8) starg.s 2 + +STMT00050 ( 0x1F5[E--] ... ??? ) + [000282] DA--------- * STORE_LCL_VAR int V02 arg2 + [000281] ----------- \--* SUB int + [000279] ----------- +--* LCL_VAR int V02 arg2 + [000280] ----------- \--* CNS_INT int 4 + + [ 0] 506 (0x1fa) ldarg.0 + [ 1] 507 (0x1fb) ldloc.1 + [ 2] 508 (0x1fc) call 2B00047A +In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized + + [ 1] 513 (0x201) ldobj 1B000431 + [ 1] 518 (0x206) ldarg.1 + [ 2] 519 (0x207) constrained. (1B000431) call 0A000CFB +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 +Class context: System.Int64 +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00051 ( 0x1FA[E--] ... ??? ) + [000290] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000288] ---XG------ arg0 +--* IND long + [000287] ----------- | \--* ADD byref + [000283] ----------- | +--* LCL_VAR byref V00 arg0 + [000286] ----------- | \--* MUL long + [000284] ----------- | +--* LCL_VAR long V04 loc1 + [000285] ----------- | \--* CNS_INT long 8 + [000289] ----------- arg1 \--* LCL_VAR long V01 arg1 + + [ 1] 530 (0x212) constrained. (1B000447) call 0A000F0E +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 +Class context: System.SpanHelpers+DontNegate`1[long] +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00052 ( 0x1FA[E--] ... ??? ) + [000292] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000291] --C-------- arg0 \--* RET_EXPR int (for [000290]) + + [ 1] 541 (0x21d) brfalse.s + +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] --C-------- * JTRUE void + [000295] --C-------- \--* EQ int + [000293] --C-------- +--* RET_EXPR int (for [000292]) + [000294] ----------- \--* CNS_INT int 0 + +impImportBlockPending for BB30 + +impImportBlockPending for BB31 + +Importing BB31 (PC=546) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 546 (0x222) ldarg.0 + [ 1] 547 (0x223) ldloc.1 + [ 2] 548 (0x224) ldc.i4.1 1 + [ 3] 549 (0x225) conv.i +Folding long operator with constant nodes into a constant: + [000300] ----------- * CAST long <- int + [000299] ----------- \--* CNS_INT int 1 +Bashed to long constant: + [000300] ----------- * CNS_INT long 1 + + [ 3] 550 (0x226) sub + [ 2] 551 (0x227) call 2B00047A +In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized + + [ 1] 556 (0x22c) ldobj 1B000431 + [ 1] 561 (0x231) ldarg.1 + [ 2] 562 (0x232) constrained. (1B000431) call 0A000CFB +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 +Class context: System.Int64 +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00054 ( 0x222[E--] ... ??? ) + [000307] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000305] ---XG------ arg0 +--* IND long + [000304] ----------- | \--* ADD byref + [000297] ----------- | +--* LCL_VAR byref V00 arg0 + [000303] ----------- | \--* MUL long + [000301] ----------- | +--* SUB long + [000298] ----------- | | +--* LCL_VAR long V04 loc1 + [000300] ----------- | | \--* CNS_INT long 1 + [000302] ----------- | \--* CNS_INT long 8 + [000306] ----------- arg1 \--* LCL_VAR long V01 arg1 + + [ 1] 573 (0x23d) constrained. (1B000447) call 0A000F0E +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 +Class context: System.SpanHelpers+DontNegate`1[long] +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00055 ( 0x222[E--] ... ??? ) + [000309] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000308] --C-------- arg0 \--* RET_EXPR int (for [000307]) + + [ 1] 584 (0x248) brfalse.s + +STMT00056 ( 0x222[E--] ... ??? ) + [000313] --C-------- * JTRUE void + [000312] --C-------- \--* EQ int + [000310] --C-------- +--* RET_EXPR int (for [000309]) + [000311] ----------- \--* CNS_INT int 0 + +impImportBlockPending for BB32 + +impImportBlockPending for BB33 + +Importing BB33 (PC=592) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 592 (0x250) ldarg.0 + [ 1] 593 (0x251) ldloc.1 + [ 2] 594 (0x252) ldc.i4.2 2 + [ 3] 595 (0x253) conv.i +Folding long operator with constant nodes into a constant: + [000317] ----------- * CAST long <- int + [000316] ----------- \--* CNS_INT int 2 +Bashed to long constant: + [000317] ----------- * CNS_INT long 2 + + [ 3] 596 (0x254) sub + [ 2] 597 (0x255) call 2B00047A +In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized + + [ 1] 602 (0x25a) ldobj 1B000431 + [ 1] 607 (0x25f) ldarg.1 + [ 2] 608 (0x260) constrained. (1B000431) call 0A000CFB +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 +Class context: System.Int64 +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00057 ( 0x250[E--] ... ??? ) + [000324] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000322] ---XG------ arg0 +--* IND long + [000321] ----------- | \--* ADD byref + [000314] ----------- | +--* LCL_VAR byref V00 arg0 + [000320] ----------- | \--* MUL long + [000318] ----------- | +--* SUB long + [000315] ----------- | | +--* LCL_VAR long V04 loc1 + [000317] ----------- | | \--* CNS_INT long 2 + [000319] ----------- | \--* CNS_INT long 8 + [000323] ----------- arg1 \--* LCL_VAR long V01 arg1 + + [ 1] 619 (0x26b) constrained. (1B000447) call 0A000F0E +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 +Class context: System.SpanHelpers+DontNegate`1[long] +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00058 ( 0x250[E--] ... ??? ) + [000326] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000325] --C-------- arg0 \--* RET_EXPR int (for [000324]) + + [ 1] 630 (0x276) brfalse.s + +STMT00059 ( 0x250[E--] ... ??? ) + [000330] --C-------- * JTRUE void + [000329] --C-------- \--* EQ int + [000327] --C-------- +--* RET_EXPR int (for [000326]) + [000328] ----------- \--* CNS_INT int 0 + +impImportBlockPending for BB34 + +impImportBlockPending for BB35 + +Importing BB35 (PC=638) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 638 (0x27e) ldarg.0 + [ 1] 639 (0x27f) ldloc.1 + [ 2] 640 (0x280) ldc.i4.3 3 + [ 3] 641 (0x281) conv.i +Folding long operator with constant nodes into a constant: + [000334] ----------- * CAST long <- int + [000333] ----------- \--* CNS_INT int 3 +Bashed to long constant: + [000334] ----------- * CNS_INT long 3 + + [ 3] 642 (0x282) sub + [ 2] 643 (0x283) call 2B00047A +In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 +Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized + + [ 1] 648 (0x288) ldobj 1B000431 + [ 1] 653 (0x28d) ldarg.1 + [ 2] 654 (0x28e) constrained. (1B000431) call 0A000CFB +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 +Class context: System.Int64 +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00060 ( 0x27E[E--] ... ??? ) + [000341] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000339] ---XG------ arg0 +--* IND long + [000338] ----------- | \--* ADD byref + [000331] ----------- | +--* LCL_VAR byref V00 arg0 + [000337] ----------- | \--* MUL long + [000335] ----------- | +--* SUB long + [000332] ----------- | | +--* LCL_VAR long V04 loc1 + [000334] ----------- | | \--* CNS_INT long 3 + [000336] ----------- | \--* CNS_INT long 8 + [000340] ----------- arg1 \--* LCL_VAR long V01 arg1 + + [ 1] 665 (0x299) constrained. (1B000447) call 0A000F0E +In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 + +CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 +Class context: System.SpanHelpers+DontNegate`1[long] +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00061 ( 0x27E[E--] ... ??? ) + [000343] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000342] --C-------- arg0 \--* RET_EXPR int (for [000341]) + + [ 1] 676 (0x2a4) brfalse.s + +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] --C-------- * JTRUE void + [000346] --C-------- \--* EQ int + [000344] --C-------- +--* RET_EXPR int (for [000343]) + [000345] ----------- \--* CNS_INT int 0 + +impImportBlockPending for BB36 + +impImportBlockPending for BB37 + +Importing BB37 (PC=684) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 684 (0x2ac) ldloc.1 + [ 1] 685 (0x2ad) ldc.i4.4 4 + [ 2] 686 (0x2ae) conv.i +Folding long operator with constant nodes into a constant: + [000350] ----------- * CAST long <- int + [000349] ----------- \--* CNS_INT int 4 +Bashed to long constant: + [000350] ----------- * CNS_INT long 4 + + [ 2] 687 (0x2af) sub + [ 1] 688 (0x2b0) stloc.1 + +STMT00063 ( 0x2AC[E--] ... ??? ) + [000352] DA--------- * STORE_LCL_VAR long V04 loc1 + [000351] ----------- \--* SUB long + [000348] ----------- +--* LCL_VAR long V04 loc1 + [000350] ----------- \--* CNS_INT long 4 + + [ 0] 689 (0x2b1) br.s +impImportBlockPending for BB41 + +Importing BB36 (PC=678) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 678 (0x2a6) ldloc.1 + [ 1] 679 (0x2a7) ldc.i4.3 3 + [ 2] 680 (0x2a8) conv.i +Folding long operator with constant nodes into a constant: + [000355] ----------- * CAST long <- int + [000354] ----------- \--* CNS_INT int 3 +Bashed to long constant: + [000355] ----------- * CNS_INT long 3 + + [ 2] 681 (0x2a9) sub + [ 1] 682 (0x2aa) conv.i4 + [ 1] 683 (0x2ab) ret + +STMT00064 ( 0x2A6[E--] ... ??? ) + [000358] ----------- * RETURN int + [000357] ----------- \--* CAST int <- long + [000356] ----------- \--* SUB long + [000353] ----------- +--* LCL_VAR long V04 loc1 + [000355] ----------- \--* CNS_INT long 3 + +Importing BB34 (PC=632) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 632 (0x278) ldloc.1 + [ 1] 633 (0x279) ldc.i4.2 2 + [ 2] 634 (0x27a) conv.i +Folding long operator with constant nodes into a constant: + [000361] ----------- * CAST long <- int + [000360] ----------- \--* CNS_INT int 2 +Bashed to long constant: + [000361] ----------- * CNS_INT long 2 + + [ 2] 635 (0x27b) sub + [ 1] 636 (0x27c) conv.i4 + [ 1] 637 (0x27d) ret + +STMT00065 ( 0x278[E--] ... ??? ) + [000364] ----------- * RETURN int + [000363] ----------- \--* CAST int <- long + [000362] ----------- \--* SUB long + [000359] ----------- +--* LCL_VAR long V04 loc1 + [000361] ----------- \--* CNS_INT long 2 + +Importing BB32 (PC=586) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 586 (0x24a) ldloc.1 + [ 1] 587 (0x24b) ldc.i4.1 1 + [ 2] 588 (0x24c) conv.i +Folding long operator with constant nodes into a constant: + [000367] ----------- * CAST long <- int + [000366] ----------- \--* CNS_INT int 1 +Bashed to long constant: + [000367] ----------- * CNS_INT long 1 + + [ 2] 589 (0x24d) sub + [ 1] 590 (0x24e) conv.i4 + [ 1] 591 (0x24f) ret + +STMT00066 ( 0x24A[E--] ... ??? ) + [000370] ----------- * RETURN int + [000369] ----------- \--* CAST int <- long + [000368] ----------- \--* SUB long + [000365] ----------- +--* LCL_VAR long V04 loc1 + [000367] ----------- \--* CNS_INT long 1 + +Importing BB30 (PC=543) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' + [ 0] 543 (0x21f) ldloc.1 + [ 1] 544 (0x220) conv.i4 + [ 1] 545 (0x221) ret + +STMT00067 ( 0x21F[E--] ... ??? ) + [000373] ----------- * RETURN int + [000372] ----------- \--* CAST int <- long + [000371] ----------- \--* LCL_VAR long V04 loc1 + +** Note: root method IL was partially imported -- imported 715 of 804 bytes of method IL + +*************** Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..01E)-> BB02(1) (always) i +BB02 [0001] 1 BB01 1 [01E..02B)-> BB03(1) (always) i +BB03 [0002] 1 BB02 1 [02B..038)-> BB04(1) (always) i +BB04 [0003] 1 BB03 1 [038..045)-> BB05(1) (always) i +BB05 [0004] 1 BB04 1 [045..049)-> BB07(1) (always) i +BB06 [0005] 0 1 [049..04B)-> BB07(1) (always) +BB07 [0006] 2 BB05,BB06 1 [04B..05D)-> BB08(1) (always) i +BB08 [0007] 1 BB07 1 [05D..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB08 1 [068..073)-> BB27(1) (always) i +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target +BB11 [0010] 1 BB10 1 [09D..0A0) (return) i +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd +BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd +BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd +BB17 [0016] 1 BB16 1 [124..12A) (return) i +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB19 [0018] 1 BB18 1 [152..158) (return) i +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB21 [0020] 1 BB20 1 [180..186) (return) i +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB31(0.5),BB30(0.5) ( cond ) i +BB30 [0029] 1 BB29 1 [21F..222) (return) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250) (return) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E) (return) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB40(0.5),BB39(0.5) ( cond ) i bwd bwd-target +BB39 [0038] 1 BB38 1 [2DD..2E0) (return) i +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i +BB43 [0042] 1 BB08 1 [2EB..2F2)-> BB46(1) (always) i +BB44 [0043] 0 1 [2F2..2FA)-> BB46(0.5),BB45(0.5) ( cond ) +BB45 [0044] 1 BB44 1 [2FA..303) (return) +BB46 [0045] 2 BB43,BB44 1 [303..30A)-> BB49(1) (always) i +BB47 [0046] 0 1 [30A..312)-> BB49(0.5),BB48(0.5) ( cond ) +BB48 [0047] 1 BB47 1 [312..31B) (return) +BB49 [0048] 2 BB46,BB47 1 [31B..324) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..01E) -> BB02(1) (always), preds={} succs={BB02} + +***** BB01 [0000] +STMT00000 ( 0x000[E--] ... 0x01C ) + [000006] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String) (exactContextHandle=0x4000000000420549) + [000004] ----------- arg0 +--* EQ int + [000002] ----------- | +--* LT int + [000000] ----------- | | +--* LCL_VAR int V02 arg2 + [000001] ----------- | | \--* CNS_INT int 0 + [000003] ----------- | \--* CNS_INT int 0 + [000005] ----------- arg1 \--* CNS_STR ref + +------------ BB02 [0001] [01E..02B) -> BB03(1) (always), preds={BB01} succs={BB03} + +------------ BB03 [0002] [02B..038) -> BB04(1) (always), preds={BB02} succs={BB04} + +------------ BB04 [0003] [038..045) -> BB05(1) (always), preds={BB03} succs={BB05} + +------------ BB05 [0004] [045..049) -> BB07(1) (always), preds={BB04} succs={BB07} + +***** BB05 [0004] +STMT00001 ( 0x045[E--] ... 0x046 ) + [000024] DA--------- * STORE_LCL_VAR int V03 loc0 + [000023] ----------- \--* CNS_INT int 1 + +------------ BB06 [0005] [049..04B) -> BB07(1) (always), preds={} succs={BB07} + +------------ BB07 [0006] [04B..05D) -> BB08(1) (always), preds={BB05,BB06} succs={BB08} + +***** BB07 [0006] +STMT00002 ( 0x04B[E--] ... 0x05B ) + [000027] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String) (exactContextHandle=0x4000000000420549) + [000025] ----------- arg0 +--* LCL_VAR int V03 loc0 + [000026] ----------- arg1 \--* CNS_STR ref + +------------ BB08 [0007] [05D..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB07} succs={BB09,BB43} + +***** BB08 [0007] +STMT00003 ( 0x05D[E--] ... 0x063 ) + [000034] ----------- * JTRUE void + [000033] ----------- \--* GE int + [000031] ----------- +--* LCL_VAR int V02 arg2 + [000032] ----------- \--* CNS_INT int 2 vector element count + +------------ BB09 [0008] [068..073) -> BB27(1) (always), preds={BB08} succs={BB27} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) + [000051] DA--------- * STORE_LCL_VAR long V04 loc1 + [000050] ----------- \--* SUB long + [000047] ----------- +--* CAST long <- int + [000046] ----------- | \--* LCL_VAR int V02 arg2 + [000049] ----------- \--* CNS_INT long 1 + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) + [000059] DA--------- * STORE_LCL_VAR int V02 arg2 + [000058] ----------- \--* SUB int + [000056] ----------- +--* LCL_VAR int V02 arg2 + [000057] ----------- \--* CNS_INT int 8 + +***** BB10 [0009] +STMT00008 ( 0x078[E--] ... 0x09B ) + [000067] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000065] ---XG------ arg0 +--* IND long + [000064] ----------- | \--* ADD byref + [000060] ----------- | +--* LCL_VAR byref V00 arg0 + [000063] ----------- | \--* MUL long + [000061] ----------- | +--* LCL_VAR long V04 loc1 + [000062] ----------- | \--* CNS_INT long 8 + [000066] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB10 [0009] +STMT00009 ( 0x078[E--] ... ??? ) + [000069] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000068] --C-------- arg0 \--* RET_EXPR int (for [000067]) + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) + [000073] --C-------- * JTRUE void + [000072] --C-------- \--* EQ int + [000070] --C-------- +--* RET_EXPR int (for [000069]) + [000071] ----------- \--* CNS_INT int 0 + +------------ BB11 [0010] [09D..0A0) (return), preds={BB10} succs={} + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) + [000242] ----------- * RETURN int + [000241] ----------- \--* CAST int <- long + [000240] ----------- \--* LCL_VAR long V04 loc1 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} + +***** BB12 [0011] +STMT00011 ( 0x0A0[E--] ... 0x0C6 ) + [000084] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000082] ---XG------ arg0 +--* IND long + [000081] ----------- | \--* ADD byref + [000074] ----------- | +--* LCL_VAR byref V00 arg0 + [000080] ----------- | \--* MUL long + [000078] ----------- | +--* SUB long + [000075] ----------- | | +--* LCL_VAR long V04 loc1 + [000077] ----------- | | \--* CNS_INT long 1 + [000079] ----------- | \--* CNS_INT long 8 + [000083] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB12 [0011] +STMT00012 ( 0x0A0[E--] ... ??? ) + [000086] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000085] --C-------- arg0 \--* RET_EXPR int (for [000084]) + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] --C-------- * JTRUE void + [000089] --C-------- \--* EQ int + [000087] --C-------- +--* RET_EXPR int (for [000086]) + [000088] ----------- \--* CNS_INT int 0 + +------------ BB13 [0012] [0C8..0CE) (return), preds={BB12} succs={} + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + [000239] ----------- * RETURN int + [000238] ----------- \--* CAST int <- long + [000237] ----------- \--* SUB long + [000234] ----------- +--* LCL_VAR long V04 loc1 + [000236] ----------- \--* CNS_INT long 1 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} + +***** BB14 [0013] +STMT00014 ( 0x0CE[E--] ... 0x0F4 ) + [000101] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000099] ---XG------ arg0 +--* IND long + [000098] ----------- | \--* ADD byref + [000091] ----------- | +--* LCL_VAR byref V00 arg0 + [000097] ----------- | \--* MUL long + [000095] ----------- | +--* SUB long + [000092] ----------- | | +--* LCL_VAR long V04 loc1 + [000094] ----------- | | \--* CNS_INT long 2 + [000096] ----------- | \--* CNS_INT long 8 + [000100] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB14 [0013] +STMT00015 ( 0x0CE[E--] ... ??? ) + [000103] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000102] --C-------- arg0 \--* RET_EXPR int (for [000101]) + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] --C-------- * JTRUE void + [000106] --C-------- \--* EQ int + [000104] --C-------- +--* RET_EXPR int (for [000103]) + [000105] ----------- \--* CNS_INT int 0 + +------------ BB15 [0014] [0F6..0FC) (return), preds={BB14} succs={} + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + [000233] ----------- * RETURN int + [000232] ----------- \--* CAST int <- long + [000231] ----------- \--* SUB long + [000228] ----------- +--* LCL_VAR long V04 loc1 + [000230] ----------- \--* CNS_INT long 2 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} + +***** BB16 [0015] +STMT00017 ( 0x0FC[E--] ... 0x122 ) + [000118] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000116] ---XG------ arg0 +--* IND long + [000115] ----------- | \--* ADD byref + [000108] ----------- | +--* LCL_VAR byref V00 arg0 + [000114] ----------- | \--* MUL long + [000112] ----------- | +--* SUB long + [000109] ----------- | | +--* LCL_VAR long V04 loc1 + [000111] ----------- | | \--* CNS_INT long 3 + [000113] ----------- | \--* CNS_INT long 8 + [000117] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB16 [0015] +STMT00018 ( 0x0FC[E--] ... ??? ) + [000120] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000119] --C-------- arg0 \--* RET_EXPR int (for [000118]) + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] --C-------- * JTRUE void + [000123] --C-------- \--* EQ int + [000121] --C-------- +--* RET_EXPR int (for [000120]) + [000122] ----------- \--* CNS_INT int 0 + +------------ BB17 [0016] [124..12A) (return), preds={BB16} succs={} + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) + [000227] ----------- * RETURN int + [000226] ----------- \--* CAST int <- long + [000225] ----------- \--* SUB long + [000222] ----------- +--* LCL_VAR long V04 loc1 + [000224] ----------- \--* CNS_INT long 3 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00020 ( 0x12A[E--] ... 0x150 ) + [000135] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000133] ---XG------ arg0 +--* IND long + [000132] ----------- | \--* ADD byref + [000125] ----------- | +--* LCL_VAR byref V00 arg0 + [000131] ----------- | \--* MUL long + [000129] ----------- | +--* SUB long + [000126] ----------- | | +--* LCL_VAR long V04 loc1 + [000128] ----------- | | \--* CNS_INT long 4 + [000130] ----------- | \--* CNS_INT long 8 + [000134] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB18 [0017] +STMT00021 ( 0x12A[E--] ... ??? ) + [000137] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000136] --C-------- arg0 \--* RET_EXPR int (for [000135]) + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] --C-------- * JTRUE void + [000140] --C-------- \--* EQ int + [000138] --C-------- +--* RET_EXPR int (for [000137]) + [000139] ----------- \--* CNS_INT int 0 + +------------ BB19 [0018] [152..158) (return), preds={BB18} succs={} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) + [000221] ----------- * RETURN int + [000220] ----------- \--* CAST int <- long + [000219] ----------- \--* SUB long + [000216] ----------- +--* LCL_VAR long V04 loc1 + [000218] ----------- \--* CNS_INT long 4 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00023 ( 0x158[E--] ... 0x17E ) + [000152] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000150] ---XG------ arg0 +--* IND long + [000149] ----------- | \--* ADD byref + [000142] ----------- | +--* LCL_VAR byref V00 arg0 + [000148] ----------- | \--* MUL long + [000146] ----------- | +--* SUB long + [000143] ----------- | | +--* LCL_VAR long V04 loc1 + [000145] ----------- | | \--* CNS_INT long 5 + [000147] ----------- | \--* CNS_INT long 8 + [000151] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB20 [0019] +STMT00024 ( 0x158[E--] ... ??? ) + [000154] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000153] --C-------- arg0 \--* RET_EXPR int (for [000152]) + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) + [000158] --C-------- * JTRUE void + [000157] --C-------- \--* EQ int + [000155] --C-------- +--* RET_EXPR int (for [000154]) + [000156] ----------- \--* CNS_INT int 0 + +------------ BB21 [0020] [180..186) (return), preds={BB20} succs={} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) + [000215] ----------- * RETURN int + [000214] ----------- \--* CAST int <- long + [000213] ----------- \--* SUB long + [000210] ----------- +--* LCL_VAR long V04 loc1 + [000212] ----------- \--* CNS_INT long 5 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00026 ( 0x186[E--] ... 0x1AC ) + [000169] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000167] ---XG------ arg0 +--* IND long + [000166] ----------- | \--* ADD byref + [000159] ----------- | +--* LCL_VAR byref V00 arg0 + [000165] ----------- | \--* MUL long + [000163] ----------- | +--* SUB long + [000160] ----------- | | +--* LCL_VAR long V04 loc1 + [000162] ----------- | | \--* CNS_INT long 6 + [000164] ----------- | \--* CNS_INT long 8 + [000168] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB22 [0021] +STMT00027 ( 0x186[E--] ... ??? ) + [000171] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000170] --C-------- arg0 \--* RET_EXPR int (for [000169]) + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) + [000175] --C-------- * JTRUE void + [000174] --C-------- \--* EQ int + [000172] --C-------- +--* RET_EXPR int (for [000171]) + [000173] ----------- \--* CNS_INT int 0 + +------------ BB23 [0022] [1AE..1B4) (return), preds={BB22} succs={} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) + [000209] ----------- * RETURN int + [000208] ----------- \--* CAST int <- long + [000207] ----------- \--* SUB long + [000204] ----------- +--* LCL_VAR long V04 loc1 + [000206] ----------- \--* CNS_INT long 6 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00029 ( 0x1B4[E--] ... 0x1DA ) + [000186] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000184] ---XG------ arg0 +--* IND long + [000183] ----------- | \--* ADD byref + [000176] ----------- | +--* LCL_VAR byref V00 arg0 + [000182] ----------- | \--* MUL long + [000180] ----------- | +--* SUB long + [000177] ----------- | | +--* LCL_VAR long V04 loc1 + [000179] ----------- | | \--* CNS_INT long 7 + [000181] ----------- | \--* CNS_INT long 8 + [000185] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB24 [0023] +STMT00030 ( 0x1B4[E--] ... ??? ) + [000188] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000187] --C-------- arg0 \--* RET_EXPR int (for [000186]) + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] --C-------- * JTRUE void + [000191] --C-------- \--* EQ int + [000189] --C-------- +--* RET_EXPR int (for [000188]) + [000190] ----------- \--* CNS_INT int 0 + +------------ BB25 [0024] [1DC..1E2) (return), preds={BB24} succs={} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) + [000203] ----------- * RETURN int + [000202] ----------- \--* CAST int <- long + [000201] ----------- \--* SUB long + [000198] ----------- +--* LCL_VAR long V04 loc1 + [000200] ----------- \--* CNS_INT long 7 + +------------ BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + [000197] DA--------- * STORE_LCL_VAR long V04 loc1 + [000196] ----------- \--* SUB long + [000193] ----------- +--* LCL_VAR long V04 loc1 + [000195] ----------- \--* CNS_INT long 8 + +------------ BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} + +***** BB27 [0026] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + [000055] ----------- * JTRUE void + [000054] ----------- \--* GE int + [000052] ----------- +--* LCL_VAR int V02 arg2 + [000053] ----------- \--* CNS_INT int 8 + +------------ BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} + +***** BB28 [0027] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) + [000246] ----------- * JTRUE void + [000245] ----------- \--* LT int + [000243] ----------- +--* LCL_VAR int V02 arg2 + [000244] ----------- \--* CNS_INT int 4 + +------------ BB29 [0028] [1F5..21F) -> BB31(0.5),BB30(0.5) (cond), preds={BB28} succs={BB30,BB31} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) + [000282] DA--------- * STORE_LCL_VAR int V02 arg2 + [000281] ----------- \--* SUB int + [000279] ----------- +--* LCL_VAR int V02 arg2 + [000280] ----------- \--* CNS_INT int 4 + +***** BB29 [0028] +STMT00051 ( 0x1FA[E--] ... 0x21D ) + [000290] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000288] ---XG------ arg0 +--* IND long + [000287] ----------- | \--* ADD byref + [000283] ----------- | +--* LCL_VAR byref V00 arg0 + [000286] ----------- | \--* MUL long + [000284] ----------- | +--* LCL_VAR long V04 loc1 + [000285] ----------- | \--* CNS_INT long 8 + [000289] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB29 [0028] +STMT00052 ( 0x1FA[E--] ... ??? ) + [000292] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000291] --C-------- arg0 \--* RET_EXPR int (for [000290]) + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] --C-------- * JTRUE void + [000295] --C-------- \--* EQ int + [000293] --C-------- +--* RET_EXPR int (for [000292]) + [000294] ----------- \--* CNS_INT int 0 + +------------ BB30 [0029] [21F..222) (return), preds={BB29} succs={} + +***** BB30 [0029] +STMT00067 ( 0x21F[E--] ... 0x221 ) + [000373] ----------- * RETURN int + [000372] ----------- \--* CAST int <- long + [000371] ----------- \--* LCL_VAR long V04 loc1 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00054 ( 0x222[E--] ... 0x248 ) + [000307] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000305] ---XG------ arg0 +--* IND long + [000304] ----------- | \--* ADD byref + [000297] ----------- | +--* LCL_VAR byref V00 arg0 + [000303] ----------- | \--* MUL long + [000301] ----------- | +--* SUB long + [000298] ----------- | | +--* LCL_VAR long V04 loc1 + [000300] ----------- | | \--* CNS_INT long 1 + [000302] ----------- | \--* CNS_INT long 8 + [000306] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB31 [0030] +STMT00055 ( 0x222[E--] ... ??? ) + [000309] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000308] --C-------- arg0 \--* RET_EXPR int (for [000307]) + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) + [000313] --C-------- * JTRUE void + [000312] --C-------- \--* EQ int + [000310] --C-------- +--* RET_EXPR int (for [000309]) + [000311] ----------- \--* CNS_INT int 0 + +------------ BB32 [0031] [24A..250) (return), preds={BB31} succs={} + +***** BB32 [0031] +STMT00066 ( 0x24A[E--] ... 0x24F ) + [000370] ----------- * RETURN int + [000369] ----------- \--* CAST int <- long + [000368] ----------- \--* SUB long + [000365] ----------- +--* LCL_VAR long V04 loc1 + [000367] ----------- \--* CNS_INT long 1 + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00057 ( 0x250[E--] ... 0x276 ) + [000324] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000322] ---XG------ arg0 +--* IND long + [000321] ----------- | \--* ADD byref + [000314] ----------- | +--* LCL_VAR byref V00 arg0 + [000320] ----------- | \--* MUL long + [000318] ----------- | +--* SUB long + [000315] ----------- | | +--* LCL_VAR long V04 loc1 + [000317] ----------- | | \--* CNS_INT long 2 + [000319] ----------- | \--* CNS_INT long 8 + [000323] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB33 [0032] +STMT00058 ( 0x250[E--] ... ??? ) + [000326] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000325] --C-------- arg0 \--* RET_EXPR int (for [000324]) + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) + [000330] --C-------- * JTRUE void + [000329] --C-------- \--* EQ int + [000327] --C-------- +--* RET_EXPR int (for [000326]) + [000328] ----------- \--* CNS_INT int 0 + +------------ BB34 [0033] [278..27E) (return), preds={BB33} succs={} + +***** BB34 [0033] +STMT00065 ( 0x278[E--] ... 0x27D ) + [000364] ----------- * RETURN int + [000363] ----------- \--* CAST int <- long + [000362] ----------- \--* SUB long + [000359] ----------- +--* LCL_VAR long V04 loc1 + [000361] ----------- \--* CNS_INT long 2 + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00060 ( 0x27E[E--] ... 0x2A4 ) + [000341] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000339] ---XG------ arg0 +--* IND long + [000338] ----------- | \--* ADD byref + [000331] ----------- | +--* LCL_VAR byref V00 arg0 + [000337] ----------- | \--* MUL long + [000335] ----------- | +--* SUB long + [000332] ----------- | | +--* LCL_VAR long V04 loc1 + [000334] ----------- | | \--* CNS_INT long 3 + [000336] ----------- | \--* CNS_INT long 8 + [000340] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB35 [0034] +STMT00061 ( 0x27E[E--] ... ??? ) + [000343] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000342] --C-------- arg0 \--* RET_EXPR int (for [000341]) + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] --C-------- * JTRUE void + [000346] --C-------- \--* EQ int + [000344] --C-------- +--* RET_EXPR int (for [000343]) + [000345] ----------- \--* CNS_INT int 0 + +------------ BB36 [0035] [2A6..2AC) (return), preds={BB35} succs={} + +***** BB36 [0035] +STMT00064 ( 0x2A6[E--] ... 0x2AB ) + [000358] ----------- * RETURN int + [000357] ----------- \--* CAST int <- long + [000356] ----------- \--* SUB long + [000353] ----------- +--* LCL_VAR long V04 loc1 + [000355] ----------- \--* CNS_INT long 3 + +------------ BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) + [000352] DA--------- * STORE_LCL_VAR long V04 loc1 + [000351] ----------- \--* SUB long + [000348] ----------- +--* LCL_VAR long V04 loc1 + [000350] ----------- \--* CNS_INT long 4 + +------------ BB38 [0037] [2B3..2DD) -> BB40(0.5),BB39(0.5) (cond), preds={BB41} succs={BB39,BB40} + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) + [000254] DA--------- * STORE_LCL_VAR int V02 arg2 + [000253] ----------- \--* SUB int + [000251] ----------- +--* LCL_VAR int V02 arg2 + [000252] ----------- \--* CNS_INT int 1 + +***** BB38 [0037] +STMT00044 ( 0x2B8[E--] ... 0x2DB ) + [000262] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000260] ---XG------ arg0 +--* IND long + [000259] ----------- | \--* ADD byref + [000255] ----------- | +--* LCL_VAR byref V00 arg0 + [000258] ----------- | \--* MUL long + [000256] ----------- | +--* LCL_VAR long V04 loc1 + [000257] ----------- | \--* CNS_INT long 8 + [000261] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB38 [0037] +STMT00045 ( 0x2B8[E--] ... ??? ) + [000264] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000263] --C-------- arg0 \--* RET_EXPR int (for [000262]) + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] --C-------- * JTRUE void + [000267] --C-------- \--* EQ int + [000265] --C-------- +--* RET_EXPR int (for [000264]) + [000266] ----------- \--* CNS_INT int 0 + +------------ BB39 [0038] [2DD..2E0) (return), preds={BB38} succs={} + +***** BB39 [0038] +STMT00048 ( 0x2DD[E--] ... 0x2DF ) + [000276] ----------- * RETURN int + [000275] ----------- \--* CAST int <- long + [000274] ----------- \--* LCL_VAR long V04 loc1 + +------------ BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + [000273] DA--------- * STORE_LCL_VAR long V04 loc1 + [000272] ----------- \--* SUB long + [000269] ----------- +--* LCL_VAR long V04 loc1 + [000271] ----------- \--* CNS_INT long 1 + +------------ BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} + +***** BB41 [0040] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + [000250] ----------- * JTRUE void + [000249] ----------- \--* GT int + [000247] ----------- +--* LCL_VAR int V02 arg2 + [000248] ----------- \--* CNS_INT int 0 + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} + +***** BB42 [0041] +STMT00049 ( 0x2E9[E--] ... 0x2EA ) + [000278] ----------- * RETURN int + [000277] ----------- \--* CNS_INT int -1 + +------------ BB43 [0042] [2EB..2F2) -> BB46(1) (always), preds={BB08} succs={BB46} + +------------ BB44 [0043] [2F2..2FA) -> BB46(0.5),BB45(0.5) (cond), preds={} succs={BB45,BB46} + +------------ BB45 [0044] [2FA..303) (return), preds={BB44} succs={} + +------------ BB46 [0045] [303..30A) -> BB49(1) (always), preds={BB43,BB44} succs={BB49} + +------------ BB47 [0046] [30A..312) -> BB49(0.5),BB48(0.5) (cond), preds={} succs={BB48,BB49} + +------------ BB48 [0047] [312..31B) (return), preds={BB47} succs={} + +------------ BB49 [0048] [31B..324) (return), preds={BB46,BB47} succs={} + +***** BB49 [0048] +STMT00004 ( 0x31B[E--] ... 0x323 ) + [000045] --C-G------ * RETURN int + [000044] --C-G------ \--* CALL int + [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 + [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 + [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Early QMARK expansion + +*************** Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..01E)-> BB02(1) (always) i +BB02 [0001] 1 BB01 1 [01E..02B)-> BB03(1) (always) i +BB03 [0002] 1 BB02 1 [02B..038)-> BB04(1) (always) i +BB04 [0003] 1 BB03 1 [038..045)-> BB05(1) (always) i +BB05 [0004] 1 BB04 1 [045..049)-> BB07(1) (always) i +BB06 [0005] 0 1 [049..04B)-> BB07(1) (always) +BB07 [0006] 2 BB05,BB06 1 [04B..05D)-> BB08(1) (always) i +BB08 [0007] 1 BB07 1 [05D..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB08 1 [068..073)-> BB27(1) (always) i +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target +BB11 [0010] 1 BB10 1 [09D..0A0) (return) i +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd +BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd +BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd +BB17 [0016] 1 BB16 1 [124..12A) (return) i +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB19 [0018] 1 BB18 1 [152..158) (return) i +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB21 [0020] 1 BB20 1 [180..186) (return) i +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB31(0.5),BB30(0.5) ( cond ) i +BB30 [0029] 1 BB29 1 [21F..222) (return) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250) (return) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E) (return) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB40(0.5),BB39(0.5) ( cond ) i bwd bwd-target +BB39 [0038] 1 BB38 1 [2DD..2E0) (return) i +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i +BB43 [0042] 1 BB08 1 [2EB..2F2)-> BB46(1) (always) i +BB44 [0043] 0 1 [2F2..2FA)-> BB46(0.5),BB45(0.5) ( cond ) +BB45 [0044] 1 BB44 1 [2FA..303) (return) +BB46 [0045] 2 BB43,BB44 1 [303..30A)-> BB49(1) (always) i +BB47 [0046] 0 1 [30A..312)-> BB49(0.5),BB48(0.5) ( cond ) +BB48 [0047] 1 BB47 1 [312..31B) (return) +BB49 [0048] 2 BB46,BB47 1 [31B..324) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..01E) -> BB02(1) (always), preds={} succs={BB02} + +***** BB01 [0000] +STMT00000 ( 0x000[E--] ... 0x01C ) + [000006] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String) (exactContextHandle=0x4000000000420549) + [000004] ----------- arg0 +--* EQ int + [000002] ----------- | +--* LT int + [000000] ----------- | | +--* LCL_VAR int V02 arg2 + [000001] ----------- | | \--* CNS_INT int 0 + [000003] ----------- | \--* CNS_INT int 0 + [000005] ----------- arg1 \--* CNS_STR ref + +------------ BB02 [0001] [01E..02B) -> BB03(1) (always), preds={BB01} succs={BB03} + +------------ BB03 [0002] [02B..038) -> BB04(1) (always), preds={BB02} succs={BB04} + +------------ BB04 [0003] [038..045) -> BB05(1) (always), preds={BB03} succs={BB05} + +------------ BB05 [0004] [045..049) -> BB07(1) (always), preds={BB04} succs={BB07} + +***** BB05 [0004] +STMT00001 ( 0x045[E--] ... 0x046 ) + [000024] DA--------- * STORE_LCL_VAR int V03 loc0 + [000023] ----------- \--* CNS_INT int 1 + +------------ BB06 [0005] [049..04B) -> BB07(1) (always), preds={} succs={BB07} + +------------ BB07 [0006] [04B..05D) -> BB08(1) (always), preds={BB05,BB06} succs={BB08} + +***** BB07 [0006] +STMT00002 ( 0x04B[E--] ... 0x05B ) + [000027] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String) (exactContextHandle=0x4000000000420549) + [000025] ----------- arg0 +--* LCL_VAR int V03 loc0 + [000026] ----------- arg1 \--* CNS_STR ref + +------------ BB08 [0007] [05D..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB07} succs={BB09,BB43} + +***** BB08 [0007] +STMT00003 ( 0x05D[E--] ... 0x063 ) + [000034] ----------- * JTRUE void + [000033] ----------- \--* GE int + [000031] ----------- +--* LCL_VAR int V02 arg2 + [000032] ----------- \--* CNS_INT int 2 vector element count + +------------ BB09 [0008] [068..073) -> BB27(1) (always), preds={BB08} succs={BB27} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) + [000051] DA--------- * STORE_LCL_VAR long V04 loc1 + [000050] ----------- \--* SUB long + [000047] ----------- +--* CAST long <- int + [000046] ----------- | \--* LCL_VAR int V02 arg2 + [000049] ----------- \--* CNS_INT long 1 + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) + [000059] DA--------- * STORE_LCL_VAR int V02 arg2 + [000058] ----------- \--* SUB int + [000056] ----------- +--* LCL_VAR int V02 arg2 + [000057] ----------- \--* CNS_INT int 8 + +***** BB10 [0009] +STMT00008 ( 0x078[E--] ... 0x09B ) + [000067] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000065] ---XG------ arg0 +--* IND long + [000064] ----------- | \--* ADD byref + [000060] ----------- | +--* LCL_VAR byref V00 arg0 + [000063] ----------- | \--* MUL long + [000061] ----------- | +--* LCL_VAR long V04 loc1 + [000062] ----------- | \--* CNS_INT long 8 + [000066] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB10 [0009] +STMT00009 ( 0x078[E--] ... ??? ) + [000069] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000068] --C-------- arg0 \--* RET_EXPR int (for [000067]) + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) + [000073] --C-------- * JTRUE void + [000072] --C-------- \--* EQ int + [000070] --C-------- +--* RET_EXPR int (for [000069]) + [000071] ----------- \--* CNS_INT int 0 + +------------ BB11 [0010] [09D..0A0) (return), preds={BB10} succs={} + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) + [000242] ----------- * RETURN int + [000241] ----------- \--* CAST int <- long + [000240] ----------- \--* LCL_VAR long V04 loc1 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} + +***** BB12 [0011] +STMT00011 ( 0x0A0[E--] ... 0x0C6 ) + [000084] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000082] ---XG------ arg0 +--* IND long + [000081] ----------- | \--* ADD byref + [000074] ----------- | +--* LCL_VAR byref V00 arg0 + [000080] ----------- | \--* MUL long + [000078] ----------- | +--* SUB long + [000075] ----------- | | +--* LCL_VAR long V04 loc1 + [000077] ----------- | | \--* CNS_INT long 1 + [000079] ----------- | \--* CNS_INT long 8 + [000083] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB12 [0011] +STMT00012 ( 0x0A0[E--] ... ??? ) + [000086] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000085] --C-------- arg0 \--* RET_EXPR int (for [000084]) + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] --C-------- * JTRUE void + [000089] --C-------- \--* EQ int + [000087] --C-------- +--* RET_EXPR int (for [000086]) + [000088] ----------- \--* CNS_INT int 0 + +------------ BB13 [0012] [0C8..0CE) (return), preds={BB12} succs={} + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + [000239] ----------- * RETURN int + [000238] ----------- \--* CAST int <- long + [000237] ----------- \--* SUB long + [000234] ----------- +--* LCL_VAR long V04 loc1 + [000236] ----------- \--* CNS_INT long 1 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} + +***** BB14 [0013] +STMT00014 ( 0x0CE[E--] ... 0x0F4 ) + [000101] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000099] ---XG------ arg0 +--* IND long + [000098] ----------- | \--* ADD byref + [000091] ----------- | +--* LCL_VAR byref V00 arg0 + [000097] ----------- | \--* MUL long + [000095] ----------- | +--* SUB long + [000092] ----------- | | +--* LCL_VAR long V04 loc1 + [000094] ----------- | | \--* CNS_INT long 2 + [000096] ----------- | \--* CNS_INT long 8 + [000100] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB14 [0013] +STMT00015 ( 0x0CE[E--] ... ??? ) + [000103] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000102] --C-------- arg0 \--* RET_EXPR int (for [000101]) + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] --C-------- * JTRUE void + [000106] --C-------- \--* EQ int + [000104] --C-------- +--* RET_EXPR int (for [000103]) + [000105] ----------- \--* CNS_INT int 0 + +------------ BB15 [0014] [0F6..0FC) (return), preds={BB14} succs={} + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + [000233] ----------- * RETURN int + [000232] ----------- \--* CAST int <- long + [000231] ----------- \--* SUB long + [000228] ----------- +--* LCL_VAR long V04 loc1 + [000230] ----------- \--* CNS_INT long 2 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} + +***** BB16 [0015] +STMT00017 ( 0x0FC[E--] ... 0x122 ) + [000118] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000116] ---XG------ arg0 +--* IND long + [000115] ----------- | \--* ADD byref + [000108] ----------- | +--* LCL_VAR byref V00 arg0 + [000114] ----------- | \--* MUL long + [000112] ----------- | +--* SUB long + [000109] ----------- | | +--* LCL_VAR long V04 loc1 + [000111] ----------- | | \--* CNS_INT long 3 + [000113] ----------- | \--* CNS_INT long 8 + [000117] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB16 [0015] +STMT00018 ( 0x0FC[E--] ... ??? ) + [000120] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000119] --C-------- arg0 \--* RET_EXPR int (for [000118]) + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] --C-------- * JTRUE void + [000123] --C-------- \--* EQ int + [000121] --C-------- +--* RET_EXPR int (for [000120]) + [000122] ----------- \--* CNS_INT int 0 + +------------ BB17 [0016] [124..12A) (return), preds={BB16} succs={} + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) + [000227] ----------- * RETURN int + [000226] ----------- \--* CAST int <- long + [000225] ----------- \--* SUB long + [000222] ----------- +--* LCL_VAR long V04 loc1 + [000224] ----------- \--* CNS_INT long 3 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00020 ( 0x12A[E--] ... 0x150 ) + [000135] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000133] ---XG------ arg0 +--* IND long + [000132] ----------- | \--* ADD byref + [000125] ----------- | +--* LCL_VAR byref V00 arg0 + [000131] ----------- | \--* MUL long + [000129] ----------- | +--* SUB long + [000126] ----------- | | +--* LCL_VAR long V04 loc1 + [000128] ----------- | | \--* CNS_INT long 4 + [000130] ----------- | \--* CNS_INT long 8 + [000134] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB18 [0017] +STMT00021 ( 0x12A[E--] ... ??? ) + [000137] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000136] --C-------- arg0 \--* RET_EXPR int (for [000135]) + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] --C-------- * JTRUE void + [000140] --C-------- \--* EQ int + [000138] --C-------- +--* RET_EXPR int (for [000137]) + [000139] ----------- \--* CNS_INT int 0 + +------------ BB19 [0018] [152..158) (return), preds={BB18} succs={} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) + [000221] ----------- * RETURN int + [000220] ----------- \--* CAST int <- long + [000219] ----------- \--* SUB long + [000216] ----------- +--* LCL_VAR long V04 loc1 + [000218] ----------- \--* CNS_INT long 4 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00023 ( 0x158[E--] ... 0x17E ) + [000152] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000150] ---XG------ arg0 +--* IND long + [000149] ----------- | \--* ADD byref + [000142] ----------- | +--* LCL_VAR byref V00 arg0 + [000148] ----------- | \--* MUL long + [000146] ----------- | +--* SUB long + [000143] ----------- | | +--* LCL_VAR long V04 loc1 + [000145] ----------- | | \--* CNS_INT long 5 + [000147] ----------- | \--* CNS_INT long 8 + [000151] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB20 [0019] +STMT00024 ( 0x158[E--] ... ??? ) + [000154] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000153] --C-------- arg0 \--* RET_EXPR int (for [000152]) + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) + [000158] --C-------- * JTRUE void + [000157] --C-------- \--* EQ int + [000155] --C-------- +--* RET_EXPR int (for [000154]) + [000156] ----------- \--* CNS_INT int 0 + +------------ BB21 [0020] [180..186) (return), preds={BB20} succs={} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) + [000215] ----------- * RETURN int + [000214] ----------- \--* CAST int <- long + [000213] ----------- \--* SUB long + [000210] ----------- +--* LCL_VAR long V04 loc1 + [000212] ----------- \--* CNS_INT long 5 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00026 ( 0x186[E--] ... 0x1AC ) + [000169] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000167] ---XG------ arg0 +--* IND long + [000166] ----------- | \--* ADD byref + [000159] ----------- | +--* LCL_VAR byref V00 arg0 + [000165] ----------- | \--* MUL long + [000163] ----------- | +--* SUB long + [000160] ----------- | | +--* LCL_VAR long V04 loc1 + [000162] ----------- | | \--* CNS_INT long 6 + [000164] ----------- | \--* CNS_INT long 8 + [000168] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB22 [0021] +STMT00027 ( 0x186[E--] ... ??? ) + [000171] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000170] --C-------- arg0 \--* RET_EXPR int (for [000169]) + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) + [000175] --C-------- * JTRUE void + [000174] --C-------- \--* EQ int + [000172] --C-------- +--* RET_EXPR int (for [000171]) + [000173] ----------- \--* CNS_INT int 0 + +------------ BB23 [0022] [1AE..1B4) (return), preds={BB22} succs={} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) + [000209] ----------- * RETURN int + [000208] ----------- \--* CAST int <- long + [000207] ----------- \--* SUB long + [000204] ----------- +--* LCL_VAR long V04 loc1 + [000206] ----------- \--* CNS_INT long 6 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00029 ( 0x1B4[E--] ... 0x1DA ) + [000186] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000184] ---XG------ arg0 +--* IND long + [000183] ----------- | \--* ADD byref + [000176] ----------- | +--* LCL_VAR byref V00 arg0 + [000182] ----------- | \--* MUL long + [000180] ----------- | +--* SUB long + [000177] ----------- | | +--* LCL_VAR long V04 loc1 + [000179] ----------- | | \--* CNS_INT long 7 + [000181] ----------- | \--* CNS_INT long 8 + [000185] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB24 [0023] +STMT00030 ( 0x1B4[E--] ... ??? ) + [000188] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000187] --C-------- arg0 \--* RET_EXPR int (for [000186]) + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] --C-------- * JTRUE void + [000191] --C-------- \--* EQ int + [000189] --C-------- +--* RET_EXPR int (for [000188]) + [000190] ----------- \--* CNS_INT int 0 + +------------ BB25 [0024] [1DC..1E2) (return), preds={BB24} succs={} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) + [000203] ----------- * RETURN int + [000202] ----------- \--* CAST int <- long + [000201] ----------- \--* SUB long + [000198] ----------- +--* LCL_VAR long V04 loc1 + [000200] ----------- \--* CNS_INT long 7 + +------------ BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + [000197] DA--------- * STORE_LCL_VAR long V04 loc1 + [000196] ----------- \--* SUB long + [000193] ----------- +--* LCL_VAR long V04 loc1 + [000195] ----------- \--* CNS_INT long 8 + +------------ BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} + +***** BB27 [0026] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + [000055] ----------- * JTRUE void + [000054] ----------- \--* GE int + [000052] ----------- +--* LCL_VAR int V02 arg2 + [000053] ----------- \--* CNS_INT int 8 + +------------ BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} + +***** BB28 [0027] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) + [000246] ----------- * JTRUE void + [000245] ----------- \--* LT int + [000243] ----------- +--* LCL_VAR int V02 arg2 + [000244] ----------- \--* CNS_INT int 4 + +------------ BB29 [0028] [1F5..21F) -> BB31(0.5),BB30(0.5) (cond), preds={BB28} succs={BB30,BB31} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) + [000282] DA--------- * STORE_LCL_VAR int V02 arg2 + [000281] ----------- \--* SUB int + [000279] ----------- +--* LCL_VAR int V02 arg2 + [000280] ----------- \--* CNS_INT int 4 + +***** BB29 [0028] +STMT00051 ( 0x1FA[E--] ... 0x21D ) + [000290] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000288] ---XG------ arg0 +--* IND long + [000287] ----------- | \--* ADD byref + [000283] ----------- | +--* LCL_VAR byref V00 arg0 + [000286] ----------- | \--* MUL long + [000284] ----------- | +--* LCL_VAR long V04 loc1 + [000285] ----------- | \--* CNS_INT long 8 + [000289] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB29 [0028] +STMT00052 ( 0x1FA[E--] ... ??? ) + [000292] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000291] --C-------- arg0 \--* RET_EXPR int (for [000290]) + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] --C-------- * JTRUE void + [000295] --C-------- \--* EQ int + [000293] --C-------- +--* RET_EXPR int (for [000292]) + [000294] ----------- \--* CNS_INT int 0 + +------------ BB30 [0029] [21F..222) (return), preds={BB29} succs={} + +***** BB30 [0029] +STMT00067 ( 0x21F[E--] ... 0x221 ) + [000373] ----------- * RETURN int + [000372] ----------- \--* CAST int <- long + [000371] ----------- \--* LCL_VAR long V04 loc1 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00054 ( 0x222[E--] ... 0x248 ) + [000307] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000305] ---XG------ arg0 +--* IND long + [000304] ----------- | \--* ADD byref + [000297] ----------- | +--* LCL_VAR byref V00 arg0 + [000303] ----------- | \--* MUL long + [000301] ----------- | +--* SUB long + [000298] ----------- | | +--* LCL_VAR long V04 loc1 + [000300] ----------- | | \--* CNS_INT long 1 + [000302] ----------- | \--* CNS_INT long 8 + [000306] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB31 [0030] +STMT00055 ( 0x222[E--] ... ??? ) + [000309] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000308] --C-------- arg0 \--* RET_EXPR int (for [000307]) + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) + [000313] --C-------- * JTRUE void + [000312] --C-------- \--* EQ int + [000310] --C-------- +--* RET_EXPR int (for [000309]) + [000311] ----------- \--* CNS_INT int 0 + +------------ BB32 [0031] [24A..250) (return), preds={BB31} succs={} + +***** BB32 [0031] +STMT00066 ( 0x24A[E--] ... 0x24F ) + [000370] ----------- * RETURN int + [000369] ----------- \--* CAST int <- long + [000368] ----------- \--* SUB long + [000365] ----------- +--* LCL_VAR long V04 loc1 + [000367] ----------- \--* CNS_INT long 1 + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00057 ( 0x250[E--] ... 0x276 ) + [000324] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000322] ---XG------ arg0 +--* IND long + [000321] ----------- | \--* ADD byref + [000314] ----------- | +--* LCL_VAR byref V00 arg0 + [000320] ----------- | \--* MUL long + [000318] ----------- | +--* SUB long + [000315] ----------- | | +--* LCL_VAR long V04 loc1 + [000317] ----------- | | \--* CNS_INT long 2 + [000319] ----------- | \--* CNS_INT long 8 + [000323] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB33 [0032] +STMT00058 ( 0x250[E--] ... ??? ) + [000326] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000325] --C-------- arg0 \--* RET_EXPR int (for [000324]) + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) + [000330] --C-------- * JTRUE void + [000329] --C-------- \--* EQ int + [000327] --C-------- +--* RET_EXPR int (for [000326]) + [000328] ----------- \--* CNS_INT int 0 + +------------ BB34 [0033] [278..27E) (return), preds={BB33} succs={} + +***** BB34 [0033] +STMT00065 ( 0x278[E--] ... 0x27D ) + [000364] ----------- * RETURN int + [000363] ----------- \--* CAST int <- long + [000362] ----------- \--* SUB long + [000359] ----------- +--* LCL_VAR long V04 loc1 + [000361] ----------- \--* CNS_INT long 2 + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00060 ( 0x27E[E--] ... 0x2A4 ) + [000341] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000339] ---XG------ arg0 +--* IND long + [000338] ----------- | \--* ADD byref + [000331] ----------- | +--* LCL_VAR byref V00 arg0 + [000337] ----------- | \--* MUL long + [000335] ----------- | +--* SUB long + [000332] ----------- | | +--* LCL_VAR long V04 loc1 + [000334] ----------- | | \--* CNS_INT long 3 + [000336] ----------- | \--* CNS_INT long 8 + [000340] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB35 [0034] +STMT00061 ( 0x27E[E--] ... ??? ) + [000343] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000342] --C-------- arg0 \--* RET_EXPR int (for [000341]) + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] --C-------- * JTRUE void + [000346] --C-------- \--* EQ int + [000344] --C-------- +--* RET_EXPR int (for [000343]) + [000345] ----------- \--* CNS_INT int 0 + +------------ BB36 [0035] [2A6..2AC) (return), preds={BB35} succs={} + +***** BB36 [0035] +STMT00064 ( 0x2A6[E--] ... 0x2AB ) + [000358] ----------- * RETURN int + [000357] ----------- \--* CAST int <- long + [000356] ----------- \--* SUB long + [000353] ----------- +--* LCL_VAR long V04 loc1 + [000355] ----------- \--* CNS_INT long 3 + +------------ BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) + [000352] DA--------- * STORE_LCL_VAR long V04 loc1 + [000351] ----------- \--* SUB long + [000348] ----------- +--* LCL_VAR long V04 loc1 + [000350] ----------- \--* CNS_INT long 4 + +------------ BB38 [0037] [2B3..2DD) -> BB40(0.5),BB39(0.5) (cond), preds={BB41} succs={BB39,BB40} + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) + [000254] DA--------- * STORE_LCL_VAR int V02 arg2 + [000253] ----------- \--* SUB int + [000251] ----------- +--* LCL_VAR int V02 arg2 + [000252] ----------- \--* CNS_INT int 1 + +***** BB38 [0037] +STMT00044 ( 0x2B8[E--] ... 0x2DB ) + [000262] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000260] ---XG------ arg0 +--* IND long + [000259] ----------- | \--* ADD byref + [000255] ----------- | +--* LCL_VAR byref V00 arg0 + [000258] ----------- | \--* MUL long + [000256] ----------- | +--* LCL_VAR long V04 loc1 + [000257] ----------- | \--* CNS_INT long 8 + [000261] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB38 [0037] +STMT00045 ( 0x2B8[E--] ... ??? ) + [000264] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000263] --C-------- arg0 \--* RET_EXPR int (for [000262]) + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] --C-------- * JTRUE void + [000267] --C-------- \--* EQ int + [000265] --C-------- +--* RET_EXPR int (for [000264]) + [000266] ----------- \--* CNS_INT int 0 + +------------ BB39 [0038] [2DD..2E0) (return), preds={BB38} succs={} + +***** BB39 [0038] +STMT00048 ( 0x2DD[E--] ... 0x2DF ) + [000276] ----------- * RETURN int + [000275] ----------- \--* CAST int <- long + [000274] ----------- \--* LCL_VAR long V04 loc1 + +------------ BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + [000273] DA--------- * STORE_LCL_VAR long V04 loc1 + [000272] ----------- \--* SUB long + [000269] ----------- +--* LCL_VAR long V04 loc1 + [000271] ----------- \--* CNS_INT long 1 + +------------ BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} + +***** BB41 [0040] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + [000250] ----------- * JTRUE void + [000249] ----------- \--* GT int + [000247] ----------- +--* LCL_VAR int V02 arg2 + [000248] ----------- \--* CNS_INT int 0 + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} + +***** BB42 [0041] +STMT00049 ( 0x2E9[E--] ... 0x2EA ) + [000278] ----------- * RETURN int + [000277] ----------- \--* CNS_INT int -1 + +------------ BB43 [0042] [2EB..2F2) -> BB46(1) (always), preds={BB08} succs={BB46} + +------------ BB44 [0043] [2F2..2FA) -> BB46(0.5),BB45(0.5) (cond), preds={} succs={BB45,BB46} + +------------ BB45 [0044] [2FA..303) (return), preds={BB44} succs={} + +------------ BB46 [0045] [303..30A) -> BB49(1) (always), preds={BB43,BB44} succs={BB49} + +------------ BB47 [0046] [30A..312) -> BB49(0.5),BB48(0.5) (cond), preds={} succs={BB48,BB49} + +------------ BB48 [0047] [312..31B) (return), preds={BB47} succs={} + +------------ BB49 [0048] [31B..324) (return), preds={BB46,BB47} succs={} + +***** BB49 [0048] +STMT00004 ( 0x31B[E--] ... 0x323 ) + [000045] --C-G------ * RETURN int + [000044] --C-G------ \--* CALL int + [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 + [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 + [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Finishing PHASE Expand patchpoints [no changes] + +*************** Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Finishing PHASE Indirect call transform [no changes] + +*************** Starting PHASE Post-import +BB06 was not imported, marking as removed (0) +BB44 was not imported, marking as removed (1) +BB45 was not imported, marking as removed (2) +BB47 was not imported, marking as removed (3) +BB48 was not imported, marking as removed (4) + +*************** Finishing PHASE Post-import +Trees after Post-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..01E)-> BB02(1) (always) i +BB02 [0001] 1 BB01 1 [01E..02B)-> BB03(1) (always) i +BB03 [0002] 1 BB02 1 [02B..038)-> BB04(1) (always) i +BB04 [0003] 1 BB03 1 [038..045)-> BB05(1) (always) i +BB05 [0004] 1 BB04 1 [045..049)-> BB07(1) (always) i +BB07 [0006] 1 BB05 1 [04B..05D)-> BB08(1) (always) i +BB08 [0007] 1 BB07 1 [05D..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB08 1 [068..073)-> BB27(1) (always) i +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target +BB11 [0010] 1 BB10 1 [09D..0A0) (return) i +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd +BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd +BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd +BB17 [0016] 1 BB16 1 [124..12A) (return) i +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB19 [0018] 1 BB18 1 [152..158) (return) i +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB21 [0020] 1 BB20 1 [180..186) (return) i +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB31(0.5),BB30(0.5) ( cond ) i +BB30 [0029] 1 BB29 1 [21F..222) (return) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250) (return) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E) (return) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB40(0.5),BB39(0.5) ( cond ) i bwd bwd-target +BB39 [0038] 1 BB38 1 [2DD..2E0) (return) i +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i +BB43 [0042] 1 BB08 1 [2EB..2F2)-> BB46(1) (always) i +BB46 [0045] 1 BB43 1 [303..30A)-> BB49(1) (always) i +BB49 [0048] 1 BB46 1 [31B..324) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..01E) -> BB02(1) (always), preds={} succs={BB02} + +***** BB01 [0000] +STMT00000 ( 0x000[E--] ... 0x01C ) + [000006] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String) (exactContextHandle=0x4000000000420549) + [000004] ----------- arg0 +--* EQ int + [000002] ----------- | +--* LT int + [000000] ----------- | | +--* LCL_VAR int V02 arg2 + [000001] ----------- | | \--* CNS_INT int 0 + [000003] ----------- | \--* CNS_INT int 0 + [000005] ----------- arg1 \--* CNS_STR ref + +------------ BB02 [0001] [01E..02B) -> BB03(1) (always), preds={BB01} succs={BB03} + +------------ BB03 [0002] [02B..038) -> BB04(1) (always), preds={BB02} succs={BB04} + +------------ BB04 [0003] [038..045) -> BB05(1) (always), preds={BB03} succs={BB05} + +------------ BB05 [0004] [045..049) -> BB07(1) (always), preds={BB04} succs={BB07} + +***** BB05 [0004] +STMT00001 ( 0x045[E--] ... 0x046 ) + [000024] DA--------- * STORE_LCL_VAR int V03 loc0 + [000023] ----------- \--* CNS_INT int 1 + +------------ BB07 [0006] [04B..05D) -> BB08(1) (always), preds={BB05} succs={BB08} + +***** BB07 [0006] +STMT00002 ( 0x04B[E--] ... 0x05B ) + [000027] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String) (exactContextHandle=0x4000000000420549) + [000025] ----------- arg0 +--* LCL_VAR int V03 loc0 + [000026] ----------- arg1 \--* CNS_STR ref + +------------ BB08 [0007] [05D..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB07} succs={BB09,BB43} + +***** BB08 [0007] +STMT00003 ( 0x05D[E--] ... 0x063 ) + [000034] ----------- * JTRUE void + [000033] ----------- \--* GE int + [000031] ----------- +--* LCL_VAR int V02 arg2 + [000032] ----------- \--* CNS_INT int 2 vector element count + +------------ BB09 [0008] [068..073) -> BB27(1) (always), preds={BB08} succs={BB27} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) + [000051] DA--------- * STORE_LCL_VAR long V04 loc1 + [000050] ----------- \--* SUB long + [000047] ----------- +--* CAST long <- int + [000046] ----------- | \--* LCL_VAR int V02 arg2 + [000049] ----------- \--* CNS_INT long 1 + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) + [000059] DA--------- * STORE_LCL_VAR int V02 arg2 + [000058] ----------- \--* SUB int + [000056] ----------- +--* LCL_VAR int V02 arg2 + [000057] ----------- \--* CNS_INT int 8 + +***** BB10 [0009] +STMT00008 ( 0x078[E--] ... 0x09B ) + [000067] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000065] ---XG------ arg0 +--* IND long + [000064] ----------- | \--* ADD byref + [000060] ----------- | +--* LCL_VAR byref V00 arg0 + [000063] ----------- | \--* MUL long + [000061] ----------- | +--* LCL_VAR long V04 loc1 + [000062] ----------- | \--* CNS_INT long 8 + [000066] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB10 [0009] +STMT00009 ( 0x078[E--] ... ??? ) + [000069] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000068] --C-------- arg0 \--* RET_EXPR int (for [000067]) + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) + [000073] --C-------- * JTRUE void + [000072] --C-------- \--* EQ int + [000070] --C-------- +--* RET_EXPR int (for [000069]) + [000071] ----------- \--* CNS_INT int 0 + +------------ BB11 [0010] [09D..0A0) (return), preds={BB10} succs={} + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) + [000242] ----------- * RETURN int + [000241] ----------- \--* CAST int <- long + [000240] ----------- \--* LCL_VAR long V04 loc1 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} + +***** BB12 [0011] +STMT00011 ( 0x0A0[E--] ... 0x0C6 ) + [000084] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000082] ---XG------ arg0 +--* IND long + [000081] ----------- | \--* ADD byref + [000074] ----------- | +--* LCL_VAR byref V00 arg0 + [000080] ----------- | \--* MUL long + [000078] ----------- | +--* SUB long + [000075] ----------- | | +--* LCL_VAR long V04 loc1 + [000077] ----------- | | \--* CNS_INT long 1 + [000079] ----------- | \--* CNS_INT long 8 + [000083] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB12 [0011] +STMT00012 ( 0x0A0[E--] ... ??? ) + [000086] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000085] --C-------- arg0 \--* RET_EXPR int (for [000084]) + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] --C-------- * JTRUE void + [000089] --C-------- \--* EQ int + [000087] --C-------- +--* RET_EXPR int (for [000086]) + [000088] ----------- \--* CNS_INT int 0 + +------------ BB13 [0012] [0C8..0CE) (return), preds={BB12} succs={} + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + [000239] ----------- * RETURN int + [000238] ----------- \--* CAST int <- long + [000237] ----------- \--* SUB long + [000234] ----------- +--* LCL_VAR long V04 loc1 + [000236] ----------- \--* CNS_INT long 1 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} + +***** BB14 [0013] +STMT00014 ( 0x0CE[E--] ... 0x0F4 ) + [000101] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000099] ---XG------ arg0 +--* IND long + [000098] ----------- | \--* ADD byref + [000091] ----------- | +--* LCL_VAR byref V00 arg0 + [000097] ----------- | \--* MUL long + [000095] ----------- | +--* SUB long + [000092] ----------- | | +--* LCL_VAR long V04 loc1 + [000094] ----------- | | \--* CNS_INT long 2 + [000096] ----------- | \--* CNS_INT long 8 + [000100] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB14 [0013] +STMT00015 ( 0x0CE[E--] ... ??? ) + [000103] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000102] --C-------- arg0 \--* RET_EXPR int (for [000101]) + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] --C-------- * JTRUE void + [000106] --C-------- \--* EQ int + [000104] --C-------- +--* RET_EXPR int (for [000103]) + [000105] ----------- \--* CNS_INT int 0 + +------------ BB15 [0014] [0F6..0FC) (return), preds={BB14} succs={} + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + [000233] ----------- * RETURN int + [000232] ----------- \--* CAST int <- long + [000231] ----------- \--* SUB long + [000228] ----------- +--* LCL_VAR long V04 loc1 + [000230] ----------- \--* CNS_INT long 2 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} + +***** BB16 [0015] +STMT00017 ( 0x0FC[E--] ... 0x122 ) + [000118] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000116] ---XG------ arg0 +--* IND long + [000115] ----------- | \--* ADD byref + [000108] ----------- | +--* LCL_VAR byref V00 arg0 + [000114] ----------- | \--* MUL long + [000112] ----------- | +--* SUB long + [000109] ----------- | | +--* LCL_VAR long V04 loc1 + [000111] ----------- | | \--* CNS_INT long 3 + [000113] ----------- | \--* CNS_INT long 8 + [000117] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB16 [0015] +STMT00018 ( 0x0FC[E--] ... ??? ) + [000120] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000119] --C-------- arg0 \--* RET_EXPR int (for [000118]) + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] --C-------- * JTRUE void + [000123] --C-------- \--* EQ int + [000121] --C-------- +--* RET_EXPR int (for [000120]) + [000122] ----------- \--* CNS_INT int 0 + +------------ BB17 [0016] [124..12A) (return), preds={BB16} succs={} + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) + [000227] ----------- * RETURN int + [000226] ----------- \--* CAST int <- long + [000225] ----------- \--* SUB long + [000222] ----------- +--* LCL_VAR long V04 loc1 + [000224] ----------- \--* CNS_INT long 3 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00020 ( 0x12A[E--] ... 0x150 ) + [000135] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000133] ---XG------ arg0 +--* IND long + [000132] ----------- | \--* ADD byref + [000125] ----------- | +--* LCL_VAR byref V00 arg0 + [000131] ----------- | \--* MUL long + [000129] ----------- | +--* SUB long + [000126] ----------- | | +--* LCL_VAR long V04 loc1 + [000128] ----------- | | \--* CNS_INT long 4 + [000130] ----------- | \--* CNS_INT long 8 + [000134] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB18 [0017] +STMT00021 ( 0x12A[E--] ... ??? ) + [000137] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000136] --C-------- arg0 \--* RET_EXPR int (for [000135]) + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] --C-------- * JTRUE void + [000140] --C-------- \--* EQ int + [000138] --C-------- +--* RET_EXPR int (for [000137]) + [000139] ----------- \--* CNS_INT int 0 + +------------ BB19 [0018] [152..158) (return), preds={BB18} succs={} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) + [000221] ----------- * RETURN int + [000220] ----------- \--* CAST int <- long + [000219] ----------- \--* SUB long + [000216] ----------- +--* LCL_VAR long V04 loc1 + [000218] ----------- \--* CNS_INT long 4 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00023 ( 0x158[E--] ... 0x17E ) + [000152] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000150] ---XG------ arg0 +--* IND long + [000149] ----------- | \--* ADD byref + [000142] ----------- | +--* LCL_VAR byref V00 arg0 + [000148] ----------- | \--* MUL long + [000146] ----------- | +--* SUB long + [000143] ----------- | | +--* LCL_VAR long V04 loc1 + [000145] ----------- | | \--* CNS_INT long 5 + [000147] ----------- | \--* CNS_INT long 8 + [000151] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB20 [0019] +STMT00024 ( 0x158[E--] ... ??? ) + [000154] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000153] --C-------- arg0 \--* RET_EXPR int (for [000152]) + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) + [000158] --C-------- * JTRUE void + [000157] --C-------- \--* EQ int + [000155] --C-------- +--* RET_EXPR int (for [000154]) + [000156] ----------- \--* CNS_INT int 0 + +------------ BB21 [0020] [180..186) (return), preds={BB20} succs={} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) + [000215] ----------- * RETURN int + [000214] ----------- \--* CAST int <- long + [000213] ----------- \--* SUB long + [000210] ----------- +--* LCL_VAR long V04 loc1 + [000212] ----------- \--* CNS_INT long 5 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00026 ( 0x186[E--] ... 0x1AC ) + [000169] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000167] ---XG------ arg0 +--* IND long + [000166] ----------- | \--* ADD byref + [000159] ----------- | +--* LCL_VAR byref V00 arg0 + [000165] ----------- | \--* MUL long + [000163] ----------- | +--* SUB long + [000160] ----------- | | +--* LCL_VAR long V04 loc1 + [000162] ----------- | | \--* CNS_INT long 6 + [000164] ----------- | \--* CNS_INT long 8 + [000168] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB22 [0021] +STMT00027 ( 0x186[E--] ... ??? ) + [000171] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000170] --C-------- arg0 \--* RET_EXPR int (for [000169]) + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) + [000175] --C-------- * JTRUE void + [000174] --C-------- \--* EQ int + [000172] --C-------- +--* RET_EXPR int (for [000171]) + [000173] ----------- \--* CNS_INT int 0 + +------------ BB23 [0022] [1AE..1B4) (return), preds={BB22} succs={} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) + [000209] ----------- * RETURN int + [000208] ----------- \--* CAST int <- long + [000207] ----------- \--* SUB long + [000204] ----------- +--* LCL_VAR long V04 loc1 + [000206] ----------- \--* CNS_INT long 6 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00029 ( 0x1B4[E--] ... 0x1DA ) + [000186] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000184] ---XG------ arg0 +--* IND long + [000183] ----------- | \--* ADD byref + [000176] ----------- | +--* LCL_VAR byref V00 arg0 + [000182] ----------- | \--* MUL long + [000180] ----------- | +--* SUB long + [000177] ----------- | | +--* LCL_VAR long V04 loc1 + [000179] ----------- | | \--* CNS_INT long 7 + [000181] ----------- | \--* CNS_INT long 8 + [000185] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB24 [0023] +STMT00030 ( 0x1B4[E--] ... ??? ) + [000188] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000187] --C-------- arg0 \--* RET_EXPR int (for [000186]) + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] --C-------- * JTRUE void + [000191] --C-------- \--* EQ int + [000189] --C-------- +--* RET_EXPR int (for [000188]) + [000190] ----------- \--* CNS_INT int 0 + +------------ BB25 [0024] [1DC..1E2) (return), preds={BB24} succs={} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) + [000203] ----------- * RETURN int + [000202] ----------- \--* CAST int <- long + [000201] ----------- \--* SUB long + [000198] ----------- +--* LCL_VAR long V04 loc1 + [000200] ----------- \--* CNS_INT long 7 + +------------ BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + [000197] DA--------- * STORE_LCL_VAR long V04 loc1 + [000196] ----------- \--* SUB long + [000193] ----------- +--* LCL_VAR long V04 loc1 + [000195] ----------- \--* CNS_INT long 8 + +------------ BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} + +***** BB27 [0026] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + [000055] ----------- * JTRUE void + [000054] ----------- \--* GE int + [000052] ----------- +--* LCL_VAR int V02 arg2 + [000053] ----------- \--* CNS_INT int 8 + +------------ BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} + +***** BB28 [0027] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) + [000246] ----------- * JTRUE void + [000245] ----------- \--* LT int + [000243] ----------- +--* LCL_VAR int V02 arg2 + [000244] ----------- \--* CNS_INT int 4 + +------------ BB29 [0028] [1F5..21F) -> BB31(0.5),BB30(0.5) (cond), preds={BB28} succs={BB30,BB31} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) + [000282] DA--------- * STORE_LCL_VAR int V02 arg2 + [000281] ----------- \--* SUB int + [000279] ----------- +--* LCL_VAR int V02 arg2 + [000280] ----------- \--* CNS_INT int 4 + +***** BB29 [0028] +STMT00051 ( 0x1FA[E--] ... 0x21D ) + [000290] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000288] ---XG------ arg0 +--* IND long + [000287] ----------- | \--* ADD byref + [000283] ----------- | +--* LCL_VAR byref V00 arg0 + [000286] ----------- | \--* MUL long + [000284] ----------- | +--* LCL_VAR long V04 loc1 + [000285] ----------- | \--* CNS_INT long 8 + [000289] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB29 [0028] +STMT00052 ( 0x1FA[E--] ... ??? ) + [000292] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000291] --C-------- arg0 \--* RET_EXPR int (for [000290]) + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] --C-------- * JTRUE void + [000295] --C-------- \--* EQ int + [000293] --C-------- +--* RET_EXPR int (for [000292]) + [000294] ----------- \--* CNS_INT int 0 + +------------ BB30 [0029] [21F..222) (return), preds={BB29} succs={} + +***** BB30 [0029] +STMT00067 ( 0x21F[E--] ... 0x221 ) + [000373] ----------- * RETURN int + [000372] ----------- \--* CAST int <- long + [000371] ----------- \--* LCL_VAR long V04 loc1 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00054 ( 0x222[E--] ... 0x248 ) + [000307] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000305] ---XG------ arg0 +--* IND long + [000304] ----------- | \--* ADD byref + [000297] ----------- | +--* LCL_VAR byref V00 arg0 + [000303] ----------- | \--* MUL long + [000301] ----------- | +--* SUB long + [000298] ----------- | | +--* LCL_VAR long V04 loc1 + [000300] ----------- | | \--* CNS_INT long 1 + [000302] ----------- | \--* CNS_INT long 8 + [000306] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB31 [0030] +STMT00055 ( 0x222[E--] ... ??? ) + [000309] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000308] --C-------- arg0 \--* RET_EXPR int (for [000307]) + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) + [000313] --C-------- * JTRUE void + [000312] --C-------- \--* EQ int + [000310] --C-------- +--* RET_EXPR int (for [000309]) + [000311] ----------- \--* CNS_INT int 0 + +------------ BB32 [0031] [24A..250) (return), preds={BB31} succs={} + +***** BB32 [0031] +STMT00066 ( 0x24A[E--] ... 0x24F ) + [000370] ----------- * RETURN int + [000369] ----------- \--* CAST int <- long + [000368] ----------- \--* SUB long + [000365] ----------- +--* LCL_VAR long V04 loc1 + [000367] ----------- \--* CNS_INT long 1 + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00057 ( 0x250[E--] ... 0x276 ) + [000324] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000322] ---XG------ arg0 +--* IND long + [000321] ----------- | \--* ADD byref + [000314] ----------- | +--* LCL_VAR byref V00 arg0 + [000320] ----------- | \--* MUL long + [000318] ----------- | +--* SUB long + [000315] ----------- | | +--* LCL_VAR long V04 loc1 + [000317] ----------- | | \--* CNS_INT long 2 + [000319] ----------- | \--* CNS_INT long 8 + [000323] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB33 [0032] +STMT00058 ( 0x250[E--] ... ??? ) + [000326] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000325] --C-------- arg0 \--* RET_EXPR int (for [000324]) + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) + [000330] --C-------- * JTRUE void + [000329] --C-------- \--* EQ int + [000327] --C-------- +--* RET_EXPR int (for [000326]) + [000328] ----------- \--* CNS_INT int 0 + +------------ BB34 [0033] [278..27E) (return), preds={BB33} succs={} + +***** BB34 [0033] +STMT00065 ( 0x278[E--] ... 0x27D ) + [000364] ----------- * RETURN int + [000363] ----------- \--* CAST int <- long + [000362] ----------- \--* SUB long + [000359] ----------- +--* LCL_VAR long V04 loc1 + [000361] ----------- \--* CNS_INT long 2 + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00060 ( 0x27E[E--] ... 0x2A4 ) + [000341] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000339] ---XG------ arg0 +--* IND long + [000338] ----------- | \--* ADD byref + [000331] ----------- | +--* LCL_VAR byref V00 arg0 + [000337] ----------- | \--* MUL long + [000335] ----------- | +--* SUB long + [000332] ----------- | | +--* LCL_VAR long V04 loc1 + [000334] ----------- | | \--* CNS_INT long 3 + [000336] ----------- | \--* CNS_INT long 8 + [000340] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB35 [0034] +STMT00061 ( 0x27E[E--] ... ??? ) + [000343] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000342] --C-------- arg0 \--* RET_EXPR int (for [000341]) + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] --C-------- * JTRUE void + [000346] --C-------- \--* EQ int + [000344] --C-------- +--* RET_EXPR int (for [000343]) + [000345] ----------- \--* CNS_INT int 0 + +------------ BB36 [0035] [2A6..2AC) (return), preds={BB35} succs={} + +***** BB36 [0035] +STMT00064 ( 0x2A6[E--] ... 0x2AB ) + [000358] ----------- * RETURN int + [000357] ----------- \--* CAST int <- long + [000356] ----------- \--* SUB long + [000353] ----------- +--* LCL_VAR long V04 loc1 + [000355] ----------- \--* CNS_INT long 3 + +------------ BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) + [000352] DA--------- * STORE_LCL_VAR long V04 loc1 + [000351] ----------- \--* SUB long + [000348] ----------- +--* LCL_VAR long V04 loc1 + [000350] ----------- \--* CNS_INT long 4 + +------------ BB38 [0037] [2B3..2DD) -> BB40(0.5),BB39(0.5) (cond), preds={BB41} succs={BB39,BB40} + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) + [000254] DA--------- * STORE_LCL_VAR int V02 arg2 + [000253] ----------- \--* SUB int + [000251] ----------- +--* LCL_VAR int V02 arg2 + [000252] ----------- \--* CNS_INT int 1 + +***** BB38 [0037] +STMT00044 ( 0x2B8[E--] ... 0x2DB ) + [000262] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000260] ---XG------ arg0 +--* IND long + [000259] ----------- | \--* ADD byref + [000255] ----------- | +--* LCL_VAR byref V00 arg0 + [000258] ----------- | \--* MUL long + [000256] ----------- | +--* LCL_VAR long V04 loc1 + [000257] ----------- | \--* CNS_INT long 8 + [000261] ----------- arg1 \--* LCL_VAR long V01 arg1 + +***** BB38 [0037] +STMT00045 ( 0x2B8[E--] ... ??? ) + [000264] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000263] --C-------- arg0 \--* RET_EXPR int (for [000262]) + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] --C-------- * JTRUE void + [000267] --C-------- \--* EQ int + [000265] --C-------- +--* RET_EXPR int (for [000264]) + [000266] ----------- \--* CNS_INT int 0 + +------------ BB39 [0038] [2DD..2E0) (return), preds={BB38} succs={} + +***** BB39 [0038] +STMT00048 ( 0x2DD[E--] ... 0x2DF ) + [000276] ----------- * RETURN int + [000275] ----------- \--* CAST int <- long + [000274] ----------- \--* LCL_VAR long V04 loc1 + +------------ BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + [000273] DA--------- * STORE_LCL_VAR long V04 loc1 + [000272] ----------- \--* SUB long + [000269] ----------- +--* LCL_VAR long V04 loc1 + [000271] ----------- \--* CNS_INT long 1 + +------------ BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} + +***** BB41 [0040] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + [000250] ----------- * JTRUE void + [000249] ----------- \--* GT int + [000247] ----------- +--* LCL_VAR int V02 arg2 + [000248] ----------- \--* CNS_INT int 0 + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} + +***** BB42 [0041] +STMT00049 ( 0x2E9[E--] ... 0x2EA ) + [000278] ----------- * RETURN int + [000277] ----------- \--* CNS_INT int -1 + +------------ BB43 [0042] [2EB..2F2) -> BB46(1) (always), preds={BB08} succs={BB46} + +------------ BB46 [0045] [303..30A) -> BB49(1) (always), preds={BB43} succs={BB49} + +------------ BB49 [0048] [31B..324) (return), preds={BB46} succs={} + +***** BB49 [0048] +STMT00004 ( 0x31B[E--] ... 0x323 ) + [000045] --C-G------ * RETURN int + [000044] --C-G------ \--* CALL int + [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 + [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 + [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Save contexts around async calls + +*************** Finishing PHASE Save contexts around async calls [no changes] + +*************** Starting PHASE Morph - Init + +*************** Finishing PHASE Morph - Init [no changes] + +*************** Starting PHASE Morph - Inlining +INLINER: no pgo data +Expanding INLINE_CANDIDATE in statement STMT00000 in BB01: +STMT00000 ( 0x000[E--] ... 0x01C ) + [000006] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String) (exactContextHandle=0x4000000000420549) + [000004] ----------- arg0 +--* EQ int + [000002] ----------- | +--* LT int + [000000] ----------- | | +--* LCL_VAR int V02 arg2 + [000001] ----------- | | \--* CNS_INT int 0 + [000003] ----------- | \--* CNS_INT int 0 + [000005] ----------- arg1 \--* CNS_STR ref +IL argument #0: + [000004] ----------- * EQ int + [000002] ----------- +--* LT int + [000000] ----------- | +--* LCL_VAR int V02 arg2 + [000001] ----------- | \--* CNS_INT int 0 + [000003] ----------- \--* CNS_INT int 0 + +IL argument #1: is a constant or invariant + [000005] ----------- * CNS_STR ref + +INLINER: inlineInfo.tokenLookupContextHandle for System.Diagnostics.Debug:Assert(bool,System.String) set to 0x4000000000420549: + +Invoking compiler for the inlinee method System.Diagnostics.Debug:Assert(bool,System.String) : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 03 ldarg.1 +IL_0002 7e ca 00 00 04 ldsfld 0x40000CA +IL_0007 28 83 5c 00 06 call 0x6005C83 +IL_000c 2a ret + +INLINER impTokenLookupContextHandle for System.Diagnostics.Debug:Assert(bool,System.String) is 0x4000000000420549. +0 return registers for return type void +*************** In compInitDebuggingInfo() for System.Diagnostics.Debug:Assert(bool,System.String) +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.Diagnostics.Debug:Assert(bool,System.String) +Jump targets: + none +New Basic Block BB01 [0049] created. +BB01 [0049] [000..00D) +Basic block list for 'System.Diagnostics.Debug:Assert(bool,System.String)' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0049] 1 1 [000..00D) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000006] Starting PHASE Pre-import + +*************** Inline @[000006] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0049] 1 1 [000..00D) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0049] [000..00D) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000006] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000006] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0049] 1 1 [000..00D) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0049] [000..00D) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000006] Starting PHASE Canonicalize entry + +*************** Inline @[000006] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000006] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.Diagnostics.Debug:Assert(bool,System.String)' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 6 (V06 tmp1) called for Inlining Arg. +Marked V06 as a single def temp + + [ 1] 1 (0x001) ldarg.1 + [ 2] 2 (0x002) ldsfld 040000CA + [ 3] 7 (0x007) call 06005C83 +In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 + +CheckCanInline: fetching method info for inline candidate Assert -- context 4000000000420549 +Class context: System.Diagnostics.Debug +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Diagnostics.Debug:Assert(bool,System.String)' calling 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00068 ( 0x000[E--] ... ??? ) <- INLRT @ 0x000[E--] + [000378] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String,System.String) (exactContextHandle=0x4000000000420549) + [000375] ----------- arg0 +--* LCL_VAR int V06 tmp1 + [000376] ----------- arg1 +--* CNS_STR ref + [000377] ----------- arg2 \--* CNS_STR ref "" + + [ 0] 12 (0x00c) ret +*************** Inline @[000006] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0049] 1 1 [000..00D) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0049] [000..00D) (return), preds={} succs={} + +***** BB01 [0049] +STMT00068 ( 0x000[E--] ... ??? ) <- INLRT @ 0x000[E--] + [000378] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String,System.String) (exactContextHandle=0x4000000000420549) + [000375] ----------- arg0 +--* LCL_VAR int V06 tmp1 + [000376] ----------- arg1 +--* CNS_STR ref + [000377] ----------- arg2 \--* CNS_STR ref "" + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000006] Starting PHASE Early QMARK expansion + +*************** Inline @[000006] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0049] 1 1 [000..00D) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0049] [000..00D) (return), preds={} succs={} + +***** BB01 [0049] +STMT00068 ( 0x000[E--] ... ??? ) <- INLRT @ 0x000[E--] + [000378] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String,System.String) (exactContextHandle=0x4000000000420549) + [000375] ----------- arg0 +--* LCL_VAR int V06 tmp1 + [000376] ----------- arg1 +--* CNS_STR ref + [000377] ----------- arg2 \--* CNS_STR ref "" + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000006] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000006] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000006] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000006] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000006] Starting PHASE Post-import + +*************** Inline @[000006] Finishing PHASE Post-import [no changes] + +*************** Inline @[000006] Starting PHASE Save contexts around async calls + +*************** Inline @[000006] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000006] ----------- + +Arguments setup: + +Inlinee method body: +Inserting inlinee code into BB01 + +STMT00068 ( INL01 @ 0x000[E--] ... ??? ) <- INLRT @ 0x000[E--] + [000378] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String,System.String) (exactContextHandle=0x4000000000420549) + [000374] ----------- arg0 +--* CAST int <- ubyte <- int + [000004] ----------- | \--* EQ int + [000002] ----------- | +--* LT int + [000000] ----------- | | +--* LCL_VAR int V02 arg2 + [000001] ----------- | | \--* CNS_INT int 0 + [000003] ----------- | \--* CNS_INT int 0 + [000376] ----------- arg1 +--* CNS_STR ref + [000377] ----------- arg2 \--* CNS_STR ref "" + +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.Diagnostics.Debug:Assert(bool,System.String) (13 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Diagnostics.Debug:Assert(bool,System.String)' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' +Expanding INLINE_CANDIDATE in statement STMT00068 in BB01: +STMT00068 ( INL01 @ 0x000[E--] ... ??? ) <- INLRT @ 0x000[E--] + [000378] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String,System.String) (exactContextHandle=0x4000000000420549) + [000374] ----------- arg0 +--* CAST int <- ubyte <- int + [000004] ----------- | \--* EQ int + [000002] ----------- | +--* LT int + [000000] ----------- | | +--* LCL_VAR int V02 arg2 + [000001] ----------- | | \--* CNS_INT int 0 + [000003] ----------- | \--* CNS_INT int 0 + [000376] ----------- arg1 +--* CNS_STR ref + [000377] ----------- arg2 \--* CNS_STR ref "" +IL argument #0: + [000374] ----------- * CAST int <- ubyte <- int + [000004] ----------- \--* EQ int + [000002] ----------- +--* LT int + [000000] ----------- | +--* LCL_VAR int V02 arg2 + [000001] ----------- | \--* CNS_INT int 0 + [000003] ----------- \--* CNS_INT int 0 + +IL argument #1: is a constant or invariant + [000376] ----------- * CNS_STR ref + +IL argument #2: is a constant or invariant + [000377] ----------- * CNS_STR ref "" + +INLINER: inlineInfo.tokenLookupContextHandle for System.Diagnostics.Debug:Assert(bool,System.String,System.String) set to 0x4000000000420549: + +Invoking compiler for the inlinee method System.Diagnostics.Debug:Assert(bool,System.String,System.String) : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 2d 07 brtrue.s 7 (IL_000a) +IL_0003 03 ldarg.1 +IL_0004 04 ldarg.2 +IL_0005 28 88 5c 00 06 call 0x6005C88 +IL_000a 2a ret + +INLINER impTokenLookupContextHandle for System.Diagnostics.Debug:Assert(bool,System.String,System.String) is 0x4000000000420549. +0 return registers for return type void +*************** In compInitDebuggingInfo() for System.Diagnostics.Debug:Assert(bool,System.String,System.String) +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.Diagnostics.Debug:Assert(bool,System.String,System.String) +Jump targets: + IL_000a +New Basic Block BB01 [0050] created. +BB01 [0050] [000..003) +New Basic Block BB02 [0051] created. +BB02 [0051] [003..00A) +New Basic Block BB03 [0052] created. +BB03 [0052] [00A..00B) +setting likelihood of BB01 -> BB03 to 0.5 +setting likelihood of BB01 -> BB02 to 0.5 +setting likelihood of BB02 -> BB03 to 1 +Basic block list for 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0050] 1 1 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) +BB02 [0051] 1 BB01 1 [003..00A)-> BB03(1) (always) +BB03 [0052] 2 BB01,BB02 1 [00A..00B) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000378] Starting PHASE Pre-import + +*************** Inline @[000378] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0050] 1 1 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) +BB02 [0051] 1 BB01 1 [003..00A)-> BB03(1) (always) +BB03 [0052] 2 BB01,BB02 1 [00A..00B) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0050] [000..003) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} + +------------ BB02 [0051] [003..00A) -> BB03(1) (always), preds={BB01} succs={BB03} + +------------ BB03 [0052] [00A..00B) (return), preds={BB01,BB02} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000378] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000378] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0050] 1 1 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) +BB02 [0051] 1 BB01 1 [003..00A)-> BB03(1) (always) +BB03 [0052] 2 BB01,BB02 1 [00A..00B) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0050] [000..003) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} + +------------ BB02 [0051] [003..00A) -> BB03(1) (always), preds={BB01} succs={BB03} + +------------ BB03 [0052] [00A..00B) (return), preds={BB01,BB02} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000378] Starting PHASE Canonicalize entry + +*************** Inline @[000378] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000378] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 7 (V07 tmp2) called for Inlining Arg. +Marked V07 as a single def temp + + [ 1] 1 (0x001) brtrue.s + +STMT00069 ( 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000384] ----------- * JTRUE void + [000383] ----------- \--* NE int + [000381] ----------- +--* LCL_VAR int V07 tmp2 + [000382] ----------- \--* CNS_INT int 0 + +impImportBlockPending for BB02 + +impImportBlockPending for BB03 + +Importing BB03 (PC=010) of 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' + [ 0] 10 (0x00a) ret +Importing BB02 (PC=003) of 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' + [ 0] 3 (0x003) ldarg.1 + [ 1] 4 (0x004) ldarg.2 + [ 2] 5 (0x005) call 06005C88 +In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 +INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' calling '' + +INLINER: Not marking NOINLINE because it's already marked as such +INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' + + +STMT00070 ( 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000387] --C-G------ * CALL void + [000385] ----------- arg0 +--* CNS_STR ref + [000386] ----------- arg1 \--* CNS_STR ref "" + +impImportBlockPending for BB03 + +** Note: inlinee IL was partially imported -- imported 10 of 11 bytes of method IL + +*************** Inline @[000378] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0050] 1 1 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) i +BB02 [0051] 1 BB01 1 [003..00A)-> BB03(1) (always) i +BB03 [0052] 2 BB01,BB02 1 [00A..00B) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0050] [000..003) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} + +***** BB01 [0050] +STMT00069 ( 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000384] ----------- * JTRUE void + [000383] ----------- \--* NE int + [000381] ----------- +--* LCL_VAR int V07 tmp2 + [000382] ----------- \--* CNS_INT int 0 + +------------ BB02 [0051] [003..00A) -> BB03(1) (always), preds={BB01} succs={BB03} + +***** BB02 [0051] +STMT00070 ( 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000387] --C-G------ * CALL void + [000385] ----------- arg0 +--* CNS_STR ref + [000386] ----------- arg1 \--* CNS_STR ref "" + +------------ BB03 [0052] [00A..00B) (return), preds={BB01,BB02} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000378] Starting PHASE Early QMARK expansion + +*************** Inline @[000378] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0050] 1 1 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) i +BB02 [0051] 1 BB01 1 [003..00A)-> BB03(1) (always) i +BB03 [0052] 2 BB01,BB02 1 [00A..00B) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0050] [000..003) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} + +***** BB01 [0050] +STMT00069 ( 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000384] ----------- * JTRUE void + [000383] ----------- \--* NE int + [000381] ----------- +--* LCL_VAR int V07 tmp2 + [000382] ----------- \--* CNS_INT int 0 + +------------ BB02 [0051] [003..00A) -> BB03(1) (always), preds={BB01} succs={BB03} + +***** BB02 [0051] +STMT00070 ( 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000387] --C-G------ * CALL void + [000385] ----------- arg0 +--* CNS_STR ref + [000386] ----------- arg1 \--* CNS_STR ref "" + +------------ BB03 [0052] [00A..00B) (return), preds={BB01,BB02} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000378] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000378] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000378] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000378] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000378] Starting PHASE Post-import + +*************** Inline @[000378] Finishing PHASE Post-import [no changes] + +*************** Inline @[000378] Starting PHASE Save contexts around async calls + +*************** Inline @[000378] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000378] ----------- + +Arguments setup: + +Inlinee method body: +Inserting inlinee blocks +New Basic Block BB50 [0053] created. +BB02 previous predecessor was BB01, now is BB50 +setting likelihood of BB50 -> BB02 from 1 to 1 +setting likelihood of BB01 -> BB50 to 1 +split BB01 after the inlinee call site; after portion is now BB50 + +Convert bbKind of BB53 to BBJ_ALWAYS to bottom block BB50 +setting likelihood of BB53 -> BB50 to 1 +fgInlineAppendStatements: no gc ref inline locals. + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB51 [0050] 1 BB01 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB51 1 [000..001)-> BB53(1) (always) i +BB53 [0052] 2 BB51,BB52 1 [000..001)-> BB50(1) (always) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB51 [0050] [000..001) -> BB53(0.5),BB52(0.5) (cond), preds={BB01} succs={BB52,BB53} + +***** BB51 [0050] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000384] ----------- * JTRUE void + [000383] ----------- \--* NE int + [000380] ----------- +--* CAST int <- ubyte <- int + [000374] ----------- | \--* CAST int <- ubyte <- int + [000004] ----------- | \--* EQ int + [000002] ----------- | +--* LT int + [000000] ----------- | | +--* LCL_VAR int V02 arg2 + [000001] ----------- | | \--* CNS_INT int 0 + [000003] ----------- | \--* CNS_INT int 0 + [000382] ----------- \--* CNS_INT int 0 + +------------ BB52 [0051] [000..001) -> BB53(1) (always), preds={BB51} succs={BB53} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000387] --C-G------ * CALL void + [000385] ----------- arg0 +--* CNS_STR ref + [000386] ----------- arg1 \--* CNS_STR ref "" + +------------ BB53 [0052] [000..001) -> BB50(1) (always), preds={BB51,BB52} succs={BB50} + +------------------------------------------------------------------------------------------------------------------- +Successfully inlined System.Diagnostics.Debug:Assert(bool,System.String,System.String) (11 IL bytes) (depth 2) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- + +BB01 becomes empty +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' +Expanding INLINE_CANDIDATE in statement STMT00002 in BB07: +STMT00002 ( 0x04B[E--] ... 0x05B ) + [000027] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String) (exactContextHandle=0x4000000000420549) + [000025] ----------- arg0 +--* LCL_VAR int V03 loc0 + [000026] ----------- arg1 \--* CNS_STR ref +IL argument #0: is a local var + [000025] ----------- * LCL_VAR int V03 loc0 + +IL argument #1: is a constant or invariant + [000026] ----------- * CNS_STR ref + +INLINER: inlineInfo.tokenLookupContextHandle for System.Diagnostics.Debug:Assert(bool,System.String) set to 0x4000000000420549: + +Invoking compiler for the inlinee method System.Diagnostics.Debug:Assert(bool,System.String) : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 03 ldarg.1 +IL_0002 7e ca 00 00 04 ldsfld 0x40000CA +IL_0007 28 83 5c 00 06 call 0x6005C83 +IL_000c 2a ret + +INLINER impTokenLookupContextHandle for System.Diagnostics.Debug:Assert(bool,System.String) is 0x4000000000420549. +0 return registers for return type void +*************** In compInitDebuggingInfo() for System.Diagnostics.Debug:Assert(bool,System.String) +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.Diagnostics.Debug:Assert(bool,System.String) +Jump targets: + none +New Basic Block BB01 [0054] created. +BB01 [0054] [000..00D) +Basic block list for 'System.Diagnostics.Debug:Assert(bool,System.String)' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0054] 1 1 [000..00D) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000027] Starting PHASE Pre-import + +*************** Inline @[000027] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0054] 1 1 [000..00D) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0054] [000..00D) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000027] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000027] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0054] 1 1 [000..00D) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0054] [000..00D) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000027] Starting PHASE Canonicalize entry + +*************** Inline @[000027] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000027] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.Diagnostics.Debug:Assert(bool,System.String)' + [ 0] 0 (0x000) ldarg.0 + [ 1] 1 (0x001) ldarg.1 + [ 2] 2 (0x002) ldsfld 040000CA + [ 3] 7 (0x007) call 06005C83 +In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 + +CheckCanInline: fetching method info for inline candidate Assert -- context 4000000000420549 +Class context: System.Diagnostics.Debug +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Diagnostics.Debug:Assert(bool,System.String)' calling 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' +INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' + + +STMT00071 ( 0x000[E--] ... ??? ) <- INLRT @ 0x04B[E--] + [000391] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String,System.String) (exactContextHandle=0x4000000000420549) + [000025] ----------- arg0 +--* LCL_VAR int V03 loc0 + [000389] ----------- arg1 +--* CNS_STR ref + [000390] ----------- arg2 \--* CNS_STR ref "" + + [ 0] 12 (0x00c) ret +*************** Inline @[000027] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0054] 1 1 [000..00D) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0054] [000..00D) (return), preds={} succs={} + +***** BB01 [0054] +STMT00071 ( 0x000[E--] ... ??? ) <- INLRT @ 0x04B[E--] + [000391] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String,System.String) (exactContextHandle=0x4000000000420549) + [000025] ----------- arg0 +--* LCL_VAR int V03 loc0 + [000389] ----------- arg1 +--* CNS_STR ref + [000390] ----------- arg2 \--* CNS_STR ref "" + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000027] Starting PHASE Early QMARK expansion + +*************** Inline @[000027] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0054] 1 1 [000..00D) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0054] [000..00D) (return), preds={} succs={} + +***** BB01 [0054] +STMT00071 ( 0x000[E--] ... ??? ) <- INLRT @ 0x04B[E--] + [000391] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String,System.String) (exactContextHandle=0x4000000000420549) + [000025] ----------- arg0 +--* LCL_VAR int V03 loc0 + [000389] ----------- arg1 +--* CNS_STR ref + [000390] ----------- arg2 \--* CNS_STR ref "" + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000027] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000027] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000027] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000027] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000027] Starting PHASE Post-import + +*************** Inline @[000027] Finishing PHASE Post-import [no changes] + +*************** Inline @[000027] Starting PHASE Save contexts around async calls + +*************** Inline @[000027] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000027] ----------- + +Arguments setup: + +Inlinee method body: +Inserting inlinee code into BB07 + +STMT00071 ( INL03 @ 0x000[E--] ... ??? ) <- INLRT @ 0x04B[E--] + [000391] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String,System.String) (exactContextHandle=0x4000000000420549) + [000025] ----------- arg0 +--* LCL_VAR int V03 loc0 + [000389] ----------- arg1 +--* CNS_STR ref + [000390] ----------- arg2 \--* CNS_STR ref "" + +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.Diagnostics.Debug:Assert(bool,System.String) (13 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Diagnostics.Debug:Assert(bool,System.String)' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' +Expanding INLINE_CANDIDATE in statement STMT00071 in BB07: +STMT00071 ( INL03 @ 0x000[E--] ... ??? ) <- INLRT @ 0x04B[E--] + [000391] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String,System.String) (exactContextHandle=0x4000000000420549) + [000025] ----------- arg0 +--* LCL_VAR int V03 loc0 + [000389] ----------- arg1 +--* CNS_STR ref + [000390] ----------- arg2 \--* CNS_STR ref "" +IL argument #0: is a local var + [000025] ----------- * LCL_VAR int V03 loc0 + +IL argument #1: is a constant or invariant + [000389] ----------- * CNS_STR ref + +IL argument #2: is a constant or invariant + [000390] ----------- * CNS_STR ref "" + +INLINER: inlineInfo.tokenLookupContextHandle for System.Diagnostics.Debug:Assert(bool,System.String,System.String) set to 0x4000000000420549: + +Invoking compiler for the inlinee method System.Diagnostics.Debug:Assert(bool,System.String,System.String) : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 2d 07 brtrue.s 7 (IL_000a) +IL_0003 03 ldarg.1 +IL_0004 04 ldarg.2 +IL_0005 28 88 5c 00 06 call 0x6005C88 +IL_000a 2a ret + +INLINER impTokenLookupContextHandle for System.Diagnostics.Debug:Assert(bool,System.String,System.String) is 0x4000000000420549. +0 return registers for return type void +*************** In compInitDebuggingInfo() for System.Diagnostics.Debug:Assert(bool,System.String,System.String) +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.Diagnostics.Debug:Assert(bool,System.String,System.String) +Jump targets: + IL_000a +New Basic Block BB01 [0055] created. +BB01 [0055] [000..003) +New Basic Block BB02 [0056] created. +BB02 [0056] [003..00A) +New Basic Block BB03 [0057] created. +BB03 [0057] [00A..00B) +setting likelihood of BB01 -> BB03 to 0.5 +setting likelihood of BB01 -> BB02 to 0.5 +setting likelihood of BB02 -> BB03 to 1 +Basic block list for 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0055] 1 1 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) +BB02 [0056] 1 BB01 1 [003..00A)-> BB03(1) (always) +BB03 [0057] 2 BB01,BB02 1 [00A..00B) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000391] Starting PHASE Pre-import + +*************** Inline @[000391] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0055] 1 1 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) +BB02 [0056] 1 BB01 1 [003..00A)-> BB03(1) (always) +BB03 [0057] 2 BB01,BB02 1 [00A..00B) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0055] [000..003) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} + +------------ BB02 [0056] [003..00A) -> BB03(1) (always), preds={BB01} succs={BB03} + +------------ BB03 [0057] [00A..00B) (return), preds={BB01,BB02} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000391] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000391] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0055] 1 1 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) +BB02 [0056] 1 BB01 1 [003..00A)-> BB03(1) (always) +BB03 [0057] 2 BB01,BB02 1 [00A..00B) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0055] [000..003) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} + +------------ BB02 [0056] [003..00A) -> BB03(1) (always), preds={BB01} succs={BB03} + +------------ BB03 [0057] [00A..00B) (return), preds={BB01,BB02} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000391] Starting PHASE Canonicalize entry + +*************** Inline @[000391] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000391] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' + [ 0] 0 (0x000) ldarg.0 + [ 1] 1 (0x001) brtrue.s + +STMT00072 ( 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000395] ----------- * JTRUE void + [000394] ----------- \--* NE int + [000025] ----------- +--* LCL_VAR int V03 loc0 + [000393] ----------- \--* CNS_INT int 0 + +impImportBlockPending for BB02 + +impImportBlockPending for BB03 + +Importing BB03 (PC=010) of 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' + [ 0] 10 (0x00a) ret +Importing BB02 (PC=003) of 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' + [ 0] 3 (0x003) ldarg.1 + [ 1] 4 (0x004) ldarg.2 + [ 2] 5 (0x005) call 06005C88 +In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 +INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' calling '' + +INLINER: Not marking NOINLINE because it's already marked as such +INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' + + +STMT00073 ( 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000398] --C-G------ * CALL void + [000396] ----------- arg0 +--* CNS_STR ref + [000397] ----------- arg1 \--* CNS_STR ref "" + +impImportBlockPending for BB03 + +** Note: inlinee IL was partially imported -- imported 10 of 11 bytes of method IL + +*************** Inline @[000391] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0055] 1 1 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) i +BB02 [0056] 1 BB01 1 [003..00A)-> BB03(1) (always) i +BB03 [0057] 2 BB01,BB02 1 [00A..00B) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0055] [000..003) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} + +***** BB01 [0055] +STMT00072 ( 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000395] ----------- * JTRUE void + [000394] ----------- \--* NE int + [000025] ----------- +--* LCL_VAR int V03 loc0 + [000393] ----------- \--* CNS_INT int 0 + +------------ BB02 [0056] [003..00A) -> BB03(1) (always), preds={BB01} succs={BB03} + +***** BB02 [0056] +STMT00073 ( 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000398] --C-G------ * CALL void + [000396] ----------- arg0 +--* CNS_STR ref + [000397] ----------- arg1 \--* CNS_STR ref "" + +------------ BB03 [0057] [00A..00B) (return), preds={BB01,BB02} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000391] Starting PHASE Early QMARK expansion + +*************** Inline @[000391] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0055] 1 1 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) i +BB02 [0056] 1 BB01 1 [003..00A)-> BB03(1) (always) i +BB03 [0057] 2 BB01,BB02 1 [00A..00B) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0055] [000..003) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} + +***** BB01 [0055] +STMT00072 ( 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000395] ----------- * JTRUE void + [000394] ----------- \--* NE int + [000025] ----------- +--* LCL_VAR int V03 loc0 + [000393] ----------- \--* CNS_INT int 0 + +------------ BB02 [0056] [003..00A) -> BB03(1) (always), preds={BB01} succs={BB03} + +***** BB02 [0056] +STMT00073 ( 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000398] --C-G------ * CALL void + [000396] ----------- arg0 +--* CNS_STR ref + [000397] ----------- arg1 \--* CNS_STR ref "" + +------------ BB03 [0057] [00A..00B) (return), preds={BB01,BB02} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000391] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000391] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000391] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000391] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000391] Starting PHASE Post-import + +*************** Inline @[000391] Finishing PHASE Post-import [no changes] + +*************** Inline @[000391] Starting PHASE Save contexts around async calls + +*************** Inline @[000391] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000391] ----------- + +Arguments setup: + +Inlinee method body: +Inserting inlinee blocks +New Basic Block BB54 [0058] created. +BB08 previous predecessor was BB07, now is BB54 +setting likelihood of BB54 -> BB08 from 1 to 1 +setting likelihood of BB07 -> BB54 to 1 +split BB07 after the inlinee call site; after portion is now BB54 + +Convert bbKind of BB57 to BBJ_ALWAYS to bottom block BB54 +setting likelihood of BB57 -> BB54 to 1 +fgInlineAppendStatements: no gc ref inline locals. + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB55 [0055] 1 BB07 1 [04B..04C)-> BB57(0.5),BB56(0.5) ( cond ) i +BB56 [0056] 1 BB55 1 [04B..04C)-> BB57(1) (always) i +BB57 [0057] 2 BB55,BB56 1 [04B..04C)-> BB54(1) (always) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB55 [0055] [04B..04C) -> BB57(0.5),BB56(0.5) (cond), preds={BB07} succs={BB56,BB57} + +***** BB55 [0055] +STMT00072 ( INL04 @ 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000395] ----------- * JTRUE void + [000394] ----------- \--* NE int + [000025] ----------- +--* LCL_VAR int V03 loc0 + [000393] ----------- \--* CNS_INT int 0 + +------------ BB56 [0056] [04B..04C) -> BB57(1) (always), preds={BB55} succs={BB57} + +***** BB56 [0056] +STMT00073 ( INL04 @ 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000398] --C-G------ * CALL void + [000396] ----------- arg0 +--* CNS_STR ref + [000397] ----------- arg1 \--* CNS_STR ref "" + +------------ BB57 [0057] [04B..04C) -> BB54(1) (always), preds={BB55,BB56} succs={BB54} + +------------------------------------------------------------------------------------------------------------------- +Successfully inlined System.Diagnostics.Debug:Assert(bool,System.String,System.String) (11 IL bytes) (depth 2) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- + +BB07 becomes empty +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' +Expanding INLINE_CANDIDATE in statement STMT00008 in BB10: +STMT00008 ( 0x078[E--] ... 0x09B ) + [000067] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000065] ---XG------ arg0 +--* IND long + [000064] ----------- | \--* ADD byref + [000060] ----------- | +--* LCL_VAR byref V00 arg0 + [000063] ----------- | \--* MUL long + [000061] ----------- | +--* LCL_VAR long V04 loc1 + [000062] ----------- | \--* CNS_INT long 8 + [000066] ----------- arg1 \--* LCL_VAR long V01 arg1 +IL argument #0: has global refs has side effects + [000065] ---XG------ * IND long + [000064] ----------- \--* ADD byref + [000060] ----------- +--* LCL_VAR byref V00 arg0 + [000063] ----------- \--* MUL long + [000061] ----------- +--* LCL_VAR long V04 loc1 + [000062] ----------- \--* CNS_INT long 8 + +IL argument #1: is a local var + [000066] ----------- * LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: + +Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 03 ldarg.1 +IL_0002 fe 01 ceq +IL_0004 2a ret + +INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +Jump targets: + none +New Basic Block BB01 [0059] created. +BB01 [0059] [000..005) +Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0059] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000067] Starting PHASE Pre-import + +*************** Inline @[000067] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0059] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0059] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000067] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000067] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0059] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0059] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000067] Starting PHASE Canonicalize entry + +*************** Inline @[000067] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000067] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 8 (V08 tmp3) called for Inlining Arg. +Marked V08 as a single def temp + + [ 1] 1 (0x001) ldarg.1 + [ 2] 2 (0x002) ceq + [ 1] 4 (0x004) ret + + Inlinee Return expression (before normalization) => + [000401] ----------- * EQ int + [000400] ----------- +--* LCL_VAR long V08 tmp3 + [000066] ----------- \--* LCL_VAR long V01 arg1 + + + Inlinee Return expression (after normalization) => + [000401] ----------- * EQ int + [000400] ----------- +--* LCL_VAR long V08 tmp3 + [000066] ----------- \--* LCL_VAR long V01 arg1 + +** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL + +*************** Inline @[000067] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0059] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0059] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000067] Starting PHASE Early QMARK expansion + +*************** Inline @[000067] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0059] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0059] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000067] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000067] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000067] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000067] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000067] Starting PHASE Post-import + +*************** Inline @[000067] Finishing PHASE Post-import [no changes] + +*************** Inline @[000067] Starting PHASE Save contexts around async calls + +*************** Inline @[000067] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000067] ----------- + +Arguments setup: +STMT00074 ( 0x078[E--] ... ??? ) + [000402] DA-XG------ * STORE_LCL_VAR long V08 tmp3 + [000065] ---XG------ \--* IND long + [000064] ----------- \--* ADD byref + [000060] ----------- +--* LCL_VAR byref V00 arg0 + [000063] ----------- \--* MUL long + [000061] ----------- +--* LCL_VAR long V04 loc1 + [000062] ----------- \--* CNS_INT long 8 + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000068] with [000401] + [000068] --C-------- * RET_EXPR int (for [000067]) -> [000401] + +Inserting the inline return expression + [000401] ----------- * EQ int + [000400] ----------- +--* LCL_VAR long V08 tmp3 + [000066] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00009 in BB10: +STMT00009 ( 0x078[E--] ... ??? ) + [000069] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000401] ----------- arg0 \--* EQ int + [000400] ----------- +--* LCL_VAR long V08 tmp3 + [000066] ----------- \--* LCL_VAR long V01 arg1 +IL argument #0: + [000401] ----------- * EQ int + [000400] ----------- +--* LCL_VAR long V08 tmp3 + [000066] ----------- \--* LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: + +Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 2a ret + +INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +Jump targets: + none +New Basic Block BB01 [0060] created. +BB01 [0060] [000..002) +Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0060] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000069] Starting PHASE Pre-import + +*************** Inline @[000069] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0060] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0060] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000069] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000069] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0060] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0060] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000069] Starting PHASE Canonicalize entry + +*************** Inline @[000069] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000069] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 9 (V09 tmp4) called for Inlining Arg. +Marked V09 as a single def temp + + [ 1] 1 (0x001) ret + + Inlinee Return expression (before normalization) => + [000405] ----------- * LCL_VAR int V09 tmp4 + + + Inlinee Return expression (after normalization) => + [000405] ----------- * LCL_VAR int V09 tmp4 + +** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL + +*************** Inline @[000069] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0060] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0060] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000069] Starting PHASE Early QMARK expansion + +*************** Inline @[000069] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0060] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0060] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000069] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000069] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000069] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000069] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000069] Starting PHASE Post-import + +*************** Inline @[000069] Finishing PHASE Post-import [no changes] + +*************** Inline @[000069] Starting PHASE Save contexts around async calls + +*************** Inline @[000069] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000069] ----------- + +Arguments setup: + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000070] with [000404] + [000070] --C-------- * RET_EXPR int (for [000069]) -> [000404] + +Inserting the inline return expression + [000404] ----------- * CAST int <- ubyte <- int + [000401] ----------- \--* EQ int + [000400] ----------- +--* LCL_VAR long V08 tmp3 + [000066] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00011 in BB12: +STMT00011 ( 0x0A0[E--] ... 0x0C6 ) + [000084] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000082] ---XG------ arg0 +--* IND long + [000081] ----------- | \--* ADD byref + [000074] ----------- | +--* LCL_VAR byref V00 arg0 + [000080] ----------- | \--* MUL long + [000078] ----------- | +--* SUB long + [000075] ----------- | | +--* LCL_VAR long V04 loc1 + [000077] ----------- | | \--* CNS_INT long 1 + [000079] ----------- | \--* CNS_INT long 8 + [000083] ----------- arg1 \--* LCL_VAR long V01 arg1 +IL argument #0: has global refs has side effects + [000082] ---XG------ * IND long + [000081] ----------- \--* ADD byref + [000074] ----------- +--* LCL_VAR byref V00 arg0 + [000080] ----------- \--* MUL long + [000078] ----------- +--* SUB long + [000075] ----------- | +--* LCL_VAR long V04 loc1 + [000077] ----------- | \--* CNS_INT long 1 + [000079] ----------- \--* CNS_INT long 8 + +IL argument #1: is a local var + [000083] ----------- * LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: + +Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 03 ldarg.1 +IL_0002 fe 01 ceq +IL_0004 2a ret + +INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +Jump targets: + none +New Basic Block BB01 [0061] created. +BB01 [0061] [000..005) +Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0061] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000084] Starting PHASE Pre-import + +*************** Inline @[000084] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0061] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0061] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000084] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000084] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0061] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0061] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000084] Starting PHASE Canonicalize entry + +*************** Inline @[000084] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000084] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 10 (V10 tmp5) called for Inlining Arg. +Marked V10 as a single def temp + + [ 1] 1 (0x001) ldarg.1 + [ 2] 2 (0x002) ceq + [ 1] 4 (0x004) ret + + Inlinee Return expression (before normalization) => + [000408] ----------- * EQ int + [000407] ----------- +--* LCL_VAR long V10 tmp5 + [000083] ----------- \--* LCL_VAR long V01 arg1 + + + Inlinee Return expression (after normalization) => + [000408] ----------- * EQ int + [000407] ----------- +--* LCL_VAR long V10 tmp5 + [000083] ----------- \--* LCL_VAR long V01 arg1 + +** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL + +*************** Inline @[000084] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0061] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0061] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000084] Starting PHASE Early QMARK expansion + +*************** Inline @[000084] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0061] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0061] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000084] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000084] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000084] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000084] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000084] Starting PHASE Post-import + +*************** Inline @[000084] Finishing PHASE Post-import [no changes] + +*************** Inline @[000084] Starting PHASE Save contexts around async calls + +*************** Inline @[000084] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000084] ----------- + +Arguments setup: +STMT00075 ( 0x0A0[E--] ... ??? ) + [000409] DA-XG------ * STORE_LCL_VAR long V10 tmp5 + [000082] ---XG------ \--* IND long + [000081] ----------- \--* ADD byref + [000074] ----------- +--* LCL_VAR byref V00 arg0 + [000080] ----------- \--* MUL long + [000078] ----------- +--* SUB long + [000075] ----------- | +--* LCL_VAR long V04 loc1 + [000077] ----------- | \--* CNS_INT long 1 + [000079] ----------- \--* CNS_INT long 8 + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000085] with [000408] + [000085] --C-------- * RET_EXPR int (for [000084]) -> [000408] + +Inserting the inline return expression + [000408] ----------- * EQ int + [000407] ----------- +--* LCL_VAR long V10 tmp5 + [000083] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00012 in BB12: +STMT00012 ( 0x0A0[E--] ... ??? ) + [000086] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000408] ----------- arg0 \--* EQ int + [000407] ----------- +--* LCL_VAR long V10 tmp5 + [000083] ----------- \--* LCL_VAR long V01 arg1 +IL argument #0: + [000408] ----------- * EQ int + [000407] ----------- +--* LCL_VAR long V10 tmp5 + [000083] ----------- \--* LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: + +Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 2a ret + +INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +Jump targets: + none +New Basic Block BB01 [0062] created. +BB01 [0062] [000..002) +Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0062] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000086] Starting PHASE Pre-import + +*************** Inline @[000086] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0062] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0062] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000086] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000086] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0062] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0062] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000086] Starting PHASE Canonicalize entry + +*************** Inline @[000086] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000086] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 11 (V11 tmp6) called for Inlining Arg. +Marked V11 as a single def temp + + [ 1] 1 (0x001) ret + + Inlinee Return expression (before normalization) => + [000412] ----------- * LCL_VAR int V11 tmp6 + + + Inlinee Return expression (after normalization) => + [000412] ----------- * LCL_VAR int V11 tmp6 + +** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL + +*************** Inline @[000086] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0062] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0062] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000086] Starting PHASE Early QMARK expansion + +*************** Inline @[000086] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0062] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0062] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000086] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000086] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000086] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000086] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000086] Starting PHASE Post-import + +*************** Inline @[000086] Finishing PHASE Post-import [no changes] + +*************** Inline @[000086] Starting PHASE Save contexts around async calls + +*************** Inline @[000086] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000086] ----------- + +Arguments setup: + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000087] with [000411] + [000087] --C-------- * RET_EXPR int (for [000086]) -> [000411] + +Inserting the inline return expression + [000411] ----------- * CAST int <- ubyte <- int + [000408] ----------- \--* EQ int + [000407] ----------- +--* LCL_VAR long V10 tmp5 + [000083] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00014 in BB14: +STMT00014 ( 0x0CE[E--] ... 0x0F4 ) + [000101] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000099] ---XG------ arg0 +--* IND long + [000098] ----------- | \--* ADD byref + [000091] ----------- | +--* LCL_VAR byref V00 arg0 + [000097] ----------- | \--* MUL long + [000095] ----------- | +--* SUB long + [000092] ----------- | | +--* LCL_VAR long V04 loc1 + [000094] ----------- | | \--* CNS_INT long 2 + [000096] ----------- | \--* CNS_INT long 8 + [000100] ----------- arg1 \--* LCL_VAR long V01 arg1 +IL argument #0: has global refs has side effects + [000099] ---XG------ * IND long + [000098] ----------- \--* ADD byref + [000091] ----------- +--* LCL_VAR byref V00 arg0 + [000097] ----------- \--* MUL long + [000095] ----------- +--* SUB long + [000092] ----------- | +--* LCL_VAR long V04 loc1 + [000094] ----------- | \--* CNS_INT long 2 + [000096] ----------- \--* CNS_INT long 8 + +IL argument #1: is a local var + [000100] ----------- * LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: + +Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 03 ldarg.1 +IL_0002 fe 01 ceq +IL_0004 2a ret + +INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +Jump targets: + none +New Basic Block BB01 [0063] created. +BB01 [0063] [000..005) +Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0063] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000101] Starting PHASE Pre-import + +*************** Inline @[000101] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0063] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0063] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000101] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000101] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0063] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0063] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000101] Starting PHASE Canonicalize entry + +*************** Inline @[000101] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000101] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 12 (V12 tmp7) called for Inlining Arg. +Marked V12 as a single def temp + + [ 1] 1 (0x001) ldarg.1 + [ 2] 2 (0x002) ceq + [ 1] 4 (0x004) ret + + Inlinee Return expression (before normalization) => + [000415] ----------- * EQ int + [000414] ----------- +--* LCL_VAR long V12 tmp7 + [000100] ----------- \--* LCL_VAR long V01 arg1 + + + Inlinee Return expression (after normalization) => + [000415] ----------- * EQ int + [000414] ----------- +--* LCL_VAR long V12 tmp7 + [000100] ----------- \--* LCL_VAR long V01 arg1 + +** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL + +*************** Inline @[000101] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0063] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0063] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000101] Starting PHASE Early QMARK expansion + +*************** Inline @[000101] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0063] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0063] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000101] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000101] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000101] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000101] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000101] Starting PHASE Post-import + +*************** Inline @[000101] Finishing PHASE Post-import [no changes] + +*************** Inline @[000101] Starting PHASE Save contexts around async calls + +*************** Inline @[000101] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000101] ----------- + +Arguments setup: +STMT00076 ( 0x0CE[E--] ... ??? ) + [000416] DA-XG------ * STORE_LCL_VAR long V12 tmp7 + [000099] ---XG------ \--* IND long + [000098] ----------- \--* ADD byref + [000091] ----------- +--* LCL_VAR byref V00 arg0 + [000097] ----------- \--* MUL long + [000095] ----------- +--* SUB long + [000092] ----------- | +--* LCL_VAR long V04 loc1 + [000094] ----------- | \--* CNS_INT long 2 + [000096] ----------- \--* CNS_INT long 8 + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000102] with [000415] + [000102] --C-------- * RET_EXPR int (for [000101]) -> [000415] + +Inserting the inline return expression + [000415] ----------- * EQ int + [000414] ----------- +--* LCL_VAR long V12 tmp7 + [000100] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00015 in BB14: +STMT00015 ( 0x0CE[E--] ... ??? ) + [000103] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000415] ----------- arg0 \--* EQ int + [000414] ----------- +--* LCL_VAR long V12 tmp7 + [000100] ----------- \--* LCL_VAR long V01 arg1 +IL argument #0: + [000415] ----------- * EQ int + [000414] ----------- +--* LCL_VAR long V12 tmp7 + [000100] ----------- \--* LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: + +Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 2a ret + +INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +Jump targets: + none +New Basic Block BB01 [0064] created. +BB01 [0064] [000..002) +Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0064] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000103] Starting PHASE Pre-import + +*************** Inline @[000103] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0064] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0064] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000103] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000103] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0064] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0064] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000103] Starting PHASE Canonicalize entry + +*************** Inline @[000103] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000103] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 13 (V13 tmp8) called for Inlining Arg. +Marked V13 as a single def temp + + [ 1] 1 (0x001) ret + + Inlinee Return expression (before normalization) => + [000419] ----------- * LCL_VAR int V13 tmp8 + + + Inlinee Return expression (after normalization) => + [000419] ----------- * LCL_VAR int V13 tmp8 + +** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL + +*************** Inline @[000103] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0064] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0064] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000103] Starting PHASE Early QMARK expansion + +*************** Inline @[000103] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0064] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0064] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000103] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000103] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000103] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000103] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000103] Starting PHASE Post-import + +*************** Inline @[000103] Finishing PHASE Post-import [no changes] + +*************** Inline @[000103] Starting PHASE Save contexts around async calls + +*************** Inline @[000103] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000103] ----------- + +Arguments setup: + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000104] with [000418] + [000104] --C-------- * RET_EXPR int (for [000103]) -> [000418] + +Inserting the inline return expression + [000418] ----------- * CAST int <- ubyte <- int + [000415] ----------- \--* EQ int + [000414] ----------- +--* LCL_VAR long V12 tmp7 + [000100] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00017 in BB16: +STMT00017 ( 0x0FC[E--] ... 0x122 ) + [000118] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000116] ---XG------ arg0 +--* IND long + [000115] ----------- | \--* ADD byref + [000108] ----------- | +--* LCL_VAR byref V00 arg0 + [000114] ----------- | \--* MUL long + [000112] ----------- | +--* SUB long + [000109] ----------- | | +--* LCL_VAR long V04 loc1 + [000111] ----------- | | \--* CNS_INT long 3 + [000113] ----------- | \--* CNS_INT long 8 + [000117] ----------- arg1 \--* LCL_VAR long V01 arg1 +IL argument #0: has global refs has side effects + [000116] ---XG------ * IND long + [000115] ----------- \--* ADD byref + [000108] ----------- +--* LCL_VAR byref V00 arg0 + [000114] ----------- \--* MUL long + [000112] ----------- +--* SUB long + [000109] ----------- | +--* LCL_VAR long V04 loc1 + [000111] ----------- | \--* CNS_INT long 3 + [000113] ----------- \--* CNS_INT long 8 + +IL argument #1: is a local var + [000117] ----------- * LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: + +Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 03 ldarg.1 +IL_0002 fe 01 ceq +IL_0004 2a ret + +INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +Jump targets: + none +New Basic Block BB01 [0065] created. +BB01 [0065] [000..005) +Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0065] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000118] Starting PHASE Pre-import + +*************** Inline @[000118] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0065] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0065] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000118] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000118] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0065] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0065] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000118] Starting PHASE Canonicalize entry + +*************** Inline @[000118] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000118] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 14 (V14 tmp9) called for Inlining Arg. +Marked V14 as a single def temp + + [ 1] 1 (0x001) ldarg.1 + [ 2] 2 (0x002) ceq + [ 1] 4 (0x004) ret + + Inlinee Return expression (before normalization) => + [000422] ----------- * EQ int + [000421] ----------- +--* LCL_VAR long V14 tmp9 + [000117] ----------- \--* LCL_VAR long V01 arg1 + + + Inlinee Return expression (after normalization) => + [000422] ----------- * EQ int + [000421] ----------- +--* LCL_VAR long V14 tmp9 + [000117] ----------- \--* LCL_VAR long V01 arg1 + +** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL + +*************** Inline @[000118] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0065] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0065] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000118] Starting PHASE Early QMARK expansion + +*************** Inline @[000118] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0065] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0065] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000118] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000118] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000118] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000118] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000118] Starting PHASE Post-import + +*************** Inline @[000118] Finishing PHASE Post-import [no changes] + +*************** Inline @[000118] Starting PHASE Save contexts around async calls + +*************** Inline @[000118] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000118] ----------- + +Arguments setup: +STMT00077 ( 0x0FC[E--] ... ??? ) + [000423] DA-XG------ * STORE_LCL_VAR long V14 tmp9 + [000116] ---XG------ \--* IND long + [000115] ----------- \--* ADD byref + [000108] ----------- +--* LCL_VAR byref V00 arg0 + [000114] ----------- \--* MUL long + [000112] ----------- +--* SUB long + [000109] ----------- | +--* LCL_VAR long V04 loc1 + [000111] ----------- | \--* CNS_INT long 3 + [000113] ----------- \--* CNS_INT long 8 + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000119] with [000422] + [000119] --C-------- * RET_EXPR int (for [000118]) -> [000422] + +Inserting the inline return expression + [000422] ----------- * EQ int + [000421] ----------- +--* LCL_VAR long V14 tmp9 + [000117] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00018 in BB16: +STMT00018 ( 0x0FC[E--] ... ??? ) + [000120] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000422] ----------- arg0 \--* EQ int + [000421] ----------- +--* LCL_VAR long V14 tmp9 + [000117] ----------- \--* LCL_VAR long V01 arg1 +IL argument #0: + [000422] ----------- * EQ int + [000421] ----------- +--* LCL_VAR long V14 tmp9 + [000117] ----------- \--* LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: + +Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 2a ret + +INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +Jump targets: + none +New Basic Block BB01 [0066] created. +BB01 [0066] [000..002) +Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0066] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000120] Starting PHASE Pre-import + +*************** Inline @[000120] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0066] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0066] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000120] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000120] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0066] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0066] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000120] Starting PHASE Canonicalize entry + +*************** Inline @[000120] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000120] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 15 (V15 tmp10) called for Inlining Arg. +Marked V15 as a single def temp + + [ 1] 1 (0x001) ret + + Inlinee Return expression (before normalization) => + [000426] ----------- * LCL_VAR int V15 tmp10 + + + Inlinee Return expression (after normalization) => + [000426] ----------- * LCL_VAR int V15 tmp10 + +** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL + +*************** Inline @[000120] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0066] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0066] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000120] Starting PHASE Early QMARK expansion + +*************** Inline @[000120] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0066] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0066] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000120] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000120] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000120] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000120] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000120] Starting PHASE Post-import + +*************** Inline @[000120] Finishing PHASE Post-import [no changes] + +*************** Inline @[000120] Starting PHASE Save contexts around async calls + +*************** Inline @[000120] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000120] ----------- + +Arguments setup: + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000121] with [000425] + [000121] --C-------- * RET_EXPR int (for [000120]) -> [000425] + +Inserting the inline return expression + [000425] ----------- * CAST int <- ubyte <- int + [000422] ----------- \--* EQ int + [000421] ----------- +--* LCL_VAR long V14 tmp9 + [000117] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00020 in BB18: +STMT00020 ( 0x12A[E--] ... 0x150 ) + [000135] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000133] ---XG------ arg0 +--* IND long + [000132] ----------- | \--* ADD byref + [000125] ----------- | +--* LCL_VAR byref V00 arg0 + [000131] ----------- | \--* MUL long + [000129] ----------- | +--* SUB long + [000126] ----------- | | +--* LCL_VAR long V04 loc1 + [000128] ----------- | | \--* CNS_INT long 4 + [000130] ----------- | \--* CNS_INT long 8 + [000134] ----------- arg1 \--* LCL_VAR long V01 arg1 +IL argument #0: has global refs has side effects + [000133] ---XG------ * IND long + [000132] ----------- \--* ADD byref + [000125] ----------- +--* LCL_VAR byref V00 arg0 + [000131] ----------- \--* MUL long + [000129] ----------- +--* SUB long + [000126] ----------- | +--* LCL_VAR long V04 loc1 + [000128] ----------- | \--* CNS_INT long 4 + [000130] ----------- \--* CNS_INT long 8 + +IL argument #1: is a local var + [000134] ----------- * LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: + +Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 03 ldarg.1 +IL_0002 fe 01 ceq +IL_0004 2a ret + +INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +Jump targets: + none +New Basic Block BB01 [0067] created. +BB01 [0067] [000..005) +Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0067] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000135] Starting PHASE Pre-import + +*************** Inline @[000135] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0067] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0067] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000135] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000135] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0067] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0067] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000135] Starting PHASE Canonicalize entry + +*************** Inline @[000135] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000135] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 16 (V16 tmp11) called for Inlining Arg. +Marked V16 as a single def temp + + [ 1] 1 (0x001) ldarg.1 + [ 2] 2 (0x002) ceq + [ 1] 4 (0x004) ret + + Inlinee Return expression (before normalization) => + [000429] ----------- * EQ int + [000428] ----------- +--* LCL_VAR long V16 tmp11 + [000134] ----------- \--* LCL_VAR long V01 arg1 + + + Inlinee Return expression (after normalization) => + [000429] ----------- * EQ int + [000428] ----------- +--* LCL_VAR long V16 tmp11 + [000134] ----------- \--* LCL_VAR long V01 arg1 + +** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL + +*************** Inline @[000135] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0067] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0067] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000135] Starting PHASE Early QMARK expansion + +*************** Inline @[000135] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0067] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0067] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000135] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000135] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000135] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000135] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000135] Starting PHASE Post-import + +*************** Inline @[000135] Finishing PHASE Post-import [no changes] + +*************** Inline @[000135] Starting PHASE Save contexts around async calls + +*************** Inline @[000135] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000135] ----------- + +Arguments setup: +STMT00078 ( 0x12A[E--] ... ??? ) + [000430] DA-XG------ * STORE_LCL_VAR long V16 tmp11 + [000133] ---XG------ \--* IND long + [000132] ----------- \--* ADD byref + [000125] ----------- +--* LCL_VAR byref V00 arg0 + [000131] ----------- \--* MUL long + [000129] ----------- +--* SUB long + [000126] ----------- | +--* LCL_VAR long V04 loc1 + [000128] ----------- | \--* CNS_INT long 4 + [000130] ----------- \--* CNS_INT long 8 + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000136] with [000429] + [000136] --C-------- * RET_EXPR int (for [000135]) -> [000429] + +Inserting the inline return expression + [000429] ----------- * EQ int + [000428] ----------- +--* LCL_VAR long V16 tmp11 + [000134] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00021 in BB18: +STMT00021 ( 0x12A[E--] ... ??? ) + [000137] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000429] ----------- arg0 \--* EQ int + [000428] ----------- +--* LCL_VAR long V16 tmp11 + [000134] ----------- \--* LCL_VAR long V01 arg1 +IL argument #0: + [000429] ----------- * EQ int + [000428] ----------- +--* LCL_VAR long V16 tmp11 + [000134] ----------- \--* LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: + +Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 2a ret + +INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +Jump targets: + none +New Basic Block BB01 [0068] created. +BB01 [0068] [000..002) +Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0068] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000137] Starting PHASE Pre-import + +*************** Inline @[000137] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0068] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0068] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000137] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000137] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0068] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0068] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000137] Starting PHASE Canonicalize entry + +*************** Inline @[000137] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000137] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 17 (V17 tmp12) called for Inlining Arg. +Marked V17 as a single def temp + + [ 1] 1 (0x001) ret + + Inlinee Return expression (before normalization) => + [000433] ----------- * LCL_VAR int V17 tmp12 + + + Inlinee Return expression (after normalization) => + [000433] ----------- * LCL_VAR int V17 tmp12 + +** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL + +*************** Inline @[000137] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0068] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0068] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000137] Starting PHASE Early QMARK expansion + +*************** Inline @[000137] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0068] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0068] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000137] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000137] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000137] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000137] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000137] Starting PHASE Post-import + +*************** Inline @[000137] Finishing PHASE Post-import [no changes] + +*************** Inline @[000137] Starting PHASE Save contexts around async calls + +*************** Inline @[000137] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000137] ----------- + +Arguments setup: + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000138] with [000432] + [000138] --C-------- * RET_EXPR int (for [000137]) -> [000432] + +Inserting the inline return expression + [000432] ----------- * CAST int <- ubyte <- int + [000429] ----------- \--* EQ int + [000428] ----------- +--* LCL_VAR long V16 tmp11 + [000134] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00023 in BB20: +STMT00023 ( 0x158[E--] ... 0x17E ) + [000152] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000150] ---XG------ arg0 +--* IND long + [000149] ----------- | \--* ADD byref + [000142] ----------- | +--* LCL_VAR byref V00 arg0 + [000148] ----------- | \--* MUL long + [000146] ----------- | +--* SUB long + [000143] ----------- | | +--* LCL_VAR long V04 loc1 + [000145] ----------- | | \--* CNS_INT long 5 + [000147] ----------- | \--* CNS_INT long 8 + [000151] ----------- arg1 \--* LCL_VAR long V01 arg1 +IL argument #0: has global refs has side effects + [000150] ---XG------ * IND long + [000149] ----------- \--* ADD byref + [000142] ----------- +--* LCL_VAR byref V00 arg0 + [000148] ----------- \--* MUL long + [000146] ----------- +--* SUB long + [000143] ----------- | +--* LCL_VAR long V04 loc1 + [000145] ----------- | \--* CNS_INT long 5 + [000147] ----------- \--* CNS_INT long 8 + +IL argument #1: is a local var + [000151] ----------- * LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: + +Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 03 ldarg.1 +IL_0002 fe 01 ceq +IL_0004 2a ret + +INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +Jump targets: + none +New Basic Block BB01 [0069] created. +BB01 [0069] [000..005) +Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0069] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000152] Starting PHASE Pre-import + +*************** Inline @[000152] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0069] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0069] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000152] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000152] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0069] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0069] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000152] Starting PHASE Canonicalize entry + +*************** Inline @[000152] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000152] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 18 (V18 tmp13) called for Inlining Arg. +Marked V18 as a single def temp + + [ 1] 1 (0x001) ldarg.1 + [ 2] 2 (0x002) ceq + [ 1] 4 (0x004) ret + + Inlinee Return expression (before normalization) => + [000436] ----------- * EQ int + [000435] ----------- +--* LCL_VAR long V18 tmp13 + [000151] ----------- \--* LCL_VAR long V01 arg1 + + + Inlinee Return expression (after normalization) => + [000436] ----------- * EQ int + [000435] ----------- +--* LCL_VAR long V18 tmp13 + [000151] ----------- \--* LCL_VAR long V01 arg1 + +** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL + +*************** Inline @[000152] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0069] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0069] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000152] Starting PHASE Early QMARK expansion + +*************** Inline @[000152] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0069] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0069] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000152] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000152] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000152] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000152] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000152] Starting PHASE Post-import + +*************** Inline @[000152] Finishing PHASE Post-import [no changes] + +*************** Inline @[000152] Starting PHASE Save contexts around async calls + +*************** Inline @[000152] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000152] ----------- + +Arguments setup: +STMT00079 ( 0x158[E--] ... ??? ) + [000437] DA-XG------ * STORE_LCL_VAR long V18 tmp13 + [000150] ---XG------ \--* IND long + [000149] ----------- \--* ADD byref + [000142] ----------- +--* LCL_VAR byref V00 arg0 + [000148] ----------- \--* MUL long + [000146] ----------- +--* SUB long + [000143] ----------- | +--* LCL_VAR long V04 loc1 + [000145] ----------- | \--* CNS_INT long 5 + [000147] ----------- \--* CNS_INT long 8 + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000153] with [000436] + [000153] --C-------- * RET_EXPR int (for [000152]) -> [000436] + +Inserting the inline return expression + [000436] ----------- * EQ int + [000435] ----------- +--* LCL_VAR long V18 tmp13 + [000151] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00024 in BB20: +STMT00024 ( 0x158[E--] ... ??? ) + [000154] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000436] ----------- arg0 \--* EQ int + [000435] ----------- +--* LCL_VAR long V18 tmp13 + [000151] ----------- \--* LCL_VAR long V01 arg1 +IL argument #0: + [000436] ----------- * EQ int + [000435] ----------- +--* LCL_VAR long V18 tmp13 + [000151] ----------- \--* LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: + +Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 2a ret + +INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +Jump targets: + none +New Basic Block BB01 [0070] created. +BB01 [0070] [000..002) +Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0070] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000154] Starting PHASE Pre-import + +*************** Inline @[000154] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0070] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0070] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000154] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000154] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0070] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0070] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000154] Starting PHASE Canonicalize entry + +*************** Inline @[000154] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000154] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 19 (V19 tmp14) called for Inlining Arg. +Marked V19 as a single def temp + + [ 1] 1 (0x001) ret + + Inlinee Return expression (before normalization) => + [000440] ----------- * LCL_VAR int V19 tmp14 + + + Inlinee Return expression (after normalization) => + [000440] ----------- * LCL_VAR int V19 tmp14 + +** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL + +*************** Inline @[000154] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0070] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0070] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000154] Starting PHASE Early QMARK expansion + +*************** Inline @[000154] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0070] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0070] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000154] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000154] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000154] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000154] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000154] Starting PHASE Post-import + +*************** Inline @[000154] Finishing PHASE Post-import [no changes] + +*************** Inline @[000154] Starting PHASE Save contexts around async calls + +*************** Inline @[000154] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000154] ----------- + +Arguments setup: + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000155] with [000439] + [000155] --C-------- * RET_EXPR int (for [000154]) -> [000439] + +Inserting the inline return expression + [000439] ----------- * CAST int <- ubyte <- int + [000436] ----------- \--* EQ int + [000435] ----------- +--* LCL_VAR long V18 tmp13 + [000151] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00026 in BB22: +STMT00026 ( 0x186[E--] ... 0x1AC ) + [000169] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000167] ---XG------ arg0 +--* IND long + [000166] ----------- | \--* ADD byref + [000159] ----------- | +--* LCL_VAR byref V00 arg0 + [000165] ----------- | \--* MUL long + [000163] ----------- | +--* SUB long + [000160] ----------- | | +--* LCL_VAR long V04 loc1 + [000162] ----------- | | \--* CNS_INT long 6 + [000164] ----------- | \--* CNS_INT long 8 + [000168] ----------- arg1 \--* LCL_VAR long V01 arg1 +IL argument #0: has global refs has side effects + [000167] ---XG------ * IND long + [000166] ----------- \--* ADD byref + [000159] ----------- +--* LCL_VAR byref V00 arg0 + [000165] ----------- \--* MUL long + [000163] ----------- +--* SUB long + [000160] ----------- | +--* LCL_VAR long V04 loc1 + [000162] ----------- | \--* CNS_INT long 6 + [000164] ----------- \--* CNS_INT long 8 + +IL argument #1: is a local var + [000168] ----------- * LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: + +Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 03 ldarg.1 +IL_0002 fe 01 ceq +IL_0004 2a ret + +INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +Jump targets: + none +New Basic Block BB01 [0071] created. +BB01 [0071] [000..005) +Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0071] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000169] Starting PHASE Pre-import + +*************** Inline @[000169] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0071] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0071] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000169] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000169] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0071] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0071] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000169] Starting PHASE Canonicalize entry + +*************** Inline @[000169] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000169] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 20 (V20 tmp15) called for Inlining Arg. +Marked V20 as a single def temp + + [ 1] 1 (0x001) ldarg.1 + [ 2] 2 (0x002) ceq + [ 1] 4 (0x004) ret + + Inlinee Return expression (before normalization) => + [000443] ----------- * EQ int + [000442] ----------- +--* LCL_VAR long V20 tmp15 + [000168] ----------- \--* LCL_VAR long V01 arg1 + + + Inlinee Return expression (after normalization) => + [000443] ----------- * EQ int + [000442] ----------- +--* LCL_VAR long V20 tmp15 + [000168] ----------- \--* LCL_VAR long V01 arg1 + +** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL + +*************** Inline @[000169] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0071] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0071] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000169] Starting PHASE Early QMARK expansion + +*************** Inline @[000169] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0071] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0071] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000169] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000169] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000169] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000169] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000169] Starting PHASE Post-import + +*************** Inline @[000169] Finishing PHASE Post-import [no changes] + +*************** Inline @[000169] Starting PHASE Save contexts around async calls + +*************** Inline @[000169] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000169] ----------- + +Arguments setup: +STMT00080 ( 0x186[E--] ... ??? ) + [000444] DA-XG------ * STORE_LCL_VAR long V20 tmp15 + [000167] ---XG------ \--* IND long + [000166] ----------- \--* ADD byref + [000159] ----------- +--* LCL_VAR byref V00 arg0 + [000165] ----------- \--* MUL long + [000163] ----------- +--* SUB long + [000160] ----------- | +--* LCL_VAR long V04 loc1 + [000162] ----------- | \--* CNS_INT long 6 + [000164] ----------- \--* CNS_INT long 8 + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000170] with [000443] + [000170] --C-------- * RET_EXPR int (for [000169]) -> [000443] + +Inserting the inline return expression + [000443] ----------- * EQ int + [000442] ----------- +--* LCL_VAR long V20 tmp15 + [000168] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00027 in BB22: +STMT00027 ( 0x186[E--] ... ??? ) + [000171] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000443] ----------- arg0 \--* EQ int + [000442] ----------- +--* LCL_VAR long V20 tmp15 + [000168] ----------- \--* LCL_VAR long V01 arg1 +IL argument #0: + [000443] ----------- * EQ int + [000442] ----------- +--* LCL_VAR long V20 tmp15 + [000168] ----------- \--* LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: + +Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 2a ret + +INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +Jump targets: + none +New Basic Block BB01 [0072] created. +BB01 [0072] [000..002) +Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0072] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000171] Starting PHASE Pre-import + +*************** Inline @[000171] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0072] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0072] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000171] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000171] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0072] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0072] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000171] Starting PHASE Canonicalize entry + +*************** Inline @[000171] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000171] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 21 (V21 tmp16) called for Inlining Arg. +Marked V21 as a single def temp + + [ 1] 1 (0x001) ret + + Inlinee Return expression (before normalization) => + [000447] ----------- * LCL_VAR int V21 tmp16 + + + Inlinee Return expression (after normalization) => + [000447] ----------- * LCL_VAR int V21 tmp16 + +** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL + +*************** Inline @[000171] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0072] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0072] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000171] Starting PHASE Early QMARK expansion + +*************** Inline @[000171] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0072] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0072] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000171] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000171] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000171] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000171] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000171] Starting PHASE Post-import + +*************** Inline @[000171] Finishing PHASE Post-import [no changes] + +*************** Inline @[000171] Starting PHASE Save contexts around async calls + +*************** Inline @[000171] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000171] ----------- + +Arguments setup: + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000172] with [000446] + [000172] --C-------- * RET_EXPR int (for [000171]) -> [000446] + +Inserting the inline return expression + [000446] ----------- * CAST int <- ubyte <- int + [000443] ----------- \--* EQ int + [000442] ----------- +--* LCL_VAR long V20 tmp15 + [000168] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00029 in BB24: +STMT00029 ( 0x1B4[E--] ... 0x1DA ) + [000186] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000184] ---XG------ arg0 +--* IND long + [000183] ----------- | \--* ADD byref + [000176] ----------- | +--* LCL_VAR byref V00 arg0 + [000182] ----------- | \--* MUL long + [000180] ----------- | +--* SUB long + [000177] ----------- | | +--* LCL_VAR long V04 loc1 + [000179] ----------- | | \--* CNS_INT long 7 + [000181] ----------- | \--* CNS_INT long 8 + [000185] ----------- arg1 \--* LCL_VAR long V01 arg1 +IL argument #0: has global refs has side effects + [000184] ---XG------ * IND long + [000183] ----------- \--* ADD byref + [000176] ----------- +--* LCL_VAR byref V00 arg0 + [000182] ----------- \--* MUL long + [000180] ----------- +--* SUB long + [000177] ----------- | +--* LCL_VAR long V04 loc1 + [000179] ----------- | \--* CNS_INT long 7 + [000181] ----------- \--* CNS_INT long 8 + +IL argument #1: is a local var + [000185] ----------- * LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: + +Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 03 ldarg.1 +IL_0002 fe 01 ceq +IL_0004 2a ret + +INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +Jump targets: + none +New Basic Block BB01 [0073] created. +BB01 [0073] [000..005) +Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0073] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000186] Starting PHASE Pre-import + +*************** Inline @[000186] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0073] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0073] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000186] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000186] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0073] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0073] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000186] Starting PHASE Canonicalize entry + +*************** Inline @[000186] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000186] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 22 (V22 tmp17) called for Inlining Arg. +Marked V22 as a single def temp + + [ 1] 1 (0x001) ldarg.1 + [ 2] 2 (0x002) ceq + [ 1] 4 (0x004) ret + + Inlinee Return expression (before normalization) => + [000450] ----------- * EQ int + [000449] ----------- +--* LCL_VAR long V22 tmp17 + [000185] ----------- \--* LCL_VAR long V01 arg1 + + + Inlinee Return expression (after normalization) => + [000450] ----------- * EQ int + [000449] ----------- +--* LCL_VAR long V22 tmp17 + [000185] ----------- \--* LCL_VAR long V01 arg1 + +** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL + +*************** Inline @[000186] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0073] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0073] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000186] Starting PHASE Early QMARK expansion + +*************** Inline @[000186] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0073] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0073] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000186] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000186] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000186] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000186] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000186] Starting PHASE Post-import + +*************** Inline @[000186] Finishing PHASE Post-import [no changes] + +*************** Inline @[000186] Starting PHASE Save contexts around async calls + +*************** Inline @[000186] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000186] ----------- + +Arguments setup: +STMT00081 ( 0x1B4[E--] ... ??? ) + [000451] DA-XG------ * STORE_LCL_VAR long V22 tmp17 + [000184] ---XG------ \--* IND long + [000183] ----------- \--* ADD byref + [000176] ----------- +--* LCL_VAR byref V00 arg0 + [000182] ----------- \--* MUL long + [000180] ----------- +--* SUB long + [000177] ----------- | +--* LCL_VAR long V04 loc1 + [000179] ----------- | \--* CNS_INT long 7 + [000181] ----------- \--* CNS_INT long 8 + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000187] with [000450] + [000187] --C-------- * RET_EXPR int (for [000186]) -> [000450] + +Inserting the inline return expression + [000450] ----------- * EQ int + [000449] ----------- +--* LCL_VAR long V22 tmp17 + [000185] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00030 in BB24: +STMT00030 ( 0x1B4[E--] ... ??? ) + [000188] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000450] ----------- arg0 \--* EQ int + [000449] ----------- +--* LCL_VAR long V22 tmp17 + [000185] ----------- \--* LCL_VAR long V01 arg1 +IL argument #0: + [000450] ----------- * EQ int + [000449] ----------- +--* LCL_VAR long V22 tmp17 + [000185] ----------- \--* LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: + +Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 2a ret + +INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +Jump targets: + none +New Basic Block BB01 [0074] created. +BB01 [0074] [000..002) +Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0074] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000188] Starting PHASE Pre-import + +*************** Inline @[000188] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0074] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0074] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000188] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000188] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0074] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0074] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000188] Starting PHASE Canonicalize entry + +*************** Inline @[000188] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000188] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 23 (V23 tmp18) called for Inlining Arg. +Marked V23 as a single def temp + + [ 1] 1 (0x001) ret + + Inlinee Return expression (before normalization) => + [000454] ----------- * LCL_VAR int V23 tmp18 + + + Inlinee Return expression (after normalization) => + [000454] ----------- * LCL_VAR int V23 tmp18 + +** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL + +*************** Inline @[000188] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0074] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0074] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000188] Starting PHASE Early QMARK expansion + +*************** Inline @[000188] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0074] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0074] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000188] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000188] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000188] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000188] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000188] Starting PHASE Post-import + +*************** Inline @[000188] Finishing PHASE Post-import [no changes] + +*************** Inline @[000188] Starting PHASE Save contexts around async calls + +*************** Inline @[000188] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000188] ----------- + +Arguments setup: + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000189] with [000453] + [000189] --C-------- * RET_EXPR int (for [000188]) -> [000453] + +Inserting the inline return expression + [000453] ----------- * CAST int <- ubyte <- int + [000450] ----------- \--* EQ int + [000449] ----------- +--* LCL_VAR long V22 tmp17 + [000185] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00051 in BB29: +STMT00051 ( 0x1FA[E--] ... 0x21D ) + [000290] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000288] ---XG------ arg0 +--* IND long + [000287] ----------- | \--* ADD byref + [000283] ----------- | +--* LCL_VAR byref V00 arg0 + [000286] ----------- | \--* MUL long + [000284] ----------- | +--* LCL_VAR long V04 loc1 + [000285] ----------- | \--* CNS_INT long 8 + [000289] ----------- arg1 \--* LCL_VAR long V01 arg1 +IL argument #0: has global refs has side effects + [000288] ---XG------ * IND long + [000287] ----------- \--* ADD byref + [000283] ----------- +--* LCL_VAR byref V00 arg0 + [000286] ----------- \--* MUL long + [000284] ----------- +--* LCL_VAR long V04 loc1 + [000285] ----------- \--* CNS_INT long 8 + +IL argument #1: is a local var + [000289] ----------- * LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: + +Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 03 ldarg.1 +IL_0002 fe 01 ceq +IL_0004 2a ret + +INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +Jump targets: + none +New Basic Block BB01 [0075] created. +BB01 [0075] [000..005) +Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0075] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000290] Starting PHASE Pre-import + +*************** Inline @[000290] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0075] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0075] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000290] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000290] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0075] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0075] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000290] Starting PHASE Canonicalize entry + +*************** Inline @[000290] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000290] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 24 (V24 tmp19) called for Inlining Arg. +Marked V24 as a single def temp + + [ 1] 1 (0x001) ldarg.1 + [ 2] 2 (0x002) ceq + [ 1] 4 (0x004) ret + + Inlinee Return expression (before normalization) => + [000457] ----------- * EQ int + [000456] ----------- +--* LCL_VAR long V24 tmp19 + [000289] ----------- \--* LCL_VAR long V01 arg1 + + + Inlinee Return expression (after normalization) => + [000457] ----------- * EQ int + [000456] ----------- +--* LCL_VAR long V24 tmp19 + [000289] ----------- \--* LCL_VAR long V01 arg1 + +** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL + +*************** Inline @[000290] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0075] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0075] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000290] Starting PHASE Early QMARK expansion + +*************** Inline @[000290] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0075] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0075] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000290] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000290] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000290] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000290] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000290] Starting PHASE Post-import + +*************** Inline @[000290] Finishing PHASE Post-import [no changes] + +*************** Inline @[000290] Starting PHASE Save contexts around async calls + +*************** Inline @[000290] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000290] ----------- + +Arguments setup: +STMT00082 ( 0x1FA[E--] ... ??? ) + [000458] DA-XG------ * STORE_LCL_VAR long V24 tmp19 + [000288] ---XG------ \--* IND long + [000287] ----------- \--* ADD byref + [000283] ----------- +--* LCL_VAR byref V00 arg0 + [000286] ----------- \--* MUL long + [000284] ----------- +--* LCL_VAR long V04 loc1 + [000285] ----------- \--* CNS_INT long 8 + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000291] with [000457] + [000291] --C-------- * RET_EXPR int (for [000290]) -> [000457] + +Inserting the inline return expression + [000457] ----------- * EQ int + [000456] ----------- +--* LCL_VAR long V24 tmp19 + [000289] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00052 in BB29: +STMT00052 ( 0x1FA[E--] ... ??? ) + [000292] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000457] ----------- arg0 \--* EQ int + [000456] ----------- +--* LCL_VAR long V24 tmp19 + [000289] ----------- \--* LCL_VAR long V01 arg1 +IL argument #0: + [000457] ----------- * EQ int + [000456] ----------- +--* LCL_VAR long V24 tmp19 + [000289] ----------- \--* LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: + +Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 2a ret + +INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +Jump targets: + none +New Basic Block BB01 [0076] created. +BB01 [0076] [000..002) +Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0076] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000292] Starting PHASE Pre-import + +*************** Inline @[000292] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0076] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0076] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000292] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000292] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0076] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0076] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000292] Starting PHASE Canonicalize entry + +*************** Inline @[000292] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000292] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 25 (V25 tmp20) called for Inlining Arg. +Marked V25 as a single def temp + + [ 1] 1 (0x001) ret + + Inlinee Return expression (before normalization) => + [000461] ----------- * LCL_VAR int V25 tmp20 + + + Inlinee Return expression (after normalization) => + [000461] ----------- * LCL_VAR int V25 tmp20 + +** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL + +*************** Inline @[000292] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0076] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0076] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000292] Starting PHASE Early QMARK expansion + +*************** Inline @[000292] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0076] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0076] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000292] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000292] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000292] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000292] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000292] Starting PHASE Post-import + +*************** Inline @[000292] Finishing PHASE Post-import [no changes] + +*************** Inline @[000292] Starting PHASE Save contexts around async calls + +*************** Inline @[000292] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000292] ----------- + +Arguments setup: + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000293] with [000460] + [000293] --C-------- * RET_EXPR int (for [000292]) -> [000460] + +Inserting the inline return expression + [000460] ----------- * CAST int <- ubyte <- int + [000457] ----------- \--* EQ int + [000456] ----------- +--* LCL_VAR long V24 tmp19 + [000289] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00054 in BB31: +STMT00054 ( 0x222[E--] ... 0x248 ) + [000307] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000305] ---XG------ arg0 +--* IND long + [000304] ----------- | \--* ADD byref + [000297] ----------- | +--* LCL_VAR byref V00 arg0 + [000303] ----------- | \--* MUL long + [000301] ----------- | +--* SUB long + [000298] ----------- | | +--* LCL_VAR long V04 loc1 + [000300] ----------- | | \--* CNS_INT long 1 + [000302] ----------- | \--* CNS_INT long 8 + [000306] ----------- arg1 \--* LCL_VAR long V01 arg1 +IL argument #0: has global refs has side effects + [000305] ---XG------ * IND long + [000304] ----------- \--* ADD byref + [000297] ----------- +--* LCL_VAR byref V00 arg0 + [000303] ----------- \--* MUL long + [000301] ----------- +--* SUB long + [000298] ----------- | +--* LCL_VAR long V04 loc1 + [000300] ----------- | \--* CNS_INT long 1 + [000302] ----------- \--* CNS_INT long 8 + +IL argument #1: is a local var + [000306] ----------- * LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: + +Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 03 ldarg.1 +IL_0002 fe 01 ceq +IL_0004 2a ret + +INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +Jump targets: + none +New Basic Block BB01 [0077] created. +BB01 [0077] [000..005) +Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0077] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000307] Starting PHASE Pre-import + +*************** Inline @[000307] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0077] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0077] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000307] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000307] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0077] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0077] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000307] Starting PHASE Canonicalize entry + +*************** Inline @[000307] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000307] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 26 (V26 tmp21) called for Inlining Arg. +Marked V26 as a single def temp + + [ 1] 1 (0x001) ldarg.1 + [ 2] 2 (0x002) ceq + [ 1] 4 (0x004) ret + + Inlinee Return expression (before normalization) => + [000464] ----------- * EQ int + [000463] ----------- +--* LCL_VAR long V26 tmp21 + [000306] ----------- \--* LCL_VAR long V01 arg1 + + + Inlinee Return expression (after normalization) => + [000464] ----------- * EQ int + [000463] ----------- +--* LCL_VAR long V26 tmp21 + [000306] ----------- \--* LCL_VAR long V01 arg1 + +** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL + +*************** Inline @[000307] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0077] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0077] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000307] Starting PHASE Early QMARK expansion + +*************** Inline @[000307] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0077] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0077] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000307] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000307] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000307] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000307] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000307] Starting PHASE Post-import + +*************** Inline @[000307] Finishing PHASE Post-import [no changes] + +*************** Inline @[000307] Starting PHASE Save contexts around async calls + +*************** Inline @[000307] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000307] ----------- + +Arguments setup: +STMT00083 ( 0x222[E--] ... ??? ) + [000465] DA-XG------ * STORE_LCL_VAR long V26 tmp21 + [000305] ---XG------ \--* IND long + [000304] ----------- \--* ADD byref + [000297] ----------- +--* LCL_VAR byref V00 arg0 + [000303] ----------- \--* MUL long + [000301] ----------- +--* SUB long + [000298] ----------- | +--* LCL_VAR long V04 loc1 + [000300] ----------- | \--* CNS_INT long 1 + [000302] ----------- \--* CNS_INT long 8 + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000308] with [000464] + [000308] --C-------- * RET_EXPR int (for [000307]) -> [000464] + +Inserting the inline return expression + [000464] ----------- * EQ int + [000463] ----------- +--* LCL_VAR long V26 tmp21 + [000306] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00055 in BB31: +STMT00055 ( 0x222[E--] ... ??? ) + [000309] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000464] ----------- arg0 \--* EQ int + [000463] ----------- +--* LCL_VAR long V26 tmp21 + [000306] ----------- \--* LCL_VAR long V01 arg1 +IL argument #0: + [000464] ----------- * EQ int + [000463] ----------- +--* LCL_VAR long V26 tmp21 + [000306] ----------- \--* LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: + +Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 2a ret + +INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +Jump targets: + none +New Basic Block BB01 [0078] created. +BB01 [0078] [000..002) +Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0078] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000309] Starting PHASE Pre-import + +*************** Inline @[000309] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0078] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0078] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000309] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000309] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0078] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0078] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000309] Starting PHASE Canonicalize entry + +*************** Inline @[000309] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000309] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 27 (V27 tmp22) called for Inlining Arg. +Marked V27 as a single def temp + + [ 1] 1 (0x001) ret + + Inlinee Return expression (before normalization) => + [000468] ----------- * LCL_VAR int V27 tmp22 + + + Inlinee Return expression (after normalization) => + [000468] ----------- * LCL_VAR int V27 tmp22 + +** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL + +*************** Inline @[000309] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0078] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0078] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000309] Starting PHASE Early QMARK expansion + +*************** Inline @[000309] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0078] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0078] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000309] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000309] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000309] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000309] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000309] Starting PHASE Post-import + +*************** Inline @[000309] Finishing PHASE Post-import [no changes] + +*************** Inline @[000309] Starting PHASE Save contexts around async calls + +*************** Inline @[000309] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000309] ----------- + +Arguments setup: + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000310] with [000467] + [000310] --C-------- * RET_EXPR int (for [000309]) -> [000467] + +Inserting the inline return expression + [000467] ----------- * CAST int <- ubyte <- int + [000464] ----------- \--* EQ int + [000463] ----------- +--* LCL_VAR long V26 tmp21 + [000306] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00057 in BB33: +STMT00057 ( 0x250[E--] ... 0x276 ) + [000324] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000322] ---XG------ arg0 +--* IND long + [000321] ----------- | \--* ADD byref + [000314] ----------- | +--* LCL_VAR byref V00 arg0 + [000320] ----------- | \--* MUL long + [000318] ----------- | +--* SUB long + [000315] ----------- | | +--* LCL_VAR long V04 loc1 + [000317] ----------- | | \--* CNS_INT long 2 + [000319] ----------- | \--* CNS_INT long 8 + [000323] ----------- arg1 \--* LCL_VAR long V01 arg1 +IL argument #0: has global refs has side effects + [000322] ---XG------ * IND long + [000321] ----------- \--* ADD byref + [000314] ----------- +--* LCL_VAR byref V00 arg0 + [000320] ----------- \--* MUL long + [000318] ----------- +--* SUB long + [000315] ----------- | +--* LCL_VAR long V04 loc1 + [000317] ----------- | \--* CNS_INT long 2 + [000319] ----------- \--* CNS_INT long 8 + +IL argument #1: is a local var + [000323] ----------- * LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: + +Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 03 ldarg.1 +IL_0002 fe 01 ceq +IL_0004 2a ret + +INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +Jump targets: + none +New Basic Block BB01 [0079] created. +BB01 [0079] [000..005) +Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0079] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000324] Starting PHASE Pre-import + +*************** Inline @[000324] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0079] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0079] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000324] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000324] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0079] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0079] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000324] Starting PHASE Canonicalize entry + +*************** Inline @[000324] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000324] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 28 (V28 tmp23) called for Inlining Arg. +Marked V28 as a single def temp + + [ 1] 1 (0x001) ldarg.1 + [ 2] 2 (0x002) ceq + [ 1] 4 (0x004) ret + + Inlinee Return expression (before normalization) => + [000471] ----------- * EQ int + [000470] ----------- +--* LCL_VAR long V28 tmp23 + [000323] ----------- \--* LCL_VAR long V01 arg1 + + + Inlinee Return expression (after normalization) => + [000471] ----------- * EQ int + [000470] ----------- +--* LCL_VAR long V28 tmp23 + [000323] ----------- \--* LCL_VAR long V01 arg1 + +** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL + +*************** Inline @[000324] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0079] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0079] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000324] Starting PHASE Early QMARK expansion + +*************** Inline @[000324] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0079] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0079] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000324] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000324] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000324] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000324] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000324] Starting PHASE Post-import + +*************** Inline @[000324] Finishing PHASE Post-import [no changes] + +*************** Inline @[000324] Starting PHASE Save contexts around async calls + +*************** Inline @[000324] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000324] ----------- + +Arguments setup: +STMT00084 ( 0x250[E--] ... ??? ) + [000472] DA-XG------ * STORE_LCL_VAR long V28 tmp23 + [000322] ---XG------ \--* IND long + [000321] ----------- \--* ADD byref + [000314] ----------- +--* LCL_VAR byref V00 arg0 + [000320] ----------- \--* MUL long + [000318] ----------- +--* SUB long + [000315] ----------- | +--* LCL_VAR long V04 loc1 + [000317] ----------- | \--* CNS_INT long 2 + [000319] ----------- \--* CNS_INT long 8 + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000325] with [000471] + [000325] --C-------- * RET_EXPR int (for [000324]) -> [000471] + +Inserting the inline return expression + [000471] ----------- * EQ int + [000470] ----------- +--* LCL_VAR long V28 tmp23 + [000323] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00058 in BB33: +STMT00058 ( 0x250[E--] ... ??? ) + [000326] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000471] ----------- arg0 \--* EQ int + [000470] ----------- +--* LCL_VAR long V28 tmp23 + [000323] ----------- \--* LCL_VAR long V01 arg1 +IL argument #0: + [000471] ----------- * EQ int + [000470] ----------- +--* LCL_VAR long V28 tmp23 + [000323] ----------- \--* LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: + +Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 2a ret + +INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +Jump targets: + none +New Basic Block BB01 [0080] created. +BB01 [0080] [000..002) +Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0080] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000326] Starting PHASE Pre-import + +*************** Inline @[000326] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0080] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0080] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000326] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000326] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0080] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0080] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000326] Starting PHASE Canonicalize entry + +*************** Inline @[000326] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000326] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 29 (V29 tmp24) called for Inlining Arg. +Marked V29 as a single def temp + + [ 1] 1 (0x001) ret + + Inlinee Return expression (before normalization) => + [000475] ----------- * LCL_VAR int V29 tmp24 + + + Inlinee Return expression (after normalization) => + [000475] ----------- * LCL_VAR int V29 tmp24 + +** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL + +*************** Inline @[000326] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0080] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0080] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000326] Starting PHASE Early QMARK expansion + +*************** Inline @[000326] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0080] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0080] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000326] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000326] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000326] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000326] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000326] Starting PHASE Post-import + +*************** Inline @[000326] Finishing PHASE Post-import [no changes] + +*************** Inline @[000326] Starting PHASE Save contexts around async calls + +*************** Inline @[000326] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000326] ----------- + +Arguments setup: + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000327] with [000474] + [000327] --C-------- * RET_EXPR int (for [000326]) -> [000474] + +Inserting the inline return expression + [000474] ----------- * CAST int <- ubyte <- int + [000471] ----------- \--* EQ int + [000470] ----------- +--* LCL_VAR long V28 tmp23 + [000323] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00060 in BB35: +STMT00060 ( 0x27E[E--] ... 0x2A4 ) + [000341] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000339] ---XG------ arg0 +--* IND long + [000338] ----------- | \--* ADD byref + [000331] ----------- | +--* LCL_VAR byref V00 arg0 + [000337] ----------- | \--* MUL long + [000335] ----------- | +--* SUB long + [000332] ----------- | | +--* LCL_VAR long V04 loc1 + [000334] ----------- | | \--* CNS_INT long 3 + [000336] ----------- | \--* CNS_INT long 8 + [000340] ----------- arg1 \--* LCL_VAR long V01 arg1 +IL argument #0: has global refs has side effects + [000339] ---XG------ * IND long + [000338] ----------- \--* ADD byref + [000331] ----------- +--* LCL_VAR byref V00 arg0 + [000337] ----------- \--* MUL long + [000335] ----------- +--* SUB long + [000332] ----------- | +--* LCL_VAR long V04 loc1 + [000334] ----------- | \--* CNS_INT long 3 + [000336] ----------- \--* CNS_INT long 8 + +IL argument #1: is a local var + [000340] ----------- * LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: + +Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 03 ldarg.1 +IL_0002 fe 01 ceq +IL_0004 2a ret + +INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +Jump targets: + none +New Basic Block BB01 [0081] created. +BB01 [0081] [000..005) +Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0081] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000341] Starting PHASE Pre-import + +*************** Inline @[000341] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0081] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0081] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000341] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000341] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0081] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0081] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000341] Starting PHASE Canonicalize entry + +*************** Inline @[000341] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000341] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 30 (V30 tmp25) called for Inlining Arg. +Marked V30 as a single def temp + + [ 1] 1 (0x001) ldarg.1 + [ 2] 2 (0x002) ceq + [ 1] 4 (0x004) ret + + Inlinee Return expression (before normalization) => + [000478] ----------- * EQ int + [000477] ----------- +--* LCL_VAR long V30 tmp25 + [000340] ----------- \--* LCL_VAR long V01 arg1 + + + Inlinee Return expression (after normalization) => + [000478] ----------- * EQ int + [000477] ----------- +--* LCL_VAR long V30 tmp25 + [000340] ----------- \--* LCL_VAR long V01 arg1 + +** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL + +*************** Inline @[000341] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0081] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0081] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000341] Starting PHASE Early QMARK expansion + +*************** Inline @[000341] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0081] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0081] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000341] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000341] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000341] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000341] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000341] Starting PHASE Post-import + +*************** Inline @[000341] Finishing PHASE Post-import [no changes] + +*************** Inline @[000341] Starting PHASE Save contexts around async calls + +*************** Inline @[000341] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000341] ----------- + +Arguments setup: +STMT00085 ( 0x27E[E--] ... ??? ) + [000479] DA-XG------ * STORE_LCL_VAR long V30 tmp25 + [000339] ---XG------ \--* IND long + [000338] ----------- \--* ADD byref + [000331] ----------- +--* LCL_VAR byref V00 arg0 + [000337] ----------- \--* MUL long + [000335] ----------- +--* SUB long + [000332] ----------- | +--* LCL_VAR long V04 loc1 + [000334] ----------- | \--* CNS_INT long 3 + [000336] ----------- \--* CNS_INT long 8 + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000342] with [000478] + [000342] --C-------- * RET_EXPR int (for [000341]) -> [000478] + +Inserting the inline return expression + [000478] ----------- * EQ int + [000477] ----------- +--* LCL_VAR long V30 tmp25 + [000340] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00061 in BB35: +STMT00061 ( 0x27E[E--] ... ??? ) + [000343] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000478] ----------- arg0 \--* EQ int + [000477] ----------- +--* LCL_VAR long V30 tmp25 + [000340] ----------- \--* LCL_VAR long V01 arg1 +IL argument #0: + [000478] ----------- * EQ int + [000477] ----------- +--* LCL_VAR long V30 tmp25 + [000340] ----------- \--* LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: + +Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 2a ret + +INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +Jump targets: + none +New Basic Block BB01 [0082] created. +BB01 [0082] [000..002) +Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0082] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000343] Starting PHASE Pre-import + +*************** Inline @[000343] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0082] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0082] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000343] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000343] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0082] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0082] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000343] Starting PHASE Canonicalize entry + +*************** Inline @[000343] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000343] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 31 (V31 tmp26) called for Inlining Arg. +Marked V31 as a single def temp + + [ 1] 1 (0x001) ret + + Inlinee Return expression (before normalization) => + [000482] ----------- * LCL_VAR int V31 tmp26 + + + Inlinee Return expression (after normalization) => + [000482] ----------- * LCL_VAR int V31 tmp26 + +** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL + +*************** Inline @[000343] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0082] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0082] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000343] Starting PHASE Early QMARK expansion + +*************** Inline @[000343] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0082] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0082] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000343] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000343] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000343] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000343] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000343] Starting PHASE Post-import + +*************** Inline @[000343] Finishing PHASE Post-import [no changes] + +*************** Inline @[000343] Starting PHASE Save contexts around async calls + +*************** Inline @[000343] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000343] ----------- + +Arguments setup: + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000344] with [000481] + [000344] --C-------- * RET_EXPR int (for [000343]) -> [000481] + +Inserting the inline return expression + [000481] ----------- * CAST int <- ubyte <- int + [000478] ----------- \--* EQ int + [000477] ----------- +--* LCL_VAR long V30 tmp25 + [000340] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00044 in BB38: +STMT00044 ( 0x2B8[E--] ... 0x2DB ) + [000262] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) + [000260] ---XG------ arg0 +--* IND long + [000259] ----------- | \--* ADD byref + [000255] ----------- | +--* LCL_VAR byref V00 arg0 + [000258] ----------- | \--* MUL long + [000256] ----------- | +--* LCL_VAR long V04 loc1 + [000257] ----------- | \--* CNS_INT long 8 + [000261] ----------- arg1 \--* LCL_VAR long V01 arg1 +IL argument #0: has global refs has side effects + [000260] ---XG------ * IND long + [000259] ----------- \--* ADD byref + [000255] ----------- +--* LCL_VAR byref V00 arg0 + [000258] ----------- \--* MUL long + [000256] ----------- +--* LCL_VAR long V04 loc1 + [000257] ----------- \--* CNS_INT long 8 + +IL argument #1: is a local var + [000261] ----------- * LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: + +Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 03 ldarg.1 +IL_0002 fe 01 ceq +IL_0004 2a ret + +INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool +Jump targets: + none +New Basic Block BB01 [0083] created. +BB01 [0083] [000..005) +Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0083] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000262] Starting PHASE Pre-import + +*************** Inline @[000262] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0083] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0083] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000262] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000262] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0083] 1 1 [000..005) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0083] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000262] Starting PHASE Canonicalize entry + +*************** Inline @[000262] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000262] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 32 (V32 tmp27) called for Inlining Arg. +Marked V32 as a single def temp + + [ 1] 1 (0x001) ldarg.1 + [ 2] 2 (0x002) ceq + [ 1] 4 (0x004) ret + + Inlinee Return expression (before normalization) => + [000485] ----------- * EQ int + [000484] ----------- +--* LCL_VAR long V32 tmp27 + [000261] ----------- \--* LCL_VAR long V01 arg1 + + + Inlinee Return expression (after normalization) => + [000485] ----------- * EQ int + [000484] ----------- +--* LCL_VAR long V32 tmp27 + [000261] ----------- \--* LCL_VAR long V01 arg1 + +** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL + +*************** Inline @[000262] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0083] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0083] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000262] Starting PHASE Early QMARK expansion + +*************** Inline @[000262] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0083] 1 1 [000..005) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0083] [000..005) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000262] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000262] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000262] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000262] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000262] Starting PHASE Post-import + +*************** Inline @[000262] Finishing PHASE Post-import [no changes] + +*************** Inline @[000262] Starting PHASE Save contexts around async calls + +*************** Inline @[000262] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000262] ----------- + +Arguments setup: +STMT00086 ( 0x2B8[E--] ... ??? ) + [000486] DA-XG------ * STORE_LCL_VAR long V32 tmp27 + [000260] ---XG------ \--* IND long + [000259] ----------- \--* ADD byref + [000255] ----------- +--* LCL_VAR byref V00 arg0 + [000258] ----------- \--* MUL long + [000256] ----------- +--* LCL_VAR long V04 loc1 + [000257] ----------- \--* CNS_INT long 8 + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000263] with [000485] + [000263] --C-------- * RET_EXPR int (for [000262]) -> [000485] + +Inserting the inline return expression + [000485] ----------- * EQ int + [000484] ----------- +--* LCL_VAR long V32 tmp27 + [000261] ----------- \--* LCL_VAR long V01 arg1 + +Expanding INLINE_CANDIDATE in statement STMT00045 in BB38: +STMT00045 ( 0x2B8[E--] ... ??? ) + [000264] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) + [000485] ----------- arg0 \--* EQ int + [000484] ----------- +--* LCL_VAR long V32 tmp27 + [000261] ----------- \--* LCL_VAR long V01 arg1 +IL argument #0: + [000485] ----------- * EQ int + [000484] ----------- +--* LCL_VAR long V32 tmp27 + [000261] ----------- \--* LCL_VAR long V01 arg1 + +INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: + +Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : +IL to import: +IL_0000 02 ldarg.0 +IL_0001 2a ret + +INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. +1 return registers for return type ubyte + [00..01) reg rax +*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +info.compStmtOffsetsCount = 0 +info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) +*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool +Jump targets: + none +New Basic Block BB01 [0084] created. +BB01 [0084] [000..002) +Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0084] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Inline @[000264] Starting PHASE Pre-import + +*************** Inline @[000264] Finishing PHASE Pre-import +Trees after Pre-import + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0084] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0084] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist + +*************** Inline @[000264] Starting PHASE Profile incorporation +BBOPT not set +Computing inlinee profile scale: + ... no callee profile data, will use non-pgo weight to scale + ... call site not profiled, will use non-pgo weight to scale + call site count 100 callee entry count 100 scale 1 +Scaling inlinee blocks + +*************** Inline @[000264] Finishing PHASE Profile incorporation +Trees after Profile incorporation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0084] 1 1 [000..002) (return) +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0084] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000264] Starting PHASE Canonicalize entry + +*************** Inline @[000264] Finishing PHASE Canonicalize entry [no changes] + +*************** Inline @[000264] Starting PHASE Importation + +impImportBlockPending for BB01 + +Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' + [ 0] 0 (0x000) ldarg.0 +lvaGrabTemp returning 33 (V33 tmp28) called for Inlining Arg. +Marked V33 as a single def temp + + [ 1] 1 (0x001) ret + + Inlinee Return expression (before normalization) => + [000489] ----------- * LCL_VAR int V33 tmp28 + + + Inlinee Return expression (after normalization) => + [000489] ----------- * LCL_VAR int V33 tmp28 + +** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL + +*************** Inline @[000264] Finishing PHASE Importation +Trees after Importation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0084] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0084] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000264] Starting PHASE Early QMARK expansion + +*************** Inline @[000264] Finishing PHASE Early QMARK expansion +Trees after Early QMARK expansion + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0084] 1 1 [000..002) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0084] [000..002) (return), preds={} succs={} + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Inline @[000264] Starting PHASE Expand patchpoints + + -- no patchpoints to transform + +*************** Inline @[000264] Finishing PHASE Expand patchpoints [no changes] + +*************** Inline @[000264] Starting PHASE Indirect call transform + + -- no candidates to transform + +*************** Inline @[000264] Finishing PHASE Indirect call transform [no changes] + +*************** Inline @[000264] Starting PHASE Post-import + +*************** Inline @[000264] Finishing PHASE Post-import [no changes] + +*************** Inline @[000264] Starting PHASE Save contexts around async calls + +*************** Inline @[000264] Finishing PHASE Save contexts around async calls [no changes] + + +----------- Statements (and blocks) added due to the inlining of call [000264] ----------- + +Arguments setup: + +Inlinee method body: +inlinee was empty +fgInlineAppendStatements: no gc ref inline locals. +Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] +-------------------------------------------------------------------------------------------- +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' +INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' + +Replacing the return expression placeholder [000265] with [000488] + [000265] --C-------- * RET_EXPR int (for [000264]) -> [000488] + +Inserting the inline return expression + [000488] ----------- * CAST int <- ubyte <- int + [000485] ----------- \--* EQ int + [000484] ----------- +--* LCL_VAR long V32 tmp27 + [000261] ----------- \--* LCL_VAR long V01 arg1 + +**************** Inline Tree + +Inlines into 06000000 [via ExtendedDefaultPolicy] System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int: + [INL01 IL=-572662307 TR=000006 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Diagnostics.Debug:Assert(bool,System.String) + [INL02 IL=-572662307 TR=000378 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Diagnostics.Debug:Assert(bool,System.String,System.String) + [INL00 IL=0005 TR=000387 06000000] [FAILED: callee: noinline per IL/cached result] + [INL03 IL=-572662307 TR=000027 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Diagnostics.Debug:Assert(bool,System.String) + [INL04 IL=-572662307 TR=000391 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Diagnostics.Debug:Assert(bool,System.String,System.String) + [INL00 IL=0005 TR=000398 06000000] [FAILED: callee: noinline per IL/cached result] + [INL05 IL=-572662307 TR=000067 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool + [INL06 IL=-572662307 TR=000069 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool + [INL07 IL=-572662307 TR=000084 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool + [INL08 IL=-572662307 TR=000086 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool + [INL09 IL=-572662307 TR=000101 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool + [INL10 IL=-572662307 TR=000103 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool + [INL11 IL=-572662307 TR=000118 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool + [INL12 IL=-572662307 TR=000120 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool + [INL13 IL=-572662307 TR=000135 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool + [INL14 IL=-572662307 TR=000137 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool + [INL15 IL=-572662307 TR=000152 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool + [INL16 IL=-572662307 TR=000154 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool + [INL17 IL=-572662307 TR=000169 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool + [INL18 IL=-572662307 TR=000171 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool + [INL19 IL=-572662307 TR=000186 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool + [INL20 IL=-572662307 TR=000188 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool + [INL21 IL=-572662307 TR=000290 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool + [INL22 IL=-572662307 TR=000292 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool + [INL23 IL=-572662307 TR=000307 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool + [INL24 IL=-572662307 TR=000309 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool + [INL25 IL=-572662307 TR=000324 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool + [INL26 IL=-572662307 TR=000326 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool + [INL27 IL=-572662307 TR=000341 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool + [INL28 IL=-572662307 TR=000343 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool + [INL29 IL=-572662307 TR=000262 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool + [INL30 IL=-572662307 TR=000264 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool + [INL00 IL=0798 TR=000044 06000000] [FAILED: callee: too many il bytes] +Budget: initialTime=2472, finalTime=2144, initialBudget=54384, currentBudget=54384 +Budget: initialSize=18462, finalSize=18462 + +*************** Finishing PHASE Morph - Inlining +Trees after Morph - Inlining + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..???)-> BB51(1) (always) i +BB51 [0050] 1 BB01 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB51 1 [000..001)-> BB53(1) (always) i +BB53 [0052] 2 BB51,BB52 1 [000..001)-> BB50(1) (always) i +BB50 [0053] 1 BB53 1 [01E..01E)-> BB02(1) (always) i +BB02 [0001] 1 BB50 1 [01E..02B)-> BB03(1) (always) i +BB03 [0002] 1 BB02 1 [02B..038)-> BB04(1) (always) i +BB04 [0003] 1 BB03 1 [038..045)-> BB05(1) (always) i +BB05 [0004] 1 BB04 1 [045..049)-> BB07(1) (always) i +BB07 [0006] 1 BB05 1 [04B..???)-> BB55(1) (always) i +BB55 [0055] 1 BB07 1 [04B..04C)-> BB57(0.5),BB56(0.5) ( cond ) i +BB56 [0056] 1 BB55 1 [04B..04C)-> BB57(1) (always) i +BB57 [0057] 2 BB55,BB56 1 [04B..04C)-> BB54(1) (always) i +BB54 [0058] 1 BB57 1 [05D..05D)-> BB08(1) (always) i +BB08 [0007] 1 BB54 1 [05D..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB08 1 [068..073)-> BB27(1) (always) i +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target +BB11 [0010] 1 BB10 1 [09D..0A0) (return) i +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd +BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd +BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd +BB17 [0016] 1 BB16 1 [124..12A) (return) i +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB19 [0018] 1 BB18 1 [152..158) (return) i +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB21 [0020] 1 BB20 1 [180..186) (return) i +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB31(0.5),BB30(0.5) ( cond ) i +BB30 [0029] 1 BB29 1 [21F..222) (return) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250) (return) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E) (return) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB40(0.5),BB39(0.5) ( cond ) i bwd bwd-target +BB39 [0038] 1 BB38 1 [2DD..2E0) (return) i +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i +BB43 [0042] 1 BB08 1 [2EB..2F2)-> BB46(1) (always) i +BB46 [0045] 1 BB43 1 [303..30A)-> BB49(1) (always) i +BB49 [0048] 1 BB46 1 [31B..324) (return) i +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..???) -> BB51(1) (always), preds={} succs={BB51} + +------------ BB51 [0050] [000..001) -> BB53(0.5),BB52(0.5) (cond), preds={BB01} succs={BB52,BB53} + +***** BB51 [0050] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000384] ----------- * JTRUE void + [000383] ----------- \--* NE int + [000380] ----------- +--* CAST int <- ubyte <- int + [000374] ----------- | \--* CAST int <- ubyte <- int + [000004] ----------- | \--* EQ int + [000002] ----------- | +--* LT int + [000000] ----------- | | +--* LCL_VAR int V02 arg2 + [000001] ----------- | | \--* CNS_INT int 0 + [000003] ----------- | \--* CNS_INT int 0 + [000382] ----------- \--* CNS_INT int 0 + +------------ BB52 [0051] [000..001) -> BB53(1) (always), preds={BB51} succs={BB53} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000387] --C-G------ * CALL void + [000385] ----------- arg0 +--* CNS_STR ref + [000386] ----------- arg1 \--* CNS_STR ref "" + +------------ BB53 [0052] [000..001) -> BB50(1) (always), preds={BB51,BB52} succs={BB50} + +------------ BB50 [0053] [01E..01E) -> BB02(1) (always), preds={BB53} succs={BB02} + +------------ BB02 [0001] [01E..02B) -> BB03(1) (always), preds={BB50} succs={BB03} + +------------ BB03 [0002] [02B..038) -> BB04(1) (always), preds={BB02} succs={BB04} + +------------ BB04 [0003] [038..045) -> BB05(1) (always), preds={BB03} succs={BB05} + +------------ BB05 [0004] [045..049) -> BB07(1) (always), preds={BB04} succs={BB07} + +***** BB05 [0004] +STMT00001 ( 0x045[E--] ... 0x046 ) + [000024] DA--------- * STORE_LCL_VAR int V03 loc0 + [000023] ----------- \--* CNS_INT int 1 + +------------ BB07 [0006] [04B..???) -> BB55(1) (always), preds={BB05} succs={BB55} + +------------ BB55 [0055] [04B..04C) -> BB57(0.5),BB56(0.5) (cond), preds={BB07} succs={BB56,BB57} + +***** BB55 [0055] +STMT00072 ( INL04 @ 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000395] ----------- * JTRUE void + [000394] ----------- \--* NE int + [000025] ----------- +--* LCL_VAR int V03 loc0 + [000393] ----------- \--* CNS_INT int 0 + +------------ BB56 [0056] [04B..04C) -> BB57(1) (always), preds={BB55} succs={BB57} + +***** BB56 [0056] +STMT00073 ( INL04 @ 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000398] --C-G------ * CALL void + [000396] ----------- arg0 +--* CNS_STR ref + [000397] ----------- arg1 \--* CNS_STR ref "" + +------------ BB57 [0057] [04B..04C) -> BB54(1) (always), preds={BB55,BB56} succs={BB54} + +------------ BB54 [0058] [05D..05D) -> BB08(1) (always), preds={BB57} succs={BB08} + +------------ BB08 [0007] [05D..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB54} succs={BB09,BB43} + +***** BB08 [0007] +STMT00003 ( 0x05D[E--] ... 0x063 ) + [000034] ----------- * JTRUE void + [000033] ----------- \--* GE int + [000031] ----------- +--* LCL_VAR int V02 arg2 + [000032] ----------- \--* CNS_INT int 2 vector element count + +------------ BB09 [0008] [068..073) -> BB27(1) (always), preds={BB08} succs={BB27} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) + [000051] DA--------- * STORE_LCL_VAR long V04 loc1 + [000050] ----------- \--* SUB long + [000047] ----------- +--* CAST long <- int + [000046] ----------- | \--* LCL_VAR int V02 arg2 + [000049] ----------- \--* CNS_INT long 1 + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) + [000059] DA--------- * STORE_LCL_VAR int V02 arg2 + [000058] ----------- \--* SUB int + [000056] ----------- +--* LCL_VAR int V02 arg2 + [000057] ----------- \--* CNS_INT int 8 + +***** BB10 [0009] +STMT00074 ( 0x078[E--] ... ??? ) + [000402] DA-XG------ * STORE_LCL_VAR long V08 tmp3 + [000065] ---XG------ \--* IND long + [000064] ----------- \--* ADD byref + [000060] ----------- +--* LCL_VAR byref V00 arg0 + [000063] ----------- \--* MUL long + [000061] ----------- +--* LCL_VAR long V04 loc1 + [000062] ----------- \--* CNS_INT long 8 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) + [000073] --C-------- * JTRUE void + [000072] --C-------- \--* EQ int + [000404] ----------- +--* CAST int <- ubyte <- int + [000401] ----------- | \--* EQ int + [000400] ----------- | +--* LCL_VAR long V08 tmp3 + [000066] ----------- | \--* LCL_VAR long V01 arg1 + [000071] ----------- \--* CNS_INT int 0 + +------------ BB11 [0010] [09D..0A0) (return), preds={BB10} succs={} + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) + [000242] ----------- * RETURN int + [000241] ----------- \--* CAST int <- long + [000240] ----------- \--* LCL_VAR long V04 loc1 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} + +***** BB12 [0011] +STMT00075 ( 0x0A0[E--] ... ??? ) + [000409] DA-XG------ * STORE_LCL_VAR long V10 tmp5 + [000082] ---XG------ \--* IND long + [000081] ----------- \--* ADD byref + [000074] ----------- +--* LCL_VAR byref V00 arg0 + [000080] ----------- \--* MUL long + [000078] ----------- +--* SUB long + [000075] ----------- | +--* LCL_VAR long V04 loc1 + [000077] ----------- | \--* CNS_INT long 1 + [000079] ----------- \--* CNS_INT long 8 + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] --C-------- * JTRUE void + [000089] --C-------- \--* EQ int + [000411] ----------- +--* CAST int <- ubyte <- int + [000408] ----------- | \--* EQ int + [000407] ----------- | +--* LCL_VAR long V10 tmp5 + [000083] ----------- | \--* LCL_VAR long V01 arg1 + [000088] ----------- \--* CNS_INT int 0 + +------------ BB13 [0012] [0C8..0CE) (return), preds={BB12} succs={} + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + [000239] ----------- * RETURN int + [000238] ----------- \--* CAST int <- long + [000237] ----------- \--* SUB long + [000234] ----------- +--* LCL_VAR long V04 loc1 + [000236] ----------- \--* CNS_INT long 1 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} + +***** BB14 [0013] +STMT00076 ( 0x0CE[E--] ... ??? ) + [000416] DA-XG------ * STORE_LCL_VAR long V12 tmp7 + [000099] ---XG------ \--* IND long + [000098] ----------- \--* ADD byref + [000091] ----------- +--* LCL_VAR byref V00 arg0 + [000097] ----------- \--* MUL long + [000095] ----------- +--* SUB long + [000092] ----------- | +--* LCL_VAR long V04 loc1 + [000094] ----------- | \--* CNS_INT long 2 + [000096] ----------- \--* CNS_INT long 8 + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] --C-------- * JTRUE void + [000106] --C-------- \--* EQ int + [000418] ----------- +--* CAST int <- ubyte <- int + [000415] ----------- | \--* EQ int + [000414] ----------- | +--* LCL_VAR long V12 tmp7 + [000100] ----------- | \--* LCL_VAR long V01 arg1 + [000105] ----------- \--* CNS_INT int 0 + +------------ BB15 [0014] [0F6..0FC) (return), preds={BB14} succs={} + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + [000233] ----------- * RETURN int + [000232] ----------- \--* CAST int <- long + [000231] ----------- \--* SUB long + [000228] ----------- +--* LCL_VAR long V04 loc1 + [000230] ----------- \--* CNS_INT long 2 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} + +***** BB16 [0015] +STMT00077 ( 0x0FC[E--] ... ??? ) + [000423] DA-XG------ * STORE_LCL_VAR long V14 tmp9 + [000116] ---XG------ \--* IND long + [000115] ----------- \--* ADD byref + [000108] ----------- +--* LCL_VAR byref V00 arg0 + [000114] ----------- \--* MUL long + [000112] ----------- +--* SUB long + [000109] ----------- | +--* LCL_VAR long V04 loc1 + [000111] ----------- | \--* CNS_INT long 3 + [000113] ----------- \--* CNS_INT long 8 + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] --C-------- * JTRUE void + [000123] --C-------- \--* EQ int + [000425] ----------- +--* CAST int <- ubyte <- int + [000422] ----------- | \--* EQ int + [000421] ----------- | +--* LCL_VAR long V14 tmp9 + [000117] ----------- | \--* LCL_VAR long V01 arg1 + [000122] ----------- \--* CNS_INT int 0 + +------------ BB17 [0016] [124..12A) (return), preds={BB16} succs={} + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) + [000227] ----------- * RETURN int + [000226] ----------- \--* CAST int <- long + [000225] ----------- \--* SUB long + [000222] ----------- +--* LCL_VAR long V04 loc1 + [000224] ----------- \--* CNS_INT long 3 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00078 ( 0x12A[E--] ... ??? ) + [000430] DA-XG------ * STORE_LCL_VAR long V16 tmp11 + [000133] ---XG------ \--* IND long + [000132] ----------- \--* ADD byref + [000125] ----------- +--* LCL_VAR byref V00 arg0 + [000131] ----------- \--* MUL long + [000129] ----------- +--* SUB long + [000126] ----------- | +--* LCL_VAR long V04 loc1 + [000128] ----------- | \--* CNS_INT long 4 + [000130] ----------- \--* CNS_INT long 8 + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] --C-------- * JTRUE void + [000140] --C-------- \--* EQ int + [000432] ----------- +--* CAST int <- ubyte <- int + [000429] ----------- | \--* EQ int + [000428] ----------- | +--* LCL_VAR long V16 tmp11 + [000134] ----------- | \--* LCL_VAR long V01 arg1 + [000139] ----------- \--* CNS_INT int 0 + +------------ BB19 [0018] [152..158) (return), preds={BB18} succs={} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) + [000221] ----------- * RETURN int + [000220] ----------- \--* CAST int <- long + [000219] ----------- \--* SUB long + [000216] ----------- +--* LCL_VAR long V04 loc1 + [000218] ----------- \--* CNS_INT long 4 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00079 ( 0x158[E--] ... ??? ) + [000437] DA-XG------ * STORE_LCL_VAR long V18 tmp13 + [000150] ---XG------ \--* IND long + [000149] ----------- \--* ADD byref + [000142] ----------- +--* LCL_VAR byref V00 arg0 + [000148] ----------- \--* MUL long + [000146] ----------- +--* SUB long + [000143] ----------- | +--* LCL_VAR long V04 loc1 + [000145] ----------- | \--* CNS_INT long 5 + [000147] ----------- \--* CNS_INT long 8 + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) + [000158] --C-------- * JTRUE void + [000157] --C-------- \--* EQ int + [000439] ----------- +--* CAST int <- ubyte <- int + [000436] ----------- | \--* EQ int + [000435] ----------- | +--* LCL_VAR long V18 tmp13 + [000151] ----------- | \--* LCL_VAR long V01 arg1 + [000156] ----------- \--* CNS_INT int 0 + +------------ BB21 [0020] [180..186) (return), preds={BB20} succs={} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) + [000215] ----------- * RETURN int + [000214] ----------- \--* CAST int <- long + [000213] ----------- \--* SUB long + [000210] ----------- +--* LCL_VAR long V04 loc1 + [000212] ----------- \--* CNS_INT long 5 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00080 ( 0x186[E--] ... ??? ) + [000444] DA-XG------ * STORE_LCL_VAR long V20 tmp15 + [000167] ---XG------ \--* IND long + [000166] ----------- \--* ADD byref + [000159] ----------- +--* LCL_VAR byref V00 arg0 + [000165] ----------- \--* MUL long + [000163] ----------- +--* SUB long + [000160] ----------- | +--* LCL_VAR long V04 loc1 + [000162] ----------- | \--* CNS_INT long 6 + [000164] ----------- \--* CNS_INT long 8 + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) + [000175] --C-------- * JTRUE void + [000174] --C-------- \--* EQ int + [000446] ----------- +--* CAST int <- ubyte <- int + [000443] ----------- | \--* EQ int + [000442] ----------- | +--* LCL_VAR long V20 tmp15 + [000168] ----------- | \--* LCL_VAR long V01 arg1 + [000173] ----------- \--* CNS_INT int 0 + +------------ BB23 [0022] [1AE..1B4) (return), preds={BB22} succs={} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) + [000209] ----------- * RETURN int + [000208] ----------- \--* CAST int <- long + [000207] ----------- \--* SUB long + [000204] ----------- +--* LCL_VAR long V04 loc1 + [000206] ----------- \--* CNS_INT long 6 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00081 ( 0x1B4[E--] ... ??? ) + [000451] DA-XG------ * STORE_LCL_VAR long V22 tmp17 + [000184] ---XG------ \--* IND long + [000183] ----------- \--* ADD byref + [000176] ----------- +--* LCL_VAR byref V00 arg0 + [000182] ----------- \--* MUL long + [000180] ----------- +--* SUB long + [000177] ----------- | +--* LCL_VAR long V04 loc1 + [000179] ----------- | \--* CNS_INT long 7 + [000181] ----------- \--* CNS_INT long 8 + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] --C-------- * JTRUE void + [000191] --C-------- \--* EQ int + [000453] ----------- +--* CAST int <- ubyte <- int + [000450] ----------- | \--* EQ int + [000449] ----------- | +--* LCL_VAR long V22 tmp17 + [000185] ----------- | \--* LCL_VAR long V01 arg1 + [000190] ----------- \--* CNS_INT int 0 + +------------ BB25 [0024] [1DC..1E2) (return), preds={BB24} succs={} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) + [000203] ----------- * RETURN int + [000202] ----------- \--* CAST int <- long + [000201] ----------- \--* SUB long + [000198] ----------- +--* LCL_VAR long V04 loc1 + [000200] ----------- \--* CNS_INT long 7 + +------------ BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + [000197] DA--------- * STORE_LCL_VAR long V04 loc1 + [000196] ----------- \--* SUB long + [000193] ----------- +--* LCL_VAR long V04 loc1 + [000195] ----------- \--* CNS_INT long 8 + +------------ BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} + +***** BB27 [0026] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + [000055] ----------- * JTRUE void + [000054] ----------- \--* GE int + [000052] ----------- +--* LCL_VAR int V02 arg2 + [000053] ----------- \--* CNS_INT int 8 + +------------ BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} + +***** BB28 [0027] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) + [000246] ----------- * JTRUE void + [000245] ----------- \--* LT int + [000243] ----------- +--* LCL_VAR int V02 arg2 + [000244] ----------- \--* CNS_INT int 4 + +------------ BB29 [0028] [1F5..21F) -> BB31(0.5),BB30(0.5) (cond), preds={BB28} succs={BB30,BB31} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) + [000282] DA--------- * STORE_LCL_VAR int V02 arg2 + [000281] ----------- \--* SUB int + [000279] ----------- +--* LCL_VAR int V02 arg2 + [000280] ----------- \--* CNS_INT int 4 + +***** BB29 [0028] +STMT00082 ( 0x1FA[E--] ... ??? ) + [000458] DA-XG------ * STORE_LCL_VAR long V24 tmp19 + [000288] ---XG------ \--* IND long + [000287] ----------- \--* ADD byref + [000283] ----------- +--* LCL_VAR byref V00 arg0 + [000286] ----------- \--* MUL long + [000284] ----------- +--* LCL_VAR long V04 loc1 + [000285] ----------- \--* CNS_INT long 8 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] --C-------- * JTRUE void + [000295] --C-------- \--* EQ int + [000460] ----------- +--* CAST int <- ubyte <- int + [000457] ----------- | \--* EQ int + [000456] ----------- | +--* LCL_VAR long V24 tmp19 + [000289] ----------- | \--* LCL_VAR long V01 arg1 + [000294] ----------- \--* CNS_INT int 0 + +------------ BB30 [0029] [21F..222) (return), preds={BB29} succs={} + +***** BB30 [0029] +STMT00067 ( 0x21F[E--] ... 0x221 ) + [000373] ----------- * RETURN int + [000372] ----------- \--* CAST int <- long + [000371] ----------- \--* LCL_VAR long V04 loc1 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00083 ( 0x222[E--] ... ??? ) + [000465] DA-XG------ * STORE_LCL_VAR long V26 tmp21 + [000305] ---XG------ \--* IND long + [000304] ----------- \--* ADD byref + [000297] ----------- +--* LCL_VAR byref V00 arg0 + [000303] ----------- \--* MUL long + [000301] ----------- +--* SUB long + [000298] ----------- | +--* LCL_VAR long V04 loc1 + [000300] ----------- | \--* CNS_INT long 1 + [000302] ----------- \--* CNS_INT long 8 + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) + [000313] --C-------- * JTRUE void + [000312] --C-------- \--* EQ int + [000467] ----------- +--* CAST int <- ubyte <- int + [000464] ----------- | \--* EQ int + [000463] ----------- | +--* LCL_VAR long V26 tmp21 + [000306] ----------- | \--* LCL_VAR long V01 arg1 + [000311] ----------- \--* CNS_INT int 0 + +------------ BB32 [0031] [24A..250) (return), preds={BB31} succs={} + +***** BB32 [0031] +STMT00066 ( 0x24A[E--] ... 0x24F ) + [000370] ----------- * RETURN int + [000369] ----------- \--* CAST int <- long + [000368] ----------- \--* SUB long + [000365] ----------- +--* LCL_VAR long V04 loc1 + [000367] ----------- \--* CNS_INT long 1 + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00084 ( 0x250[E--] ... ??? ) + [000472] DA-XG------ * STORE_LCL_VAR long V28 tmp23 + [000322] ---XG------ \--* IND long + [000321] ----------- \--* ADD byref + [000314] ----------- +--* LCL_VAR byref V00 arg0 + [000320] ----------- \--* MUL long + [000318] ----------- +--* SUB long + [000315] ----------- | +--* LCL_VAR long V04 loc1 + [000317] ----------- | \--* CNS_INT long 2 + [000319] ----------- \--* CNS_INT long 8 + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) + [000330] --C-------- * JTRUE void + [000329] --C-------- \--* EQ int + [000474] ----------- +--* CAST int <- ubyte <- int + [000471] ----------- | \--* EQ int + [000470] ----------- | +--* LCL_VAR long V28 tmp23 + [000323] ----------- | \--* LCL_VAR long V01 arg1 + [000328] ----------- \--* CNS_INT int 0 + +------------ BB34 [0033] [278..27E) (return), preds={BB33} succs={} + +***** BB34 [0033] +STMT00065 ( 0x278[E--] ... 0x27D ) + [000364] ----------- * RETURN int + [000363] ----------- \--* CAST int <- long + [000362] ----------- \--* SUB long + [000359] ----------- +--* LCL_VAR long V04 loc1 + [000361] ----------- \--* CNS_INT long 2 + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00085 ( 0x27E[E--] ... ??? ) + [000479] DA-XG------ * STORE_LCL_VAR long V30 tmp25 + [000339] ---XG------ \--* IND long + [000338] ----------- \--* ADD byref + [000331] ----------- +--* LCL_VAR byref V00 arg0 + [000337] ----------- \--* MUL long + [000335] ----------- +--* SUB long + [000332] ----------- | +--* LCL_VAR long V04 loc1 + [000334] ----------- | \--* CNS_INT long 3 + [000336] ----------- \--* CNS_INT long 8 + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] --C-------- * JTRUE void + [000346] --C-------- \--* EQ int + [000481] ----------- +--* CAST int <- ubyte <- int + [000478] ----------- | \--* EQ int + [000477] ----------- | +--* LCL_VAR long V30 tmp25 + [000340] ----------- | \--* LCL_VAR long V01 arg1 + [000345] ----------- \--* CNS_INT int 0 + +------------ BB36 [0035] [2A6..2AC) (return), preds={BB35} succs={} + +***** BB36 [0035] +STMT00064 ( 0x2A6[E--] ... 0x2AB ) + [000358] ----------- * RETURN int + [000357] ----------- \--* CAST int <- long + [000356] ----------- \--* SUB long + [000353] ----------- +--* LCL_VAR long V04 loc1 + [000355] ----------- \--* CNS_INT long 3 + +------------ BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) + [000352] DA--------- * STORE_LCL_VAR long V04 loc1 + [000351] ----------- \--* SUB long + [000348] ----------- +--* LCL_VAR long V04 loc1 + [000350] ----------- \--* CNS_INT long 4 + +------------ BB38 [0037] [2B3..2DD) -> BB40(0.5),BB39(0.5) (cond), preds={BB41} succs={BB39,BB40} + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) + [000254] DA--------- * STORE_LCL_VAR int V02 arg2 + [000253] ----------- \--* SUB int + [000251] ----------- +--* LCL_VAR int V02 arg2 + [000252] ----------- \--* CNS_INT int 1 + +***** BB38 [0037] +STMT00086 ( 0x2B8[E--] ... ??? ) + [000486] DA-XG------ * STORE_LCL_VAR long V32 tmp27 + [000260] ---XG------ \--* IND long + [000259] ----------- \--* ADD byref + [000255] ----------- +--* LCL_VAR byref V00 arg0 + [000258] ----------- \--* MUL long + [000256] ----------- +--* LCL_VAR long V04 loc1 + [000257] ----------- \--* CNS_INT long 8 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] --C-------- * JTRUE void + [000267] --C-------- \--* EQ int + [000488] ----------- +--* CAST int <- ubyte <- int + [000485] ----------- | \--* EQ int + [000484] ----------- | +--* LCL_VAR long V32 tmp27 + [000261] ----------- | \--* LCL_VAR long V01 arg1 + [000266] ----------- \--* CNS_INT int 0 + +------------ BB39 [0038] [2DD..2E0) (return), preds={BB38} succs={} + +***** BB39 [0038] +STMT00048 ( 0x2DD[E--] ... 0x2DF ) + [000276] ----------- * RETURN int + [000275] ----------- \--* CAST int <- long + [000274] ----------- \--* LCL_VAR long V04 loc1 + +------------ BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + [000273] DA--------- * STORE_LCL_VAR long V04 loc1 + [000272] ----------- \--* SUB long + [000269] ----------- +--* LCL_VAR long V04 loc1 + [000271] ----------- \--* CNS_INT long 1 + +------------ BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} + +***** BB41 [0040] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + [000250] ----------- * JTRUE void + [000249] ----------- \--* GT int + [000247] ----------- +--* LCL_VAR int V02 arg2 + [000248] ----------- \--* CNS_INT int 0 + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} + +***** BB42 [0041] +STMT00049 ( 0x2E9[E--] ... 0x2EA ) + [000278] ----------- * RETURN int + [000277] ----------- \--* CNS_INT int -1 + +------------ BB43 [0042] [2EB..2F2) -> BB46(1) (always), preds={BB08} succs={BB46} + +------------ BB46 [0045] [303..30A) -> BB49(1) (always), preds={BB43} succs={BB49} + +------------ BB49 [0048] [31B..324) (return), preds={BB46} succs={} + +***** BB49 [0048] +STMT00004 ( 0x31B[E--] ... 0x323 ) + [000045] --C-G------ * RETURN int + [000044] --C-G------ \--* CALL int + [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 + [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 + [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Resolve GDV Checks + +*************** Finishing PHASE Resolve GDV Checks [no changes] + +*************** Starting PHASE DFS blocks and remove dead code 1 + +*************** Finishing PHASE DFS blocks and remove dead code 1 [no changes] + +*************** Starting PHASE Allocate Objects +no newobjs or newarr in this method; punting + +*************** Finishing PHASE Allocate Objects [no changes] + +*************** Starting PHASE Morph - Add internal blocks +fgNewBBinRegion(jumpKind=BBJ_RETURN, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=true): inserting after BB49 +New Basic Block BB58 [0085] created. + + newReturnBB [BB58] created + +lvaGrabTemp returning 34 (V34 tmp29) called for Single return block return value. + +mergeReturns statement tree [000492] added to genReturnBB BB58 [0085] + [000492] ----------- * RETURN int + [000491] -------N--- \--* LCL_VAR int V34 tmp29 + +fgNewBBinRegion(jumpKind=BBJ_RETURN, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=true): inserting after BB58 +New Basic Block BB59 [0086] created. + + newReturnBB [BB59] created + +mergeReturns statement tree [000493] added to genReturnBB BB59 [0086] + [000493] ----------- * RETURN int + [000277] ----------- \--* CNS_INT int -1 + +setting likelihood of BB42 -> BB59 to 1 + +removing useless STMT00049 ( 0x2E9[E--] ... 0x2EA ) + [000278] ----------- * RETURN int + [000277] ----------- \--* CNS_INT int -1 + from BB42 + +BB42 becomes empty +Relocated block [BB59..BB59] inserted after BB42 + +*************** After fgAddInternal() + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..???)-> BB51(1) (always) i +BB51 [0050] 1 BB01 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB51 1 [000..001)-> BB53(1) (always) i +BB53 [0052] 2 BB51,BB52 1 [000..001)-> BB50(1) (always) i +BB50 [0053] 1 BB53 1 [01E..01E)-> BB02(1) (always) i +BB02 [0001] 1 BB50 1 [01E..02B)-> BB03(1) (always) i +BB03 [0002] 1 BB02 1 [02B..038)-> BB04(1) (always) i +BB04 [0003] 1 BB03 1 [038..045)-> BB05(1) (always) i +BB05 [0004] 1 BB04 1 [045..049)-> BB07(1) (always) i +BB07 [0006] 1 BB05 1 [04B..???)-> BB55(1) (always) i +BB55 [0055] 1 BB07 1 [04B..04C)-> BB57(0.5),BB56(0.5) ( cond ) i +BB56 [0056] 1 BB55 1 [04B..04C)-> BB57(1) (always) i +BB57 [0057] 2 BB55,BB56 1 [04B..04C)-> BB54(1) (always) i +BB54 [0058] 1 BB57 1 [05D..05D)-> BB08(1) (always) i +BB08 [0007] 1 BB54 1 [05D..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB08 1 [068..073)-> BB27(1) (always) i +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target +BB11 [0010] 1 BB10 1 [09D..0A0) (return) i +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd +BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd +BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd +BB17 [0016] 1 BB16 1 [124..12A) (return) i +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB19 [0018] 1 BB18 1 [152..158) (return) i +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB21 [0020] 1 BB20 1 [180..186) (return) i +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB31(0.5),BB30(0.5) ( cond ) i +BB30 [0029] 1 BB29 1 [21F..222) (return) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250) (return) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E) (return) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB40(0.5),BB39(0.5) ( cond ) i bwd bwd-target +BB39 [0038] 1 BB38 1 [2DD..2E0) (return) i +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB)-> BB59(1) (always) i +BB59 [0086] 1 BB42 1 [???..???) (return) internal +BB43 [0042] 1 BB08 1 [2EB..2F2)-> BB46(1) (always) i +BB46 [0045] 1 BB43 1 [303..30A)-> BB49(1) (always) i +BB49 [0048] 1 BB46 1 [31B..324) (return) i +BB58 [0085] 0 1 [???..???) (return) keep internal merged-return +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Exception Handling table is empty + +*************** Finishing PHASE Morph - Add internal blocks +Trees after Morph - Add internal blocks + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..???)-> BB51(1) (always) i +BB51 [0050] 1 BB01 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB51 1 [000..001)-> BB53(1) (always) i +BB53 [0052] 2 BB51,BB52 1 [000..001)-> BB50(1) (always) i +BB50 [0053] 1 BB53 1 [01E..01E)-> BB02(1) (always) i +BB02 [0001] 1 BB50 1 [01E..02B)-> BB03(1) (always) i +BB03 [0002] 1 BB02 1 [02B..038)-> BB04(1) (always) i +BB04 [0003] 1 BB03 1 [038..045)-> BB05(1) (always) i +BB05 [0004] 1 BB04 1 [045..049)-> BB07(1) (always) i +BB07 [0006] 1 BB05 1 [04B..???)-> BB55(1) (always) i +BB55 [0055] 1 BB07 1 [04B..04C)-> BB57(0.5),BB56(0.5) ( cond ) i +BB56 [0056] 1 BB55 1 [04B..04C)-> BB57(1) (always) i +BB57 [0057] 2 BB55,BB56 1 [04B..04C)-> BB54(1) (always) i +BB54 [0058] 1 BB57 1 [05D..05D)-> BB08(1) (always) i +BB08 [0007] 1 BB54 1 [05D..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB08 1 [068..073)-> BB27(1) (always) i +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target +BB11 [0010] 1 BB10 1 [09D..0A0) (return) i +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd +BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd +BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd +BB17 [0016] 1 BB16 1 [124..12A) (return) i +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB19 [0018] 1 BB18 1 [152..158) (return) i +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB21 [0020] 1 BB20 1 [180..186) (return) i +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB31(0.5),BB30(0.5) ( cond ) i +BB30 [0029] 1 BB29 1 [21F..222) (return) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250) (return) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E) (return) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB40(0.5),BB39(0.5) ( cond ) i bwd bwd-target +BB39 [0038] 1 BB38 1 [2DD..2E0) (return) i +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB)-> BB59(1) (always) i +BB59 [0086] 1 BB42 1 [???..???) (return) internal +BB43 [0042] 1 BB08 1 [2EB..2F2)-> BB46(1) (always) i +BB46 [0045] 1 BB43 1 [303..30A)-> BB49(1) (always) i +BB49 [0048] 1 BB46 1 [31B..324) (return) i +BB58 [0085] 0 1 [???..???) (return) keep internal merged-return +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..???) -> BB51(1) (always), preds={} succs={BB51} + +------------ BB51 [0050] [000..001) -> BB53(0.5),BB52(0.5) (cond), preds={BB01} succs={BB52,BB53} + +***** BB51 [0050] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000384] ----------- * JTRUE void + [000383] ----------- \--* NE int + [000380] ----------- +--* CAST int <- ubyte <- int + [000374] ----------- | \--* CAST int <- ubyte <- int + [000004] ----------- | \--* EQ int + [000002] ----------- | +--* LT int + [000000] ----------- | | +--* LCL_VAR int V02 arg2 + [000001] ----------- | | \--* CNS_INT int 0 + [000003] ----------- | \--* CNS_INT int 0 + [000382] ----------- \--* CNS_INT int 0 + +------------ BB52 [0051] [000..001) -> BB53(1) (always), preds={BB51} succs={BB53} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000387] --C-G------ * CALL void + [000385] ----------- arg0 +--* CNS_STR ref + [000386] ----------- arg1 \--* CNS_STR ref "" + +------------ BB53 [0052] [000..001) -> BB50(1) (always), preds={BB51,BB52} succs={BB50} + +------------ BB50 [0053] [01E..01E) -> BB02(1) (always), preds={BB53} succs={BB02} + +------------ BB02 [0001] [01E..02B) -> BB03(1) (always), preds={BB50} succs={BB03} + +------------ BB03 [0002] [02B..038) -> BB04(1) (always), preds={BB02} succs={BB04} + +------------ BB04 [0003] [038..045) -> BB05(1) (always), preds={BB03} succs={BB05} + +------------ BB05 [0004] [045..049) -> BB07(1) (always), preds={BB04} succs={BB07} + +***** BB05 [0004] +STMT00001 ( 0x045[E--] ... 0x046 ) + [000024] DA--------- * STORE_LCL_VAR int V03 loc0 + [000023] ----------- \--* CNS_INT int 1 + +------------ BB07 [0006] [04B..???) -> BB55(1) (always), preds={BB05} succs={BB55} + +------------ BB55 [0055] [04B..04C) -> BB57(0.5),BB56(0.5) (cond), preds={BB07} succs={BB56,BB57} + +***** BB55 [0055] +STMT00072 ( INL04 @ 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000395] ----------- * JTRUE void + [000394] ----------- \--* NE int + [000025] ----------- +--* LCL_VAR int V03 loc0 + [000393] ----------- \--* CNS_INT int 0 + +------------ BB56 [0056] [04B..04C) -> BB57(1) (always), preds={BB55} succs={BB57} + +***** BB56 [0056] +STMT00073 ( INL04 @ 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000398] --C-G------ * CALL void + [000396] ----------- arg0 +--* CNS_STR ref + [000397] ----------- arg1 \--* CNS_STR ref "" + +------------ BB57 [0057] [04B..04C) -> BB54(1) (always), preds={BB55,BB56} succs={BB54} + +------------ BB54 [0058] [05D..05D) -> BB08(1) (always), preds={BB57} succs={BB08} + +------------ BB08 [0007] [05D..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB54} succs={BB09,BB43} + +***** BB08 [0007] +STMT00003 ( 0x05D[E--] ... 0x063 ) + [000034] ----------- * JTRUE void + [000033] ----------- \--* GE int + [000031] ----------- +--* LCL_VAR int V02 arg2 + [000032] ----------- \--* CNS_INT int 2 vector element count + +------------ BB09 [0008] [068..073) -> BB27(1) (always), preds={BB08} succs={BB27} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) + [000051] DA--------- * STORE_LCL_VAR long V04 loc1 + [000050] ----------- \--* SUB long + [000047] ----------- +--* CAST long <- int + [000046] ----------- | \--* LCL_VAR int V02 arg2 + [000049] ----------- \--* CNS_INT long 1 + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) + [000059] DA--------- * STORE_LCL_VAR int V02 arg2 + [000058] ----------- \--* SUB int + [000056] ----------- +--* LCL_VAR int V02 arg2 + [000057] ----------- \--* CNS_INT int 8 + +***** BB10 [0009] +STMT00074 ( 0x078[E--] ... ??? ) + [000402] DA-XG------ * STORE_LCL_VAR long V08 tmp3 + [000065] ---XG------ \--* IND long + [000064] ----------- \--* ADD byref + [000060] ----------- +--* LCL_VAR byref V00 arg0 + [000063] ----------- \--* MUL long + [000061] ----------- +--* LCL_VAR long V04 loc1 + [000062] ----------- \--* CNS_INT long 8 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) + [000073] --C-------- * JTRUE void + [000072] --C-------- \--* EQ int + [000404] ----------- +--* CAST int <- ubyte <- int + [000401] ----------- | \--* EQ int + [000400] ----------- | +--* LCL_VAR long V08 tmp3 + [000066] ----------- | \--* LCL_VAR long V01 arg1 + [000071] ----------- \--* CNS_INT int 0 + +------------ BB11 [0010] [09D..0A0) (return), preds={BB10} succs={} + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) + [000242] ----------- * RETURN int + [000241] ----------- \--* CAST int <- long + [000240] ----------- \--* LCL_VAR long V04 loc1 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} + +***** BB12 [0011] +STMT00075 ( 0x0A0[E--] ... ??? ) + [000409] DA-XG------ * STORE_LCL_VAR long V10 tmp5 + [000082] ---XG------ \--* IND long + [000081] ----------- \--* ADD byref + [000074] ----------- +--* LCL_VAR byref V00 arg0 + [000080] ----------- \--* MUL long + [000078] ----------- +--* SUB long + [000075] ----------- | +--* LCL_VAR long V04 loc1 + [000077] ----------- | \--* CNS_INT long 1 + [000079] ----------- \--* CNS_INT long 8 + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] --C-------- * JTRUE void + [000089] --C-------- \--* EQ int + [000411] ----------- +--* CAST int <- ubyte <- int + [000408] ----------- | \--* EQ int + [000407] ----------- | +--* LCL_VAR long V10 tmp5 + [000083] ----------- | \--* LCL_VAR long V01 arg1 + [000088] ----------- \--* CNS_INT int 0 + +------------ BB13 [0012] [0C8..0CE) (return), preds={BB12} succs={} + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + [000239] ----------- * RETURN int + [000238] ----------- \--* CAST int <- long + [000237] ----------- \--* SUB long + [000234] ----------- +--* LCL_VAR long V04 loc1 + [000236] ----------- \--* CNS_INT long 1 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} + +***** BB14 [0013] +STMT00076 ( 0x0CE[E--] ... ??? ) + [000416] DA-XG------ * STORE_LCL_VAR long V12 tmp7 + [000099] ---XG------ \--* IND long + [000098] ----------- \--* ADD byref + [000091] ----------- +--* LCL_VAR byref V00 arg0 + [000097] ----------- \--* MUL long + [000095] ----------- +--* SUB long + [000092] ----------- | +--* LCL_VAR long V04 loc1 + [000094] ----------- | \--* CNS_INT long 2 + [000096] ----------- \--* CNS_INT long 8 + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] --C-------- * JTRUE void + [000106] --C-------- \--* EQ int + [000418] ----------- +--* CAST int <- ubyte <- int + [000415] ----------- | \--* EQ int + [000414] ----------- | +--* LCL_VAR long V12 tmp7 + [000100] ----------- | \--* LCL_VAR long V01 arg1 + [000105] ----------- \--* CNS_INT int 0 + +------------ BB15 [0014] [0F6..0FC) (return), preds={BB14} succs={} + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + [000233] ----------- * RETURN int + [000232] ----------- \--* CAST int <- long + [000231] ----------- \--* SUB long + [000228] ----------- +--* LCL_VAR long V04 loc1 + [000230] ----------- \--* CNS_INT long 2 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} + +***** BB16 [0015] +STMT00077 ( 0x0FC[E--] ... ??? ) + [000423] DA-XG------ * STORE_LCL_VAR long V14 tmp9 + [000116] ---XG------ \--* IND long + [000115] ----------- \--* ADD byref + [000108] ----------- +--* LCL_VAR byref V00 arg0 + [000114] ----------- \--* MUL long + [000112] ----------- +--* SUB long + [000109] ----------- | +--* LCL_VAR long V04 loc1 + [000111] ----------- | \--* CNS_INT long 3 + [000113] ----------- \--* CNS_INT long 8 + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] --C-------- * JTRUE void + [000123] --C-------- \--* EQ int + [000425] ----------- +--* CAST int <- ubyte <- int + [000422] ----------- | \--* EQ int + [000421] ----------- | +--* LCL_VAR long V14 tmp9 + [000117] ----------- | \--* LCL_VAR long V01 arg1 + [000122] ----------- \--* CNS_INT int 0 + +------------ BB17 [0016] [124..12A) (return), preds={BB16} succs={} + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) + [000227] ----------- * RETURN int + [000226] ----------- \--* CAST int <- long + [000225] ----------- \--* SUB long + [000222] ----------- +--* LCL_VAR long V04 loc1 + [000224] ----------- \--* CNS_INT long 3 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00078 ( 0x12A[E--] ... ??? ) + [000430] DA-XG------ * STORE_LCL_VAR long V16 tmp11 + [000133] ---XG------ \--* IND long + [000132] ----------- \--* ADD byref + [000125] ----------- +--* LCL_VAR byref V00 arg0 + [000131] ----------- \--* MUL long + [000129] ----------- +--* SUB long + [000126] ----------- | +--* LCL_VAR long V04 loc1 + [000128] ----------- | \--* CNS_INT long 4 + [000130] ----------- \--* CNS_INT long 8 + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] --C-------- * JTRUE void + [000140] --C-------- \--* EQ int + [000432] ----------- +--* CAST int <- ubyte <- int + [000429] ----------- | \--* EQ int + [000428] ----------- | +--* LCL_VAR long V16 tmp11 + [000134] ----------- | \--* LCL_VAR long V01 arg1 + [000139] ----------- \--* CNS_INT int 0 + +------------ BB19 [0018] [152..158) (return), preds={BB18} succs={} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) + [000221] ----------- * RETURN int + [000220] ----------- \--* CAST int <- long + [000219] ----------- \--* SUB long + [000216] ----------- +--* LCL_VAR long V04 loc1 + [000218] ----------- \--* CNS_INT long 4 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00079 ( 0x158[E--] ... ??? ) + [000437] DA-XG------ * STORE_LCL_VAR long V18 tmp13 + [000150] ---XG------ \--* IND long + [000149] ----------- \--* ADD byref + [000142] ----------- +--* LCL_VAR byref V00 arg0 + [000148] ----------- \--* MUL long + [000146] ----------- +--* SUB long + [000143] ----------- | +--* LCL_VAR long V04 loc1 + [000145] ----------- | \--* CNS_INT long 5 + [000147] ----------- \--* CNS_INT long 8 + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) + [000158] --C-------- * JTRUE void + [000157] --C-------- \--* EQ int + [000439] ----------- +--* CAST int <- ubyte <- int + [000436] ----------- | \--* EQ int + [000435] ----------- | +--* LCL_VAR long V18 tmp13 + [000151] ----------- | \--* LCL_VAR long V01 arg1 + [000156] ----------- \--* CNS_INT int 0 + +------------ BB21 [0020] [180..186) (return), preds={BB20} succs={} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) + [000215] ----------- * RETURN int + [000214] ----------- \--* CAST int <- long + [000213] ----------- \--* SUB long + [000210] ----------- +--* LCL_VAR long V04 loc1 + [000212] ----------- \--* CNS_INT long 5 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00080 ( 0x186[E--] ... ??? ) + [000444] DA-XG------ * STORE_LCL_VAR long V20 tmp15 + [000167] ---XG------ \--* IND long + [000166] ----------- \--* ADD byref + [000159] ----------- +--* LCL_VAR byref V00 arg0 + [000165] ----------- \--* MUL long + [000163] ----------- +--* SUB long + [000160] ----------- | +--* LCL_VAR long V04 loc1 + [000162] ----------- | \--* CNS_INT long 6 + [000164] ----------- \--* CNS_INT long 8 + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) + [000175] --C-------- * JTRUE void + [000174] --C-------- \--* EQ int + [000446] ----------- +--* CAST int <- ubyte <- int + [000443] ----------- | \--* EQ int + [000442] ----------- | +--* LCL_VAR long V20 tmp15 + [000168] ----------- | \--* LCL_VAR long V01 arg1 + [000173] ----------- \--* CNS_INT int 0 + +------------ BB23 [0022] [1AE..1B4) (return), preds={BB22} succs={} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) + [000209] ----------- * RETURN int + [000208] ----------- \--* CAST int <- long + [000207] ----------- \--* SUB long + [000204] ----------- +--* LCL_VAR long V04 loc1 + [000206] ----------- \--* CNS_INT long 6 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00081 ( 0x1B4[E--] ... ??? ) + [000451] DA-XG------ * STORE_LCL_VAR long V22 tmp17 + [000184] ---XG------ \--* IND long + [000183] ----------- \--* ADD byref + [000176] ----------- +--* LCL_VAR byref V00 arg0 + [000182] ----------- \--* MUL long + [000180] ----------- +--* SUB long + [000177] ----------- | +--* LCL_VAR long V04 loc1 + [000179] ----------- | \--* CNS_INT long 7 + [000181] ----------- \--* CNS_INT long 8 + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] --C-------- * JTRUE void + [000191] --C-------- \--* EQ int + [000453] ----------- +--* CAST int <- ubyte <- int + [000450] ----------- | \--* EQ int + [000449] ----------- | +--* LCL_VAR long V22 tmp17 + [000185] ----------- | \--* LCL_VAR long V01 arg1 + [000190] ----------- \--* CNS_INT int 0 + +------------ BB25 [0024] [1DC..1E2) (return), preds={BB24} succs={} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) + [000203] ----------- * RETURN int + [000202] ----------- \--* CAST int <- long + [000201] ----------- \--* SUB long + [000198] ----------- +--* LCL_VAR long V04 loc1 + [000200] ----------- \--* CNS_INT long 7 + +------------ BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + [000197] DA--------- * STORE_LCL_VAR long V04 loc1 + [000196] ----------- \--* SUB long + [000193] ----------- +--* LCL_VAR long V04 loc1 + [000195] ----------- \--* CNS_INT long 8 + +------------ BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} + +***** BB27 [0026] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + [000055] ----------- * JTRUE void + [000054] ----------- \--* GE int + [000052] ----------- +--* LCL_VAR int V02 arg2 + [000053] ----------- \--* CNS_INT int 8 + +------------ BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} + +***** BB28 [0027] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) + [000246] ----------- * JTRUE void + [000245] ----------- \--* LT int + [000243] ----------- +--* LCL_VAR int V02 arg2 + [000244] ----------- \--* CNS_INT int 4 + +------------ BB29 [0028] [1F5..21F) -> BB31(0.5),BB30(0.5) (cond), preds={BB28} succs={BB30,BB31} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) + [000282] DA--------- * STORE_LCL_VAR int V02 arg2 + [000281] ----------- \--* SUB int + [000279] ----------- +--* LCL_VAR int V02 arg2 + [000280] ----------- \--* CNS_INT int 4 + +***** BB29 [0028] +STMT00082 ( 0x1FA[E--] ... ??? ) + [000458] DA-XG------ * STORE_LCL_VAR long V24 tmp19 + [000288] ---XG------ \--* IND long + [000287] ----------- \--* ADD byref + [000283] ----------- +--* LCL_VAR byref V00 arg0 + [000286] ----------- \--* MUL long + [000284] ----------- +--* LCL_VAR long V04 loc1 + [000285] ----------- \--* CNS_INT long 8 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] --C-------- * JTRUE void + [000295] --C-------- \--* EQ int + [000460] ----------- +--* CAST int <- ubyte <- int + [000457] ----------- | \--* EQ int + [000456] ----------- | +--* LCL_VAR long V24 tmp19 + [000289] ----------- | \--* LCL_VAR long V01 arg1 + [000294] ----------- \--* CNS_INT int 0 + +------------ BB30 [0029] [21F..222) (return), preds={BB29} succs={} + +***** BB30 [0029] +STMT00067 ( 0x21F[E--] ... 0x221 ) + [000373] ----------- * RETURN int + [000372] ----------- \--* CAST int <- long + [000371] ----------- \--* LCL_VAR long V04 loc1 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00083 ( 0x222[E--] ... ??? ) + [000465] DA-XG------ * STORE_LCL_VAR long V26 tmp21 + [000305] ---XG------ \--* IND long + [000304] ----------- \--* ADD byref + [000297] ----------- +--* LCL_VAR byref V00 arg0 + [000303] ----------- \--* MUL long + [000301] ----------- +--* SUB long + [000298] ----------- | +--* LCL_VAR long V04 loc1 + [000300] ----------- | \--* CNS_INT long 1 + [000302] ----------- \--* CNS_INT long 8 + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) + [000313] --C-------- * JTRUE void + [000312] --C-------- \--* EQ int + [000467] ----------- +--* CAST int <- ubyte <- int + [000464] ----------- | \--* EQ int + [000463] ----------- | +--* LCL_VAR long V26 tmp21 + [000306] ----------- | \--* LCL_VAR long V01 arg1 + [000311] ----------- \--* CNS_INT int 0 + +------------ BB32 [0031] [24A..250) (return), preds={BB31} succs={} + +***** BB32 [0031] +STMT00066 ( 0x24A[E--] ... 0x24F ) + [000370] ----------- * RETURN int + [000369] ----------- \--* CAST int <- long + [000368] ----------- \--* SUB long + [000365] ----------- +--* LCL_VAR long V04 loc1 + [000367] ----------- \--* CNS_INT long 1 + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00084 ( 0x250[E--] ... ??? ) + [000472] DA-XG------ * STORE_LCL_VAR long V28 tmp23 + [000322] ---XG------ \--* IND long + [000321] ----------- \--* ADD byref + [000314] ----------- +--* LCL_VAR byref V00 arg0 + [000320] ----------- \--* MUL long + [000318] ----------- +--* SUB long + [000315] ----------- | +--* LCL_VAR long V04 loc1 + [000317] ----------- | \--* CNS_INT long 2 + [000319] ----------- \--* CNS_INT long 8 + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) + [000330] --C-------- * JTRUE void + [000329] --C-------- \--* EQ int + [000474] ----------- +--* CAST int <- ubyte <- int + [000471] ----------- | \--* EQ int + [000470] ----------- | +--* LCL_VAR long V28 tmp23 + [000323] ----------- | \--* LCL_VAR long V01 arg1 + [000328] ----------- \--* CNS_INT int 0 + +------------ BB34 [0033] [278..27E) (return), preds={BB33} succs={} + +***** BB34 [0033] +STMT00065 ( 0x278[E--] ... 0x27D ) + [000364] ----------- * RETURN int + [000363] ----------- \--* CAST int <- long + [000362] ----------- \--* SUB long + [000359] ----------- +--* LCL_VAR long V04 loc1 + [000361] ----------- \--* CNS_INT long 2 + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00085 ( 0x27E[E--] ... ??? ) + [000479] DA-XG------ * STORE_LCL_VAR long V30 tmp25 + [000339] ---XG------ \--* IND long + [000338] ----------- \--* ADD byref + [000331] ----------- +--* LCL_VAR byref V00 arg0 + [000337] ----------- \--* MUL long + [000335] ----------- +--* SUB long + [000332] ----------- | +--* LCL_VAR long V04 loc1 + [000334] ----------- | \--* CNS_INT long 3 + [000336] ----------- \--* CNS_INT long 8 + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] --C-------- * JTRUE void + [000346] --C-------- \--* EQ int + [000481] ----------- +--* CAST int <- ubyte <- int + [000478] ----------- | \--* EQ int + [000477] ----------- | +--* LCL_VAR long V30 tmp25 + [000340] ----------- | \--* LCL_VAR long V01 arg1 + [000345] ----------- \--* CNS_INT int 0 + +------------ BB36 [0035] [2A6..2AC) (return), preds={BB35} succs={} + +***** BB36 [0035] +STMT00064 ( 0x2A6[E--] ... 0x2AB ) + [000358] ----------- * RETURN int + [000357] ----------- \--* CAST int <- long + [000356] ----------- \--* SUB long + [000353] ----------- +--* LCL_VAR long V04 loc1 + [000355] ----------- \--* CNS_INT long 3 + +------------ BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) + [000352] DA--------- * STORE_LCL_VAR long V04 loc1 + [000351] ----------- \--* SUB long + [000348] ----------- +--* LCL_VAR long V04 loc1 + [000350] ----------- \--* CNS_INT long 4 + +------------ BB38 [0037] [2B3..2DD) -> BB40(0.5),BB39(0.5) (cond), preds={BB41} succs={BB39,BB40} + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) + [000254] DA--------- * STORE_LCL_VAR int V02 arg2 + [000253] ----------- \--* SUB int + [000251] ----------- +--* LCL_VAR int V02 arg2 + [000252] ----------- \--* CNS_INT int 1 + +***** BB38 [0037] +STMT00086 ( 0x2B8[E--] ... ??? ) + [000486] DA-XG------ * STORE_LCL_VAR long V32 tmp27 + [000260] ---XG------ \--* IND long + [000259] ----------- \--* ADD byref + [000255] ----------- +--* LCL_VAR byref V00 arg0 + [000258] ----------- \--* MUL long + [000256] ----------- +--* LCL_VAR long V04 loc1 + [000257] ----------- \--* CNS_INT long 8 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] --C-------- * JTRUE void + [000267] --C-------- \--* EQ int + [000488] ----------- +--* CAST int <- ubyte <- int + [000485] ----------- | \--* EQ int + [000484] ----------- | +--* LCL_VAR long V32 tmp27 + [000261] ----------- | \--* LCL_VAR long V01 arg1 + [000266] ----------- \--* CNS_INT int 0 + +------------ BB39 [0038] [2DD..2E0) (return), preds={BB38} succs={} + +***** BB39 [0038] +STMT00048 ( 0x2DD[E--] ... 0x2DF ) + [000276] ----------- * RETURN int + [000275] ----------- \--* CAST int <- long + [000274] ----------- \--* LCL_VAR long V04 loc1 + +------------ BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + [000273] DA--------- * STORE_LCL_VAR long V04 loc1 + [000272] ----------- \--* SUB long + [000269] ----------- +--* LCL_VAR long V04 loc1 + [000271] ----------- \--* CNS_INT long 1 + +------------ BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} + +***** BB41 [0040] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + [000250] ----------- * JTRUE void + [000249] ----------- \--* GT int + [000247] ----------- +--* LCL_VAR int V02 arg2 + [000248] ----------- \--* CNS_INT int 0 + +------------ BB42 [0041] [2E9..2EB) -> BB59(1) (always), preds={BB41} succs={BB59} + +------------ BB59 [0086] [???..???) (return), preds={BB42} succs={} + +***** BB59 [0086] +STMT00088 ( ??? ... ??? ) + [000493] ----------- * RETURN int + [000277] ----------- \--* CNS_INT int -1 + +------------ BB43 [0042] [2EB..2F2) -> BB46(1) (always), preds={BB08} succs={BB46} + +------------ BB46 [0045] [303..30A) -> BB49(1) (always), preds={BB43} succs={BB49} + +------------ BB49 [0048] [31B..324) (return), preds={BB46} succs={} + +***** BB49 [0048] +STMT00004 ( 0x31B[E--] ... 0x323 ) + [000045] --C-G------ * RETURN int + [000044] --C-G------ \--* CALL int + [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 + [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 + [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 + +------------ BB58 [0085] [???..???) (return), preds={} succs={} + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) + [000492] ----------- * RETURN int + [000491] -------N--- \--* LCL_VAR int V34 tmp29 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Remove empty try + +*************** In fgRemoveEmptyTry() +No EH in this method, nothing to remove. + +*************** Finishing PHASE Remove empty try [no changes] + +*************** Starting PHASE Remove empty try/catch/fault + +*************** In fgRemoveEmptyTryCatchOrTryFault() +No EH in this method, nothing to remove. + +*************** Finishing PHASE Remove empty try/catch/fault [no changes] + +*************** Starting PHASE Remove empty finally +No EH in this method, nothing to remove. + +*************** Finishing PHASE Remove empty finally [no changes] + +*************** Starting PHASE Merge callfinally chains +No EH in this method, nothing to merge. + +*************** Finishing PHASE Merge callfinally chains [no changes] + +*************** Starting PHASE Clone finally +No EH in this method, no cloning. + +*************** Finishing PHASE Clone finally [no changes] + +*************** Starting PHASE Head and tail merge +A set of 3 return blocks end with the same tree +STMT00040 ( 0x09D[E--] ... 0x09F ) + [000242] ----------- * RETURN int + [000241] ----------- \--* CAST int <- long + [000240] ----------- \--* LCL_VAR long V04 loc1 +Will cross-jump to BB11 + +unlinking STMT00067 ( 0x21F[E--] ... 0x221 ) + [000373] ----------- * RETURN int + [000372] ----------- \--* CAST int <- long + [000371] ----------- \--* LCL_VAR long V04 loc1 + from BB30 + +BB30 becomes empty +setting likelihood of BB30 -> BB11 to 1 + +unlinking STMT00048 ( 0x2DD[E--] ... 0x2DF ) + [000276] ----------- * RETURN int + [000275] ----------- \--* CAST int <- long + [000274] ----------- \--* LCL_VAR long V04 loc1 + from BB39 + +BB39 becomes empty +setting likelihood of BB39 -> BB11 to 1 + +*************** Finishing PHASE Head and tail merge +Trees after Head and tail merge + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..???)-> BB51(1) (always) i +BB51 [0050] 1 BB01 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB51 1 [000..001)-> BB53(1) (always) i +BB53 [0052] 2 BB51,BB52 1 [000..001)-> BB50(1) (always) i +BB50 [0053] 1 BB53 1 [01E..01E)-> BB02(1) (always) i +BB02 [0001] 1 BB50 1 [01E..02B)-> BB03(1) (always) i +BB03 [0002] 1 BB02 1 [02B..038)-> BB04(1) (always) i +BB04 [0003] 1 BB03 1 [038..045)-> BB05(1) (always) i +BB05 [0004] 1 BB04 1 [045..049)-> BB07(1) (always) i +BB07 [0006] 1 BB05 1 [04B..???)-> BB55(1) (always) i +BB55 [0055] 1 BB07 1 [04B..04C)-> BB57(0.5),BB56(0.5) ( cond ) i +BB56 [0056] 1 BB55 1 [04B..04C)-> BB57(1) (always) i +BB57 [0057] 2 BB55,BB56 1 [04B..04C)-> BB54(1) (always) i +BB54 [0058] 1 BB57 1 [05D..05D)-> BB08(1) (always) i +BB08 [0007] 1 BB54 1 [05D..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB08 1 [068..073)-> BB27(1) (always) i +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target +BB11 [0010] 3 BB10,BB30,BB39 1 [09D..0A0) (return) i +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd +BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd +BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd +BB17 [0016] 1 BB16 1 [124..12A) (return) i +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB19 [0018] 1 BB18 1 [152..158) (return) i +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB21 [0020] 1 BB20 1 [180..186) (return) i +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB31(0.5),BB30(0.5) ( cond ) i +BB30 [0029] 1 BB29 1 [21F..222)-> BB11(1) (always) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250) (return) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E) (return) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB40(0.5),BB39(0.5) ( cond ) i bwd bwd-target +BB39 [0038] 1 BB38 1 [2DD..2E0)-> BB11(1) (always) i +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB)-> BB59(1) (always) i +BB59 [0086] 1 BB42 1 [???..???) (return) internal +BB43 [0042] 1 BB08 1 [2EB..2F2)-> BB46(1) (always) i +BB46 [0045] 1 BB43 1 [303..30A)-> BB49(1) (always) i +BB49 [0048] 1 BB46 1 [31B..324) (return) i +BB58 [0085] 0 1 [???..???) (return) keep internal merged-return +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..???) -> BB51(1) (always), preds={} succs={BB51} + +------------ BB51 [0050] [000..001) -> BB53(0.5),BB52(0.5) (cond), preds={BB01} succs={BB52,BB53} + +***** BB51 [0050] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000384] ----------- * JTRUE void + [000383] ----------- \--* NE int + [000380] ----------- +--* CAST int <- ubyte <- int + [000374] ----------- | \--* CAST int <- ubyte <- int + [000004] ----------- | \--* EQ int + [000002] ----------- | +--* LT int + [000000] ----------- | | +--* LCL_VAR int V02 arg2 + [000001] ----------- | | \--* CNS_INT int 0 + [000003] ----------- | \--* CNS_INT int 0 + [000382] ----------- \--* CNS_INT int 0 + +------------ BB52 [0051] [000..001) -> BB53(1) (always), preds={BB51} succs={BB53} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000387] --C-G------ * CALL void + [000385] ----------- arg0 +--* CNS_STR ref + [000386] ----------- arg1 \--* CNS_STR ref "" + +------------ BB53 [0052] [000..001) -> BB50(1) (always), preds={BB51,BB52} succs={BB50} + +------------ BB50 [0053] [01E..01E) -> BB02(1) (always), preds={BB53} succs={BB02} + +------------ BB02 [0001] [01E..02B) -> BB03(1) (always), preds={BB50} succs={BB03} + +------------ BB03 [0002] [02B..038) -> BB04(1) (always), preds={BB02} succs={BB04} + +------------ BB04 [0003] [038..045) -> BB05(1) (always), preds={BB03} succs={BB05} + +------------ BB05 [0004] [045..049) -> BB07(1) (always), preds={BB04} succs={BB07} + +***** BB05 [0004] +STMT00001 ( 0x045[E--] ... 0x046 ) + [000024] DA--------- * STORE_LCL_VAR int V03 loc0 + [000023] ----------- \--* CNS_INT int 1 + +------------ BB07 [0006] [04B..???) -> BB55(1) (always), preds={BB05} succs={BB55} + +------------ BB55 [0055] [04B..04C) -> BB57(0.5),BB56(0.5) (cond), preds={BB07} succs={BB56,BB57} + +***** BB55 [0055] +STMT00072 ( INL04 @ 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000395] ----------- * JTRUE void + [000394] ----------- \--* NE int + [000025] ----------- +--* LCL_VAR int V03 loc0 + [000393] ----------- \--* CNS_INT int 0 + +------------ BB56 [0056] [04B..04C) -> BB57(1) (always), preds={BB55} succs={BB57} + +***** BB56 [0056] +STMT00073 ( INL04 @ 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000398] --C-G------ * CALL void + [000396] ----------- arg0 +--* CNS_STR ref + [000397] ----------- arg1 \--* CNS_STR ref "" + +------------ BB57 [0057] [04B..04C) -> BB54(1) (always), preds={BB55,BB56} succs={BB54} + +------------ BB54 [0058] [05D..05D) -> BB08(1) (always), preds={BB57} succs={BB08} + +------------ BB08 [0007] [05D..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB54} succs={BB09,BB43} + +***** BB08 [0007] +STMT00003 ( 0x05D[E--] ... 0x063 ) + [000034] ----------- * JTRUE void + [000033] ----------- \--* GE int + [000031] ----------- +--* LCL_VAR int V02 arg2 + [000032] ----------- \--* CNS_INT int 2 vector element count + +------------ BB09 [0008] [068..073) -> BB27(1) (always), preds={BB08} succs={BB27} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) + [000051] DA--------- * STORE_LCL_VAR long V04 loc1 + [000050] ----------- \--* SUB long + [000047] ----------- +--* CAST long <- int + [000046] ----------- | \--* LCL_VAR int V02 arg2 + [000049] ----------- \--* CNS_INT long 1 + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) + [000059] DA--------- * STORE_LCL_VAR int V02 arg2 + [000058] ----------- \--* SUB int + [000056] ----------- +--* LCL_VAR int V02 arg2 + [000057] ----------- \--* CNS_INT int 8 + +***** BB10 [0009] +STMT00074 ( 0x078[E--] ... ??? ) + [000402] DA-XG------ * STORE_LCL_VAR long V08 tmp3 + [000065] ---XG------ \--* IND long + [000064] ----------- \--* ADD byref + [000060] ----------- +--* LCL_VAR byref V00 arg0 + [000063] ----------- \--* MUL long + [000061] ----------- +--* LCL_VAR long V04 loc1 + [000062] ----------- \--* CNS_INT long 8 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) + [000073] --C-------- * JTRUE void + [000072] --C-------- \--* EQ int + [000404] ----------- +--* CAST int <- ubyte <- int + [000401] ----------- | \--* EQ int + [000400] ----------- | +--* LCL_VAR long V08 tmp3 + [000066] ----------- | \--* LCL_VAR long V01 arg1 + [000071] ----------- \--* CNS_INT int 0 + +------------ BB11 [0010] [09D..0A0) (return), preds={BB10,BB30,BB39} succs={} + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) + [000242] ----------- * RETURN int + [000241] ----------- \--* CAST int <- long + [000240] ----------- \--* LCL_VAR long V04 loc1 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} + +***** BB12 [0011] +STMT00075 ( 0x0A0[E--] ... ??? ) + [000409] DA-XG------ * STORE_LCL_VAR long V10 tmp5 + [000082] ---XG------ \--* IND long + [000081] ----------- \--* ADD byref + [000074] ----------- +--* LCL_VAR byref V00 arg0 + [000080] ----------- \--* MUL long + [000078] ----------- +--* SUB long + [000075] ----------- | +--* LCL_VAR long V04 loc1 + [000077] ----------- | \--* CNS_INT long 1 + [000079] ----------- \--* CNS_INT long 8 + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] --C-------- * JTRUE void + [000089] --C-------- \--* EQ int + [000411] ----------- +--* CAST int <- ubyte <- int + [000408] ----------- | \--* EQ int + [000407] ----------- | +--* LCL_VAR long V10 tmp5 + [000083] ----------- | \--* LCL_VAR long V01 arg1 + [000088] ----------- \--* CNS_INT int 0 + +------------ BB13 [0012] [0C8..0CE) (return), preds={BB12} succs={} + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + [000239] ----------- * RETURN int + [000238] ----------- \--* CAST int <- long + [000237] ----------- \--* SUB long + [000234] ----------- +--* LCL_VAR long V04 loc1 + [000236] ----------- \--* CNS_INT long 1 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} + +***** BB14 [0013] +STMT00076 ( 0x0CE[E--] ... ??? ) + [000416] DA-XG------ * STORE_LCL_VAR long V12 tmp7 + [000099] ---XG------ \--* IND long + [000098] ----------- \--* ADD byref + [000091] ----------- +--* LCL_VAR byref V00 arg0 + [000097] ----------- \--* MUL long + [000095] ----------- +--* SUB long + [000092] ----------- | +--* LCL_VAR long V04 loc1 + [000094] ----------- | \--* CNS_INT long 2 + [000096] ----------- \--* CNS_INT long 8 + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] --C-------- * JTRUE void + [000106] --C-------- \--* EQ int + [000418] ----------- +--* CAST int <- ubyte <- int + [000415] ----------- | \--* EQ int + [000414] ----------- | +--* LCL_VAR long V12 tmp7 + [000100] ----------- | \--* LCL_VAR long V01 arg1 + [000105] ----------- \--* CNS_INT int 0 + +------------ BB15 [0014] [0F6..0FC) (return), preds={BB14} succs={} + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + [000233] ----------- * RETURN int + [000232] ----------- \--* CAST int <- long + [000231] ----------- \--* SUB long + [000228] ----------- +--* LCL_VAR long V04 loc1 + [000230] ----------- \--* CNS_INT long 2 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} + +***** BB16 [0015] +STMT00077 ( 0x0FC[E--] ... ??? ) + [000423] DA-XG------ * STORE_LCL_VAR long V14 tmp9 + [000116] ---XG------ \--* IND long + [000115] ----------- \--* ADD byref + [000108] ----------- +--* LCL_VAR byref V00 arg0 + [000114] ----------- \--* MUL long + [000112] ----------- +--* SUB long + [000109] ----------- | +--* LCL_VAR long V04 loc1 + [000111] ----------- | \--* CNS_INT long 3 + [000113] ----------- \--* CNS_INT long 8 + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] --C-------- * JTRUE void + [000123] --C-------- \--* EQ int + [000425] ----------- +--* CAST int <- ubyte <- int + [000422] ----------- | \--* EQ int + [000421] ----------- | +--* LCL_VAR long V14 tmp9 + [000117] ----------- | \--* LCL_VAR long V01 arg1 + [000122] ----------- \--* CNS_INT int 0 + +------------ BB17 [0016] [124..12A) (return), preds={BB16} succs={} + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) + [000227] ----------- * RETURN int + [000226] ----------- \--* CAST int <- long + [000225] ----------- \--* SUB long + [000222] ----------- +--* LCL_VAR long V04 loc1 + [000224] ----------- \--* CNS_INT long 3 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00078 ( 0x12A[E--] ... ??? ) + [000430] DA-XG------ * STORE_LCL_VAR long V16 tmp11 + [000133] ---XG------ \--* IND long + [000132] ----------- \--* ADD byref + [000125] ----------- +--* LCL_VAR byref V00 arg0 + [000131] ----------- \--* MUL long + [000129] ----------- +--* SUB long + [000126] ----------- | +--* LCL_VAR long V04 loc1 + [000128] ----------- | \--* CNS_INT long 4 + [000130] ----------- \--* CNS_INT long 8 + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] --C-------- * JTRUE void + [000140] --C-------- \--* EQ int + [000432] ----------- +--* CAST int <- ubyte <- int + [000429] ----------- | \--* EQ int + [000428] ----------- | +--* LCL_VAR long V16 tmp11 + [000134] ----------- | \--* LCL_VAR long V01 arg1 + [000139] ----------- \--* CNS_INT int 0 + +------------ BB19 [0018] [152..158) (return), preds={BB18} succs={} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) + [000221] ----------- * RETURN int + [000220] ----------- \--* CAST int <- long + [000219] ----------- \--* SUB long + [000216] ----------- +--* LCL_VAR long V04 loc1 + [000218] ----------- \--* CNS_INT long 4 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00079 ( 0x158[E--] ... ??? ) + [000437] DA-XG------ * STORE_LCL_VAR long V18 tmp13 + [000150] ---XG------ \--* IND long + [000149] ----------- \--* ADD byref + [000142] ----------- +--* LCL_VAR byref V00 arg0 + [000148] ----------- \--* MUL long + [000146] ----------- +--* SUB long + [000143] ----------- | +--* LCL_VAR long V04 loc1 + [000145] ----------- | \--* CNS_INT long 5 + [000147] ----------- \--* CNS_INT long 8 + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) + [000158] --C-------- * JTRUE void + [000157] --C-------- \--* EQ int + [000439] ----------- +--* CAST int <- ubyte <- int + [000436] ----------- | \--* EQ int + [000435] ----------- | +--* LCL_VAR long V18 tmp13 + [000151] ----------- | \--* LCL_VAR long V01 arg1 + [000156] ----------- \--* CNS_INT int 0 + +------------ BB21 [0020] [180..186) (return), preds={BB20} succs={} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) + [000215] ----------- * RETURN int + [000214] ----------- \--* CAST int <- long + [000213] ----------- \--* SUB long + [000210] ----------- +--* LCL_VAR long V04 loc1 + [000212] ----------- \--* CNS_INT long 5 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00080 ( 0x186[E--] ... ??? ) + [000444] DA-XG------ * STORE_LCL_VAR long V20 tmp15 + [000167] ---XG------ \--* IND long + [000166] ----------- \--* ADD byref + [000159] ----------- +--* LCL_VAR byref V00 arg0 + [000165] ----------- \--* MUL long + [000163] ----------- +--* SUB long + [000160] ----------- | +--* LCL_VAR long V04 loc1 + [000162] ----------- | \--* CNS_INT long 6 + [000164] ----------- \--* CNS_INT long 8 + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) + [000175] --C-------- * JTRUE void + [000174] --C-------- \--* EQ int + [000446] ----------- +--* CAST int <- ubyte <- int + [000443] ----------- | \--* EQ int + [000442] ----------- | +--* LCL_VAR long V20 tmp15 + [000168] ----------- | \--* LCL_VAR long V01 arg1 + [000173] ----------- \--* CNS_INT int 0 + +------------ BB23 [0022] [1AE..1B4) (return), preds={BB22} succs={} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) + [000209] ----------- * RETURN int + [000208] ----------- \--* CAST int <- long + [000207] ----------- \--* SUB long + [000204] ----------- +--* LCL_VAR long V04 loc1 + [000206] ----------- \--* CNS_INT long 6 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00081 ( 0x1B4[E--] ... ??? ) + [000451] DA-XG------ * STORE_LCL_VAR long V22 tmp17 + [000184] ---XG------ \--* IND long + [000183] ----------- \--* ADD byref + [000176] ----------- +--* LCL_VAR byref V00 arg0 + [000182] ----------- \--* MUL long + [000180] ----------- +--* SUB long + [000177] ----------- | +--* LCL_VAR long V04 loc1 + [000179] ----------- | \--* CNS_INT long 7 + [000181] ----------- \--* CNS_INT long 8 + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] --C-------- * JTRUE void + [000191] --C-------- \--* EQ int + [000453] ----------- +--* CAST int <- ubyte <- int + [000450] ----------- | \--* EQ int + [000449] ----------- | +--* LCL_VAR long V22 tmp17 + [000185] ----------- | \--* LCL_VAR long V01 arg1 + [000190] ----------- \--* CNS_INT int 0 + +------------ BB25 [0024] [1DC..1E2) (return), preds={BB24} succs={} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) + [000203] ----------- * RETURN int + [000202] ----------- \--* CAST int <- long + [000201] ----------- \--* SUB long + [000198] ----------- +--* LCL_VAR long V04 loc1 + [000200] ----------- \--* CNS_INT long 7 + +------------ BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + [000197] DA--------- * STORE_LCL_VAR long V04 loc1 + [000196] ----------- \--* SUB long + [000193] ----------- +--* LCL_VAR long V04 loc1 + [000195] ----------- \--* CNS_INT long 8 + +------------ BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} + +***** BB27 [0026] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + [000055] ----------- * JTRUE void + [000054] ----------- \--* GE int + [000052] ----------- +--* LCL_VAR int V02 arg2 + [000053] ----------- \--* CNS_INT int 8 + +------------ BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} + +***** BB28 [0027] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) + [000246] ----------- * JTRUE void + [000245] ----------- \--* LT int + [000243] ----------- +--* LCL_VAR int V02 arg2 + [000244] ----------- \--* CNS_INT int 4 + +------------ BB29 [0028] [1F5..21F) -> BB31(0.5),BB30(0.5) (cond), preds={BB28} succs={BB30,BB31} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) + [000282] DA--------- * STORE_LCL_VAR int V02 arg2 + [000281] ----------- \--* SUB int + [000279] ----------- +--* LCL_VAR int V02 arg2 + [000280] ----------- \--* CNS_INT int 4 + +***** BB29 [0028] +STMT00082 ( 0x1FA[E--] ... ??? ) + [000458] DA-XG------ * STORE_LCL_VAR long V24 tmp19 + [000288] ---XG------ \--* IND long + [000287] ----------- \--* ADD byref + [000283] ----------- +--* LCL_VAR byref V00 arg0 + [000286] ----------- \--* MUL long + [000284] ----------- +--* LCL_VAR long V04 loc1 + [000285] ----------- \--* CNS_INT long 8 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] --C-------- * JTRUE void + [000295] --C-------- \--* EQ int + [000460] ----------- +--* CAST int <- ubyte <- int + [000457] ----------- | \--* EQ int + [000456] ----------- | +--* LCL_VAR long V24 tmp19 + [000289] ----------- | \--* LCL_VAR long V01 arg1 + [000294] ----------- \--* CNS_INT int 0 + +------------ BB30 [0029] [21F..222) -> BB11(1) (always), preds={BB29} succs={BB11} + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00083 ( 0x222[E--] ... ??? ) + [000465] DA-XG------ * STORE_LCL_VAR long V26 tmp21 + [000305] ---XG------ \--* IND long + [000304] ----------- \--* ADD byref + [000297] ----------- +--* LCL_VAR byref V00 arg0 + [000303] ----------- \--* MUL long + [000301] ----------- +--* SUB long + [000298] ----------- | +--* LCL_VAR long V04 loc1 + [000300] ----------- | \--* CNS_INT long 1 + [000302] ----------- \--* CNS_INT long 8 + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) + [000313] --C-------- * JTRUE void + [000312] --C-------- \--* EQ int + [000467] ----------- +--* CAST int <- ubyte <- int + [000464] ----------- | \--* EQ int + [000463] ----------- | +--* LCL_VAR long V26 tmp21 + [000306] ----------- | \--* LCL_VAR long V01 arg1 + [000311] ----------- \--* CNS_INT int 0 + +------------ BB32 [0031] [24A..250) (return), preds={BB31} succs={} + +***** BB32 [0031] +STMT00066 ( 0x24A[E--] ... 0x24F ) + [000370] ----------- * RETURN int + [000369] ----------- \--* CAST int <- long + [000368] ----------- \--* SUB long + [000365] ----------- +--* LCL_VAR long V04 loc1 + [000367] ----------- \--* CNS_INT long 1 + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00084 ( 0x250[E--] ... ??? ) + [000472] DA-XG------ * STORE_LCL_VAR long V28 tmp23 + [000322] ---XG------ \--* IND long + [000321] ----------- \--* ADD byref + [000314] ----------- +--* LCL_VAR byref V00 arg0 + [000320] ----------- \--* MUL long + [000318] ----------- +--* SUB long + [000315] ----------- | +--* LCL_VAR long V04 loc1 + [000317] ----------- | \--* CNS_INT long 2 + [000319] ----------- \--* CNS_INT long 8 + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) + [000330] --C-------- * JTRUE void + [000329] --C-------- \--* EQ int + [000474] ----------- +--* CAST int <- ubyte <- int + [000471] ----------- | \--* EQ int + [000470] ----------- | +--* LCL_VAR long V28 tmp23 + [000323] ----------- | \--* LCL_VAR long V01 arg1 + [000328] ----------- \--* CNS_INT int 0 + +------------ BB34 [0033] [278..27E) (return), preds={BB33} succs={} + +***** BB34 [0033] +STMT00065 ( 0x278[E--] ... 0x27D ) + [000364] ----------- * RETURN int + [000363] ----------- \--* CAST int <- long + [000362] ----------- \--* SUB long + [000359] ----------- +--* LCL_VAR long V04 loc1 + [000361] ----------- \--* CNS_INT long 2 + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00085 ( 0x27E[E--] ... ??? ) + [000479] DA-XG------ * STORE_LCL_VAR long V30 tmp25 + [000339] ---XG------ \--* IND long + [000338] ----------- \--* ADD byref + [000331] ----------- +--* LCL_VAR byref V00 arg0 + [000337] ----------- \--* MUL long + [000335] ----------- +--* SUB long + [000332] ----------- | +--* LCL_VAR long V04 loc1 + [000334] ----------- | \--* CNS_INT long 3 + [000336] ----------- \--* CNS_INT long 8 + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] --C-------- * JTRUE void + [000346] --C-------- \--* EQ int + [000481] ----------- +--* CAST int <- ubyte <- int + [000478] ----------- | \--* EQ int + [000477] ----------- | +--* LCL_VAR long V30 tmp25 + [000340] ----------- | \--* LCL_VAR long V01 arg1 + [000345] ----------- \--* CNS_INT int 0 + +------------ BB36 [0035] [2A6..2AC) (return), preds={BB35} succs={} + +***** BB36 [0035] +STMT00064 ( 0x2A6[E--] ... 0x2AB ) + [000358] ----------- * RETURN int + [000357] ----------- \--* CAST int <- long + [000356] ----------- \--* SUB long + [000353] ----------- +--* LCL_VAR long V04 loc1 + [000355] ----------- \--* CNS_INT long 3 + +------------ BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) + [000352] DA--------- * STORE_LCL_VAR long V04 loc1 + [000351] ----------- \--* SUB long + [000348] ----------- +--* LCL_VAR long V04 loc1 + [000350] ----------- \--* CNS_INT long 4 + +------------ BB38 [0037] [2B3..2DD) -> BB40(0.5),BB39(0.5) (cond), preds={BB41} succs={BB39,BB40} + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) + [000254] DA--------- * STORE_LCL_VAR int V02 arg2 + [000253] ----------- \--* SUB int + [000251] ----------- +--* LCL_VAR int V02 arg2 + [000252] ----------- \--* CNS_INT int 1 + +***** BB38 [0037] +STMT00086 ( 0x2B8[E--] ... ??? ) + [000486] DA-XG------ * STORE_LCL_VAR long V32 tmp27 + [000260] ---XG------ \--* IND long + [000259] ----------- \--* ADD byref + [000255] ----------- +--* LCL_VAR byref V00 arg0 + [000258] ----------- \--* MUL long + [000256] ----------- +--* LCL_VAR long V04 loc1 + [000257] ----------- \--* CNS_INT long 8 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] --C-------- * JTRUE void + [000267] --C-------- \--* EQ int + [000488] ----------- +--* CAST int <- ubyte <- int + [000485] ----------- | \--* EQ int + [000484] ----------- | +--* LCL_VAR long V32 tmp27 + [000261] ----------- | \--* LCL_VAR long V01 arg1 + [000266] ----------- \--* CNS_INT int 0 + +------------ BB39 [0038] [2DD..2E0) -> BB11(1) (always), preds={BB38} succs={BB11} + +------------ BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + [000273] DA--------- * STORE_LCL_VAR long V04 loc1 + [000272] ----------- \--* SUB long + [000269] ----------- +--* LCL_VAR long V04 loc1 + [000271] ----------- \--* CNS_INT long 1 + +------------ BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} + +***** BB41 [0040] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + [000250] ----------- * JTRUE void + [000249] ----------- \--* GT int + [000247] ----------- +--* LCL_VAR int V02 arg2 + [000248] ----------- \--* CNS_INT int 0 + +------------ BB42 [0041] [2E9..2EB) -> BB59(1) (always), preds={BB41} succs={BB59} + +------------ BB59 [0086] [???..???) (return), preds={BB42} succs={} + +***** BB59 [0086] +STMT00088 ( ??? ... ??? ) + [000493] ----------- * RETURN int + [000277] ----------- \--* CNS_INT int -1 + +------------ BB43 [0042] [2EB..2F2) -> BB46(1) (always), preds={BB08} succs={BB46} + +------------ BB46 [0045] [303..30A) -> BB49(1) (always), preds={BB43} succs={BB49} + +------------ BB49 [0048] [31B..324) (return), preds={BB46} succs={} + +***** BB49 [0048] +STMT00004 ( 0x31B[E--] ... 0x323 ) + [000045] --C-G------ * RETURN int + [000044] --C-G------ \--* CALL int + [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 + [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 + [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 + +------------ BB58 [0085] [???..???) (return), preds={} succs={} + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) + [000492] ----------- * RETURN int + [000491] -------N--- \--* LCL_VAR int V34 tmp29 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Merge throw blocks + +*************** In fgTailMergeThrows +Method does not have multiple noreturn calls. + +*************** Finishing PHASE Merge throw blocks [no changes] + +*************** Starting PHASE Update flow graph early pass + +Compacting BB51 into BB01: +*************** In fgDebugCheckBBlist + +Compacting BB50 into BB53: +setting likelihood of BB53 -> BB02 from 1 to 1 +*************** In fgDebugCheckBBlist + +Compacting BB02 into BB53: +setting likelihood of BB53 -> BB03 from 1 to 1 +*************** In fgDebugCheckBBlist + +Compacting BB03 into BB53: +setting likelihood of BB53 -> BB04 from 1 to 1 +*************** In fgDebugCheckBBlist + +Compacting BB04 into BB53: +setting likelihood of BB53 -> BB05 from 1 to 1 +*************** In fgDebugCheckBBlist + +Compacting BB05 into BB53: +setting likelihood of BB53 -> BB07 from 1 to 1 +*************** In fgDebugCheckBBlist + +Compacting BB07 into BB53: +setting likelihood of BB53 -> BB55 from 1 to 1 +*************** In fgDebugCheckBBlist + +Compacting BB55 into BB53: +*************** In fgDebugCheckBBlist + +Compacting BB54 into BB57: +setting likelihood of BB57 -> BB08 from 1 to 1 +*************** In fgDebugCheckBBlist + +Compacting BB08 into BB57: +*************** In fgDebugCheckBBlist + +Reversing a conditional jump around an unconditional jump (BB29 -> BB31, BB30 -> BB11) + +After reversing the jump: + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 1 [000..001)-> BB53(1) (always) i +BB53 [0052] 2 BB01,BB52 1 [000..04C)-> BB57(0.5),BB56(0.5) ( cond ) i +BB56 [0056] 1 BB53 1 [04B..04C)-> BB57(1) (always) i +BB57 [0057] 2 BB53,BB56 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target +BB11 [0010] 3 BB10,BB29,BB39 1 [09D..0A0) (return) i +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd +BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd +BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd +BB17 [0016] 1 BB16 1 [124..12A) (return) i +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB19 [0018] 1 BB18 1 [152..158) (return) i +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB21 [0020] 1 BB20 1 [180..186) (return) i +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250) (return) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E) (return) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB40(0.5),BB39(0.5) ( cond ) i bwd bwd-target +BB39 [0038] 1 BB38 1 [2DD..2E0)-> BB11(1) (always) i +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB)-> BB59(1) (always) i +BB59 [0086] 1 BB42 1 [???..???) (return) internal +BB43 [0042] 1 BB57 1 [2EB..2F2)-> BB46(1) (always) i +BB46 [0045] 1 BB43 1 [303..30A)-> BB49(1) (always) i +BB49 [0048] 1 BB46 1 [31B..324) (return) i +BB58 [0085] 0 1 [???..???) (return) keep internal merged-return +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Reversing a conditional jump around an unconditional jump (BB38 -> BB40, BB39 -> BB11) + +After reversing the jump: + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 1 [000..001)-> BB53(1) (always) i +BB53 [0052] 2 BB01,BB52 1 [000..04C)-> BB57(0.5),BB56(0.5) ( cond ) i +BB56 [0056] 1 BB53 1 [04B..04C)-> BB57(1) (always) i +BB57 [0057] 2 BB53,BB56 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target +BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0) (return) i +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd +BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd +BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd +BB17 [0016] 1 BB16 1 [124..12A) (return) i +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB19 [0018] 1 BB18 1 [152..158) (return) i +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB21 [0020] 1 BB20 1 [180..186) (return) i +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250) (return) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E) (return) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB)-> BB59(1) (always) i +BB59 [0086] 1 BB42 1 [???..???) (return) internal +BB43 [0042] 1 BB57 1 [2EB..2F2)-> BB46(1) (always) i +BB46 [0045] 1 BB43 1 [303..30A)-> BB49(1) (always) i +BB49 [0048] 1 BB46 1 [31B..324) (return) i +BB58 [0085] 0 1 [???..???) (return) keep internal merged-return +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Compacting BB59 into BB42: +*************** In fgDebugCheckBBlist + +Compacting BB46 into BB43: +setting likelihood of BB43 -> BB49 from 1 to 1 +*************** In fgDebugCheckBBlist + +Compacting BB49 into BB43: +*************** In fgDebugCheckBBlist + +*************** Finishing PHASE Update flow graph early pass +Trees after Update flow graph early pass + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 1 [000..001)-> BB53(1) (always) i +BB53 [0052] 2 BB01,BB52 1 [000..04C)-> BB57(0.5),BB56(0.5) ( cond ) i +BB56 [0056] 1 BB53 1 [04B..04C)-> BB57(1) (always) i +BB57 [0057] 2 BB53,BB56 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target +BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0) (return) i +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd +BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd +BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd +BB17 [0016] 1 BB16 1 [124..12A) (return) i +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB19 [0018] 1 BB18 1 [152..158) (return) i +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB21 [0020] 1 BB20 1 [180..186) (return) i +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250) (return) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E) (return) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 1 [2EB..324) (return) i +BB58 [0085] 0 1 [???..???) (return) keep internal merged-return +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB53(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB53} + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000384] ----------- * JTRUE void + [000383] ----------- \--* NE int + [000380] ----------- +--* CAST int <- ubyte <- int + [000374] ----------- | \--* CAST int <- ubyte <- int + [000004] ----------- | \--* EQ int + [000002] ----------- | +--* LT int + [000000] ----------- | | +--* LCL_VAR int V02 arg2 + [000001] ----------- | | \--* CNS_INT int 0 + [000003] ----------- | \--* CNS_INT int 0 + [000382] ----------- \--* CNS_INT int 0 + +------------ BB52 [0051] [000..001) -> BB53(1) (always), preds={BB01} succs={BB53} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000387] --C-G------ * CALL void + [000385] ----------- arg0 +--* CNS_STR ref + [000386] ----------- arg1 \--* CNS_STR ref "" + +------------ BB53 [0052] [000..04C) -> BB57(0.5),BB56(0.5) (cond), preds={BB01,BB52} succs={BB56,BB57} + +***** BB53 [0052] +STMT00001 ( 0x045[E--] ... 0x046 ) + [000024] DA--------- * STORE_LCL_VAR int V03 loc0 + [000023] ----------- \--* CNS_INT int 1 + +***** BB53 [0052] +STMT00072 ( INL04 @ 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000395] ----------- * JTRUE void + [000394] ----------- \--* NE int + [000025] ----------- +--* LCL_VAR int V03 loc0 + [000393] ----------- \--* CNS_INT int 0 + +------------ BB56 [0056] [04B..04C) -> BB57(1) (always), preds={BB53} succs={BB57} + +***** BB56 [0056] +STMT00073 ( INL04 @ 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000398] --C-G------ * CALL void + [000396] ----------- arg0 +--* CNS_STR ref + [000397] ----------- arg1 \--* CNS_STR ref "" + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB53,BB56} succs={BB09,BB43} + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) + [000034] ----------- * JTRUE void + [000033] ----------- \--* GE int + [000031] ----------- +--* LCL_VAR int V02 arg2 + [000032] ----------- \--* CNS_INT int 2 vector element count + +------------ BB09 [0008] [068..073) -> BB27(1) (always), preds={BB57} succs={BB27} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) + [000051] DA--------- * STORE_LCL_VAR long V04 loc1 + [000050] ----------- \--* SUB long + [000047] ----------- +--* CAST long <- int + [000046] ----------- | \--* LCL_VAR int V02 arg2 + [000049] ----------- \--* CNS_INT long 1 + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) + [000059] DA--------- * STORE_LCL_VAR int V02 arg2 + [000058] ----------- \--* SUB int + [000056] ----------- +--* LCL_VAR int V02 arg2 + [000057] ----------- \--* CNS_INT int 8 + +***** BB10 [0009] +STMT00074 ( 0x078[E--] ... ??? ) + [000402] DA-XG------ * STORE_LCL_VAR long V08 tmp3 + [000065] ---XG------ \--* IND long + [000064] ----------- \--* ADD byref + [000060] ----------- +--* LCL_VAR byref V00 arg0 + [000063] ----------- \--* MUL long + [000061] ----------- +--* LCL_VAR long V04 loc1 + [000062] ----------- \--* CNS_INT long 8 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) + [000073] --C-------- * JTRUE void + [000072] --C-------- \--* EQ int + [000404] ----------- +--* CAST int <- ubyte <- int + [000401] ----------- | \--* EQ int + [000400] ----------- | +--* LCL_VAR long V08 tmp3 + [000066] ----------- | \--* LCL_VAR long V01 arg1 + [000071] ----------- \--* CNS_INT int 0 + +------------ BB11 [0010] [09D..0A0) (return), preds={BB10,BB29,BB38} succs={} + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) + [000242] ----------- * RETURN int + [000241] ----------- \--* CAST int <- long + [000240] ----------- \--* LCL_VAR long V04 loc1 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} + +***** BB12 [0011] +STMT00075 ( 0x0A0[E--] ... ??? ) + [000409] DA-XG------ * STORE_LCL_VAR long V10 tmp5 + [000082] ---XG------ \--* IND long + [000081] ----------- \--* ADD byref + [000074] ----------- +--* LCL_VAR byref V00 arg0 + [000080] ----------- \--* MUL long + [000078] ----------- +--* SUB long + [000075] ----------- | +--* LCL_VAR long V04 loc1 + [000077] ----------- | \--* CNS_INT long 1 + [000079] ----------- \--* CNS_INT long 8 + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] --C-------- * JTRUE void + [000089] --C-------- \--* EQ int + [000411] ----------- +--* CAST int <- ubyte <- int + [000408] ----------- | \--* EQ int + [000407] ----------- | +--* LCL_VAR long V10 tmp5 + [000083] ----------- | \--* LCL_VAR long V01 arg1 + [000088] ----------- \--* CNS_INT int 0 + +------------ BB13 [0012] [0C8..0CE) (return), preds={BB12} succs={} + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + [000239] ----------- * RETURN int + [000238] ----------- \--* CAST int <- long + [000237] ----------- \--* SUB long + [000234] ----------- +--* LCL_VAR long V04 loc1 + [000236] ----------- \--* CNS_INT long 1 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} + +***** BB14 [0013] +STMT00076 ( 0x0CE[E--] ... ??? ) + [000416] DA-XG------ * STORE_LCL_VAR long V12 tmp7 + [000099] ---XG------ \--* IND long + [000098] ----------- \--* ADD byref + [000091] ----------- +--* LCL_VAR byref V00 arg0 + [000097] ----------- \--* MUL long + [000095] ----------- +--* SUB long + [000092] ----------- | +--* LCL_VAR long V04 loc1 + [000094] ----------- | \--* CNS_INT long 2 + [000096] ----------- \--* CNS_INT long 8 + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] --C-------- * JTRUE void + [000106] --C-------- \--* EQ int + [000418] ----------- +--* CAST int <- ubyte <- int + [000415] ----------- | \--* EQ int + [000414] ----------- | +--* LCL_VAR long V12 tmp7 + [000100] ----------- | \--* LCL_VAR long V01 arg1 + [000105] ----------- \--* CNS_INT int 0 + +------------ BB15 [0014] [0F6..0FC) (return), preds={BB14} succs={} + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + [000233] ----------- * RETURN int + [000232] ----------- \--* CAST int <- long + [000231] ----------- \--* SUB long + [000228] ----------- +--* LCL_VAR long V04 loc1 + [000230] ----------- \--* CNS_INT long 2 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} + +***** BB16 [0015] +STMT00077 ( 0x0FC[E--] ... ??? ) + [000423] DA-XG------ * STORE_LCL_VAR long V14 tmp9 + [000116] ---XG------ \--* IND long + [000115] ----------- \--* ADD byref + [000108] ----------- +--* LCL_VAR byref V00 arg0 + [000114] ----------- \--* MUL long + [000112] ----------- +--* SUB long + [000109] ----------- | +--* LCL_VAR long V04 loc1 + [000111] ----------- | \--* CNS_INT long 3 + [000113] ----------- \--* CNS_INT long 8 + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] --C-------- * JTRUE void + [000123] --C-------- \--* EQ int + [000425] ----------- +--* CAST int <- ubyte <- int + [000422] ----------- | \--* EQ int + [000421] ----------- | +--* LCL_VAR long V14 tmp9 + [000117] ----------- | \--* LCL_VAR long V01 arg1 + [000122] ----------- \--* CNS_INT int 0 + +------------ BB17 [0016] [124..12A) (return), preds={BB16} succs={} + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) + [000227] ----------- * RETURN int + [000226] ----------- \--* CAST int <- long + [000225] ----------- \--* SUB long + [000222] ----------- +--* LCL_VAR long V04 loc1 + [000224] ----------- \--* CNS_INT long 3 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00078 ( 0x12A[E--] ... ??? ) + [000430] DA-XG------ * STORE_LCL_VAR long V16 tmp11 + [000133] ---XG------ \--* IND long + [000132] ----------- \--* ADD byref + [000125] ----------- +--* LCL_VAR byref V00 arg0 + [000131] ----------- \--* MUL long + [000129] ----------- +--* SUB long + [000126] ----------- | +--* LCL_VAR long V04 loc1 + [000128] ----------- | \--* CNS_INT long 4 + [000130] ----------- \--* CNS_INT long 8 + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] --C-------- * JTRUE void + [000140] --C-------- \--* EQ int + [000432] ----------- +--* CAST int <- ubyte <- int + [000429] ----------- | \--* EQ int + [000428] ----------- | +--* LCL_VAR long V16 tmp11 + [000134] ----------- | \--* LCL_VAR long V01 arg1 + [000139] ----------- \--* CNS_INT int 0 + +------------ BB19 [0018] [152..158) (return), preds={BB18} succs={} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) + [000221] ----------- * RETURN int + [000220] ----------- \--* CAST int <- long + [000219] ----------- \--* SUB long + [000216] ----------- +--* LCL_VAR long V04 loc1 + [000218] ----------- \--* CNS_INT long 4 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00079 ( 0x158[E--] ... ??? ) + [000437] DA-XG------ * STORE_LCL_VAR long V18 tmp13 + [000150] ---XG------ \--* IND long + [000149] ----------- \--* ADD byref + [000142] ----------- +--* LCL_VAR byref V00 arg0 + [000148] ----------- \--* MUL long + [000146] ----------- +--* SUB long + [000143] ----------- | +--* LCL_VAR long V04 loc1 + [000145] ----------- | \--* CNS_INT long 5 + [000147] ----------- \--* CNS_INT long 8 + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) + [000158] --C-------- * JTRUE void + [000157] --C-------- \--* EQ int + [000439] ----------- +--* CAST int <- ubyte <- int + [000436] ----------- | \--* EQ int + [000435] ----------- | +--* LCL_VAR long V18 tmp13 + [000151] ----------- | \--* LCL_VAR long V01 arg1 + [000156] ----------- \--* CNS_INT int 0 + +------------ BB21 [0020] [180..186) (return), preds={BB20} succs={} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) + [000215] ----------- * RETURN int + [000214] ----------- \--* CAST int <- long + [000213] ----------- \--* SUB long + [000210] ----------- +--* LCL_VAR long V04 loc1 + [000212] ----------- \--* CNS_INT long 5 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00080 ( 0x186[E--] ... ??? ) + [000444] DA-XG------ * STORE_LCL_VAR long V20 tmp15 + [000167] ---XG------ \--* IND long + [000166] ----------- \--* ADD byref + [000159] ----------- +--* LCL_VAR byref V00 arg0 + [000165] ----------- \--* MUL long + [000163] ----------- +--* SUB long + [000160] ----------- | +--* LCL_VAR long V04 loc1 + [000162] ----------- | \--* CNS_INT long 6 + [000164] ----------- \--* CNS_INT long 8 + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) + [000175] --C-------- * JTRUE void + [000174] --C-------- \--* EQ int + [000446] ----------- +--* CAST int <- ubyte <- int + [000443] ----------- | \--* EQ int + [000442] ----------- | +--* LCL_VAR long V20 tmp15 + [000168] ----------- | \--* LCL_VAR long V01 arg1 + [000173] ----------- \--* CNS_INT int 0 + +------------ BB23 [0022] [1AE..1B4) (return), preds={BB22} succs={} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) + [000209] ----------- * RETURN int + [000208] ----------- \--* CAST int <- long + [000207] ----------- \--* SUB long + [000204] ----------- +--* LCL_VAR long V04 loc1 + [000206] ----------- \--* CNS_INT long 6 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00081 ( 0x1B4[E--] ... ??? ) + [000451] DA-XG------ * STORE_LCL_VAR long V22 tmp17 + [000184] ---XG------ \--* IND long + [000183] ----------- \--* ADD byref + [000176] ----------- +--* LCL_VAR byref V00 arg0 + [000182] ----------- \--* MUL long + [000180] ----------- +--* SUB long + [000177] ----------- | +--* LCL_VAR long V04 loc1 + [000179] ----------- | \--* CNS_INT long 7 + [000181] ----------- \--* CNS_INT long 8 + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] --C-------- * JTRUE void + [000191] --C-------- \--* EQ int + [000453] ----------- +--* CAST int <- ubyte <- int + [000450] ----------- | \--* EQ int + [000449] ----------- | +--* LCL_VAR long V22 tmp17 + [000185] ----------- | \--* LCL_VAR long V01 arg1 + [000190] ----------- \--* CNS_INT int 0 + +------------ BB25 [0024] [1DC..1E2) (return), preds={BB24} succs={} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) + [000203] ----------- * RETURN int + [000202] ----------- \--* CAST int <- long + [000201] ----------- \--* SUB long + [000198] ----------- +--* LCL_VAR long V04 loc1 + [000200] ----------- \--* CNS_INT long 7 + +------------ BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + [000197] DA--------- * STORE_LCL_VAR long V04 loc1 + [000196] ----------- \--* SUB long + [000193] ----------- +--* LCL_VAR long V04 loc1 + [000195] ----------- \--* CNS_INT long 8 + +------------ BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} + +***** BB27 [0026] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + [000055] ----------- * JTRUE void + [000054] ----------- \--* GE int + [000052] ----------- +--* LCL_VAR int V02 arg2 + [000053] ----------- \--* CNS_INT int 8 + +------------ BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} + +***** BB28 [0027] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) + [000246] ----------- * JTRUE void + [000245] ----------- \--* LT int + [000243] ----------- +--* LCL_VAR int V02 arg2 + [000244] ----------- \--* CNS_INT int 4 + +------------ BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB28} succs={BB31,BB11} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) + [000282] DA--------- * STORE_LCL_VAR int V02 arg2 + [000281] ----------- \--* SUB int + [000279] ----------- +--* LCL_VAR int V02 arg2 + [000280] ----------- \--* CNS_INT int 4 + +***** BB29 [0028] +STMT00082 ( 0x1FA[E--] ... ??? ) + [000458] DA-XG------ * STORE_LCL_VAR long V24 tmp19 + [000288] ---XG------ \--* IND long + [000287] ----------- \--* ADD byref + [000283] ----------- +--* LCL_VAR byref V00 arg0 + [000286] ----------- \--* MUL long + [000284] ----------- +--* LCL_VAR long V04 loc1 + [000285] ----------- \--* CNS_INT long 8 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] --C-------- * JTRUE void + [000295] --C-------- \--* NE int + [000460] ----------- +--* CAST int <- ubyte <- int + [000457] ----------- | \--* EQ int + [000456] ----------- | +--* LCL_VAR long V24 tmp19 + [000289] ----------- | \--* LCL_VAR long V01 arg1 + [000294] ----------- \--* CNS_INT int 0 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00083 ( 0x222[E--] ... ??? ) + [000465] DA-XG------ * STORE_LCL_VAR long V26 tmp21 + [000305] ---XG------ \--* IND long + [000304] ----------- \--* ADD byref + [000297] ----------- +--* LCL_VAR byref V00 arg0 + [000303] ----------- \--* MUL long + [000301] ----------- +--* SUB long + [000298] ----------- | +--* LCL_VAR long V04 loc1 + [000300] ----------- | \--* CNS_INT long 1 + [000302] ----------- \--* CNS_INT long 8 + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) + [000313] --C-------- * JTRUE void + [000312] --C-------- \--* EQ int + [000467] ----------- +--* CAST int <- ubyte <- int + [000464] ----------- | \--* EQ int + [000463] ----------- | +--* LCL_VAR long V26 tmp21 + [000306] ----------- | \--* LCL_VAR long V01 arg1 + [000311] ----------- \--* CNS_INT int 0 + +------------ BB32 [0031] [24A..250) (return), preds={BB31} succs={} + +***** BB32 [0031] +STMT00066 ( 0x24A[E--] ... 0x24F ) + [000370] ----------- * RETURN int + [000369] ----------- \--* CAST int <- long + [000368] ----------- \--* SUB long + [000365] ----------- +--* LCL_VAR long V04 loc1 + [000367] ----------- \--* CNS_INT long 1 + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00084 ( 0x250[E--] ... ??? ) + [000472] DA-XG------ * STORE_LCL_VAR long V28 tmp23 + [000322] ---XG------ \--* IND long + [000321] ----------- \--* ADD byref + [000314] ----------- +--* LCL_VAR byref V00 arg0 + [000320] ----------- \--* MUL long + [000318] ----------- +--* SUB long + [000315] ----------- | +--* LCL_VAR long V04 loc1 + [000317] ----------- | \--* CNS_INT long 2 + [000319] ----------- \--* CNS_INT long 8 + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) + [000330] --C-------- * JTRUE void + [000329] --C-------- \--* EQ int + [000474] ----------- +--* CAST int <- ubyte <- int + [000471] ----------- | \--* EQ int + [000470] ----------- | +--* LCL_VAR long V28 tmp23 + [000323] ----------- | \--* LCL_VAR long V01 arg1 + [000328] ----------- \--* CNS_INT int 0 + +------------ BB34 [0033] [278..27E) (return), preds={BB33} succs={} + +***** BB34 [0033] +STMT00065 ( 0x278[E--] ... 0x27D ) + [000364] ----------- * RETURN int + [000363] ----------- \--* CAST int <- long + [000362] ----------- \--* SUB long + [000359] ----------- +--* LCL_VAR long V04 loc1 + [000361] ----------- \--* CNS_INT long 2 + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00085 ( 0x27E[E--] ... ??? ) + [000479] DA-XG------ * STORE_LCL_VAR long V30 tmp25 + [000339] ---XG------ \--* IND long + [000338] ----------- \--* ADD byref + [000331] ----------- +--* LCL_VAR byref V00 arg0 + [000337] ----------- \--* MUL long + [000335] ----------- +--* SUB long + [000332] ----------- | +--* LCL_VAR long V04 loc1 + [000334] ----------- | \--* CNS_INT long 3 + [000336] ----------- \--* CNS_INT long 8 + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] --C-------- * JTRUE void + [000346] --C-------- \--* EQ int + [000481] ----------- +--* CAST int <- ubyte <- int + [000478] ----------- | \--* EQ int + [000477] ----------- | +--* LCL_VAR long V30 tmp25 + [000340] ----------- | \--* LCL_VAR long V01 arg1 + [000345] ----------- \--* CNS_INT int 0 + +------------ BB36 [0035] [2A6..2AC) (return), preds={BB35} succs={} + +***** BB36 [0035] +STMT00064 ( 0x2A6[E--] ... 0x2AB ) + [000358] ----------- * RETURN int + [000357] ----------- \--* CAST int <- long + [000356] ----------- \--* SUB long + [000353] ----------- +--* LCL_VAR long V04 loc1 + [000355] ----------- \--* CNS_INT long 3 + +------------ BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) + [000352] DA--------- * STORE_LCL_VAR long V04 loc1 + [000351] ----------- \--* SUB long + [000348] ----------- +--* LCL_VAR long V04 loc1 + [000350] ----------- \--* CNS_INT long 4 + +------------ BB38 [0037] [2B3..2DD) -> BB11(0.5),BB40(0.5) (cond), preds={BB41} succs={BB40,BB11} + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) + [000254] DA--------- * STORE_LCL_VAR int V02 arg2 + [000253] ----------- \--* SUB int + [000251] ----------- +--* LCL_VAR int V02 arg2 + [000252] ----------- \--* CNS_INT int 1 + +***** BB38 [0037] +STMT00086 ( 0x2B8[E--] ... ??? ) + [000486] DA-XG------ * STORE_LCL_VAR long V32 tmp27 + [000260] ---XG------ \--* IND long + [000259] ----------- \--* ADD byref + [000255] ----------- +--* LCL_VAR byref V00 arg0 + [000258] ----------- \--* MUL long + [000256] ----------- +--* LCL_VAR long V04 loc1 + [000257] ----------- \--* CNS_INT long 8 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] --C-------- * JTRUE void + [000267] --C-------- \--* NE int + [000488] ----------- +--* CAST int <- ubyte <- int + [000485] ----------- | \--* EQ int + [000484] ----------- | +--* LCL_VAR long V32 tmp27 + [000261] ----------- | \--* LCL_VAR long V01 arg1 + [000266] ----------- \--* CNS_INT int 0 + +------------ BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + [000273] DA--------- * STORE_LCL_VAR long V04 loc1 + [000272] ----------- \--* SUB long + [000269] ----------- +--* LCL_VAR long V04 loc1 + [000271] ----------- \--* CNS_INT long 1 + +------------ BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} + +***** BB41 [0040] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + [000250] ----------- * JTRUE void + [000249] ----------- \--* GT int + [000247] ----------- +--* LCL_VAR int V02 arg2 + [000248] ----------- \--* CNS_INT int 0 + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} + +***** BB42 [0041] +STMT00088 ( ??? ... ??? ) + [000493] ----------- * RETURN int + [000277] ----------- \--* CNS_INT int -1 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) + [000045] --C-G------ * RETURN int + [000044] --C-G------ \--* CALL int + [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 + [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 + [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 + +------------ BB58 [0085] [???..???) (return), preds={} succs={} + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) + [000492] ----------- * RETURN int + [000491] -------N--- \--* LCL_VAR int V34 tmp29 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Morph - Promote Structs + +lvaTable before fgPromoteStructs +; Initial local variable assignments +; +; V00 arg0 byref +; V01 arg1 long +; V02 arg2 int +; V03 loc0 ubyte +; V04 loc1 long +; V05 OutArgs struct <0> do-not-enreg[XS] addr-exposed "OutgoingArgSpace" +; V06 tmp1 ubyte "Inlining Arg" +; V07 tmp2 ubyte "Inlining Arg" +; V08 tmp3 long "Inlining Arg" +; V09 tmp4 ubyte "Inlining Arg" +; V10 tmp5 long "Inlining Arg" +; V11 tmp6 ubyte "Inlining Arg" +; V12 tmp7 long "Inlining Arg" +; V13 tmp8 ubyte "Inlining Arg" +; V14 tmp9 long "Inlining Arg" +; V15 tmp10 ubyte "Inlining Arg" +; V16 tmp11 long "Inlining Arg" +; V17 tmp12 ubyte "Inlining Arg" +; V18 tmp13 long "Inlining Arg" +; V19 tmp14 ubyte "Inlining Arg" +; V20 tmp15 long "Inlining Arg" +; V21 tmp16 ubyte "Inlining Arg" +; V22 tmp17 long "Inlining Arg" +; V23 tmp18 ubyte "Inlining Arg" +; V24 tmp19 long "Inlining Arg" +; V25 tmp20 ubyte "Inlining Arg" +; V26 tmp21 long "Inlining Arg" +; V27 tmp22 ubyte "Inlining Arg" +; V28 tmp23 long "Inlining Arg" +; V29 tmp24 ubyte "Inlining Arg" +; V30 tmp25 long "Inlining Arg" +; V31 tmp26 ubyte "Inlining Arg" +; V32 tmp27 long "Inlining Arg" +; V33 tmp28 ubyte "Inlining Arg" +; V34 tmp29 int "Single return block return value" + struct promotion of V05 is disabled because it has already been marked DNER + +*************** Finishing PHASE Morph - Promote Structs [no changes] + +*************** Starting PHASE DFS blocks and remove dead code 2 + +*************** Finishing PHASE DFS blocks and remove dead code 2 [no changes] + +*************** Starting PHASE Local morph +Identifying loops in DFS tree with following reverse post order: +RPO -> BB [pre, post] +00 -> BB58[38, 38] +01 -> BB01[0, 37] +02 -> BB52[1, 36] +03 -> BB53[2, 35] +04 -> BB56[3, 34] +05 -> BB57[4, 33] +06 -> BB43[37, 32] +07 -> BB09[5, 31] +08 -> BB27[6, 30] +09 -> BB10[21, 29] +10 -> BB12[22, 28] +11 -> BB14[24, 27] +12 -> BB16[26, 26] +13 -> BB18[28, 25] +14 -> BB20[30, 24] +15 -> BB22[32, 23] +16 -> BB24[34, 22] +17 -> BB26[36, 21] +18 -> BB25[35, 20] +19 -> BB23[33, 19] +20 -> BB21[31, 18] +21 -> BB19[29, 17] +22 -> BB17[27, 16] +23 -> BB15[25, 15] +24 -> BB13[23, 14] +25 -> BB28[7, 13] +26 -> BB29[8, 12] +27 -> BB31[9, 11] +28 -> BB33[11, 10] +29 -> BB35[13, 9] +30 -> BB37[15, 8] +31 -> BB41[16, 7] +32 -> BB38[18, 6] +33 -> BB11[20, 5] +34 -> BB40[19, 4] +35 -> BB42[17, 3] +36 -> BB36[14, 2] +37 -> BB34[12, 1] +38 -> BB32[10, 0] + +BB26 -> BB27 is a backedge +BB27 is the header of a DFS loop with 1 back edges +Loop has 10 blocks +BB27 -> BB28 is an exit edge +BB10 -> BB11 is an exit edge +BB12 -> BB13 is an exit edge +BB14 -> BB15 is an exit edge +BB16 -> BB17 is an exit edge +BB18 -> BB19 is an exit edge +BB20 -> BB21 is an exit edge +BB22 -> BB23 is an exit edge +BB24 -> BB25 is an exit edge +BB09 -> BB27 is an entry edge +Added loop L00 with header BB27 + +BB40 -> BB41 is a backedge +BB41 is the header of a DFS loop with 1 back edges +Loop has 3 blocks +BB41 -> BB42 is an exit edge +BB38 -> BB11 is an exit edge +BB28 -> BB41 is an entry edge +BB37 -> BB41 is an entry edge +Added loop L01 with header BB41 + +Found 2 loops + +*************** Natural loop graph +L00 header: BB27 + Members (10): BB10;BB12;BB14;BB16;BB18;BB20;BB22;BB24;[BB26..BB27] + Entry: BB09 -> BB27 + Exit: BB27 -> BB28; BB10 -> BB11; BB12 -> BB13; BB14 -> BB15; BB16 -> BB17; BB18 -> BB19; BB20 -> BB21; BB22 -> BB23; BB24 -> BB25 + Back: BB26 -> BB27 +L01 header: BB41 + Members (3): [BB38..BB41] + Entry: BB28 -> BB41; BB37 -> BB41 + Exit: BB41 -> BB42; BB38 -> BB11 + Back: BB40 -> BB41 + +LocalAddressVisitor visiting statement: +STMT00087 ( ??? ... ??? ) + [000492] ----------- * RETURN int + [000491] -------N--- \--* LCL_VAR int V34 tmp29 + +LocalAddressVisitor visiting statement: +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000384] ----------- * JTRUE void + [000383] ----------- \--* NE int + [000380] ----------- +--* CAST int <- ubyte <- int + [000374] ----------- | \--* CAST int <- ubyte <- int + [000004] ----------- | \--* EQ int + [000002] ----------- | +--* LT int + [000000] ----------- | | +--* LCL_VAR int V02 arg2 + [000001] ----------- | | \--* CNS_INT int 0 + [000003] ----------- | \--* CNS_INT int 0 + [000382] ----------- \--* CNS_INT int 0 + +LocalAddressVisitor visiting statement: +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000387] --C-G------ * CALL void + [000385] ----------- arg0 +--* CNS_STR ref + [000386] ----------- arg1 \--* CNS_STR ref "" + +LocalAddressVisitor visiting statement: +STMT00001 ( 0x045[E--] ... 0x046 ) + [000024] DA--------- * STORE_LCL_VAR int V03 loc0 + [000023] ----------- \--* CNS_INT int 1 + +LocalAddressVisitor visiting statement: +STMT00072 ( INL04 @ 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000395] ----------- * JTRUE void + [000394] ----------- \--* NE int + [000025] ----------- +--* LCL_VAR int V03 loc0 + [000393] ----------- \--* CNS_INT int 0 + +LocalAddressVisitor visiting statement: +STMT00073 ( INL04 @ 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000398] --C-G------ * CALL void + [000396] ----------- arg0 +--* CNS_STR ref + [000397] ----------- arg1 \--* CNS_STR ref "" + +LocalAddressVisitor visiting statement: +STMT00003 ( 0x05D[E--] ... 0x063 ) + [000034] ----------- * JTRUE void + [000033] ----------- \--* GE int + [000031] ----------- +--* LCL_VAR int V02 arg2 + [000032] ----------- \--* CNS_INT int 2 vector element count + +LocalAddressVisitor visiting statement: +STMT00004 ( 0x31B[E--] ... 0x323 ) + [000045] --C-G------ * RETURN int + [000044] --C-G------ \--* CALL int + [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 + [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 + [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 + +LocalAddressVisitor visiting statement: +STMT00005 ( 0x068[E--] ... 0x06D ) + [000051] DA--------- * STORE_LCL_VAR long V04 loc1 + [000050] ----------- \--* SUB long + [000047] ----------- +--* CAST long <- int + [000046] ----------- | \--* LCL_VAR int V02 arg2 + [000049] ----------- \--* CNS_INT long 1 + +LocalAddressVisitor visiting statement: +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + [000055] ----------- * JTRUE void + [000054] ----------- \--* GE int + [000052] ----------- +--* LCL_VAR int V02 arg2 + [000053] ----------- \--* CNS_INT int 8 + +LocalAddressVisitor visiting statement: +STMT00007 ( 0x073[E--] ... 0x076 ) + [000059] DA--------- * STORE_LCL_VAR int V02 arg2 + [000058] ----------- \--* SUB int + [000056] ----------- +--* LCL_VAR int V02 arg2 + [000057] ----------- \--* CNS_INT int 8 + +LocalAddressVisitor visiting statement: +STMT00074 ( 0x078[E--] ... ??? ) + [000402] DA-XG------ * STORE_LCL_VAR long V08 tmp3 + [000065] ---XG------ \--* IND long + [000064] ----------- \--* ADD byref + [000060] ----------- +--* LCL_VAR byref V00 arg0 + [000063] ----------- \--* MUL long + [000061] ----------- +--* LCL_VAR long V04 loc1 + [000062] ----------- \--* CNS_INT long 8 + +LocalAddressVisitor visiting statement: +STMT00010 ( 0x078[E--] ... ??? ) + [000073] --C-------- * JTRUE void + [000072] --C-------- \--* EQ int + [000404] ----------- +--* CAST int <- ubyte <- int + [000401] ----------- | \--* EQ int + [000400] ----------- | +--* LCL_VAR long V08 tmp3 + [000066] ----------- | \--* LCL_VAR long V01 arg1 + [000071] ----------- \--* CNS_INT int 0 + +LocalAddressVisitor visiting statement: +STMT00075 ( 0x0A0[E--] ... ??? ) + [000409] DA-XG------ * STORE_LCL_VAR long V10 tmp5 + [000082] ---XG------ \--* IND long + [000081] ----------- \--* ADD byref + [000074] ----------- +--* LCL_VAR byref V00 arg0 + [000080] ----------- \--* MUL long + [000078] ----------- +--* SUB long + [000075] ----------- | +--* LCL_VAR long V04 loc1 + [000077] ----------- | \--* CNS_INT long 1 + [000079] ----------- \--* CNS_INT long 8 + +LocalAddressVisitor visiting statement: +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] --C-------- * JTRUE void + [000089] --C-------- \--* EQ int + [000411] ----------- +--* CAST int <- ubyte <- int + [000408] ----------- | \--* EQ int + [000407] ----------- | +--* LCL_VAR long V10 tmp5 + [000083] ----------- | \--* LCL_VAR long V01 arg1 + [000088] ----------- \--* CNS_INT int 0 + +LocalAddressVisitor visiting statement: +STMT00076 ( 0x0CE[E--] ... ??? ) + [000416] DA-XG------ * STORE_LCL_VAR long V12 tmp7 + [000099] ---XG------ \--* IND long + [000098] ----------- \--* ADD byref + [000091] ----------- +--* LCL_VAR byref V00 arg0 + [000097] ----------- \--* MUL long + [000095] ----------- +--* SUB long + [000092] ----------- | +--* LCL_VAR long V04 loc1 + [000094] ----------- | \--* CNS_INT long 2 + [000096] ----------- \--* CNS_INT long 8 + +LocalAddressVisitor visiting statement: +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] --C-------- * JTRUE void + [000106] --C-------- \--* EQ int + [000418] ----------- +--* CAST int <- ubyte <- int + [000415] ----------- | \--* EQ int + [000414] ----------- | +--* LCL_VAR long V12 tmp7 + [000100] ----------- | \--* LCL_VAR long V01 arg1 + [000105] ----------- \--* CNS_INT int 0 + +LocalAddressVisitor visiting statement: +STMT00077 ( 0x0FC[E--] ... ??? ) + [000423] DA-XG------ * STORE_LCL_VAR long V14 tmp9 + [000116] ---XG------ \--* IND long + [000115] ----------- \--* ADD byref + [000108] ----------- +--* LCL_VAR byref V00 arg0 + [000114] ----------- \--* MUL long + [000112] ----------- +--* SUB long + [000109] ----------- | +--* LCL_VAR long V04 loc1 + [000111] ----------- | \--* CNS_INT long 3 + [000113] ----------- \--* CNS_INT long 8 + +LocalAddressVisitor visiting statement: +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] --C-------- * JTRUE void + [000123] --C-------- \--* EQ int + [000425] ----------- +--* CAST int <- ubyte <- int + [000422] ----------- | \--* EQ int + [000421] ----------- | +--* LCL_VAR long V14 tmp9 + [000117] ----------- | \--* LCL_VAR long V01 arg1 + [000122] ----------- \--* CNS_INT int 0 + +LocalAddressVisitor visiting statement: +STMT00078 ( 0x12A[E--] ... ??? ) + [000430] DA-XG------ * STORE_LCL_VAR long V16 tmp11 + [000133] ---XG------ \--* IND long + [000132] ----------- \--* ADD byref + [000125] ----------- +--* LCL_VAR byref V00 arg0 + [000131] ----------- \--* MUL long + [000129] ----------- +--* SUB long + [000126] ----------- | +--* LCL_VAR long V04 loc1 + [000128] ----------- | \--* CNS_INT long 4 + [000130] ----------- \--* CNS_INT long 8 + +LocalAddressVisitor visiting statement: +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] --C-------- * JTRUE void + [000140] --C-------- \--* EQ int + [000432] ----------- +--* CAST int <- ubyte <- int + [000429] ----------- | \--* EQ int + [000428] ----------- | +--* LCL_VAR long V16 tmp11 + [000134] ----------- | \--* LCL_VAR long V01 arg1 + [000139] ----------- \--* CNS_INT int 0 + +LocalAddressVisitor visiting statement: +STMT00079 ( 0x158[E--] ... ??? ) + [000437] DA-XG------ * STORE_LCL_VAR long V18 tmp13 + [000150] ---XG------ \--* IND long + [000149] ----------- \--* ADD byref + [000142] ----------- +--* LCL_VAR byref V00 arg0 + [000148] ----------- \--* MUL long + [000146] ----------- +--* SUB long + [000143] ----------- | +--* LCL_VAR long V04 loc1 + [000145] ----------- | \--* CNS_INT long 5 + [000147] ----------- \--* CNS_INT long 8 + +LocalAddressVisitor visiting statement: +STMT00025 ( 0x158[E--] ... ??? ) + [000158] --C-------- * JTRUE void + [000157] --C-------- \--* EQ int + [000439] ----------- +--* CAST int <- ubyte <- int + [000436] ----------- | \--* EQ int + [000435] ----------- | +--* LCL_VAR long V18 tmp13 + [000151] ----------- | \--* LCL_VAR long V01 arg1 + [000156] ----------- \--* CNS_INT int 0 + +LocalAddressVisitor visiting statement: +STMT00080 ( 0x186[E--] ... ??? ) + [000444] DA-XG------ * STORE_LCL_VAR long V20 tmp15 + [000167] ---XG------ \--* IND long + [000166] ----------- \--* ADD byref + [000159] ----------- +--* LCL_VAR byref V00 arg0 + [000165] ----------- \--* MUL long + [000163] ----------- +--* SUB long + [000160] ----------- | +--* LCL_VAR long V04 loc1 + [000162] ----------- | \--* CNS_INT long 6 + [000164] ----------- \--* CNS_INT long 8 + +LocalAddressVisitor visiting statement: +STMT00028 ( 0x186[E--] ... ??? ) + [000175] --C-------- * JTRUE void + [000174] --C-------- \--* EQ int + [000446] ----------- +--* CAST int <- ubyte <- int + [000443] ----------- | \--* EQ int + [000442] ----------- | +--* LCL_VAR long V20 tmp15 + [000168] ----------- | \--* LCL_VAR long V01 arg1 + [000173] ----------- \--* CNS_INT int 0 + +LocalAddressVisitor visiting statement: +STMT00081 ( 0x1B4[E--] ... ??? ) + [000451] DA-XG------ * STORE_LCL_VAR long V22 tmp17 + [000184] ---XG------ \--* IND long + [000183] ----------- \--* ADD byref + [000176] ----------- +--* LCL_VAR byref V00 arg0 + [000182] ----------- \--* MUL long + [000180] ----------- +--* SUB long + [000177] ----------- | +--* LCL_VAR long V04 loc1 + [000179] ----------- | \--* CNS_INT long 7 + [000181] ----------- \--* CNS_INT long 8 + +LocalAddressVisitor visiting statement: +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] --C-------- * JTRUE void + [000191] --C-------- \--* EQ int + [000453] ----------- +--* CAST int <- ubyte <- int + [000450] ----------- | \--* EQ int + [000449] ----------- | +--* LCL_VAR long V22 tmp17 + [000185] ----------- | \--* LCL_VAR long V01 arg1 + [000190] ----------- \--* CNS_INT int 0 + +LocalAddressVisitor visiting statement: +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + [000197] DA--------- * STORE_LCL_VAR long V04 loc1 + [000196] ----------- \--* SUB long + [000193] ----------- +--* LCL_VAR long V04 loc1 + [000195] ----------- \--* CNS_INT long 8 + +LocalAddressVisitor visiting statement: +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) + [000203] ----------- * RETURN int + [000202] ----------- \--* CAST int <- long + [000201] ----------- \--* SUB long + [000198] ----------- +--* LCL_VAR long V04 loc1 + [000200] ----------- \--* CNS_INT long 7 + +LocalAddressVisitor visiting statement: +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) + [000209] ----------- * RETURN int + [000208] ----------- \--* CAST int <- long + [000207] ----------- \--* SUB long + [000204] ----------- +--* LCL_VAR long V04 loc1 + [000206] ----------- \--* CNS_INT long 6 + +LocalAddressVisitor visiting statement: +STMT00035 ( 0x180[E--] ... 0x185 ) + [000215] ----------- * RETURN int + [000214] ----------- \--* CAST int <- long + [000213] ----------- \--* SUB long + [000210] ----------- +--* LCL_VAR long V04 loc1 + [000212] ----------- \--* CNS_INT long 5 + +LocalAddressVisitor visiting statement: +STMT00036 ( 0x152[E--] ... 0x157 ) + [000221] ----------- * RETURN int + [000220] ----------- \--* CAST int <- long + [000219] ----------- \--* SUB long + [000216] ----------- +--* LCL_VAR long V04 loc1 + [000218] ----------- \--* CNS_INT long 4 + +LocalAddressVisitor visiting statement: +STMT00037 ( 0x124[E--] ... 0x129 ) + [000227] ----------- * RETURN int + [000226] ----------- \--* CAST int <- long + [000225] ----------- \--* SUB long + [000222] ----------- +--* LCL_VAR long V04 loc1 + [000224] ----------- \--* CNS_INT long 3 + +LocalAddressVisitor visiting statement: +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + [000233] ----------- * RETURN int + [000232] ----------- \--* CAST int <- long + [000231] ----------- \--* SUB long + [000228] ----------- +--* LCL_VAR long V04 loc1 + [000230] ----------- \--* CNS_INT long 2 + +LocalAddressVisitor visiting statement: +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + [000239] ----------- * RETURN int + [000238] ----------- \--* CAST int <- long + [000237] ----------- \--* SUB long + [000234] ----------- +--* LCL_VAR long V04 loc1 + [000236] ----------- \--* CNS_INT long 1 + +LocalAddressVisitor visiting statement: +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) + [000246] ----------- * JTRUE void + [000245] ----------- \--* LT int + [000243] ----------- +--* LCL_VAR int V02 arg2 + [000244] ----------- \--* CNS_INT int 4 + +LocalAddressVisitor visiting statement: +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) + [000282] DA--------- * STORE_LCL_VAR int V02 arg2 + [000281] ----------- \--* SUB int + [000279] ----------- +--* LCL_VAR int V02 arg2 + [000280] ----------- \--* CNS_INT int 4 + +LocalAddressVisitor visiting statement: +STMT00082 ( 0x1FA[E--] ... ??? ) + [000458] DA-XG------ * STORE_LCL_VAR long V24 tmp19 + [000288] ---XG------ \--* IND long + [000287] ----------- \--* ADD byref + [000283] ----------- +--* LCL_VAR byref V00 arg0 + [000286] ----------- \--* MUL long + [000284] ----------- +--* LCL_VAR long V04 loc1 + [000285] ----------- \--* CNS_INT long 8 + +LocalAddressVisitor visiting statement: +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] --C-------- * JTRUE void + [000295] --C-------- \--* NE int + [000460] ----------- +--* CAST int <- ubyte <- int + [000457] ----------- | \--* EQ int + [000456] ----------- | +--* LCL_VAR long V24 tmp19 + [000289] ----------- | \--* LCL_VAR long V01 arg1 + [000294] ----------- \--* CNS_INT int 0 + +LocalAddressVisitor visiting statement: +STMT00083 ( 0x222[E--] ... ??? ) + [000465] DA-XG------ * STORE_LCL_VAR long V26 tmp21 + [000305] ---XG------ \--* IND long + [000304] ----------- \--* ADD byref + [000297] ----------- +--* LCL_VAR byref V00 arg0 + [000303] ----------- \--* MUL long + [000301] ----------- +--* SUB long + [000298] ----------- | +--* LCL_VAR long V04 loc1 + [000300] ----------- | \--* CNS_INT long 1 + [000302] ----------- \--* CNS_INT long 8 + +LocalAddressVisitor visiting statement: +STMT00056 ( 0x222[E--] ... ??? ) + [000313] --C-------- * JTRUE void + [000312] --C-------- \--* EQ int + [000467] ----------- +--* CAST int <- ubyte <- int + [000464] ----------- | \--* EQ int + [000463] ----------- | +--* LCL_VAR long V26 tmp21 + [000306] ----------- | \--* LCL_VAR long V01 arg1 + [000311] ----------- \--* CNS_INT int 0 + +LocalAddressVisitor visiting statement: +STMT00084 ( 0x250[E--] ... ??? ) + [000472] DA-XG------ * STORE_LCL_VAR long V28 tmp23 + [000322] ---XG------ \--* IND long + [000321] ----------- \--* ADD byref + [000314] ----------- +--* LCL_VAR byref V00 arg0 + [000320] ----------- \--* MUL long + [000318] ----------- +--* SUB long + [000315] ----------- | +--* LCL_VAR long V04 loc1 + [000317] ----------- | \--* CNS_INT long 2 + [000319] ----------- \--* CNS_INT long 8 + +LocalAddressVisitor visiting statement: +STMT00059 ( 0x250[E--] ... ??? ) + [000330] --C-------- * JTRUE void + [000329] --C-------- \--* EQ int + [000474] ----------- +--* CAST int <- ubyte <- int + [000471] ----------- | \--* EQ int + [000470] ----------- | +--* LCL_VAR long V28 tmp23 + [000323] ----------- | \--* LCL_VAR long V01 arg1 + [000328] ----------- \--* CNS_INT int 0 + +LocalAddressVisitor visiting statement: +STMT00085 ( 0x27E[E--] ... ??? ) + [000479] DA-XG------ * STORE_LCL_VAR long V30 tmp25 + [000339] ---XG------ \--* IND long + [000338] ----------- \--* ADD byref + [000331] ----------- +--* LCL_VAR byref V00 arg0 + [000337] ----------- \--* MUL long + [000335] ----------- +--* SUB long + [000332] ----------- | +--* LCL_VAR long V04 loc1 + [000334] ----------- | \--* CNS_INT long 3 + [000336] ----------- \--* CNS_INT long 8 + +LocalAddressVisitor visiting statement: +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] --C-------- * JTRUE void + [000346] --C-------- \--* EQ int + [000481] ----------- +--* CAST int <- ubyte <- int + [000478] ----------- | \--* EQ int + [000477] ----------- | +--* LCL_VAR long V30 tmp25 + [000340] ----------- | \--* LCL_VAR long V01 arg1 + [000345] ----------- \--* CNS_INT int 0 + +LocalAddressVisitor visiting statement: +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) + [000352] DA--------- * STORE_LCL_VAR long V04 loc1 + [000351] ----------- \--* SUB long + [000348] ----------- +--* LCL_VAR long V04 loc1 + [000350] ----------- \--* CNS_INT long 4 + +LocalAddressVisitor visiting statement: +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + [000250] ----------- * JTRUE void + [000249] ----------- \--* GT int + [000247] ----------- +--* LCL_VAR int V02 arg2 + [000248] ----------- \--* CNS_INT int 0 + +LocalAddressVisitor visiting statement: +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) + [000254] DA--------- * STORE_LCL_VAR int V02 arg2 + [000253] ----------- \--* SUB int + [000251] ----------- +--* LCL_VAR int V02 arg2 + [000252] ----------- \--* CNS_INT int 1 + +LocalAddressVisitor visiting statement: +STMT00086 ( 0x2B8[E--] ... ??? ) + [000486] DA-XG------ * STORE_LCL_VAR long V32 tmp27 + [000260] ---XG------ \--* IND long + [000259] ----------- \--* ADD byref + [000255] ----------- +--* LCL_VAR byref V00 arg0 + [000258] ----------- \--* MUL long + [000256] ----------- +--* LCL_VAR long V04 loc1 + [000257] ----------- \--* CNS_INT long 8 + +LocalAddressVisitor visiting statement: +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] --C-------- * JTRUE void + [000267] --C-------- \--* NE int + [000488] ----------- +--* CAST int <- ubyte <- int + [000485] ----------- | \--* EQ int + [000484] ----------- | +--* LCL_VAR long V32 tmp27 + [000261] ----------- | \--* LCL_VAR long V01 arg1 + [000266] ----------- \--* CNS_INT int 0 + +LocalAddressVisitor visiting statement: +STMT00040 ( 0x09D[E--] ... 0x09F ) + [000242] ----------- * RETURN int + [000241] ----------- \--* CAST int <- long + [000240] ----------- \--* LCL_VAR long V04 loc1 + +LocalAddressVisitor visiting statement: +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + [000273] DA--------- * STORE_LCL_VAR long V04 loc1 + [000272] ----------- \--* SUB long + [000269] ----------- +--* LCL_VAR long V04 loc1 + [000271] ----------- \--* CNS_INT long 1 + +LocalAddressVisitor visiting statement: +STMT00088 ( ??? ... ??? ) + [000493] ----------- * RETURN int + [000277] ----------- \--* CNS_INT int -1 + +LocalAddressVisitor visiting statement: +STMT00064 ( 0x2A6[E--] ... 0x2AB ) + [000358] ----------- * RETURN int + [000357] ----------- \--* CAST int <- long + [000356] ----------- \--* SUB long + [000353] ----------- +--* LCL_VAR long V04 loc1 + [000355] ----------- \--* CNS_INT long 3 + +LocalAddressVisitor visiting statement: +STMT00065 ( 0x278[E--] ... 0x27D ) + [000364] ----------- * RETURN int + [000363] ----------- \--* CAST int <- long + [000362] ----------- \--* SUB long + [000359] ----------- +--* LCL_VAR long V04 loc1 + [000361] ----------- \--* CNS_INT long 2 + +LocalAddressVisitor visiting statement: +STMT00066 ( 0x24A[E--] ... 0x24F ) + [000370] ----------- * RETURN int + [000369] ----------- \--* CAST int <- long + [000368] ----------- \--* SUB long + [000365] ----------- +--* LCL_VAR long V04 loc1 + [000367] ----------- \--* CNS_INT long 1 + + +*************** Finishing PHASE Local morph [no changes] + +*************** Starting PHASE Optimize mask conversions +Skipping. There are no converts of locals + +*************** Finishing PHASE Optimize mask conversions [no changes] + +*************** Starting PHASE Early liveness +*************** In Liveness::Run() +In Liveness::Init + +Local V05 should not be enregistered because: struct size does not match reg size +Tracked variable (19 out of 35) table: +V00 arg0 [ byref]: refCnt = 14, refCntWtd = 0 +V01 arg1 [ long]: refCnt = 14, refCntWtd = 0 +V02 arg2 [ int]: refCnt = 13, refCntWtd = 0 +V03 loc0 [ ubyte]: refCnt = 2, refCntWtd = 0 +V04 loc1 [ long]: refCnt = 31, refCntWtd = 0 +V08 tmp3 [ long]: refCnt = 2, refCntWtd = 0 +V10 tmp5 [ long]: refCnt = 2, refCntWtd = 0 +V12 tmp7 [ long]: refCnt = 2, refCntWtd = 0 +V14 tmp9 [ long]: refCnt = 2, refCntWtd = 0 +V16 tmp11 [ long]: refCnt = 2, refCntWtd = 0 +V18 tmp13 [ long]: refCnt = 2, refCntWtd = 0 +V20 tmp15 [ long]: refCnt = 2, refCntWtd = 0 +V22 tmp17 [ long]: refCnt = 2, refCntWtd = 0 +V24 tmp19 [ long]: refCnt = 2, refCntWtd = 0 +V26 tmp21 [ long]: refCnt = 2, refCntWtd = 0 +V28 tmp23 [ long]: refCnt = 2, refCntWtd = 0 +V30 tmp25 [ long]: refCnt = 2, refCntWtd = 0 +V32 tmp27 [ long]: refCnt = 2, refCntWtd = 0 +V34 tmp29 [ int]: refCnt = 1, refCntWtd = 0 + +*************** In Liveness::PerBlockLocalVarLiveness() +BB01 USE(1)={V02} + DEF(0)={ } + +BB52 USE(0)={} + DEF(0)={} + +BB53 USE(0)={ } + DEF(1)={V03} + +BB56 USE(0)={} + DEF(0)={} + +BB57 USE(1)={V02} + DEF(0)={ } + +BB09 USE(1)={V02 } + DEF(1)={ V04} + +BB10 USE(4)={V00 V01 V02 V04 } + DEF(2)={ V02 V08} + +BB11 USE(1)={V04} + DEF(0)={ } + +BB12 USE(3)={V00 V01 V04 } + DEF(1)={ V10} + +BB13 USE(1)={V04} + DEF(0)={ } + +BB14 USE(3)={V00 V01 V04 } + DEF(1)={ V12} + +BB15 USE(1)={V04} + DEF(0)={ } + +BB16 USE(3)={V00 V01 V04 } + DEF(1)={ V14} + +BB17 USE(1)={V04} + DEF(0)={ } + +BB18 USE(3)={V00 V01 V04 } + DEF(1)={ V16} + +BB19 USE(1)={V04} + DEF(0)={ } + +BB20 USE(3)={V00 V01 V04 } + DEF(1)={ V18} + +BB21 USE(1)={V04} + DEF(0)={ } + +BB22 USE(3)={V00 V01 V04 } + DEF(1)={ V20} + +BB23 USE(1)={V04} + DEF(0)={ } + +BB24 USE(3)={V00 V01 V04 } + DEF(1)={ V22} + +BB25 USE(1)={V04} + DEF(0)={ } + +BB26 USE(1)={V04} + DEF(1)={V04} + +BB27 USE(1)={V02} + DEF(0)={ } + +BB28 USE(1)={V02} + DEF(0)={ } + +BB29 USE(4)={V00 V01 V02 V04 } + DEF(2)={ V02 V24} + +BB31 USE(3)={V00 V01 V04 } + DEF(1)={ V26} + +BB32 USE(1)={V04} + DEF(0)={ } + +BB33 USE(3)={V00 V01 V04 } + DEF(1)={ V28} + +BB34 USE(1)={V04} + DEF(0)={ } + +BB35 USE(3)={V00 V01 V04 } + DEF(1)={ V30} + +BB36 USE(1)={V04} + DEF(0)={ } + +BB37 USE(1)={V04} + DEF(1)={V04} + +BB38 USE(4)={V00 V01 V02 V04 } + DEF(2)={ V02 V32} + +BB40 USE(1)={V04} + DEF(1)={V04} + +BB41 USE(1)={V02} + DEF(0)={ } + +BB42 USE(0)={} + DEF(0)={} + +BB43 USE(3)={V00 V01 V02} + DEF(0)={ } + +BB58 USE(1)={V34} + DEF(0)={ } + +*************** IngInterBlockLocalVarLiveness() + +BB liveness after DoLiveVarAnalysis(): + +BB01 IN (3)={V00 V01 V02} + OUT(3)={V00 V01 V02} + +BB52 IN (3)={V00 V01 V02} + OUT(3)={V00 V01 V02} + +BB53 IN (3)={V00 V01 V02} + OUT(3)={V00 V01 V02} + +BB56 IN (3)={V00 V01 V02} + OUT(3)={V00 V01 V02} + +BB57 IN (3)={V00 V01 V02} + OUT(3)={V00 V01 V02} + +BB09 IN (3)={V00 V01 V02 } + OUT(4)={V00 V01 V02 V04} + +BB10 IN (4)={V00 V01 V02 V04} + OUT(4)={V00 V01 V02 V04} + +BB11 IN (1)={V04} + OUT(0)={ } + +BB12 IN (4)={V00 V01 V02 V04} + OUT(4)={V00 V01 V02 V04} + +BB13 IN (1)={V04} + OUT(0)={ } + +BB14 IN (4)={V00 V01 V02 V04} + OUT(4)={V00 V01 V02 V04} + +BB15 IN (1)={V04} + OUT(0)={ } + +BB16 IN (4)={V00 V01 V02 V04} + OUT(4)={V00 V01 V02 V04} + +BB17 IN (1)={V04} + OUT(0)={ } + +BB18 IN (4)={V00 V01 V02 V04} + OUT(4)={V00 V01 V02 V04} + +BB19 IN (1)={V04} + OUT(0)={ } + +BB20 IN (4)={V00 V01 V02 V04} + OUT(4)={V00 V01 V02 V04} + +BB21 IN (1)={V04} + OUT(0)={ } + +BB22 IN (4)={V00 V01 V02 V04} + OUT(4)={V00 V01 V02 V04} + +BB23 IN (1)={V04} + OUT(0)={ } + +BB24 IN (4)={V00 V01 V02 V04} + OUT(4)={V00 V01 V02 V04} + +BB25 IN (1)={V04} + OUT(0)={ } + +BB26 IN (4)={V00 V01 V02 V04} + OUT(4)={V00 V01 V02 V04} + +BB27 IN (4)={V00 V01 V02 V04} + OUT(4)={V00 V01 V02 V04} + +BB28 IN (4)={V00 V01 V02 V04} + OUT(4)={V00 V01 V02 V04} + +BB29 IN (4)={V00 V01 V02 V04} + OUT(4)={V00 V01 V02 V04} + +BB31 IN (4)={V00 V01 V02 V04} + OUT(4)={V00 V01 V02 V04} + +BB32 IN (1)={V04} + OUT(0)={ } + +BB33 IN (4)={V00 V01 V02 V04} + OUT(4)={V00 V01 V02 V04} + +BB34 IN (1)={V04} + OUT(0)={ } + +BB35 IN (4)={V00 V01 V02 V04} + OUT(4)={V00 V01 V02 V04} + +BB36 IN (1)={V04} + OUT(0)={ } + +BB37 IN (4)={V00 V01 V02 V04} + OUT(4)={V00 V01 V02 V04} + +BB38 IN (4)={V00 V01 V02 V04} + OUT(4)={V00 V01 V02 V04} + +BB40 IN (4)={V00 V01 V02 V04} + OUT(4)={V00 V01 V02 V04} + +BB41 IN (4)={V00 V01 V02 V04} + OUT(4)={V00 V01 V02 V04} + +BB42 IN (0)={} + OUT(0)={} + +BB43 IN (3)={V00 V01 V02} + OUT(0)={ } + +BB58 IN (1)={V34} + OUT(0)={ } + + +*************** Finishing PHASE Early liveness +Trees after Early liveness + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 1 [000..001)-> BB53(1) (always) i +BB53 [0052] 2 BB01,BB52 1 [000..04C)-> BB57(0.5),BB56(0.5) ( cond ) i +BB56 [0056] 1 BB53 1 [04B..04C)-> BB57(1) (always) i +BB57 [0057] 2 BB53,BB56 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target +BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0) (return) i +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd +BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd +BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd +BB17 [0016] 1 BB16 1 [124..12A) (return) i +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB19 [0018] 1 BB18 1 [152..158) (return) i +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB21 [0020] 1 BB20 1 [180..186) (return) i +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250) (return) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E) (return) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 1 [2EB..324) (return) i +BB58 [0085] 0 1 [???..???) (return) keep internal merged-return +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB53(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB53} + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000384] ----------- * JTRUE void + [000383] ----------- \--* NE int + [000380] ----------- +--* CAST int <- ubyte <- int + [000374] ----------- | \--* CAST int <- ubyte <- int + [000004] ----------- | \--* EQ int + [000002] ----------- | +--* LT int + [000000] ----------- | | +--* LCL_VAR int V02 arg2 + [000001] ----------- | | \--* CNS_INT int 0 + [000003] ----------- | \--* CNS_INT int 0 + [000382] ----------- \--* CNS_INT int 0 + +------------ BB52 [0051] [000..001) -> BB53(1) (always), preds={BB01} succs={BB53} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000387] --C-G------ * CALL void + [000385] ----------- arg0 +--* CNS_STR ref + [000386] ----------- arg1 \--* CNS_STR ref "" + +------------ BB53 [0052] [000..04C) -> BB57(0.5),BB56(0.5) (cond), preds={BB01,BB52} succs={BB56,BB57} + +***** BB53 [0052] +STMT00001 ( 0x045[E--] ... 0x046 ) + [000024] DA--------- * STORE_LCL_VAR int V03 loc0 + [000023] ----------- \--* CNS_INT int 1 + +***** BB53 [0052] +STMT00072 ( INL04 @ 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000395] ----------- * JTRUE void + [000394] ----------- \--* NE int + [000025] ----------- +--* LCL_VAR int V03 loc0 (last use) + [000393] ----------- \--* CNS_INT int 0 + +------------ BB56 [0056] [04B..04C) -> BB57(1) (always), preds={BB53} succs={BB57} + +***** BB56 [0056] +STMT00073 ( INL04 @ 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000398] --C-G------ * CALL void + [000396] ----------- arg0 +--* CNS_STR ref + [000397] ----------- arg1 \--* CNS_STR ref "" + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB53,BB56} succs={BB09,BB43} + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) + [000034] ----------- * JTRUE void + [000033] ----------- \--* GE int + [000031] ----------- +--* LCL_VAR int V02 arg2 + [000032] ----------- \--* CNS_INT int 2 vector element count + +------------ BB09 [0008] [068..073) -> BB27(1) (always), preds={BB57} succs={BB27} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) + [000051] DA--------- * STORE_LCL_VAR long V04 loc1 + [000050] ----------- \--* SUB long + [000047] ----------- +--* CAST long <- int + [000046] ----------- | \--* LCL_VAR int V02 arg2 + [000049] ----------- \--* CNS_INT long 1 + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) + [000059] DA--------- * STORE_LCL_VAR int V02 arg2 + [000058] ----------- \--* SUB int + [000056] ----------- +--* LCL_VAR int V02 arg2 (last use) + [000057] ----------- \--* CNS_INT int 8 + +***** BB10 [0009] +STMT00074 ( 0x078[E--] ... ??? ) + [000402] DA-XG------ * STORE_LCL_VAR long V08 tmp3 + [000065] ---XG------ \--* IND long + [000064] ----------- \--* ADD byref + [000060] ----------- +--* LCL_VAR byref V00 arg0 + [000063] ----------- \--* MUL long + [000061] ----------- +--* LCL_VAR long V04 loc1 + [000062] ----------- \--* CNS_INT long 8 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) + [000073] --C-------- * JTRUE void + [000072] --C-------- \--* EQ int + [000404] ----------- +--* CAST int <- ubyte <- int + [000401] ----------- | \--* EQ int + [000400] ----------- | +--* LCL_VAR long V08 tmp3 (last use) + [000066] ----------- | \--* LCL_VAR long V01 arg1 + [000071] ----------- \--* CNS_INT int 0 + +------------ BB11 [0010] [09D..0A0) (return), preds={BB10,BB29,BB38} succs={} + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) + [000242] ----------- * RETURN int + [000241] ----------- \--* CAST int <- long + [000240] ----------- \--* LCL_VAR long V04 loc1 (last use) + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} + +***** BB12 [0011] +STMT00075 ( 0x0A0[E--] ... ??? ) + [000409] DA-XG------ * STORE_LCL_VAR long V10 tmp5 + [000082] ---XG------ \--* IND long + [000081] ----------- \--* ADD byref + [000074] ----------- +--* LCL_VAR byref V00 arg0 + [000080] ----------- \--* MUL long + [000078] ----------- +--* SUB long + [000075] ----------- | +--* LCL_VAR long V04 loc1 + [000077] ----------- | \--* CNS_INT long 1 + [000079] ----------- \--* CNS_INT long 8 + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] --C-------- * JTRUE void + [000089] --C-------- \--* EQ int + [000411] ----------- +--* CAST int <- ubyte <- int + [000408] ----------- | \--* EQ int + [000407] ----------- | +--* LCL_VAR long V10 tmp5 (last use) + [000083] ----------- | \--* LCL_VAR long V01 arg1 + [000088] ----------- \--* CNS_INT int 0 + +------------ BB13 [0012] [0C8..0CE) (return), preds={BB12} succs={} + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + [000239] ----------- * RETURN int + [000238] ----------- \--* CAST int <- long + [000237] ----------- \--* SUB long + [000234] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000236] ----------- \--* CNS_INT long 1 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} + +***** BB14 [0013] +STMT00076 ( 0x0CE[E--] ... ??? ) + [000416] DA-XG------ * STORE_LCL_VAR long V12 tmp7 + [000099] ---XG------ \--* IND long + [000098] ----------- \--* ADD byref + [000091] ----------- +--* LCL_VAR byref V00 arg0 + [000097] ----------- \--* MUL long + [000095] ----------- +--* SUB long + [000092] ----------- | +--* LCL_VAR long V04 loc1 + [000094] ----------- | \--* CNS_INT long 2 + [000096] ----------- \--* CNS_INT long 8 + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] --C-------- * JTRUE void + [000106] --C-------- \--* EQ int + [000418] ----------- +--* CAST int <- ubyte <- int + [000415] ----------- | \--* EQ int + [000414] ----------- | +--* LCL_VAR long V12 tmp7 (last use) + [000100] ----------- | \--* LCL_VAR long V01 arg1 + [000105] ----------- \--* CNS_INT int 0 + +------------ BB15 [0014] [0F6..0FC) (return), preds={BB14} succs={} + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + [000233] ----------- * RETURN int + [000232] ----------- \--* CAST int <- long + [000231] ----------- \--* SUB long + [000228] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000230] ----------- \--* CNS_INT long 2 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} + +***** BB16 [0015] +STMT00077 ( 0x0FC[E--] ... ??? ) + [000423] DA-XG------ * STORE_LCL_VAR long V14 tmp9 + [000116] ---XG------ \--* IND long + [000115] ----------- \--* ADD byref + [000108] ----------- +--* LCL_VAR byref V00 arg0 + [000114] ----------- \--* MUL long + [000112] ----------- +--* SUB long + [000109] ----------- | +--* LCL_VAR long V04 loc1 + [000111] ----------- | \--* CNS_INT long 3 + [000113] ----------- \--* CNS_INT long 8 + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] --C-------- * JTRUE void + [000123] --C-------- \--* EQ int + [000425] ----------- +--* CAST int <- ubyte <- int + [000422] ----------- | \--* EQ int + [000421] ----------- | +--* LCL_VAR long V14 tmp9 (last use) + [000117] ----------- | \--* LCL_VAR long V01 arg1 + [000122] ----------- \--* CNS_INT int 0 + +------------ BB17 [0016] [124..12A) (return), preds={BB16} succs={} + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) + [000227] ----------- * RETURN int + [000226] ----------- \--* CAST int <- long + [000225] ----------- \--* SUB long + [000222] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000224] ----------- \--* CNS_INT long 3 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00078 ( 0x12A[E--] ... ??? ) + [000430] DA-XG------ * STORE_LCL_VAR long V16 tmp11 + [000133] ---XG------ \--* IND long + [000132] ----------- \--* ADD byref + [000125] ----------- +--* LCL_VAR byref V00 arg0 + [000131] ----------- \--* MUL long + [000129] ----------- +--* SUB long + [000126] ----------- | +--* LCL_VAR long V04 loc1 + [000128] ----------- | \--* CNS_INT long 4 + [000130] ----------- \--* CNS_INT long 8 + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] --C-------- * JTRUE void + [000140] --C-------- \--* EQ int + [000432] ----------- +--* CAST int <- ubyte <- int + [000429] ----------- | \--* EQ int + [000428] ----------- | +--* LCL_VAR long V16 tmp11 (last use) + [000134] ----------- | \--* LCL_VAR long V01 arg1 + [000139] ----------- \--* CNS_INT int 0 + +------------ BB19 [0018] [152..158) (return), preds={BB18} succs={} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) + [000221] ----------- * RETURN int + [000220] ----------- \--* CAST int <- long + [000219] ----------- \--* SUB long + [000216] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000218] ----------- \--* CNS_INT long 4 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00079 ( 0x158[E--] ... ??? ) + [000437] DA-XG------ * STORE_LCL_VAR long V18 tmp13 + [000150] ---XG------ \--* IND long + [000149] ----------- \--* ADD byref + [000142] ----------- +--* LCL_VAR byref V00 arg0 + [000148] ----------- \--* MUL long + [000146] ----------- +--* SUB long + [000143] ----------- | +--* LCL_VAR long V04 loc1 + [000145] ----------- | \--* CNS_INT long 5 + [000147] ----------- \--* CNS_INT long 8 + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) + [000158] --C-------- * JTRUE void + [000157] --C-------- \--* EQ int + [000439] ----------- +--* CAST int <- ubyte <- int + [000436] ----------- | \--* EQ int + [000435] ----------- | +--* LCL_VAR long V18 tmp13 (last use) + [000151] ----------- | \--* LCL_VAR long V01 arg1 + [000156] ----------- \--* CNS_INT int 0 + +------------ BB21 [0020] [180..186) (return), preds={BB20} succs={} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) + [000215] ----------- * RETURN int + [000214] ----------- \--* CAST int <- long + [000213] ----------- \--* SUB long + [000210] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000212] ----------- \--* CNS_INT long 5 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00080 ( 0x186[E--] ... ??? ) + [000444] DA-XG------ * STORE_LCL_VAR long V20 tmp15 + [000167] ---XG------ \--* IND long + [000166] ----------- \--* ADD byref + [000159] ----------- +--* LCL_VAR byref V00 arg0 + [000165] ----------- \--* MUL long + [000163] ----------- +--* SUB long + [000160] ----------- | +--* LCL_VAR long V04 loc1 + [000162] ----------- | \--* CNS_INT long 6 + [000164] ----------- \--* CNS_INT long 8 + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) + [000175] --C-------- * JTRUE void + [000174] --C-------- \--* EQ int + [000446] ----------- +--* CAST int <- ubyte <- int + [000443] ----------- | \--* EQ int + [000442] ----------- | +--* LCL_VAR long V20 tmp15 (last use) + [000168] ----------- | \--* LCL_VAR long V01 arg1 + [000173] ----------- \--* CNS_INT int 0 + +------------ BB23 [0022] [1AE..1B4) (return), preds={BB22} succs={} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) + [000209] ----------- * RETURN int + [000208] ----------- \--* CAST int <- long + [000207] ----------- \--* SUB long + [000204] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000206] ----------- \--* CNS_INT long 6 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00081 ( 0x1B4[E--] ... ??? ) + [000451] DA-XG------ * STORE_LCL_VAR long V22 tmp17 + [000184] ---XG------ \--* IND long + [000183] ----------- \--* ADD byref + [000176] ----------- +--* LCL_VAR byref V00 arg0 + [000182] ----------- \--* MUL long + [000180] ----------- +--* SUB long + [000177] ----------- | +--* LCL_VAR long V04 loc1 + [000179] ----------- | \--* CNS_INT long 7 + [000181] ----------- \--* CNS_INT long 8 + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] --C-------- * JTRUE void + [000191] --C-------- \--* EQ int + [000453] ----------- +--* CAST int <- ubyte <- int + [000450] ----------- | \--* EQ int + [000449] ----------- | +--* LCL_VAR long V22 tmp17 (last use) + [000185] ----------- | \--* LCL_VAR long V01 arg1 + [000190] ----------- \--* CNS_INT int 0 + +------------ BB25 [0024] [1DC..1E2) (return), preds={BB24} succs={} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) + [000203] ----------- * RETURN int + [000202] ----------- \--* CAST int <- long + [000201] ----------- \--* SUB long + [000198] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000200] ----------- \--* CNS_INT long 7 + +------------ BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + [000197] DA--------- * STORE_LCL_VAR long V04 loc1 + [000196] ----------- \--* SUB long + [000193] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000195] ----------- \--* CNS_INT long 8 + +------------ BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} + +***** BB27 [0026] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + [000055] ----------- * JTRUE void + [000054] ----------- \--* GE int + [000052] ----------- +--* LCL_VAR int V02 arg2 + [000053] ----------- \--* CNS_INT int 8 + +------------ BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} + +***** BB28 [0027] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) + [000246] ----------- * JTRUE void + [000245] ----------- \--* LT int + [000243] ----------- +--* LCL_VAR int V02 arg2 + [000244] ----------- \--* CNS_INT int 4 + +------------ BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB28} succs={BB31,BB11} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) + [000282] DA--------- * STORE_LCL_VAR int V02 arg2 + [000281] ----------- \--* SUB int + [000279] ----------- +--* LCL_VAR int V02 arg2 (last use) + [000280] ----------- \--* CNS_INT int 4 + +***** BB29 [0028] +STMT00082 ( 0x1FA[E--] ... ??? ) + [000458] DA-XG------ * STORE_LCL_VAR long V24 tmp19 + [000288] ---XG------ \--* IND long + [000287] ----------- \--* ADD byref + [000283] ----------- +--* LCL_VAR byref V00 arg0 + [000286] ----------- \--* MUL long + [000284] ----------- +--* LCL_VAR long V04 loc1 + [000285] ----------- \--* CNS_INT long 8 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] --C-------- * JTRUE void + [000295] --C-------- \--* NE int + [000460] ----------- +--* CAST int <- ubyte <- int + [000457] ----------- | \--* EQ int + [000456] ----------- | +--* LCL_VAR long V24 tmp19 (last use) + [000289] ----------- | \--* LCL_VAR long V01 arg1 + [000294] ----------- \--* CNS_INT int 0 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00083 ( 0x222[E--] ... ??? ) + [000465] DA-XG------ * STORE_LCL_VAR long V26 tmp21 + [000305] ---XG------ \--* IND long + [000304] ----------- \--* ADD byref + [000297] ----------- +--* LCL_VAR byref V00 arg0 + [000303] ----------- \--* MUL long + [000301] ----------- +--* SUB long + [000298] ----------- | +--* LCL_VAR long V04 loc1 + [000300] ----------- | \--* CNS_INT long 1 + [000302] ----------- \--* CNS_INT long 8 + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) + [000313] --C-------- * JTRUE void + [000312] --C-------- \--* EQ int + [000467] ----------- +--* CAST int <- ubyte <- int + [000464] ----------- | \--* EQ int + [000463] ----------- | +--* LCL_VAR long V26 tmp21 (last use) + [000306] ----------- | \--* LCL_VAR long V01 arg1 + [000311] ----------- \--* CNS_INT int 0 + +------------ BB32 [0031] [24A..250) (return), preds={BB31} succs={} + +***** BB32 [0031] +STMT00066 ( 0x24A[E--] ... 0x24F ) + [000370] ----------- * RETURN int + [000369] ----------- \--* CAST int <- long + [000368] ----------- \--* SUB long + [000365] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000367] ----------- \--* CNS_INT long 1 + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00084 ( 0x250[E--] ... ??? ) + [000472] DA-XG------ * STORE_LCL_VAR long V28 tmp23 + [000322] ---XG------ \--* IND long + [000321] ----------- \--* ADD byref + [000314] ----------- +--* LCL_VAR byref V00 arg0 + [000320] ----------- \--* MUL long + [000318] ----------- +--* SUB long + [000315] ----------- | +--* LCL_VAR long V04 loc1 + [000317] ----------- | \--* CNS_INT long 2 + [000319] ----------- \--* CNS_INT long 8 + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) + [000330] --C-------- * JTRUE void + [000329] --C-------- \--* EQ int + [000474] ----------- +--* CAST int <- ubyte <- int + [000471] ----------- | \--* EQ int + [000470] ----------- | +--* LCL_VAR long V28 tmp23 (last use) + [000323] ----------- | \--* LCL_VAR long V01 arg1 + [000328] ----------- \--* CNS_INT int 0 + +------------ BB34 [0033] [278..27E) (return), preds={BB33} succs={} + +***** BB34 [0033] +STMT00065 ( 0x278[E--] ... 0x27D ) + [000364] ----------- * RETURN int + [000363] ----------- \--* CAST int <- long + [000362] ----------- \--* SUB long + [000359] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000361] ----------- \--* CNS_INT long 2 + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00085 ( 0x27E[E--] ... ??? ) + [000479] DA-XG------ * STORE_LCL_VAR long V30 tmp25 + [000339] ---XG------ \--* IND long + [000338] ----------- \--* ADD byref + [000331] ----------- +--* LCL_VAR byref V00 arg0 + [000337] ----------- \--* MUL long + [000335] ----------- +--* SUB long + [000332] ----------- | +--* LCL_VAR long V04 loc1 + [000334] ----------- | \--* CNS_INT long 3 + [000336] ----------- \--* CNS_INT long 8 + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] --C-------- * JTRUE void + [000346] --C-------- \--* EQ int + [000481] ----------- +--* CAST int <- ubyte <- int + [000478] ----------- | \--* EQ int + [000477] ----------- | +--* LCL_VAR long V30 tmp25 (last use) + [000340] ----------- | \--* LCL_VAR long V01 arg1 + [000345] ----------- \--* CNS_INT int 0 + +------------ BB36 [0035] [2A6..2AC) (return), preds={BB35} succs={} + +***** BB36 [0035] +STMT00064 ( 0x2A6[E--] ... 0x2AB ) + [000358] ----------- * RETURN int + [000357] ----------- \--* CAST int <- long + [000356] ----------- \--* SUB long + [000353] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000355] ----------- \--* CNS_INT long 3 + +------------ BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) + [000352] DA--------- * STORE_LCL_VAR long V04 loc1 + [000351] ----------- \--* SUB long + [000348] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000350] ----------- \--* CNS_INT long 4 + +------------ BB38 [0037] [2B3..2DD) -> BB11(0.5),BB40(0.5) (cond), preds={BB41} succs={BB40,BB11} + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) + [000254] DA--------- * STORE_LCL_VAR int V02 arg2 + [000253] ----------- \--* SUB int + [000251] ----------- +--* LCL_VAR int V02 arg2 (last use) + [000252] ----------- \--* CNS_INT int 1 + +***** BB38 [0037] +STMT00086 ( 0x2B8[E--] ... ??? ) + [000486] DA-XG------ * STORE_LCL_VAR long V32 tmp27 + [000260] ---XG------ \--* IND long + [000259] ----------- \--* ADD byref + [000255] ----------- +--* LCL_VAR byref V00 arg0 + [000258] ----------- \--* MUL long + [000256] ----------- +--* LCL_VAR long V04 loc1 + [000257] ----------- \--* CNS_INT long 8 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] --C-------- * JTRUE void + [000267] --C-------- \--* NE int + [000488] ----------- +--* CAST int <- ubyte <- int + [000485] ----------- | \--* EQ int + [000484] ----------- | +--* LCL_VAR long V32 tmp27 (last use) + [000261] ----------- | \--* LCL_VAR long V01 arg1 + [000266] ----------- \--* CNS_INT int 0 + +------------ BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + [000273] DA--------- * STORE_LCL_VAR long V04 loc1 + [000272] ----------- \--* SUB long + [000269] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000271] ----------- \--* CNS_INT long 1 + +------------ BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} + +***** BB41 [0040] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + [000250] ----------- * JTRUE void + [000249] ----------- \--* GT int + [000247] ----------- +--* LCL_VAR int V02 arg2 + [000248] ----------- \--* CNS_INT int 0 + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} + +***** BB42 [0041] +STMT00088 ( ??? ... ??? ) + [000493] ----------- * RETURN int + [000277] ----------- \--* CNS_INT int -1 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) + [000045] --C-G------ * RETURN int + [000044] --C-G------ \--* CALL int + [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 (last use) + [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 (last use) + [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 (last use) + +------------ BB58 [0085] [???..???) (return), preds={} succs={} + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) + [000492] ----------- * RETURN int + [000491] -------N--- \--* LCL_VAR int V34 tmp29 (last use) + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Forward Substitution + + +===> BB01 + + +===> BB52 + + +===> BB53 + [000024]: [000025] is last use of [000024] (V03) [adding cast for small-typed local] -- fwd subbing [000496]; new next stmt is +STMT00072 ( INL04 @ 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000395] ----------- * JTRUE void + [000394] ----------- \--* NE int + [000496] ----------- +--* CAST int <- ubyte <- int + [000023] ----------- | \--* CNS_INT int 1 + [000393] ----------- \--* CNS_INT int 0 + +removing useless STMT00001 ( 0x045[E--] ... 0x046 ) + [000024] DA--------- * STORE_LCL_VAR int V03 loc0 + [000023] ----------- \--* CNS_INT int 1 + from BB53 + + +===> BB56 + + +===> BB57 + + +===> BB09 + + +===> BB10 + [000059]: no next stmt use + [000402]: [000400] is last use of [000402] (V08) -- fwd subbing [000065]; new next stmt is +STMT00010 ( 0x078[E--] ... ??? ) + [000073] ---XG------ * JTRUE void + [000072] ---XG------ \--* EQ int + [000404] ---XG------ +--* CAST int <- ubyte <- int + [000401] ---XG------ | \--* EQ int + [000065] ---XG------ | +--* IND long + [000064] ----------- | | \--* ADD byref + [000060] ----------- | | +--* LCL_VAR byref V00 arg0 + [000063] ----------- | | \--* MUL long + [000061] ----------- | | +--* LCL_VAR long V04 loc1 + [000062] ----------- | | \--* CNS_INT long 8 + [000066] ----------- | \--* LCL_VAR long V01 arg1 + [000071] ----------- \--* CNS_INT int 0 + +removing useless STMT00074 ( 0x078[E--] ... ??? ) + [000402] DA-XG------ * STORE_LCL_VAR long V08 tmp3 + [000065] ---XG------ \--* IND long + [000064] ----------- \--* ADD byref + [000060] ----------- +--* LCL_VAR byref V00 arg0 + [000063] ----------- \--* MUL long + [000061] ----------- +--* LCL_VAR long V04 loc1 + [000062] ----------- \--* CNS_INT long 8 + from BB10 + [000059]: no next stmt use + + +===> BB11 + + +===> BB12 + [000409]: [000407] is last use of [000409] (V10) -- fwd subbing [000082]; new next stmt is +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] ---XG------ * JTRUE void + [000089] ---XG------ \--* EQ int + [000411] ---XG------ +--* CAST int <- ubyte <- int + [000408] ---XG------ | \--* EQ int + [000082] ---XG------ | +--* IND long + [000081] ----------- | | \--* ADD byref + [000074] ----------- | | +--* LCL_VAR byref V00 arg0 + [000080] ----------- | | \--* MUL long + [000078] ----------- | | +--* SUB long + [000075] ----------- | | | +--* LCL_VAR long V04 loc1 + [000077] ----------- | | | \--* CNS_INT long 1 + [000079] ----------- | | \--* CNS_INT long 8 + [000083] ----------- | \--* LCL_VAR long V01 arg1 + [000088] ----------- \--* CNS_INT int 0 + +removing useless STMT00075 ( 0x0A0[E--] ... ??? ) + [000409] DA-XG------ * STORE_LCL_VAR long V10 tmp5 + [000082] ---XG------ \--* IND long + [000081] ----------- \--* ADD byref + [000074] ----------- +--* LCL_VAR byref V00 arg0 + [000080] ----------- \--* MUL long + [000078] ----------- +--* SUB long + [000075] ----------- | +--* LCL_VAR long V04 loc1 + [000077] ----------- | \--* CNS_INT long 1 + [000079] ----------- \--* CNS_INT long 8 + from BB12 + + +===> BB13 + + +===> BB14 + [000416]: [000414] is last use of [000416] (V12) -- fwd subbing [000099]; new next stmt is +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] ---XG------ * JTRUE void + [000106] ---XG------ \--* EQ int + [000418] ---XG------ +--* CAST int <- ubyte <- int + [000415] ---XG------ | \--* EQ int + [000099] ---XG------ | +--* IND long + [000098] ----------- | | \--* ADD byref + [000091] ----------- | | +--* LCL_VAR byref V00 arg0 + [000097] ----------- | | \--* MUL long + [000095] ----------- | | +--* SUB long + [000092] ----------- | | | +--* LCL_VAR long V04 loc1 + [000094] ----------- | | | \--* CNS_INT long 2 + [000096] ----------- | | \--* CNS_INT long 8 + [000100] ----------- | \--* LCL_VAR long V01 arg1 + [000105] ----------- \--* CNS_INT int 0 + +removing useless STMT00076 ( 0x0CE[E--] ... ??? ) + [000416] DA-XG------ * STORE_LCL_VAR long V12 tmp7 + [000099] ---XG------ \--* IND long + [000098] ----------- \--* ADD byref + [000091] ----------- +--* LCL_VAR byref V00 arg0 + [000097] ----------- \--* MUL long + [000095] ----------- +--* SUB long + [000092] ----------- | +--* LCL_VAR long V04 loc1 + [000094] ----------- | \--* CNS_INT long 2 + [000096] ----------- \--* CNS_INT long 8 + from BB14 + + +===> BB15 + + +===> BB16 + [000423]: [000421] is last use of [000423] (V14) -- fwd subbing [000116]; new next stmt is +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] ---XG------ * JTRUE void + [000123] ---XG------ \--* EQ int + [000425] ---XG------ +--* CAST int <- ubyte <- int + [000422] ---XG------ | \--* EQ int + [000116] ---XG------ | +--* IND long + [000115] ----------- | | \--* ADD byref + [000108] ----------- | | +--* LCL_VAR byref V00 arg0 + [000114] ----------- | | \--* MUL long + [000112] ----------- | | +--* SUB long + [000109] ----------- | | | +--* LCL_VAR long V04 loc1 + [000111] ----------- | | | \--* CNS_INT long 3 + [000113] ----------- | | \--* CNS_INT long 8 + [000117] ----------- | \--* LCL_VAR long V01 arg1 + [000122] ----------- \--* CNS_INT int 0 + +removing useless STMT00077 ( 0x0FC[E--] ... ??? ) + [000423] DA-XG------ * STORE_LCL_VAR long V14 tmp9 + [000116] ---XG------ \--* IND long + [000115] ----------- \--* ADD byref + [000108] ----------- +--* LCL_VAR byref V00 arg0 + [000114] ----------- \--* MUL long + [000112] ----------- +--* SUB long + [000109] ----------- | +--* LCL_VAR long V04 loc1 + [000111] ----------- | \--* CNS_INT long 3 + [000113] ----------- \--* CNS_INT long 8 + from BB16 + + +===> BB17 + + +===> BB18 + [000430]: [000428] is last use of [000430] (V16) -- fwd subbing [000133]; new next stmt is +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] ---XG------ * JTRUE void + [000140] ---XG------ \--* EQ int + [000432] ---XG------ +--* CAST int <- ubyte <- int + [000429] ---XG------ | \--* EQ int + [000133] ---XG------ | +--* IND long + [000132] ----------- | | \--* ADD byref + [000125] ----------- | | +--* LCL_VAR byref V00 arg0 + [000131] ----------- | | \--* MUL long + [000129] ----------- | | +--* SUB long + [000126] ----------- | | | +--* LCL_VAR long V04 loc1 + [000128] ----------- | | | \--* CNS_INT long 4 + [000130] ----------- | | \--* CNS_INT long 8 + [000134] ----------- | \--* LCL_VAR long V01 arg1 + [000139] ----------- \--* CNS_INT int 0 + +removing useless STMT00078 ( 0x12A[E--] ... ??? ) + [000430] DA-XG------ * STORE_LCL_VAR long V16 tmp11 + [000133] ---XG------ \--* IND long + [000132] ----------- \--* ADD byref + [000125] ----------- +--* LCL_VAR byref V00 arg0 + [000131] ----------- \--* MUL long + [000129] ----------- +--* SUB long + [000126] ----------- | +--* LCL_VAR long V04 loc1 + [000128] ----------- | \--* CNS_INT long 4 + [000130] ----------- \--* CNS_INT long 8 + from BB18 + + +===> BB19 + + +===> BB20 + [000437]: [000435] is last use of [000437] (V18) -- fwd subbing [000150]; new next stmt is +STMT00025 ( 0x158[E--] ... ??? ) + [000158] ---XG------ * JTRUE void + [000157] ---XG------ \--* EQ int + [000439] ---XG------ +--* CAST int <- ubyte <- int + [000436] ---XG------ | \--* EQ int + [000150] ---XG------ | +--* IND long + [000149] ----------- | | \--* ADD byref + [000142] ----------- | | +--* LCL_VAR byref V00 arg0 + [000148] ----------- | | \--* MUL long + [000146] ----------- | | +--* SUB long + [000143] ----------- | | | +--* LCL_VAR long V04 loc1 + [000145] ----------- | | | \--* CNS_INT long 5 + [000147] ----------- | | \--* CNS_INT long 8 + [000151] ----------- | \--* LCL_VAR long V01 arg1 + [000156] ----------- \--* CNS_INT int 0 + +removing useless STMT00079 ( 0x158[E--] ... ??? ) + [000437] DA-XG------ * STORE_LCL_VAR long V18 tmp13 + [000150] ---XG------ \--* IND long + [000149] ----------- \--* ADD byref + [000142] ----------- +--* LCL_VAR byref V00 arg0 + [000148] ----------- \--* MUL long + [000146] ----------- +--* SUB long + [000143] ----------- | +--* LCL_VAR long V04 loc1 + [000145] ----------- | \--* CNS_INT long 5 + [000147] ----------- \--* CNS_INT long 8 + from BB20 + + +===> BB21 + + +===> BB22 + [000444]: [000442] is last use of [000444] (V20) -- fwd subbing [000167]; new next stmt is +STMT00028 ( 0x186[E--] ... ??? ) + [000175] ---XG------ * JTRUE void + [000174] ---XG------ \--* EQ int + [000446] ---XG------ +--* CAST int <- ubyte <- int + [000443] ---XG------ | \--* EQ int + [000167] ---XG------ | +--* IND long + [000166] ----------- | | \--* ADD byref + [000159] ----------- | | +--* LCL_VAR byref V00 arg0 + [000165] ----------- | | \--* MUL long + [000163] ----------- | | +--* SUB long + [000160] ----------- | | | +--* LCL_VAR long V04 loc1 + [000162] ----------- | | | \--* CNS_INT long 6 + [000164] ----------- | | \--* CNS_INT long 8 + [000168] ----------- | \--* LCL_VAR long V01 arg1 + [000173] ----------- \--* CNS_INT int 0 + +removing useless STMT00080 ( 0x186[E--] ... ??? ) + [000444] DA-XG------ * STORE_LCL_VAR long V20 tmp15 + [000167] ---XG------ \--* IND long + [000166] ----------- \--* ADD byref + [000159] ----------- +--* LCL_VAR byref V00 arg0 + [000165] ----------- \--* MUL long + [000163] ----------- +--* SUB long + [000160] ----------- | +--* LCL_VAR long V04 loc1 + [000162] ----------- | \--* CNS_INT long 6 + [000164] ----------- \--* CNS_INT long 8 + from BB22 + + +===> BB23 + + +===> BB24 + [000451]: [000449] is last use of [000451] (V22) -- fwd subbing [000184]; new next stmt is +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] ---XG------ * JTRUE void + [000191] ---XG------ \--* EQ int + [000453] ---XG------ +--* CAST int <- ubyte <- int + [000450] ---XG------ | \--* EQ int + [000184] ---XG------ | +--* IND long + [000183] ----------- | | \--* ADD byref + [000176] ----------- | | +--* LCL_VAR byref V00 arg0 + [000182] ----------- | | \--* MUL long + [000180] ----------- | | +--* SUB long + [000177] ----------- | | | +--* LCL_VAR long V04 loc1 + [000179] ----------- | | | \--* CNS_INT long 7 + [000181] ----------- | | \--* CNS_INT long 8 + [000185] ----------- | \--* LCL_VAR long V01 arg1 + [000190] ----------- \--* CNS_INT int 0 + +removing useless STMT00081 ( 0x1B4[E--] ... ??? ) + [000451] DA-XG------ * STORE_LCL_VAR long V22 tmp17 + [000184] ---XG------ \--* IND long + [000183] ----------- \--* ADD byref + [000176] ----------- +--* LCL_VAR byref V00 arg0 + [000182] ----------- \--* MUL long + [000180] ----------- +--* SUB long + [000177] ----------- | +--* LCL_VAR long V04 loc1 + [000179] ----------- | \--* CNS_INT long 7 + [000181] ----------- \--* CNS_INT long 8 + from BB24 + + +===> BB25 + + +===> BB26 + + +===> BB27 + + +===> BB28 + + +===> BB29 + [000282]: no next stmt use + [000458]: [000456] is last use of [000458] (V24) -- fwd subbing [000288]; new next stmt is +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] ---XG------ * JTRUE void + [000295] ---XG------ \--* NE int + [000460] ---XG------ +--* CAST int <- ubyte <- int + [000457] ---XG------ | \--* EQ int + [000288] ---XG------ | +--* IND long + [000287] ----------- | | \--* ADD byref + [000283] ----------- | | +--* LCL_VAR byref V00 arg0 + [000286] ----------- | | \--* MUL long + [000284] ----------- | | +--* LCL_VAR long V04 loc1 + [000285] ----------- | | \--* CNS_INT long 8 + [000289] ----------- | \--* LCL_VAR long V01 arg1 + [000294] ----------- \--* CNS_INT int 0 + +removing useless STMT00082 ( 0x1FA[E--] ... ??? ) + [000458] DA-XG------ * STORE_LCL_VAR long V24 tmp19 + [000288] ---XG------ \--* IND long + [000287] ----------- \--* ADD byref + [000283] ----------- +--* LCL_VAR byref V00 arg0 + [000286] ----------- \--* MUL long + [000284] ----------- +--* LCL_VAR long V04 loc1 + [000285] ----------- \--* CNS_INT long 8 + from BB29 + [000282]: no next stmt use + + +===> BB31 + [000465]: [000463] is last use of [000465] (V26) -- fwd subbing [000305]; new next stmt is +STMT00056 ( 0x222[E--] ... ??? ) + [000313] ---XG------ * JTRUE void + [000312] ---XG------ \--* EQ int + [000467] ---XG------ +--* CAST int <- ubyte <- int + [000464] ---XG------ | \--* EQ int + [000305] ---XG------ | +--* IND long + [000304] ----------- | | \--* ADD byref + [000297] ----------- | | +--* LCL_VAR byref V00 arg0 + [000303] ----------- | | \--* MUL long + [000301] ----------- | | +--* SUB long + [000298] ----------- | | | +--* LCL_VAR long V04 loc1 + [000300] ----------- | | | \--* CNS_INT long 1 + [000302] ----------- | | \--* CNS_INT long 8 + [000306] ----------- | \--* LCL_VAR long V01 arg1 + [000311] ----------- \--* CNS_INT int 0 + +removing useless STMT00083 ( 0x222[E--] ... ??? ) + [000465] DA-XG------ * STORE_LCL_VAR long V26 tmp21 + [000305] ---XG------ \--* IND long + [000304] ----------- \--* ADD byref + [000297] ----------- +--* LCL_VAR byref V00 arg0 + [000303] ----------- \--* MUL long + [000301] ----------- +--* SUB long + [000298] ----------- | +--* LCL_VAR long V04 loc1 + [000300] ----------- | \--* CNS_INT long 1 + [000302] ----------- \--* CNS_INT long 8 + from BB31 + + +===> BB32 + + +===> BB33 + [000472]: [000470] is last use of [000472] (V28) -- fwd subbing [000322]; new next stmt is +STMT00059 ( 0x250[E--] ... ??? ) + [000330] ---XG------ * JTRUE void + [000329] ---XG------ \--* EQ int + [000474] ---XG------ +--* CAST int <- ubyte <- int + [000471] ---XG------ | \--* EQ int + [000322] ---XG------ | +--* IND long + [000321] ----------- | | \--* ADD byref + [000314] ----------- | | +--* LCL_VAR byref V00 arg0 + [000320] ----------- | | \--* MUL long + [000318] ----------- | | +--* SUB long + [000315] ----------- | | | +--* LCL_VAR long V04 loc1 + [000317] ----------- | | | \--* CNS_INT long 2 + [000319] ----------- | | \--* CNS_INT long 8 + [000323] ----------- | \--* LCL_VAR long V01 arg1 + [000328] ----------- \--* CNS_INT int 0 + +removing useless STMT00084 ( 0x250[E--] ... ??? ) + [000472] DA-XG------ * STORE_LCL_VAR long V28 tmp23 + [000322] ---XG------ \--* IND long + [000321] ----------- \--* ADD byref + [000314] ----------- +--* LCL_VAR byref V00 arg0 + [000320] ----------- \--* MUL long + [000318] ----------- +--* SUB long + [000315] ----------- | +--* LCL_VAR long V04 loc1 + [000317] ----------- | \--* CNS_INT long 2 + [000319] ----------- \--* CNS_INT long 8 + from BB33 + + +===> BB34 + + +===> BB35 + [000479]: [000477] is last use of [000479] (V30) -- fwd subbing [000339]; new next stmt is +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] ---XG------ * JTRUE void + [000346] ---XG------ \--* EQ int + [000481] ---XG------ +--* CAST int <- ubyte <- int + [000478] ---XG------ | \--* EQ int + [000339] ---XG------ | +--* IND long + [000338] ----------- | | \--* ADD byref + [000331] ----------- | | +--* LCL_VAR byref V00 arg0 + [000337] ----------- | | \--* MUL long + [000335] ----------- | | +--* SUB long + [000332] ----------- | | | +--* LCL_VAR long V04 loc1 + [000334] ----------- | | | \--* CNS_INT long 3 + [000336] ----------- | | \--* CNS_INT long 8 + [000340] ----------- | \--* LCL_VAR long V01 arg1 + [000345] ----------- \--* CNS_INT int 0 + +removing useless STMT00085 ( 0x27E[E--] ... ??? ) + [000479] DA-XG------ * STORE_LCL_VAR long V30 tmp25 + [000339] ---XG------ \--* IND long + [000338] ----------- \--* ADD byref + [000331] ----------- +--* LCL_VAR byref V00 arg0 + [000337] ----------- \--* MUL long + [000335] ----------- +--* SUB long + [000332] ----------- | +--* LCL_VAR long V04 loc1 + [000334] ----------- | \--* CNS_INT long 3 + [000336] ----------- \--* CNS_INT long 8 + from BB35 + + +===> BB36 + + +===> BB37 + + +===> BB38 + [000254]: no next stmt use + [000486]: [000484] is last use of [000486] (V32) -- fwd subbing [000260]; new next stmt is +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] ---XG------ * JTRUE void + [000267] ---XG------ \--* NE int + [000488] ---XG------ +--* CAST int <- ubyte <- int + [000485] ---XG------ | \--* EQ int + [000260] ---XG------ | +--* IND long + [000259] ----------- | | \--* ADD byref + [000255] ----------- | | +--* LCL_VAR byref V00 arg0 + [000258] ----------- | | \--* MUL long + [000256] ----------- | | +--* LCL_VAR long V04 loc1 + [000257] ----------- | | \--* CNS_INT long 8 + [000261] ----------- | \--* LCL_VAR long V01 arg1 + [000266] ----------- \--* CNS_INT int 0 + +removing useless STMT00086 ( 0x2B8[E--] ... ??? ) + [000486] DA-XG------ * STORE_LCL_VAR long V32 tmp27 + [000260] ---XG------ \--* IND long + [000259] ----------- \--* ADD byref + [000255] ----------- +--* LCL_VAR byref V00 arg0 + [000258] ----------- \--* MUL long + [000256] ----------- +--* LCL_VAR long V04 loc1 + [000257] ----------- \--* CNS_INT long 8 + from BB38 + [000254]: no next stmt use + + +===> BB40 + + +===> BB41 + + +===> BB42 + + +===> BB43 + + +===> BB58 + +*************** Finishing PHASE Forward Substitution +Trees after Forward Substitution + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 1 [000..001)-> BB53(1) (always) i +BB53 [0052] 2 BB01,BB52 1 [000..04C)-> BB57(0.5),BB56(0.5) ( cond ) i +BB56 [0056] 1 BB53 1 [04B..04C)-> BB57(1) (always) i +BB57 [0057] 2 BB53,BB56 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target +BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0) (return) i +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd +BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd +BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd +BB17 [0016] 1 BB16 1 [124..12A) (return) i +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB19 [0018] 1 BB18 1 [152..158) (return) i +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB21 [0020] 1 BB20 1 [180..186) (return) i +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250) (return) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E) (return) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 1 [2EB..324) (return) i +BB58 [0085] 0 1 [???..???) (return) keep internal merged-return +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB53(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB53} + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000384] ----------- * JTRUE void + [000383] ----------- \--* NE int + [000380] ----------- +--* CAST int <- ubyte <- int + [000374] ----------- | \--* CAST int <- ubyte <- int + [000004] ----------- | \--* EQ int + [000002] ----------- | +--* LT int + [000000] ----------- | | +--* LCL_VAR int V02 arg2 + [000001] ----------- | | \--* CNS_INT int 0 + [000003] ----------- | \--* CNS_INT int 0 + [000382] ----------- \--* CNS_INT int 0 + +------------ BB52 [0051] [000..001) -> BB53(1) (always), preds={BB01} succs={BB53} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000387] --C-G------ * CALL void + [000385] ----------- arg0 +--* CNS_STR ref + [000386] ----------- arg1 \--* CNS_STR ref "" + +------------ BB53 [0052] [000..04C) -> BB57(0.5),BB56(0.5) (cond), preds={BB01,BB52} succs={BB56,BB57} + +***** BB53 [0052] +STMT00072 ( INL04 @ 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000395] ----------- * JTRUE void + [000394] ----------- \--* NE int + [000496] ----------- +--* CAST int <- ubyte <- int + [000023] ----------- | \--* CNS_INT int 1 + [000393] ----------- \--* CNS_INT int 0 + +------------ BB56 [0056] [04B..04C) -> BB57(1) (always), preds={BB53} succs={BB57} + +***** BB56 [0056] +STMT00073 ( INL04 @ 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000398] --C-G------ * CALL void + [000396] ----------- arg0 +--* CNS_STR ref + [000397] ----------- arg1 \--* CNS_STR ref "" + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB53,BB56} succs={BB09,BB43} + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) + [000034] ----------- * JTRUE void + [000033] ----------- \--* GE int + [000031] ----------- +--* LCL_VAR int V02 arg2 + [000032] ----------- \--* CNS_INT int 2 vector element count + +------------ BB09 [0008] [068..073) -> BB27(1) (always), preds={BB57} succs={BB27} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) + [000051] DA--------- * STORE_LCL_VAR long V04 loc1 + [000050] ----------- \--* SUB long + [000047] ----------- +--* CAST long <- int + [000046] ----------- | \--* LCL_VAR int V02 arg2 + [000049] ----------- \--* CNS_INT long 1 + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) + [000059] DA--------- * STORE_LCL_VAR int V02 arg2 + [000058] ----------- \--* SUB int + [000056] ----------- +--* LCL_VAR int V02 arg2 (last use) + [000057] ----------- \--* CNS_INT int 8 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) + [000073] ---XG------ * JTRUE void + [000072] ---XG------ \--* EQ int + [000404] ---XG------ +--* CAST int <- ubyte <- int + [000401] ---XG------ | \--* EQ int + [000065] ---XG------ | +--* IND long + [000064] ----------- | | \--* ADD byref + [000060] ----------- | | +--* LCL_VAR byref V00 arg0 + [000063] ----------- | | \--* MUL long + [000061] ----------- | | +--* LCL_VAR long V04 loc1 + [000062] ----------- | | \--* CNS_INT long 8 + [000066] ----------- | \--* LCL_VAR long V01 arg1 + [000071] ----------- \--* CNS_INT int 0 + +------------ BB11 [0010] [09D..0A0) (return), preds={BB10,BB29,BB38} succs={} + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) + [000242] ----------- * RETURN int + [000241] ----------- \--* CAST int <- long + [000240] ----------- \--* LCL_VAR long V04 loc1 (last use) + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] ---XG------ * JTRUE void + [000089] ---XG------ \--* EQ int + [000411] ---XG------ +--* CAST int <- ubyte <- int + [000408] ---XG------ | \--* EQ int + [000082] ---XG------ | +--* IND long + [000081] ----------- | | \--* ADD byref + [000074] ----------- | | +--* LCL_VAR byref V00 arg0 + [000080] ----------- | | \--* MUL long + [000078] ----------- | | +--* SUB long + [000075] ----------- | | | +--* LCL_VAR long V04 loc1 + [000077] ----------- | | | \--* CNS_INT long 1 + [000079] ----------- | | \--* CNS_INT long 8 + [000083] ----------- | \--* LCL_VAR long V01 arg1 + [000088] ----------- \--* CNS_INT int 0 + +------------ BB13 [0012] [0C8..0CE) (return), preds={BB12} succs={} + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + [000239] ----------- * RETURN int + [000238] ----------- \--* CAST int <- long + [000237] ----------- \--* SUB long + [000234] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000236] ----------- \--* CNS_INT long 1 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] ---XG------ * JTRUE void + [000106] ---XG------ \--* EQ int + [000418] ---XG------ +--* CAST int <- ubyte <- int + [000415] ---XG------ | \--* EQ int + [000099] ---XG------ | +--* IND long + [000098] ----------- | | \--* ADD byref + [000091] ----------- | | +--* LCL_VAR byref V00 arg0 + [000097] ----------- | | \--* MUL long + [000095] ----------- | | +--* SUB long + [000092] ----------- | | | +--* LCL_VAR long V04 loc1 + [000094] ----------- | | | \--* CNS_INT long 2 + [000096] ----------- | | \--* CNS_INT long 8 + [000100] ----------- | \--* LCL_VAR long V01 arg1 + [000105] ----------- \--* CNS_INT int 0 + +------------ BB15 [0014] [0F6..0FC) (return), preds={BB14} succs={} + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + [000233] ----------- * RETURN int + [000232] ----------- \--* CAST int <- long + [000231] ----------- \--* SUB long + [000228] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000230] ----------- \--* CNS_INT long 2 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] ---XG------ * JTRUE void + [000123] ---XG------ \--* EQ int + [000425] ---XG------ +--* CAST int <- ubyte <- int + [000422] ---XG------ | \--* EQ int + [000116] ---XG------ | +--* IND long + [000115] ----------- | | \--* ADD byref + [000108] ----------- | | +--* LCL_VAR byref V00 arg0 + [000114] ----------- | | \--* MUL long + [000112] ----------- | | +--* SUB long + [000109] ----------- | | | +--* LCL_VAR long V04 loc1 + [000111] ----------- | | | \--* CNS_INT long 3 + [000113] ----------- | | \--* CNS_INT long 8 + [000117] ----------- | \--* LCL_VAR long V01 arg1 + [000122] ----------- \--* CNS_INT int 0 + +------------ BB17 [0016] [124..12A) (return), preds={BB16} succs={} + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) + [000227] ----------- * RETURN int + [000226] ----------- \--* CAST int <- long + [000225] ----------- \--* SUB long + [000222] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000224] ----------- \--* CNS_INT long 3 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] ---XG------ * JTRUE void + [000140] ---XG------ \--* EQ int + [000432] ---XG------ +--* CAST int <- ubyte <- int + [000429] ---XG------ | \--* EQ int + [000133] ---XG------ | +--* IND long + [000132] ----------- | | \--* ADD byref + [000125] ----------- | | +--* LCL_VAR byref V00 arg0 + [000131] ----------- | | \--* MUL long + [000129] ----------- | | +--* SUB long + [000126] ----------- | | | +--* LCL_VAR long V04 loc1 + [000128] ----------- | | | \--* CNS_INT long 4 + [000130] ----------- | | \--* CNS_INT long 8 + [000134] ----------- | \--* LCL_VAR long V01 arg1 + [000139] ----------- \--* CNS_INT int 0 + +------------ BB19 [0018] [152..158) (return), preds={BB18} succs={} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) + [000221] ----------- * RETURN int + [000220] ----------- \--* CAST int <- long + [000219] ----------- \--* SUB long + [000216] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000218] ----------- \--* CNS_INT long 4 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) + [000158] ---XG------ * JTRUE void + [000157] ---XG------ \--* EQ int + [000439] ---XG------ +--* CAST int <- ubyte <- int + [000436] ---XG------ | \--* EQ int + [000150] ---XG------ | +--* IND long + [000149] ----------- | | \--* ADD byref + [000142] ----------- | | +--* LCL_VAR byref V00 arg0 + [000148] ----------- | | \--* MUL long + [000146] ----------- | | +--* SUB long + [000143] ----------- | | | +--* LCL_VAR long V04 loc1 + [000145] ----------- | | | \--* CNS_INT long 5 + [000147] ----------- | | \--* CNS_INT long 8 + [000151] ----------- | \--* LCL_VAR long V01 arg1 + [000156] ----------- \--* CNS_INT int 0 + +------------ BB21 [0020] [180..186) (return), preds={BB20} succs={} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) + [000215] ----------- * RETURN int + [000214] ----------- \--* CAST int <- long + [000213] ----------- \--* SUB long + [000210] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000212] ----------- \--* CNS_INT long 5 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) + [000175] ---XG------ * JTRUE void + [000174] ---XG------ \--* EQ int + [000446] ---XG------ +--* CAST int <- ubyte <- int + [000443] ---XG------ | \--* EQ int + [000167] ---XG------ | +--* IND long + [000166] ----------- | | \--* ADD byref + [000159] ----------- | | +--* LCL_VAR byref V00 arg0 + [000165] ----------- | | \--* MUL long + [000163] ----------- | | +--* SUB long + [000160] ----------- | | | +--* LCL_VAR long V04 loc1 + [000162] ----------- | | | \--* CNS_INT long 6 + [000164] ----------- | | \--* CNS_INT long 8 + [000168] ----------- | \--* LCL_VAR long V01 arg1 + [000173] ----------- \--* CNS_INT int 0 + +------------ BB23 [0022] [1AE..1B4) (return), preds={BB22} succs={} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) + [000209] ----------- * RETURN int + [000208] ----------- \--* CAST int <- long + [000207] ----------- \--* SUB long + [000204] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000206] ----------- \--* CNS_INT long 6 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] ---XG------ * JTRUE void + [000191] ---XG------ \--* EQ int + [000453] ---XG------ +--* CAST int <- ubyte <- int + [000450] ---XG------ | \--* EQ int + [000184] ---XG------ | +--* IND long + [000183] ----------- | | \--* ADD byref + [000176] ----------- | | +--* LCL_VAR byref V00 arg0 + [000182] ----------- | | \--* MUL long + [000180] ----------- | | +--* SUB long + [000177] ----------- | | | +--* LCL_VAR long V04 loc1 + [000179] ----------- | | | \--* CNS_INT long 7 + [000181] ----------- | | \--* CNS_INT long 8 + [000185] ----------- | \--* LCL_VAR long V01 arg1 + [000190] ----------- \--* CNS_INT int 0 + +------------ BB25 [0024] [1DC..1E2) (return), preds={BB24} succs={} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) + [000203] ----------- * RETURN int + [000202] ----------- \--* CAST int <- long + [000201] ----------- \--* SUB long + [000198] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000200] ----------- \--* CNS_INT long 7 + +------------ BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + [000197] DA--------- * STORE_LCL_VAR long V04 loc1 + [000196] ----------- \--* SUB long + [000193] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000195] ----------- \--* CNS_INT long 8 + +------------ BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} + +***** BB27 [0026] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + [000055] ----------- * JTRUE void + [000054] ----------- \--* GE int + [000052] ----------- +--* LCL_VAR int V02 arg2 + [000053] ----------- \--* CNS_INT int 8 + +------------ BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} + +***** BB28 [0027] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) + [000246] ----------- * JTRUE void + [000245] ----------- \--* LT int + [000243] ----------- +--* LCL_VAR int V02 arg2 + [000244] ----------- \--* CNS_INT int 4 + +------------ BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB28} succs={BB31,BB11} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) + [000282] DA--------- * STORE_LCL_VAR int V02 arg2 + [000281] ----------- \--* SUB int + [000279] ----------- +--* LCL_VAR int V02 arg2 (last use) + [000280] ----------- \--* CNS_INT int 4 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] ---XG------ * JTRUE void + [000295] ---XG------ \--* NE int + [000460] ---XG------ +--* CAST int <- ubyte <- int + [000457] ---XG------ | \--* EQ int + [000288] ---XG------ | +--* IND long + [000287] ----------- | | \--* ADD byref + [000283] ----------- | | +--* LCL_VAR byref V00 arg0 + [000286] ----------- | | \--* MUL long + [000284] ----------- | | +--* LCL_VAR long V04 loc1 + [000285] ----------- | | \--* CNS_INT long 8 + [000289] ----------- | \--* LCL_VAR long V01 arg1 + [000294] ----------- \--* CNS_INT int 0 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) + [000313] ---XG------ * JTRUE void + [000312] ---XG------ \--* EQ int + [000467] ---XG------ +--* CAST int <- ubyte <- int + [000464] ---XG------ | \--* EQ int + [000305] ---XG------ | +--* IND long + [000304] ----------- | | \--* ADD byref + [000297] ----------- | | +--* LCL_VAR byref V00 arg0 + [000303] ----------- | | \--* MUL long + [000301] ----------- | | +--* SUB long + [000298] ----------- | | | +--* LCL_VAR long V04 loc1 + [000300] ----------- | | | \--* CNS_INT long 1 + [000302] ----------- | | \--* CNS_INT long 8 + [000306] ----------- | \--* LCL_VAR long V01 arg1 + [000311] ----------- \--* CNS_INT int 0 + +------------ BB32 [0031] [24A..250) (return), preds={BB31} succs={} + +***** BB32 [0031] +STMT00066 ( 0x24A[E--] ... 0x24F ) + [000370] ----------- * RETURN int + [000369] ----------- \--* CAST int <- long + [000368] ----------- \--* SUB long + [000365] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000367] ----------- \--* CNS_INT long 1 + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) + [000330] ---XG------ * JTRUE void + [000329] ---XG------ \--* EQ int + [000474] ---XG------ +--* CAST int <- ubyte <- int + [000471] ---XG------ | \--* EQ int + [000322] ---XG------ | +--* IND long + [000321] ----------- | | \--* ADD byref + [000314] ----------- | | +--* LCL_VAR byref V00 arg0 + [000320] ----------- | | \--* MUL long + [000318] ----------- | | +--* SUB long + [000315] ----------- | | | +--* LCL_VAR long V04 loc1 + [000317] ----------- | | | \--* CNS_INT long 2 + [000319] ----------- | | \--* CNS_INT long 8 + [000323] ----------- | \--* LCL_VAR long V01 arg1 + [000328] ----------- \--* CNS_INT int 0 + +------------ BB34 [0033] [278..27E) (return), preds={BB33} succs={} + +***** BB34 [0033] +STMT00065 ( 0x278[E--] ... 0x27D ) + [000364] ----------- * RETURN int + [000363] ----------- \--* CAST int <- long + [000362] ----------- \--* SUB long + [000359] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000361] ----------- \--* CNS_INT long 2 + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] ---XG------ * JTRUE void + [000346] ---XG------ \--* EQ int + [000481] ---XG------ +--* CAST int <- ubyte <- int + [000478] ---XG------ | \--* EQ int + [000339] ---XG------ | +--* IND long + [000338] ----------- | | \--* ADD byref + [000331] ----------- | | +--* LCL_VAR byref V00 arg0 + [000337] ----------- | | \--* MUL long + [000335] ----------- | | +--* SUB long + [000332] ----------- | | | +--* LCL_VAR long V04 loc1 + [000334] ----------- | | | \--* CNS_INT long 3 + [000336] ----------- | | \--* CNS_INT long 8 + [000340] ----------- | \--* LCL_VAR long V01 arg1 + [000345] ----------- \--* CNS_INT int 0 + +------------ BB36 [0035] [2A6..2AC) (return), preds={BB35} succs={} + +***** BB36 [0035] +STMT00064 ( 0x2A6[E--] ... 0x2AB ) + [000358] ----------- * RETURN int + [000357] ----------- \--* CAST int <- long + [000356] ----------- \--* SUB long + [000353] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000355] ----------- \--* CNS_INT long 3 + +------------ BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) + [000352] DA--------- * STORE_LCL_VAR long V04 loc1 + [000351] ----------- \--* SUB long + [000348] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000350] ----------- \--* CNS_INT long 4 + +------------ BB38 [0037] [2B3..2DD) -> BB11(0.5),BB40(0.5) (cond), preds={BB41} succs={BB40,BB11} + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) + [000254] DA--------- * STORE_LCL_VAR int V02 arg2 + [000253] ----------- \--* SUB int + [000251] ----------- +--* LCL_VAR int V02 arg2 (last use) + [000252] ----------- \--* CNS_INT int 1 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] ---XG------ * JTRUE void + [000267] ---XG------ \--* NE int + [000488] ---XG------ +--* CAST int <- ubyte <- int + [000485] ---XG------ | \--* EQ int + [000260] ---XG------ | +--* IND long + [000259] ----------- | | \--* ADD byref + [000255] ----------- | | +--* LCL_VAR byref V00 arg0 + [000258] ----------- | | \--* MUL long + [000256] ----------- | | +--* LCL_VAR long V04 loc1 + [000257] ----------- | | \--* CNS_INT long 8 + [000261] ----------- | \--* LCL_VAR long V01 arg1 + [000266] ----------- \--* CNS_INT int 0 + +------------ BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + [000273] DA--------- * STORE_LCL_VAR long V04 loc1 + [000272] ----------- \--* SUB long + [000269] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000271] ----------- \--* CNS_INT long 1 + +------------ BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} + +***** BB41 [0040] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + [000250] ----------- * JTRUE void + [000249] ----------- \--* GT int + [000247] ----------- +--* LCL_VAR int V02 arg2 + [000248] ----------- \--* CNS_INT int 0 + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} + +***** BB42 [0041] +STMT00088 ( ??? ... ??? ) + [000493] ----------- * RETURN int + [000277] ----------- \--* CNS_INT int -1 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) + [000045] --C-G------ * RETURN int + [000044] --C-G------ \--* CALL int + [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 (last use) + [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 (last use) + [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 (last use) + +------------ BB58 [0085] [???..???) (return), preds={} succs={} + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) + [000492] ----------- * RETURN int + [000491] -------N--- \--* LCL_VAR int V34 tmp29 (last use) + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Physical promotion + +*************** Finishing PHASE Physical promotion [no changes] + +*************** Starting PHASE Identify candidates for implicit byref copy omission + +*************** Finishing PHASE Identify candidates for implicit byref copy omission [no changes] + +*************** Starting PHASE Morph - ByRefs + +*************** Finishing PHASE Morph - ByRefs [no changes] + +*************** Starting PHASE Morph - Global +Cross-block table size 64 (for 19 tracked locals) + +Morphing BB58 +BB58 ineligible for cross-block +Assertions in: #NA +fgMorphTree BB58, STMT00087 (before) + [000492] ----------- * RETURN int + [000491] -------N--- \--* LCL_VAR int V34 tmp29 (last use) + +Morphing BB01 +Assertions in: #NA +fgMorphTree BB01, STMT00069 (before) + [000384] ----------- * JTRUE void + [000383] ----------- \--* NE int + [000380] ----------- +--* CAST int <- ubyte <- int + [000374] ----------- | \--* CAST int <- ubyte <- int + [000004] ----------- | \--* EQ int + [000002] ----------- | +--* LT int + [000000] ----------- | | +--* LCL_VAR int V02 arg2 + [000001] ----------- | | \--* CNS_INT int 0 + [000003] ----------- | \--* CNS_INT int 0 + [000382] ----------- \--* CNS_INT int 0 + +fgMorphTree BB01, STMT00069 (after) + [000384] -----+----- * JTRUE void + [000002] J----+-N--- \--* GE int + [000000] -----+----- +--* LCL_VAR int V02 arg2 + [000001] -----+----- \--* CNS_INT int 0 + +Morphing BB52 +Using `if false` assertions from pred BB01 +Assertions in: #NA +fgMorphTree BB52, STMT00070 (before) + [000387] --C-G------ * CALL void + [000385] ----------- arg0 +--* CNS_STR ref + [000386] ----------- arg1 \--* CNS_STR ref "" +Adding final args and determining ABI info for [000387]: +Argument 0 ABI info: [00..08) reg rcx +Argument 1 ABI info: [00..08) reg rdx +Args for call [000387] CALL after AddFinalArgsAndDetermineABIInfo: +CallArg[[000385].CNS_STR ref (By value), 1 segments: <[00..08) reg rcx>] +CallArg[[000386].CNS_STR ref (By value), 1 segments: <[00..08) reg rdx>] + +Morphing args for 387.CALL: + +Sorting the arguments: +Deferred argument: + [000497] H----+----- * CNS_INT(h) ref +Moved to late list +Deferred argument: + [000498] H----+----- * CNS_INT(h) ref +Moved to late list + +Register placement order: rcx rdx +Args for [000387].CALL after fgMorphArgs: +CallArg[[000497].CNS_INT ref (By value), 1 segments: <[00..08) reg rcx>, processed] +CallArg[[000498].CNS_INT ref (By value), 1 segments: <[00..08) reg rdx>, processed] +OutgoingArgsStackSize is 32 + + +fgMorphTree BB52, STMT00070 (after) + [000387] --CXG+----- * CALL void + [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref + [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref + +Morphing BB53 +Using `if true` assertions from pred BB01 +Assertions in: #NA +fgMorphTree BB53, STMT00072 (before) + [000395] ----------- * JTRUE void + [000394] ----------- \--* NE int + [000496] ----------- +--* CAST int <- ubyte <- int + [000023] ----------- | \--* CNS_INT int 1 + [000393] ----------- \--* CNS_INT int 0 + +Folding operator with constant nodes into a constant: + [000496] ----------- * CAST int <- ubyte <- int + [000023] -----+----- \--* CNS_INT int 1 +Bashed to int constant: + [000496] ----------- * CNS_INT int 1 + +Folding operator with constant nodes into a constant: + [000394] J------N--- * NE int + [000496] -----+----- +--* CNS_INT int 1 + [000393] -----+----- \--* CNS_INT int 0 +Bashed to int constant: + [000394] ----------- * CNS_INT int 1 + +fgMorphTree BB53, STMT00072 (after) + [000395] -----+----- * JTRUE void + [000394] -----+----- \--* CNS_INT int 1 + +removing useless STMT00072 ( INL04 @ 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000395] -----+----- * JTRUE void + [000394] -----+----- \--* CNS_INT int 1 + from BB53 + +BB53 becomes empty +setting likelihood of BB53 -> BB57 from 0.5 to 1 + +Conditional folded at BB53 +BB53 becomes a BBJ_ALWAYS to BB57 + +Morphing BB56 +BB56 has no reachable preds, marking as unreachable + +Removing unreachable BB56 + +removing useless STMT00073 ( INL04 @ 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] + [000398] --C-G------ * CALL void + [000396] ----------- arg0 +--* CNS_STR ref + [000397] ----------- arg1 \--* CNS_STR ref "" + from BB56 + +BB56 becomes empty + +Morphing BB57 +Assertions in: #NA +fgMorphTree BB57, STMT00003 (before) + [000034] ----------- * JTRUE void + [000033] ----------- \--* GE int + [000031] ----------- +--* LCL_VAR int V02 arg2 + [000032] ----------- \--* CNS_INT int 2 vector element count + +Morphing BB43 +Using `if true` assertions from pred BB57 +Assertions in: #NA +fgMorphTree BB43, STMT00004 (before) + [000045] --C-G------ * RETURN int + [000044] --C-G------ \--* CALL int + [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 (last use) + [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 (last use) + [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 (last use) +Adding final args and determining ABI info for [000044]: +Argument 0 ABI info: [00..08) reg rcx +Argument 1 ABI info: [00..08) reg rdx +Argument 2 ABI info: [00..04) reg r8 +Args for call [000044] CALL after AddFinalArgsAndDetermineABIInfo: +CallArg[[000041].LCL_VAR byref (By value), 1 segments: <[00..08) reg rcx>] +CallArg[[000042].LCL_VAR long (By value), 1 segments: <[00..08) reg rdx>] +CallArg[[000043].LCL_VAR int (By value), 1 segments: <[00..04) reg r8>] + +[Fast tailcall decision]: Will fast tailcall + +GTF_CALL_M_TAILCALL bit set for call [000044] +Remove all stmts after the call. +Replace root node [000045] with [000044] tail call node. +Morphing args for 44.CALL: + +Sorting the arguments: +Deferred argument: + [000041] -----+----- * LCL_VAR byref V00 arg0 (last use) +Moved to late list +Deferred argument: + [000042] -----+----- * LCL_VAR long V01 arg1 (last use) +Moved to late list +Deferred argument: + [000043] -----+----- * LCL_VAR int V02 arg2 (last use) +Moved to late list + +Register placement order: rcx rdx r8 +Args for [000044].CALL after fgMorphArgs: +CallArg[[000041].LCL_VAR byref (By value), 1 segments: <[00..08) reg rcx>, processed] +CallArg[[000042].LCL_VAR long (By value), 1 segments: <[00..08) reg rdx>, processed] +CallArg[[000043].LCL_VAR int (By value), 1 segments: <[00..04) reg r8>, processed] +OutgoingArgsStackSize is 32 + + +fgMorphTree BB43, STMT00004 (after) + [000044] --CXG+----- * CALL void + [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 (last use) + [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 (last use) + [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 (last use) + +Morphing BB09 +Using `if false` assertions from pred BB57 +Assertions in: #NA +fgMorphTree BB09, STMT00005 (before) + [000051] DA--------- * STORE_LCL_VAR long V04 loc1 + [000050] ----------- \--* SUB long + [000047] ----------- +--* CAST long <- int + [000046] ----------- | \--* LCL_VAR int V02 arg2 + [000049] ----------- \--* CNS_INT long 1 + +fgMorphTree BB09, STMT00005 (after) + [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000050] -----+----- \--* ADD long + [000047] -----+----- +--* CAST long <- int + [000046] -----+----- | \--* LCL_VAR int V02 arg2 + [000049] -----+----- \--* CNS_INT long -1 + +Morphing BB27 +BB27 pred BB26 not processed; clearing assertions in +Assertions in: #NA +fgMorphTree BB27, STMT00006 (before) + [000055] ----------- * JTRUE void + [000054] ----------- \--* GE int + [000052] ----------- +--* LCL_VAR int V02 arg2 + [000053] ----------- \--* CNS_INT int 8 + +Morphing BB10 +Using `if true` assertions from pred BB27 +Assertions in: #NA +fgMorphTree BB10, STMT00007 (before) + [000059] DA--------- * STORE_LCL_VAR int V02 arg2 + [000058] ----------- \--* SUB int + [000056] ----------- +--* LCL_VAR int V02 arg2 (last use) + [000057] ----------- \--* CNS_INT int 8 + +fgMorphTree BB10, STMT00007 (after) + [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000058] -----+----- \--* ADD int + [000056] -----+----- +--* LCL_VAR int V02 arg2 (last use) + [000057] -----+----- \--* CNS_INT int -8 + +fgMorphTree BB10, STMT00010 (before) + [000073] ---XG------ * JTRUE void + [000072] ---XG------ \--* EQ int + [000404] ---XG------ +--* CAST int <- ubyte <- int + [000401] ---XG------ | \--* EQ int + [000065] ---XG------ | +--* IND long + [000064] ----------- | | \--* ADD byref + [000060] ----------- | | +--* LCL_VAR byref V00 arg0 + [000063] ----------- | | \--* MUL long + [000061] ----------- | | +--* LCL_VAR long V04 loc1 + [000062] ----------- | | \--* CNS_INT long 8 + [000066] ----------- | \--* LCL_VAR long V01 arg1 + [000071] ----------- \--* CNS_INT int 0 + +fgMorphTree BB10, STMT00010 (after) + [000073] ---XG+----- * JTRUE void + [000401] J--XG+-N--- \--* NE int + [000065] ---XG+----- +--* IND long + [000064] -----+----- | \--* ADD byref + [000060] -----+----- | +--* LCL_VAR byref V00 arg0 + [000063] -----+----- | \--* LSH long + [000061] -----+----- | +--* LCL_VAR long V04 loc1 + [000062] -----+----- | \--* CNS_INT long 3 + [000066] -----+----- \--* LCL_VAR long V01 arg1 + +Morphing BB12 +Using `if true` assertions from pred BB10 +Assertions in: #NA +fgMorphTree BB12, STMT00013 (before) + [000090] ---XG------ * JTRUE void + [000089] ---XG------ \--* EQ int + [000411] ---XG------ +--* CAST int <- ubyte <- int + [000408] ---XG------ | \--* EQ int + [000082] ---XG------ | +--* IND long + [000081] ----------- | | \--* ADD byref + [000074] ----------- | | +--* LCL_VAR byref V00 arg0 + [000080] ----------- | | \--* MUL long + [000078] ----------- | | +--* SUB long + [000075] ----------- | | | +--* LCL_VAR long V04 loc1 + [000077] ----------- | | | \--* CNS_INT long 1 + [000079] ----------- | | \--* CNS_INT long 8 + [000083] ----------- | \--* LCL_VAR long V01 arg1 + [000088] ----------- \--* CNS_INT int 0 + +fgMorphTree BB12, STMT00013 (after) + [000090] ---XG+----- * JTRUE void + [000408] J--XG+-N--- \--* NE int + [000082] ---XG+----- +--* IND long + [000081] -----+----- | \--* ADD byref + [000074] -----+----- | +--* LCL_VAR byref V00 arg0 + [000080] -----+----- | \--* ADD long + [000078] -----+----- | +--* LSH long + [000075] -----+----- | | +--* LCL_VAR long V04 loc1 + [000077] -----+----- | | \--* CNS_INT long 3 + [000079] -----+----- | \--* CNS_INT long -8 + [000083] -----+----- \--* LCL_VAR long V01 arg1 + +Morphing BB14 +Using `if true` assertions from pred BB12 +Assertions in: #NA +fgMorphTree BB14, STMT00016 (before) + [000107] ---XG------ * JTRUE void + [000106] ---XG------ \--* EQ int + [000418] ---XG------ +--* CAST int <- ubyte <- int + [000415] ---XG------ | \--* EQ int + [000099] ---XG------ | +--* IND long + [000098] ----------- | | \--* ADD byref + [000091] ----------- | | +--* LCL_VAR byref V00 arg0 + [000097] ----------- | | \--* MUL long + [000095] ----------- | | +--* SUB long + [000092] ----------- | | | +--* LCL_VAR long V04 loc1 + [000094] ----------- | | | \--* CNS_INT long 2 + [000096] ----------- | | \--* CNS_INT long 8 + [000100] ----------- | \--* LCL_VAR long V01 arg1 + [000105] ----------- \--* CNS_INT int 0 + +fgMorphTree BB14, STMT00016 (after) + [000107] ---XG+----- * JTRUE void + [000415] J--XG+-N--- \--* NE int + [000099] ---XG+----- +--* IND long + [000098] -----+----- | \--* ADD byref + [000091] -----+----- | +--* LCL_VAR byref V00 arg0 + [000097] -----+----- | \--* ADD long + [000095] -----+----- | +--* LSH long + [000092] -----+----- | | +--* LCL_VAR long V04 loc1 + [000094] -----+----- | | \--* CNS_INT long 3 + [000096] -----+----- | \--* CNS_INT long -16 + [000100] -----+----- \--* LCL_VAR long V01 arg1 + +Morphing BB16 +Using `if true` assertions from pred BB14 +Assertions in: #NA +fgMorphTree BB16, STMT00019 (before) + [000124] ---XG------ * JTRUE void + [000123] ---XG------ \--* EQ int + [000425] ---XG------ +--* CAST int <- ubyte <- int + [000422] ---XG------ | \--* EQ int + [000116] ---XG------ | +--* IND long + [000115] ----------- | | \--* ADD byref + [000108] ----------- | | +--* LCL_VAR byref V00 arg0 + [000114] ----------- | | \--* MUL long + [000112] ----------- | | +--* SUB long + [000109] ----------- | | | +--* LCL_VAR long V04 loc1 + [000111] ----------- | | | \--* CNS_INT long 3 + [000113] ----------- | | \--* CNS_INT long 8 + [000117] ----------- | \--* LCL_VAR long V01 arg1 + [000122] ----------- \--* CNS_INT int 0 + +fgMorphTree BB16, STMT00019 (after) + [000124] ---XG+----- * JTRUE void + [000422] J--XG+-N--- \--* NE int + [000116] ---XG+----- +--* IND long + [000115] -----+----- | \--* ADD byref + [000108] -----+----- | +--* LCL_VAR byref V00 arg0 + [000114] -----+----- | \--* ADD long + [000112] -----+----- | +--* LSH long + [000109] -----+----- | | +--* LCL_VAR long V04 loc1 + [000111] -----+----- | | \--* CNS_INT long 3 + [000113] -----+----- | \--* CNS_INT long -24 + [000117] -----+----- \--* LCL_VAR long V01 arg1 + +Morphing BB18 +Using `if true` assertions from pred BB16 +Assertions in: #NA +fgMorphTree BB18, STMT00022 (before) + [000141] ---XG------ * JTRUE void + [000140] ---XG------ \--* EQ int + [000432] ---XG------ +--* CAST int <- ubyte <- int + [000429] ---XG------ | \--* EQ int + [000133] ---XG------ | +--* IND long + [000132] ----------- | | \--* ADD byref + [000125] ----------- | | +--* LCL_VAR byref V00 arg0 + [000131] ----------- | | \--* MUL long + [000129] ----------- | | +--* SUB long + [000126] ----------- | | | +--* LCL_VAR long V04 loc1 + [000128] ----------- | | | \--* CNS_INT long 4 + [000130] ----------- | | \--* CNS_INT long 8 + [000134] ----------- | \--* LCL_VAR long V01 arg1 + [000139] ----------- \--* CNS_INT int 0 + +fgMorphTree BB18, STMT00022 (after) + [000141] ---XG+----- * JTRUE void + [000429] J--XG+-N--- \--* NE int + [000133] ---XG+----- +--* IND long + [000132] -----+----- | \--* ADD byref + [000125] -----+----- | +--* LCL_VAR byref V00 arg0 + [000131] -----+----- | \--* ADD long + [000129] -----+----- | +--* LSH long + [000126] -----+----- | | +--* LCL_VAR long V04 loc1 + [000128] -----+----- | | \--* CNS_INT long 3 + [000130] -----+----- | \--* CNS_INT long -32 + [000134] -----+----- \--* LCL_VAR long V01 arg1 + +Morphing BB20 +Using `if true` assertions from pred BB18 +Assertions in: #NA +fgMorphTree BB20, STMT00025 (before) + [000158] ---XG------ * JTRUE void + [000157] ---XG------ \--* EQ int + [000439] ---XG------ +--* CAST int <- ubyte <- int + [000436] ---XG------ | \--* EQ int + [000150] ---XG------ | +--* IND long + [000149] ----------- | | \--* ADD byref + [000142] ----------- | | +--* LCL_VAR byref V00 arg0 + [000148] ----------- | | \--* MUL long + [000146] ----------- | | +--* SUB long + [000143] ----------- | | | +--* LCL_VAR long V04 loc1 + [000145] ----------- | | | \--* CNS_INT long 5 + [000147] ----------- | | \--* CNS_INT long 8 + [000151] ----------- | \--* LCL_VAR long V01 arg1 + [000156] ----------- \--* CNS_INT int 0 + +fgMorphTree BB20, STMT00025 (after) + [000158] ---XG+----- * JTRUE void + [000436] J--XG+-N--- \--* NE int + [000150] ---XG+----- +--* IND long + [000149] -----+----- | \--* ADD byref + [000142] -----+----- | +--* LCL_VAR byref V00 arg0 + [000148] -----+----- | \--* ADD long + [000146] -----+----- | +--* LSH long + [000143] -----+----- | | +--* LCL_VAR long V04 loc1 + [000145] -----+----- | | \--* CNS_INT long 3 + [000147] -----+----- | \--* CNS_INT long -40 + [000151] -----+----- \--* LCL_VAR long V01 arg1 + +Morphing BB22 +Using `if true` assertions from pred BB20 +Assertions in: #NA +fgMorphTree BB22, STMT00028 (before) + [000175] ---XG------ * JTRUE void + [000174] ---XG------ \--* EQ int + [000446] ---XG------ +--* CAST int <- ubyte <- int + [000443] ---XG------ | \--* EQ int + [000167] ---XG------ | +--* IND long + [000166] ----------- | | \--* ADD byref + [000159] ----------- | | +--* LCL_VAR byref V00 arg0 + [000165] ----------- | | \--* MUL long + [000163] ----------- | | +--* SUB long + [000160] ----------- | | | +--* LCL_VAR long V04 loc1 + [000162] ----------- | | | \--* CNS_INT long 6 + [000164] ----------- | | \--* CNS_INT long 8 + [000168] ----------- | \--* LCL_VAR long V01 arg1 + [000173] ----------- \--* CNS_INT int 0 + +fgMorphTree BB22, STMT00028 (after) + [000175] ---XG+----- * JTRUE void + [000443] J--XG+-N--- \--* NE int + [000167] ---XG+----- +--* IND long + [000166] -----+----- | \--* ADD byref + [000159] -----+----- | +--* LCL_VAR byref V00 arg0 + [000165] -----+----- | \--* ADD long + [000163] -----+----- | +--* LSH long + [000160] -----+----- | | +--* LCL_VAR long V04 loc1 + [000162] -----+----- | | \--* CNS_INT long 3 + [000164] -----+----- | \--* CNS_INT long -48 + [000168] -----+----- \--* LCL_VAR long V01 arg1 + +Morphing BB24 +Using `if true` assertions from pred BB22 +Assertions in: #NA +fgMorphTree BB24, STMT00031 (before) + [000192] ---XG------ * JTRUE void + [000191] ---XG------ \--* EQ int + [000453] ---XG------ +--* CAST int <- ubyte <- int + [000450] ---XG------ | \--* EQ int + [000184] ---XG------ | +--* IND long + [000183] ----------- | | \--* ADD byref + [000176] ----------- | | +--* LCL_VAR byref V00 arg0 + [000182] ----------- | | \--* MUL long + [000180] ----------- | | +--* SUB long + [000177] ----------- | | | +--* LCL_VAR long V04 loc1 + [000179] ----------- | | | \--* CNS_INT long 7 + [000181] ----------- | | \--* CNS_INT long 8 + [000185] ----------- | \--* LCL_VAR long V01 arg1 + [000190] ----------- \--* CNS_INT int 0 + +fgMorphTree BB24, STMT00031 (after) + [000192] ---XG+----- * JTRUE void + [000450] J--XG+-N--- \--* NE int + [000184] ---XG+----- +--* IND long + [000183] -----+----- | \--* ADD byref + [000176] -----+----- | +--* LCL_VAR byref V00 arg0 + [000182] -----+----- | \--* ADD long + [000180] -----+----- | +--* LSH long + [000177] -----+----- | | +--* LCL_VAR long V04 loc1 + [000179] -----+----- | | \--* CNS_INT long 3 + [000181] -----+----- | \--* CNS_INT long -56 + [000185] -----+----- \--* LCL_VAR long V01 arg1 + +Morphing BB26 +Using `if true` assertions from pred BB24 +Assertions in: #NA +fgMorphTree BB26, STMT00032 (before) + [000197] DA--------- * STORE_LCL_VAR long V04 loc1 + [000196] ----------- \--* SUB long + [000193] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000195] ----------- \--* CNS_INT long 8 + +fgMorphTree BB26, STMT00032 (after) + [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000196] -----+----- \--* ADD long + [000193] -----+----- +--* LCL_VAR long V04 loc1 (last use) + [000195] -----+----- \--* CNS_INT long -8 + +Morphing BB25 +Using `if false` assertions from pred BB24 +Assertions in: #NA +fgMorphTree BB25, STMT00033 (before) + [000203] ----------- * RETURN int + [000202] ----------- \--* CAST int <- long + [000201] ----------- \--* SUB long + [000198] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000200] ----------- \--* CNS_INT long 7 + +Folding operator with constant nodes into a constant: + [000501] ----------- * CAST int <- long + [000200] -----+----- \--* CNS_INT long 7 +Bashed to int constant: + [000501] ----------- * CNS_INT int 7 + +fgMorphTree BB25, STMT00033 (after) + [000203] -----+----- * RETURN int + [000201] -----+----- \--* ADD int + [000198] -----+----- +--* LCL_VAR int V04 loc1 (last use) + [000501] -----+----- \--* CNS_INT int -7 +setting likelihood of BB25 -> BB58 to 1 + +Update BB25 to jump to common return block. +BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i + +Morphing BB23 +Using `if false` assertions from pred BB22 +Assertions in: #NA +fgMorphTree BB23, STMT00034 (before) + [000209] ----------- * RETURN int + [000208] ----------- \--* CAST int <- long + [000207] ----------- \--* SUB long + [000204] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000206] ----------- \--* CNS_INT long 6 + +Folding operator with constant nodes into a constant: + [000504] ----------- * CAST int <- long + [000206] -----+----- \--* CNS_INT long 6 +Bashed to int constant: + [000504] ----------- * CNS_INT int 6 + +fgMorphTree BB23, STMT00034 (after) + [000209] -----+----- * RETURN int + [000207] -----+----- \--* ADD int + [000204] -----+----- +--* LCL_VAR int V04 loc1 (last use) + [000504] -----+----- \--* CNS_INT int -6 +setting likelihood of BB23 -> BB58 to 1 + +Update BB23 to jump to common return block. +BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i + +Morphing BB21 +Using `if false` assertions from pred BB20 +Assertions in: #NA +fgMorphTree BB21, STMT00035 (before) + [000215] ----------- * RETURN int + [000214] ----------- \--* CAST int <- long + [000213] ----------- \--* SUB long + [000210] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000212] ----------- \--* CNS_INT long 5 + +Folding operator with constant nodes into a constant: + [000507] ----------- * CAST int <- long + [000212] -----+----- \--* CNS_INT long 5 +Bashed to int constant: + [000507] ----------- * CNS_INT int 5 + +fgMorphTree BB21, STMT00035 (after) + [000215] -----+----- * RETURN int + [000213] -----+----- \--* ADD int + [000210] -----+----- +--* LCL_VAR int V04 loc1 (last use) + [000507] -----+----- \--* CNS_INT int -5 +setting likelihood of BB21 -> BB58 to 1 + +Update BB21 to jump to common return block. +BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i + +Morphing BB19 +Using `if false` assertions from pred BB18 +Assertions in: #NA +fgMorphTree BB19, STMT00036 (before) + [000221] ----------- * RETURN int + [000220] ----------- \--* CAST int <- long + [000219] ----------- \--* SUB long + [000216] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000218] ----------- \--* CNS_INT long 4 + +Folding operator with constant nodes into a constant: + [000510] ----------- * CAST int <- long + [000218] -----+----- \--* CNS_INT long 4 +Bashed to int constant: + [000510] ----------- * CNS_INT int 4 + +fgMorphTree BB19, STMT00036 (after) + [000221] -----+----- * RETURN int + [000219] -----+----- \--* ADD int + [000216] -----+----- +--* LCL_VAR int V04 loc1 (last use) + [000510] -----+----- \--* CNS_INT int -4 +setting likelihood of BB19 -> BB58 to 1 + +Update BB19 to jump to common return block. +BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i + +Morphing BB17 +Using `if false` assertions from pred BB16 +Assertions in: #NA +fgMorphTree BB17, STMT00037 (before) + [000227] ----------- * RETURN int + [000226] ----------- \--* CAST int <- long + [000225] ----------- \--* SUB long + [000222] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000224] ----------- \--* CNS_INT long 3 + +Folding operator with constant nodes into a constant: + [000513] ----------- * CAST int <- long + [000224] -----+----- \--* CNS_INT long 3 +Bashed to int constant: + [000513] ----------- * CNS_INT int 3 + +fgMorphTree BB17, STMT00037 (after) + [000227] -----+----- * RETURN int + [000225] -----+----- \--* ADD int + [000222] -----+----- +--* LCL_VAR int V04 loc1 (last use) + [000513] -----+----- \--* CNS_INT int -3 +setting likelihood of BB17 -> BB58 to 1 + +Update BB17 to jump to common return block. +BB17 [0016] 1 BB16 1 [124..12A)-> BB58(1) (always) i + +Morphing BB15 +Using `if false` assertions from pred BB14 +Assertions in: #NA +fgMorphTree BB15, STMT00038 (before) + [000233] ----------- * RETURN int + [000232] ----------- \--* CAST int <- long + [000231] ----------- \--* SUB long + [000228] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000230] ----------- \--* CNS_INT long 2 + +Folding operator with constant nodes into a constant: + [000516] ----------- * CAST int <- long + [000230] -----+----- \--* CNS_INT long 2 +Bashed to int constant: + [000516] ----------- * CNS_INT int 2 + +fgMorphTree BB15, STMT00038 (after) + [000233] -----+----- * RETURN int + [000231] -----+----- \--* ADD int + [000228] -----+----- +--* LCL_VAR int V04 loc1 (last use) + [000516] -----+----- \--* CNS_INT int -2 +setting likelihood of BB15 -> BB58 to 1 + +Update BB15 to jump to common return block. +BB15 [0014] 1 BB14 1 [0F6..0FC)-> BB58(1) (always) i + +Morphing BB13 +Using `if false` assertions from pred BB12 +Assertions in: #NA +fgMorphTree BB13, STMT00039 (before) + [000239] ----------- * RETURN int + [000238] ----------- \--* CAST int <- long + [000237] ----------- \--* SUB long + [000234] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000236] ----------- \--* CNS_INT long 1 + +Folding operator with constant nodes into a constant: + [000519] ----------- * CAST int <- long + [000236] -----+----- \--* CNS_INT long 1 +Bashed to int constant: + [000519] ----------- * CNS_INT int 1 + +fgMorphTree BB13, STMT00039 (after) + [000239] -----+----- * RETURN int + [000237] -----+----- \--* ADD int + [000234] -----+----- +--* LCL_VAR int V04 loc1 (last use) + [000519] -----+----- \--* CNS_INT int -1 +setting likelihood of BB13 -> BB58 to 1 + +Update BB13 to jump to common return block. +BB13 [0012] 1 BB12 1 [0C8..0CE)-> BB58(1) (always) i + +Morphing BB28 +Using `if false` assertions from pred BB27 +Assertions in: #NA +fgMorphTree BB28, STMT00041 (before) + [000246] ----------- * JTRUE void + [000245] ----------- \--* LT int + [000243] ----------- +--* LCL_VAR int V02 arg2 + [000244] ----------- \--* CNS_INT int 4 + +Morphing BB29 +Using `if false` assertions from pred BB28 +Assertions in: #NA +fgMorphTree BB29, STMT00050 (before) + [000282] DA--------- * STORE_LCL_VAR int V02 arg2 + [000281] ----------- \--* SUB int + [000279] ----------- +--* LCL_VAR int V02 arg2 (last use) + [000280] ----------- \--* CNS_INT int 4 + +fgMorphTree BB29, STMT00050 (after) + [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000281] -----+----- \--* ADD int + [000279] -----+----- +--* LCL_VAR int V02 arg2 (last use) + [000280] -----+----- \--* CNS_INT int -4 + +fgMorphTree BB29, STMT00053 (before) + [000296] ---XG------ * JTRUE void + [000295] ---XG------ \--* NE int + [000460] ---XG------ +--* CAST int <- ubyte <- int + [000457] ---XG------ | \--* EQ int + [000288] ---XG------ | +--* IND long + [000287] ----------- | | \--* ADD byref + [000283] ----------- | | +--* LCL_VAR byref V00 arg0 + [000286] ----------- | | \--* MUL long + [000284] ----------- | | +--* LCL_VAR long V04 loc1 + [000285] ----------- | | \--* CNS_INT long 8 + [000289] ----------- | \--* LCL_VAR long V01 arg1 + [000294] ----------- \--* CNS_INT int 0 + +fgMorphTree BB29, STMT00053 (after) + [000296] ---XG+----- * JTRUE void + [000457] J--XG+-N--- \--* EQ int + [000288] ---XG+----- +--* IND long + [000287] -----+----- | \--* ADD byref + [000283] -----+----- | +--* LCL_VAR byref V00 arg0 + [000286] -----+----- | \--* LSH long + [000284] -----+----- | +--* LCL_VAR long V04 loc1 + [000285] -----+----- | \--* CNS_INT long 3 + [000289] -----+----- \--* LCL_VAR long V01 arg1 + +Morphing BB31 +Using `if false` assertions from pred BB29 +Assertions in: #NA +fgMorphTree BB31, STMT00056 (before) + [000313] ---XG------ * JTRUE void + [000312] ---XG------ \--* EQ int + [000467] ---XG------ +--* CAST int <- ubyte <- int + [000464] ---XG------ | \--* EQ int + [000305] ---XG------ | +--* IND long + [000304] ----------- | | \--* ADD byref + [000297] ----------- | | +--* LCL_VAR byref V00 arg0 + [000303] ----------- | | \--* MUL long + [000301] ----------- | | +--* SUB long + [000298] ----------- | | | +--* LCL_VAR long V04 loc1 + [000300] ----------- | | | \--* CNS_INT long 1 + [000302] ----------- | | \--* CNS_INT long 8 + [000306] ----------- | \--* LCL_VAR long V01 arg1 + [000311] ----------- \--* CNS_INT int 0 + +fgMorphTree BB31, STMT00056 (after) + [000313] ---XG+----- * JTRUE void + [000464] J--XG+-N--- \--* NE int + [000305] ---XG+----- +--* IND long + [000304] -----+----- | \--* ADD byref + [000297] -----+----- | +--* LCL_VAR byref V00 arg0 + [000303] -----+----- | \--* ADD long + [000301] -----+----- | +--* LSH long + [000298] -----+----- | | +--* LCL_VAR long V04 loc1 + [000300] -----+----- | | \--* CNS_INT long 3 + [000302] -----+----- | \--* CNS_INT long -8 + [000306] -----+----- \--* LCL_VAR long V01 arg1 + +Morphing BB33 +Using `if true` assertions from pred BB31 +Assertions in: #NA +fgMorphTree BB33, STMT00059 (before) + [000330] ---XG------ * JTRUE void + [000329] ---XG------ \--* EQ int + [000474] ---XG------ +--* CAST int <- ubyte <- int + [000471] ---XG------ | \--* EQ int + [000322] ---XG------ | +--* IND long + [000321] ----------- | | \--* ADD byref + [000314] ----------- | | +--* LCL_VAR byref V00 arg0 + [000320] ----------- | | \--* MUL long + [000318] ----------- | | +--* SUB long + [000315] ----------- | | | +--* LCL_VAR long V04 loc1 + [000317] ----------- | | | \--* CNS_INT long 2 + [000319] ----------- | | \--* CNS_INT long 8 + [000323] ----------- | \--* LCL_VAR long V01 arg1 + [000328] ----------- \--* CNS_INT int 0 + +fgMorphTree BB33, STMT00059 (after) + [000330] ---XG+----- * JTRUE void + [000471] J--XG+-N--- \--* NE int + [000322] ---XG+----- +--* IND long + [000321] -----+----- | \--* ADD byref + [000314] -----+----- | +--* LCL_VAR byref V00 arg0 + [000320] -----+----- | \--* ADD long + [000318] -----+----- | +--* LSH long + [000315] -----+----- | | +--* LCL_VAR long V04 loc1 + [000317] -----+----- | | \--* CNS_INT long 3 + [000319] -----+----- | \--* CNS_INT long -16 + [000323] -----+----- \--* LCL_VAR long V01 arg1 + +Morphing BB35 +Using `if true` assertions from pred BB33 +Assertions in: #NA +fgMorphTree BB35, STMT00062 (before) + [000347] ---XG------ * JTRUE void + [000346] ---XG------ \--* EQ int + [000481] ---XG------ +--* CAST int <- ubyte <- int + [000478] ---XG------ | \--* EQ int + [000339] ---XG------ | +--* IND long + [000338] ----------- | | \--* ADD byref + [000331] ----------- | | +--* LCL_VAR byref V00 arg0 + [000337] ----------- | | \--* MUL long + [000335] ----------- | | +--* SUB long + [000332] ----------- | | | +--* LCL_VAR long V04 loc1 + [000334] ----------- | | | \--* CNS_INT long 3 + [000336] ----------- | | \--* CNS_INT long 8 + [000340] ----------- | \--* LCL_VAR long V01 arg1 + [000345] ----------- \--* CNS_INT int 0 + +fgMorphTree BB35, STMT00062 (after) + [000347] ---XG+----- * JTRUE void + [000478] J--XG+-N--- \--* NE int + [000339] ---XG+----- +--* IND long + [000338] -----+----- | \--* ADD byref + [000331] -----+----- | +--* LCL_VAR byref V00 arg0 + [000337] -----+----- | \--* ADD long + [000335] -----+----- | +--* LSH long + [000332] -----+----- | | +--* LCL_VAR long V04 loc1 + [000334] -----+----- | | \--* CNS_INT long 3 + [000336] -----+----- | \--* CNS_INT long -24 + [000340] -----+----- \--* LCL_VAR long V01 arg1 + +Morphing BB37 +Using `if true` assertions from pred BB35 +Assertions in: #NA +fgMorphTree BB37, STMT00063 (before) + [000352] DA--------- * STORE_LCL_VAR long V04 loc1 + [000351] ----------- \--* SUB long + [000348] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000350] ----------- \--* CNS_INT long 4 + +fgMorphTree BB37, STMT00063 (after) + [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000351] -----+----- \--* ADD long + [000348] -----+----- +--* LCL_VAR long V04 loc1 (last use) + [000350] -----+----- \--* CNS_INT long -4 + +Morphing BB41 +Using `if true` assertions from pred BB28 +BB41 pred BB40 not processed; clearing assertions in +Assertions in: #NA +fgMorphTree BB41, STMT00042 (before) + [000250] ----------- * JTRUE void + [000249] ----------- \--* GT int + [000247] ----------- +--* LCL_VAR int V02 arg2 + [000248] ----------- \--* CNS_INT int 0 + +Morphing BB38 +Using `if true` assertions from pred BB41 +Assertions in: #NA +fgMorphTree BB38, STMT00043 (before) + [000254] DA--------- * STORE_LCL_VAR int V02 arg2 + [000253] ----------- \--* SUB int + [000251] ----------- +--* LCL_VAR int V02 arg2 (last use) + [000252] ----------- \--* CNS_INT int 1 + +fgMorphTree BB38, STMT00043 (after) + [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000253] -----+----- \--* ADD int + [000251] -----+----- +--* LCL_VAR int V02 arg2 (last use) + [000252] -----+----- \--* CNS_INT int -1 + +fgMorphTree BB38, STMT00046 (before) + [000268] ---XG------ * JTRUE void + [000267] ---XG------ \--* NE int + [000488] ---XG------ +--* CAST int <- ubyte <- int + [000485] ---XG------ | \--* EQ int + [000260] ---XG------ | +--* IND long + [000259] ----------- | | \--* ADD byref + [000255] ----------- | | +--* LCL_VAR byref V00 arg0 + [000258] ----------- | | \--* MUL long + [000256] ----------- | | +--* LCL_VAR long V04 loc1 + [000257] ----------- | | \--* CNS_INT long 8 + [000261] ----------- | \--* LCL_VAR long V01 arg1 + [000266] ----------- \--* CNS_INT int 0 + +fgMorphTree BB38, STMT00046 (after) + [000268] ---XG+----- * JTRUE void + [000485] J--XG+-N--- \--* EQ int + [000260] ---XG+----- +--* IND long + [000259] -----+----- | \--* ADD byref + [000255] -----+----- | +--* LCL_VAR byref V00 arg0 + [000258] -----+----- | \--* LSH long + [000256] -----+----- | +--* LCL_VAR long V04 loc1 + [000257] -----+----- | \--* CNS_INT long 3 + [000261] -----+----- \--* LCL_VAR long V01 arg1 + +Morphing BB11 +Using `if false` assertions from pred BB10 +Using `if true` assertions from pred BB29 +Using `if true` assertions from pred BB38 +Assertions in: #NA +fgMorphTree BB11, STMT00040 (before) + [000242] ----------- * RETURN int + [000241] ----------- \--* CAST int <- long + [000240] ----------- \--* LCL_VAR long V04 loc1 (last use) + +fgMorphTree BB11, STMT00040 (after) + [000242] -----+----- * RETURN int + [000240] -----+----- \--* LCL_VAR int V04 loc1 (last use) +setting likelihood of BB11 -> BB58 to 1 + +Update BB11 to jump to common return block. +BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0)-> BB58(1) (always) i + +Morphing BB40 +Using `if false` assertions from pred BB38 +Assertions in: #NA +fgMorphTree BB40, STMT00047 (before) + [000273] DA--------- * STORE_LCL_VAR long V04 loc1 + [000272] ----------- \--* SUB long + [000269] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000271] ----------- \--* CNS_INT long 1 + +fgMorphTree BB40, STMT00047 (after) + [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000272] -----+----- \--* ADD long + [000269] -----+----- +--* LCL_VAR long V04 loc1 (last use) + [000271] -----+----- \--* CNS_INT long -1 + +Morphing BB42 +Using `if false` assertions from pred BB41 +Assertions in: #NA +fgMorphTree BB42, STMT00088 (before) + [000493] ----------- * RETURN int + [000277] ----------- \--* CNS_INT int -1 + +Morphing BB36 +Using `if false` assertions from pred BB35 +Assertions in: #NA +fgMorphTree BB36, STMT00064 (before) + [000358] ----------- * RETURN int + [000357] ----------- \--* CAST int <- long + [000356] ----------- \--* SUB long + [000353] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000355] ----------- \--* CNS_INT long 3 + +Folding operator with constant nodes into a constant: + [000523] ----------- * CAST int <- long + [000355] -----+----- \--* CNS_INT long 3 +Bashed to int constant: + [000523] ----------- * CNS_INT int 3 + +fgMorphTree BB36, STMT00064 (after) + [000358] -----+----- * RETURN int + [000356] -----+----- \--* ADD int + [000353] -----+----- +--* LCL_VAR int V04 loc1 (last use) + [000523] -----+----- \--* CNS_INT int -3 +setting likelihood of BB36 -> BB58 to 1 + +Update BB36 to jump to common return block. +BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB58(1) (always) i + +Morphing BB34 +Using `if false` assertions from pred BB33 +Assertions in: #NA +fgMorphTree BB34, STMT00065 (before) + [000364] ----------- * RETURN int + [000363] ----------- \--* CAST int <- long + [000362] ----------- \--* SUB long + [000359] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000361] ----------- \--* CNS_INT long 2 + +Folding operator with constant nodes into a constant: + [000526] ----------- * CAST int <- long + [000361] -----+----- \--* CNS_INT long 2 +Bashed to int constant: + [000526] ----------- * CNS_INT int 2 + +fgMorphTree BB34, STMT00065 (after) + [000364] -----+----- * RETURN int + [000362] -----+----- \--* ADD int + [000359] -----+----- +--* LCL_VAR int V04 loc1 (last use) + [000526] -----+----- \--* CNS_INT int -2 +setting likelihood of BB34 -> BB58 to 1 + +Update BB34 to jump to common return block. +BB34 [0033] 1 BB33 1 [278..27E)-> BB58(1) (always) i + +Morphing BB32 +Using `if false` assertions from pred BB31 +Assertions in: #NA +fgMorphTree BB32, STMT00066 (before) + [000370] ----------- * RETURN int + [000369] ----------- \--* CAST int <- long + [000368] ----------- \--* SUB long + [000365] ----------- +--* LCL_VAR long V04 loc1 (last use) + [000367] ----------- \--* CNS_INT long 1 + +Folding operator with constant nodes into a constant: + [000529] ----------- * CAST int <- long + [000367] -----+----- \--* CNS_INT long 1 +Bashed to int constant: + [000529] ----------- * CNS_INT int 1 + +fgMorphTree BB32, STMT00066 (after) + [000370] -----+----- * RETURN int + [000368] -----+----- \--* ADD int + [000365] -----+----- +--* LCL_VAR int V04 loc1 (last use) + [000529] -----+----- \--* CNS_INT int -1 +setting likelihood of BB32 -> BB58 to 1 + +Update BB32 to jump to common return block. +BB32 [0031] 1 BB31 1 [24A..250)-> BB58(1) (always) i +morph assertion stats: 64 table size, 0 assertions, 0 dropped + +*************** Finishing PHASE Morph - Global +Trees after Morph - Global + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 1 [000..001)-> BB53(1) (always) i hascall gcsafe +BB53 [0052] 2 BB01,BB52 1 [000..04C)-> BB57(1) (always) i +BB56 [0056] 0 1 [04B..04C) (throw ) i +BB57 [0057] 1 BB53 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target +BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0)-> BB58(1) (always) i +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd +BB13 [0012] 1 BB12 1 [0C8..0CE)-> BB58(1) (always) i +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd +BB15 [0014] 1 BB14 1 [0F6..0FC)-> BB58(1) (always) i +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd +BB17 [0016] 1 BB16 1 [124..12A)-> BB58(1) (always) i +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250)-> BB58(1) (always) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E)-> BB58(1) (always) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB58(1) (always) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 1 [2EB..324) (return) i jmp hascall +BB58 [0085] 11 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25,BB32,BB34,BB36 1 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB53(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB53} + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000384] -----+----- * JTRUE void + [000002] J----+-N--- \--* GE int + [000000] -----+----- +--* LCL_VAR int V02 arg2 + [000001] -----+----- \--* CNS_INT int 0 + +------------ BB52 [0051] [000..001) -> BB53(1) (always), preds={BB01} succs={BB53} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000387] --CXG+----- * CALL void + [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref + [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref + +------------ BB53 [0052] [000..04C) -> BB57(1) (always), preds={BB01,BB52} succs={BB57} + +------------ BB56 [0056] [04B..04C) (throw), preds={} succs={} + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB53} succs={BB09,BB43} + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) + [000034] -----+----- * JTRUE void + [000033] J----+-N--- \--* GE int + [000031] -----+----- +--* LCL_VAR int V02 arg2 + [000032] -----+----- \--* CNS_INT int 2 vector element count + +------------ BB09 [0008] [068..073) -> BB27(1) (always), preds={BB57} succs={BB27} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) + [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000050] -----+----- \--* ADD long + [000047] -----+----- +--* CAST long <- int + [000046] -----+----- | \--* LCL_VAR int V02 arg2 + [000049] -----+----- \--* CNS_INT long -1 + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) + [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000058] -----+----- \--* ADD int + [000056] -----+----- +--* LCL_VAR int V02 arg2 (last use) + [000057] -----+----- \--* CNS_INT int -8 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) + [000073] ---XG+----- * JTRUE void + [000401] J--XG+-N--- \--* NE int + [000065] ---XG+----- +--* IND long + [000064] -----+----- | \--* ADD byref + [000060] -----+----- | +--* LCL_VAR byref V00 arg0 + [000063] -----+----- | \--* LSH long + [000061] -----+----- | +--* LCL_VAR long V04 loc1 + [000062] -----+----- | \--* CNS_INT long 3 + [000066] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB10,BB29,BB38} succs={BB58} + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) + [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000240] -----+----- \--* LCL_VAR int V04 loc1 (last use) + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] ---XG+----- * JTRUE void + [000408] J--XG+-N--- \--* NE int + [000082] ---XG+----- +--* IND long + [000081] -----+----- | \--* ADD byref + [000074] -----+----- | +--* LCL_VAR byref V00 arg0 + [000080] -----+----- | \--* ADD long + [000078] -----+----- | +--* LSH long + [000075] -----+----- | | +--* LCL_VAR long V04 loc1 + [000077] -----+----- | | \--* CNS_INT long 3 + [000079] -----+----- | \--* CNS_INT long -8 + [000083] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB12} succs={BB58} + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000237] -----+----- \--* ADD int + [000234] -----+----- +--* LCL_VAR int V04 loc1 (last use) + [000519] -----+----- \--* CNS_INT int -1 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] ---XG+----- * JTRUE void + [000415] J--XG+-N--- \--* NE int + [000099] ---XG+----- +--* IND long + [000098] -----+----- | \--* ADD byref + [000091] -----+----- | +--* LCL_VAR byref V00 arg0 + [000097] -----+----- | \--* ADD long + [000095] -----+----- | +--* LSH long + [000092] -----+----- | | +--* LCL_VAR long V04 loc1 + [000094] -----+----- | | \--* CNS_INT long 3 + [000096] -----+----- | \--* CNS_INT long -16 + [000100] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB14} succs={BB58} + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000231] -----+----- \--* ADD int + [000228] -----+----- +--* LCL_VAR int V04 loc1 (last use) + [000516] -----+----- \--* CNS_INT int -2 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] ---XG+----- * JTRUE void + [000422] J--XG+-N--- \--* NE int + [000116] ---XG+----- +--* IND long + [000115] -----+----- | \--* ADD byref + [000108] -----+----- | +--* LCL_VAR byref V00 arg0 + [000114] -----+----- | \--* ADD long + [000112] -----+----- | +--* LSH long + [000109] -----+----- | | +--* LCL_VAR long V04 loc1 + [000111] -----+----- | | \--* CNS_INT long 3 + [000113] -----+----- | \--* CNS_INT long -24 + [000117] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB16} succs={BB58} + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) + [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000225] -----+----- \--* ADD int + [000222] -----+----- +--* LCL_VAR int V04 loc1 (last use) + [000513] -----+----- \--* CNS_INT int -3 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] ---XG+----- * JTRUE void + [000429] J--XG+-N--- \--* NE int + [000133] ---XG+----- +--* IND long + [000132] -----+----- | \--* ADD byref + [000125] -----+----- | +--* LCL_VAR byref V00 arg0 + [000131] -----+----- | \--* ADD long + [000129] -----+----- | +--* LSH long + [000126] -----+----- | | +--* LCL_VAR long V04 loc1 + [000128] -----+----- | | \--* CNS_INT long 3 + [000130] -----+----- | \--* CNS_INT long -32 + [000134] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) + [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000219] -----+----- \--* ADD int + [000216] -----+----- +--* LCL_VAR int V04 loc1 (last use) + [000510] -----+----- \--* CNS_INT int -4 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) + [000158] ---XG+----- * JTRUE void + [000436] J--XG+-N--- \--* NE int + [000150] ---XG+----- +--* IND long + [000149] -----+----- | \--* ADD byref + [000142] -----+----- | +--* LCL_VAR byref V00 arg0 + [000148] -----+----- | \--* ADD long + [000146] -----+----- | +--* LSH long + [000143] -----+----- | | +--* LCL_VAR long V04 loc1 + [000145] -----+----- | | \--* CNS_INT long 3 + [000147] -----+----- | \--* CNS_INT long -40 + [000151] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) + [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000213] -----+----- \--* ADD int + [000210] -----+----- +--* LCL_VAR int V04 loc1 (last use) + [000507] -----+----- \--* CNS_INT int -5 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) + [000175] ---XG+----- * JTRUE void + [000443] J--XG+-N--- \--* NE int + [000167] ---XG+----- +--* IND long + [000166] -----+----- | \--* ADD byref + [000159] -----+----- | +--* LCL_VAR byref V00 arg0 + [000165] -----+----- | \--* ADD long + [000163] -----+----- | +--* LSH long + [000160] -----+----- | | +--* LCL_VAR long V04 loc1 + [000162] -----+----- | | \--* CNS_INT long 3 + [000164] -----+----- | \--* CNS_INT long -48 + [000168] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) + [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000207] -----+----- \--* ADD int + [000204] -----+----- +--* LCL_VAR int V04 loc1 (last use) + [000504] -----+----- \--* CNS_INT int -6 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] ---XG+----- * JTRUE void + [000450] J--XG+-N--- \--* NE int + [000184] ---XG+----- +--* IND long + [000183] -----+----- | \--* ADD byref + [000176] -----+----- | +--* LCL_VAR byref V00 arg0 + [000182] -----+----- | \--* ADD long + [000180] -----+----- | +--* LSH long + [000177] -----+----- | | +--* LCL_VAR long V04 loc1 + [000179] -----+----- | | \--* CNS_INT long 3 + [000181] -----+----- | \--* CNS_INT long -56 + [000185] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) + [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000201] -----+----- \--* ADD int + [000198] -----+----- +--* LCL_VAR int V04 loc1 (last use) + [000501] -----+----- \--* CNS_INT int -7 + +------------ BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000196] -----+----- \--* ADD long + [000193] -----+----- +--* LCL_VAR long V04 loc1 (last use) + [000195] -----+----- \--* CNS_INT long -8 + +------------ BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} + +***** BB27 [0026] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + [000055] -----+----- * JTRUE void + [000054] J----+-N--- \--* GE int + [000052] -----+----- +--* LCL_VAR int V02 arg2 + [000053] -----+----- \--* CNS_INT int 8 + +------------ BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} + +***** BB28 [0027] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) + [000246] -----+----- * JTRUE void + [000245] J----+-N--- \--* LT int + [000243] -----+----- +--* LCL_VAR int V02 arg2 + [000244] -----+----- \--* CNS_INT int 4 + +------------ BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB28} succs={BB31,BB11} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) + [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000281] -----+----- \--* ADD int + [000279] -----+----- +--* LCL_VAR int V02 arg2 (last use) + [000280] -----+----- \--* CNS_INT int -4 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] ---XG+----- * JTRUE void + [000457] J--XG+-N--- \--* EQ int + [000288] ---XG+----- +--* IND long + [000287] -----+----- | \--* ADD byref + [000283] -----+----- | +--* LCL_VAR byref V00 arg0 + [000286] -----+----- | \--* LSH long + [000284] -----+----- | +--* LCL_VAR long V04 loc1 + [000285] -----+----- | \--* CNS_INT long 3 + [000289] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) + [000313] ---XG+----- * JTRUE void + [000464] J--XG+-N--- \--* NE int + [000305] ---XG+----- +--* IND long + [000304] -----+----- | \--* ADD byref + [000297] -----+----- | +--* LCL_VAR byref V00 arg0 + [000303] -----+----- | \--* ADD long + [000301] -----+----- | +--* LSH long + [000298] -----+----- | | +--* LCL_VAR long V04 loc1 + [000300] -----+----- | | \--* CNS_INT long 3 + [000302] -----+----- | \--* CNS_INT long -8 + [000306] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB32 [0031] [24A..250) -> BB58(1) (always), preds={BB31} succs={BB58} + +***** BB32 [0031] +STMT00066 ( 0x24A[E--] ... 0x24F ) + [000530] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000368] -----+----- \--* ADD int + [000365] -----+----- +--* LCL_VAR int V04 loc1 (last use) + [000529] -----+----- \--* CNS_INT int -1 + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) + [000330] ---XG+----- * JTRUE void + [000471] J--XG+-N--- \--* NE int + [000322] ---XG+----- +--* IND long + [000321] -----+----- | \--* ADD byref + [000314] -----+----- | +--* LCL_VAR byref V00 arg0 + [000320] -----+----- | \--* ADD long + [000318] -----+----- | +--* LSH long + [000315] -----+----- | | +--* LCL_VAR long V04 loc1 + [000317] -----+----- | | \--* CNS_INT long 3 + [000319] -----+----- | \--* CNS_INT long -16 + [000323] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB34 [0033] [278..27E) -> BB58(1) (always), preds={BB33} succs={BB58} + +***** BB34 [0033] +STMT00065 ( 0x278[E--] ... 0x27D ) + [000527] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000362] -----+----- \--* ADD int + [000359] -----+----- +--* LCL_VAR int V04 loc1 (last use) + [000526] -----+----- \--* CNS_INT int -2 + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] ---XG+----- * JTRUE void + [000478] J--XG+-N--- \--* NE int + [000339] ---XG+----- +--* IND long + [000338] -----+----- | \--* ADD byref + [000331] -----+----- | +--* LCL_VAR byref V00 arg0 + [000337] -----+----- | \--* ADD long + [000335] -----+----- | +--* LSH long + [000332] -----+----- | | +--* LCL_VAR long V04 loc1 + [000334] -----+----- | | \--* CNS_INT long 3 + [000336] -----+----- | \--* CNS_INT long -24 + [000340] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB36 [0035] [2A6..2AC) -> BB58(1) (always), preds={BB35} succs={BB58} + +***** BB36 [0035] +STMT00064 ( 0x2A6[E--] ... 0x2AB ) + [000524] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000356] -----+----- \--* ADD int + [000353] -----+----- +--* LCL_VAR int V04 loc1 (last use) + [000523] -----+----- \--* CNS_INT int -3 + +------------ BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) + [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000351] -----+----- \--* ADD long + [000348] -----+----- +--* LCL_VAR long V04 loc1 (last use) + [000350] -----+----- \--* CNS_INT long -4 + +------------ BB38 [0037] [2B3..2DD) -> BB11(0.5),BB40(0.5) (cond), preds={BB41} succs={BB40,BB11} + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) + [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000253] -----+----- \--* ADD int + [000251] -----+----- +--* LCL_VAR int V02 arg2 (last use) + [000252] -----+----- \--* CNS_INT int -1 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] ---XG+----- * JTRUE void + [000485] J--XG+-N--- \--* EQ int + [000260] ---XG+----- +--* IND long + [000259] -----+----- | \--* ADD byref + [000255] -----+----- | +--* LCL_VAR byref V00 arg0 + [000258] -----+----- | \--* LSH long + [000256] -----+----- | +--* LCL_VAR long V04 loc1 + [000257] -----+----- | \--* CNS_INT long 3 + [000261] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000272] -----+----- \--* ADD long + [000269] -----+----- +--* LCL_VAR long V04 loc1 (last use) + [000271] -----+----- \--* CNS_INT long -1 + +------------ BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} + +***** BB41 [0040] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + [000250] -----+----- * JTRUE void + [000249] J----+-N--- \--* GT int + [000247] -----+----- +--* LCL_VAR int V02 arg2 + [000248] -----+----- \--* CNS_INT int 0 + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} + +***** BB42 [0041] +STMT00088 ( ??? ... ??? ) + [000493] -----+----- * RETURN int + [000277] -----+----- \--* CNS_INT int -1 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) + [000044] --CXG+----- * CALL void + [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 (last use) + [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 (last use) + [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 (last use) + +------------ BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25,BB32,BB34,BB36} succs={} + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) + [000492] -----+----- * RETURN int + [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 (last use) + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Post-Morph + +*************** In fgMarkDemotedImplicitByRefArgs() + +*************** Finishing PHASE Post-Morph +Trees after Post-Morph + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 1 [000..001)-> BB53(1) (always) i hascall gcsafe +BB53 [0052] 2 BB01,BB52 1 [000..04C)-> BB57(1) (always) i +BB56 [0056] 0 1 [04B..04C) (throw ) i +BB57 [0057] 1 BB53 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target +BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0)-> BB58(1) (always) i +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd +BB13 [0012] 1 BB12 1 [0C8..0CE)-> BB58(1) (always) i +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd +BB15 [0014] 1 BB14 1 [0F6..0FC)-> BB58(1) (always) i +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd +BB17 [0016] 1 BB16 1 [124..12A)-> BB58(1) (always) i +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250)-> BB58(1) (always) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E)-> BB58(1) (always) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB58(1) (always) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 1 [2EB..324) (return) i jmp hascall +BB58 [0085] 11 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25,BB32,BB34,BB36 1 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB53(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB53} + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000384] -----+----- * JTRUE void + [000002] J----+-N--- \--* GE int + [000000] -----+----- +--* LCL_VAR int V02 arg2 + [000001] -----+----- \--* CNS_INT int 0 + +------------ BB52 [0051] [000..001) -> BB53(1) (always), preds={BB01} succs={BB53} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000387] --CXG+----- * CALL void + [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref + [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref + +------------ BB53 [0052] [000..04C) -> BB57(1) (always), preds={BB01,BB52} succs={BB57} + +------------ BB56 [0056] [04B..04C) (throw), preds={} succs={} + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB53} succs={BB09,BB43} + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) + [000034] -----+----- * JTRUE void + [000033] J----+-N--- \--* GE int + [000031] -----+----- +--* LCL_VAR int V02 arg2 + [000032] -----+----- \--* CNS_INT int 2 vector element count + +------------ BB09 [0008] [068..073) -> BB27(1) (always), preds={BB57} succs={BB27} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) + [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000050] -----+----- \--* ADD long + [000047] -----+----- +--* CAST long <- int + [000046] -----+----- | \--* LCL_VAR int V02 arg2 + [000049] -----+----- \--* CNS_INT long -1 + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) + [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000058] -----+----- \--* ADD int + [000056] -----+----- +--* LCL_VAR int V02 arg2 + [000057] -----+----- \--* CNS_INT int -8 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) + [000073] ---XG+----- * JTRUE void + [000401] J--XG+-N--- \--* NE int + [000065] ---XG+----- +--* IND long + [000064] -----+----- | \--* ADD byref + [000060] -----+----- | +--* LCL_VAR byref V00 arg0 + [000063] -----+----- | \--* LSH long + [000061] -----+----- | +--* LCL_VAR long V04 loc1 + [000062] -----+----- | \--* CNS_INT long 3 + [000066] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB10,BB29,BB38} succs={BB58} + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) + [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000240] -----+----- \--* LCL_VAR int V04 loc1 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] ---XG+----- * JTRUE void + [000408] J--XG+-N--- \--* NE int + [000082] ---XG+----- +--* IND long + [000081] -----+----- | \--* ADD byref + [000074] -----+----- | +--* LCL_VAR byref V00 arg0 + [000080] -----+----- | \--* ADD long + [000078] -----+----- | +--* LSH long + [000075] -----+----- | | +--* LCL_VAR long V04 loc1 + [000077] -----+----- | | \--* CNS_INT long 3 + [000079] -----+----- | \--* CNS_INT long -8 + [000083] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB12} succs={BB58} + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000237] -----+----- \--* ADD int + [000234] -----+----- +--* LCL_VAR int V04 loc1 + [000519] -----+----- \--* CNS_INT int -1 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] ---XG+----- * JTRUE void + [000415] J--XG+-N--- \--* NE int + [000099] ---XG+----- +--* IND long + [000098] -----+----- | \--* ADD byref + [000091] -----+----- | +--* LCL_VAR byref V00 arg0 + [000097] -----+----- | \--* ADD long + [000095] -----+----- | +--* LSH long + [000092] -----+----- | | +--* LCL_VAR long V04 loc1 + [000094] -----+----- | | \--* CNS_INT long 3 + [000096] -----+----- | \--* CNS_INT long -16 + [000100] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB14} succs={BB58} + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000231] -----+----- \--* ADD int + [000228] -----+----- +--* LCL_VAR int V04 loc1 + [000516] -----+----- \--* CNS_INT int -2 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] ---XG+----- * JTRUE void + [000422] J--XG+-N--- \--* NE int + [000116] ---XG+----- +--* IND long + [000115] -----+----- | \--* ADD byref + [000108] -----+----- | +--* LCL_VAR byref V00 arg0 + [000114] -----+----- | \--* ADD long + [000112] -----+----- | +--* LSH long + [000109] -----+----- | | +--* LCL_VAR long V04 loc1 + [000111] -----+----- | | \--* CNS_INT long 3 + [000113] -----+----- | \--* CNS_INT long -24 + [000117] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB16} succs={BB58} + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) + [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000225] -----+----- \--* ADD int + [000222] -----+----- +--* LCL_VAR int V04 loc1 + [000513] -----+----- \--* CNS_INT int -3 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] ---XG+----- * JTRUE void + [000429] J--XG+-N--- \--* NE int + [000133] ---XG+----- +--* IND long + [000132] -----+----- | \--* ADD byref + [000125] -----+----- | +--* LCL_VAR byref V00 arg0 + [000131] -----+----- | \--* ADD long + [000129] -----+----- | +--* LSH long + [000126] -----+----- | | +--* LCL_VAR long V04 loc1 + [000128] -----+----- | | \--* CNS_INT long 3 + [000130] -----+----- | \--* CNS_INT long -32 + [000134] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) + [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000219] -----+----- \--* ADD int + [000216] -----+----- +--* LCL_VAR int V04 loc1 + [000510] -----+----- \--* CNS_INT int -4 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) + [000158] ---XG+----- * JTRUE void + [000436] J--XG+-N--- \--* NE int + [000150] ---XG+----- +--* IND long + [000149] -----+----- | \--* ADD byref + [000142] -----+----- | +--* LCL_VAR byref V00 arg0 + [000148] -----+----- | \--* ADD long + [000146] -----+----- | +--* LSH long + [000143] -----+----- | | +--* LCL_VAR long V04 loc1 + [000145] -----+----- | | \--* CNS_INT long 3 + [000147] -----+----- | \--* CNS_INT long -40 + [000151] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) + [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000213] -----+----- \--* ADD int + [000210] -----+----- +--* LCL_VAR int V04 loc1 + [000507] -----+----- \--* CNS_INT int -5 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) + [000175] ---XG+----- * JTRUE void + [000443] J--XG+-N--- \--* NE int + [000167] ---XG+----- +--* IND long + [000166] -----+----- | \--* ADD byref + [000159] -----+----- | +--* LCL_VAR byref V00 arg0 + [000165] -----+----- | \--* ADD long + [000163] -----+----- | +--* LSH long + [000160] -----+----- | | +--* LCL_VAR long V04 loc1 + [000162] -----+----- | | \--* CNS_INT long 3 + [000164] -----+----- | \--* CNS_INT long -48 + [000168] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) + [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000207] -----+----- \--* ADD int + [000204] -----+----- +--* LCL_VAR int V04 loc1 + [000504] -----+----- \--* CNS_INT int -6 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] ---XG+----- * JTRUE void + [000450] J--XG+-N--- \--* NE int + [000184] ---XG+----- +--* IND long + [000183] -----+----- | \--* ADD byref + [000176] -----+----- | +--* LCL_VAR byref V00 arg0 + [000182] -----+----- | \--* ADD long + [000180] -----+----- | +--* LSH long + [000177] -----+----- | | +--* LCL_VAR long V04 loc1 + [000179] -----+----- | | \--* CNS_INT long 3 + [000181] -----+----- | \--* CNS_INT long -56 + [000185] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) + [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000201] -----+----- \--* ADD int + [000198] -----+----- +--* LCL_VAR int V04 loc1 + [000501] -----+----- \--* CNS_INT int -7 + +------------ BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000196] -----+----- \--* ADD long + [000193] -----+----- +--* LCL_VAR long V04 loc1 + [000195] -----+----- \--* CNS_INT long -8 + +------------ BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} + +***** BB27 [0026] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + [000055] -----+----- * JTRUE void + [000054] J----+-N--- \--* GE int + [000052] -----+----- +--* LCL_VAR int V02 arg2 + [000053] -----+----- \--* CNS_INT int 8 + +------------ BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} + +***** BB28 [0027] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) + [000246] -----+----- * JTRUE void + [000245] J----+-N--- \--* LT int + [000243] -----+----- +--* LCL_VAR int V02 arg2 + [000244] -----+----- \--* CNS_INT int 4 + +------------ BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB28} succs={BB31,BB11} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) + [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000281] -----+----- \--* ADD int + [000279] -----+----- +--* LCL_VAR int V02 arg2 + [000280] -----+----- \--* CNS_INT int -4 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] ---XG+----- * JTRUE void + [000457] J--XG+-N--- \--* EQ int + [000288] ---XG+----- +--* IND long + [000287] -----+----- | \--* ADD byref + [000283] -----+----- | +--* LCL_VAR byref V00 arg0 + [000286] -----+----- | \--* LSH long + [000284] -----+----- | +--* LCL_VAR long V04 loc1 + [000285] -----+----- | \--* CNS_INT long 3 + [000289] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) + [000313] ---XG+----- * JTRUE void + [000464] J--XG+-N--- \--* NE int + [000305] ---XG+----- +--* IND long + [000304] -----+----- | \--* ADD byref + [000297] -----+----- | +--* LCL_VAR byref V00 arg0 + [000303] -----+----- | \--* ADD long + [000301] -----+----- | +--* LSH long + [000298] -----+----- | | +--* LCL_VAR long V04 loc1 + [000300] -----+----- | | \--* CNS_INT long 3 + [000302] -----+----- | \--* CNS_INT long -8 + [000306] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB32 [0031] [24A..250) -> BB58(1) (always), preds={BB31} succs={BB58} + +***** BB32 [0031] +STMT00066 ( 0x24A[E--] ... 0x24F ) + [000530] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000368] -----+----- \--* ADD int + [000365] -----+----- +--* LCL_VAR int V04 loc1 + [000529] -----+----- \--* CNS_INT int -1 + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) + [000330] ---XG+----- * JTRUE void + [000471] J--XG+-N--- \--* NE int + [000322] ---XG+----- +--* IND long + [000321] -----+----- | \--* ADD byref + [000314] -----+----- | +--* LCL_VAR byref V00 arg0 + [000320] -----+----- | \--* ADD long + [000318] -----+----- | +--* LSH long + [000315] -----+----- | | +--* LCL_VAR long V04 loc1 + [000317] -----+----- | | \--* CNS_INT long 3 + [000319] -----+----- | \--* CNS_INT long -16 + [000323] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB34 [0033] [278..27E) -> BB58(1) (always), preds={BB33} succs={BB58} + +***** BB34 [0033] +STMT00065 ( 0x278[E--] ... 0x27D ) + [000527] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000362] -----+----- \--* ADD int + [000359] -----+----- +--* LCL_VAR int V04 loc1 + [000526] -----+----- \--* CNS_INT int -2 + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] ---XG+----- * JTRUE void + [000478] J--XG+-N--- \--* NE int + [000339] ---XG+----- +--* IND long + [000338] -----+----- | \--* ADD byref + [000331] -----+----- | +--* LCL_VAR byref V00 arg0 + [000337] -----+----- | \--* ADD long + [000335] -----+----- | +--* LSH long + [000332] -----+----- | | +--* LCL_VAR long V04 loc1 + [000334] -----+----- | | \--* CNS_INT long 3 + [000336] -----+----- | \--* CNS_INT long -24 + [000340] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB36 [0035] [2A6..2AC) -> BB58(1) (always), preds={BB35} succs={BB58} + +***** BB36 [0035] +STMT00064 ( 0x2A6[E--] ... 0x2AB ) + [000524] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000356] -----+----- \--* ADD int + [000353] -----+----- +--* LCL_VAR int V04 loc1 + [000523] -----+----- \--* CNS_INT int -3 + +------------ BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) + [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000351] -----+----- \--* ADD long + [000348] -----+----- +--* LCL_VAR long V04 loc1 + [000350] -----+----- \--* CNS_INT long -4 + +------------ BB38 [0037] [2B3..2DD) -> BB11(0.5),BB40(0.5) (cond), preds={BB41} succs={BB40,BB11} + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) + [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000253] -----+----- \--* ADD int + [000251] -----+----- +--* LCL_VAR int V02 arg2 + [000252] -----+----- \--* CNS_INT int -1 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] ---XG+----- * JTRUE void + [000485] J--XG+-N--- \--* EQ int + [000260] ---XG+----- +--* IND long + [000259] -----+----- | \--* ADD byref + [000255] -----+----- | +--* LCL_VAR byref V00 arg0 + [000258] -----+----- | \--* LSH long + [000256] -----+----- | +--* LCL_VAR long V04 loc1 + [000257] -----+----- | \--* CNS_INT long 3 + [000261] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000272] -----+----- \--* ADD long + [000269] -----+----- +--* LCL_VAR long V04 loc1 + [000271] -----+----- \--* CNS_INT long -1 + +------------ BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} + +***** BB41 [0040] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + [000250] -----+----- * JTRUE void + [000249] J----+-N--- \--* GT int + [000247] -----+----- +--* LCL_VAR int V02 arg2 + [000248] -----+----- \--* CNS_INT int 0 + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} + +***** BB42 [0041] +STMT00088 ( ??? ... ??? ) + [000493] -----+----- * RETURN int + [000277] -----+----- \--* CNS_INT int -1 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) + [000044] --CXG+----- * CALL void + [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 + [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 + [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 + +------------ BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25,BB32,BB34,BB36} succs={} + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) + [000492] -----+----- * RETURN int + [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Compute block weights + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 1 [000..001)-> BB53(1) (always) i hascall gcsafe +BB53 [0052] 2 BB01,BB52 1 [000..04C)-> BB57(1) (always) i +BB56 [0056] 0 1 [04B..04C) (throw ) i +BB57 [0057] 1 BB53 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target +BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0)-> BB58(1) (always) i +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd +BB13 [0012] 1 BB12 1 [0C8..0CE)-> BB58(1) (always) i +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd +BB15 [0014] 1 BB14 1 [0F6..0FC)-> BB58(1) (always) i +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd +BB17 [0016] 1 BB16 1 [124..12A)-> BB58(1) (always) i +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250)-> BB58(1) (always) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E)-> BB58(1) (always) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB58(1) (always) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 1 [2EB..324) (return) i jmp hascall +BB58 [0085] 11 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25,BB32,BB34,BB36 1 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + +*************** Finishing PHASE Compute block weights [no changes] + +*************** Starting PHASE Remove empty finally 2 +No EH in this method, nothing to remove. + +*************** Finishing PHASE Remove empty finally 2 [no changes] + +*************** Starting PHASE Remove empty try 2 + +*************** In fgRemoveEmptyTry() +No EH in this method, nothing to remove. + +*************** Finishing PHASE Remove empty try 2 [no changes] + +*************** Starting PHASE Remove empty try-catch-fault 2 + +*************** In fgRemoveEmptyTryCatchOrTryFault() +No EH in this method, nothing to remove. + +*************** Finishing PHASE Remove empty try-catch-fault 2 [no changes] + +*************** Starting PHASE Optimize control flow + +*************** In fgUpdateFlowGraph() +Before updating the flow graph: + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 1 [000..001)-> BB53(1) (always) i hascall gcsafe +BB53 [0052] 2 BB01,BB52 1 [000..04C)-> BB57(1) (always) i +BB56 [0056] 0 1 [04B..04C) (throw ) i +BB57 [0057] 1 BB53 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target +BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0)-> BB58(1) (always) i +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd +BB13 [0012] 1 BB12 1 [0C8..0CE)-> BB58(1) (always) i +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd +BB15 [0014] 1 BB14 1 [0F6..0FC)-> BB58(1) (always) i +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd +BB17 [0016] 1 BB16 1 [124..12A)-> BB58(1) (always) i +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250)-> BB58(1) (always) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E)-> BB58(1) (always) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB58(1) (always) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 1 [2EB..324) (return) i jmp hascall +BB58 [0085] 11 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25,BB32,BB34,BB36 1 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + +Optimizing a jump to an unconditional jump (BB01 -> BB53 -> BB57) +Considering uncond to cond BB52 -> BB53 + +Compacting BB53 into BB52: +setting likelihood of BB52 -> BB57 from 1 to 1 +*************** In fgDebugCheckBBlist +Considering uncond to cond BB52 -> BB57 +fgRemoveBlock BB56, unreachable=true + +Removing unreachable BB56 +Considering uncond to cond BB09 -> BB27 +Considering uncond to cond BB11 -> BB58 +Considering uncond to cond BB13 -> BB58 +Considering uncond to cond BB15 -> BB58 +Considering uncond to cond BB17 -> BB58 +Considering uncond to cond BB19 -> BB58 +Considering uncond to cond BB21 -> BB58 +Considering uncond to cond BB23 -> BB58 +Considering uncond to cond BB25 -> BB58 +Considering uncond to cond BB26 -> BB27 +Considering uncond to cond BB32 -> BB58 +Considering uncond to cond BB34 -> BB58 +Considering uncond to cond BB36 -> BB58 +Considering uncond to cond BB37 -> BB41 +Considering uncond to cond BB40 -> BB41 +Considering uncond to cond BB52 -> BB57 +Considering uncond to cond BB09 -> BB27 +Considering uncond to cond BB11 -> BB58 +Considering uncond to cond BB13 -> BB58 +Considering uncond to cond BB15 -> BB58 +Considering uncond to cond BB17 -> BB58 +Considering uncond to cond BB19 -> BB58 +Considering uncond to cond BB21 -> BB58 +Considering uncond to cond BB23 -> BB58 +Considering uncond to cond BB25 -> BB58 +Considering uncond to cond BB26 -> BB27 +Considering uncond to cond BB32 -> BB58 +Considering uncond to cond BB34 -> BB58 +Considering uncond to cond BB36 -> BB58 +Considering uncond to cond BB37 -> BB41 +Considering uncond to cond BB40 -> BB41 + +After updating the flow graph: + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 1 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target +BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0)-> BB58(1) (always) i +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd +BB13 [0012] 1 BB12 1 [0C8..0CE)-> BB58(1) (always) i +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd +BB15 [0014] 1 BB14 1 [0F6..0FC)-> BB58(1) (always) i +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd +BB17 [0016] 1 BB16 1 [124..12A)-> BB58(1) (always) i +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250)-> BB58(1) (always) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E)-> BB58(1) (always) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB58(1) (always) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 1 [2EB..324) (return) i jmp hascall +BB58 [0085] 11 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25,BB32,BB34,BB36 1 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Exception Handling table is empty +*************** In fgDebugCheckBBlist + +*************** In fgExpandRarelyRunBlocks() + +*************** Finishing PHASE Optimize control flow +Trees after Optimize control flow + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 1 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target +BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0)-> BB58(1) (always) i +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd +BB13 [0012] 1 BB12 1 [0C8..0CE)-> BB58(1) (always) i +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd +BB15 [0014] 1 BB14 1 [0F6..0FC)-> BB58(1) (always) i +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd +BB17 [0016] 1 BB16 1 [124..12A)-> BB58(1) (always) i +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250)-> BB58(1) (always) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E)-> BB58(1) (always) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB58(1) (always) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 1 [2EB..324) (return) i jmp hascall +BB58 [0085] 11 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25,BB32,BB34,BB36 1 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000384] -----+----- * JTRUE void + [000002] J----+-N--- \--* GE int + [000000] -----+----- +--* LCL_VAR int V02 arg2 + [000001] -----+----- \--* CNS_INT int 0 + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000387] --CXG+----- * CALL void + [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref + [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) + [000034] -----+----- * JTRUE void + [000033] J----+-N--- \--* GE int + [000031] -----+----- +--* LCL_VAR int V02 arg2 + [000032] -----+----- \--* CNS_INT int 2 vector element count + +------------ BB09 [0008] [068..073) -> BB27(1) (always), preds={BB57} succs={BB27} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) + [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000050] -----+----- \--* ADD long + [000047] -----+----- +--* CAST long <- int + [000046] -----+----- | \--* LCL_VAR int V02 arg2 + [000049] -----+----- \--* CNS_INT long -1 + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) + [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000058] -----+----- \--* ADD int + [000056] -----+----- +--* LCL_VAR int V02 arg2 + [000057] -----+----- \--* CNS_INT int -8 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) + [000073] ---XG+----- * JTRUE void + [000401] J--XG+-N--- \--* NE int + [000065] ---XG+----- +--* IND long + [000064] -----+----- | \--* ADD byref + [000060] -----+----- | +--* LCL_VAR byref V00 arg0 + [000063] -----+----- | \--* LSH long + [000061] -----+----- | +--* LCL_VAR long V04 loc1 + [000062] -----+----- | \--* CNS_INT long 3 + [000066] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB10,BB29,BB38} succs={BB58} + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) + [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000240] -----+----- \--* LCL_VAR int V04 loc1 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] ---XG+----- * JTRUE void + [000408] J--XG+-N--- \--* NE int + [000082] ---XG+----- +--* IND long + [000081] -----+----- | \--* ADD byref + [000074] -----+----- | +--* LCL_VAR byref V00 arg0 + [000080] -----+----- | \--* ADD long + [000078] -----+----- | +--* LSH long + [000075] -----+----- | | +--* LCL_VAR long V04 loc1 + [000077] -----+----- | | \--* CNS_INT long 3 + [000079] -----+----- | \--* CNS_INT long -8 + [000083] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB12} succs={BB58} + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000237] -----+----- \--* ADD int + [000234] -----+----- +--* LCL_VAR int V04 loc1 + [000519] -----+----- \--* CNS_INT int -1 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] ---XG+----- * JTRUE void + [000415] J--XG+-N--- \--* NE int + [000099] ---XG+----- +--* IND long + [000098] -----+----- | \--* ADD byref + [000091] -----+----- | +--* LCL_VAR byref V00 arg0 + [000097] -----+----- | \--* ADD long + [000095] -----+----- | +--* LSH long + [000092] -----+----- | | +--* LCL_VAR long V04 loc1 + [000094] -----+----- | | \--* CNS_INT long 3 + [000096] -----+----- | \--* CNS_INT long -16 + [000100] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB14} succs={BB58} + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000231] -----+----- \--* ADD int + [000228] -----+----- +--* LCL_VAR int V04 loc1 + [000516] -----+----- \--* CNS_INT int -2 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] ---XG+----- * JTRUE void + [000422] J--XG+-N--- \--* NE int + [000116] ---XG+----- +--* IND long + [000115] -----+----- | \--* ADD byref + [000108] -----+----- | +--* LCL_VAR byref V00 arg0 + [000114] -----+----- | \--* ADD long + [000112] -----+----- | +--* LSH long + [000109] -----+----- | | +--* LCL_VAR long V04 loc1 + [000111] -----+----- | | \--* CNS_INT long 3 + [000113] -----+----- | \--* CNS_INT long -24 + [000117] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB16} succs={BB58} + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) + [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000225] -----+----- \--* ADD int + [000222] -----+----- +--* LCL_VAR int V04 loc1 + [000513] -----+----- \--* CNS_INT int -3 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] ---XG+----- * JTRUE void + [000429] J--XG+-N--- \--* NE int + [000133] ---XG+----- +--* IND long + [000132] -----+----- | \--* ADD byref + [000125] -----+----- | +--* LCL_VAR byref V00 arg0 + [000131] -----+----- | \--* ADD long + [000129] -----+----- | +--* LSH long + [000126] -----+----- | | +--* LCL_VAR long V04 loc1 + [000128] -----+----- | | \--* CNS_INT long 3 + [000130] -----+----- | \--* CNS_INT long -32 + [000134] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) + [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000219] -----+----- \--* ADD int + [000216] -----+----- +--* LCL_VAR int V04 loc1 + [000510] -----+----- \--* CNS_INT int -4 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) + [000158] ---XG+----- * JTRUE void + [000436] J--XG+-N--- \--* NE int + [000150] ---XG+----- +--* IND long + [000149] -----+----- | \--* ADD byref + [000142] -----+----- | +--* LCL_VAR byref V00 arg0 + [000148] -----+----- | \--* ADD long + [000146] -----+----- | +--* LSH long + [000143] -----+----- | | +--* LCL_VAR long V04 loc1 + [000145] -----+----- | | \--* CNS_INT long 3 + [000147] -----+----- | \--* CNS_INT long -40 + [000151] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) + [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000213] -----+----- \--* ADD int + [000210] -----+----- +--* LCL_VAR int V04 loc1 + [000507] -----+----- \--* CNS_INT int -5 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) + [000175] ---XG+----- * JTRUE void + [000443] J--XG+-N--- \--* NE int + [000167] ---XG+----- +--* IND long + [000166] -----+----- | \--* ADD byref + [000159] -----+----- | +--* LCL_VAR byref V00 arg0 + [000165] -----+----- | \--* ADD long + [000163] -----+----- | +--* LSH long + [000160] -----+----- | | +--* LCL_VAR long V04 loc1 + [000162] -----+----- | | \--* CNS_INT long 3 + [000164] -----+----- | \--* CNS_INT long -48 + [000168] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) + [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000207] -----+----- \--* ADD int + [000204] -----+----- +--* LCL_VAR int V04 loc1 + [000504] -----+----- \--* CNS_INT int -6 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] ---XG+----- * JTRUE void + [000450] J--XG+-N--- \--* NE int + [000184] ---XG+----- +--* IND long + [000183] -----+----- | \--* ADD byref + [000176] -----+----- | +--* LCL_VAR byref V00 arg0 + [000182] -----+----- | \--* ADD long + [000180] -----+----- | +--* LSH long + [000177] -----+----- | | +--* LCL_VAR long V04 loc1 + [000179] -----+----- | | \--* CNS_INT long 3 + [000181] -----+----- | \--* CNS_INT long -56 + [000185] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) + [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000201] -----+----- \--* ADD int + [000198] -----+----- +--* LCL_VAR int V04 loc1 + [000501] -----+----- \--* CNS_INT int -7 + +------------ BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000196] -----+----- \--* ADD long + [000193] -----+----- +--* LCL_VAR long V04 loc1 + [000195] -----+----- \--* CNS_INT long -8 + +------------ BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} + +***** BB27 [0026] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + [000055] -----+----- * JTRUE void + [000054] J----+-N--- \--* GE int + [000052] -----+----- +--* LCL_VAR int V02 arg2 + [000053] -----+----- \--* CNS_INT int 8 + +------------ BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} + +***** BB28 [0027] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) + [000246] -----+----- * JTRUE void + [000245] J----+-N--- \--* LT int + [000243] -----+----- +--* LCL_VAR int V02 arg2 + [000244] -----+----- \--* CNS_INT int 4 + +------------ BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB28} succs={BB31,BB11} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) + [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000281] -----+----- \--* ADD int + [000279] -----+----- +--* LCL_VAR int V02 arg2 + [000280] -----+----- \--* CNS_INT int -4 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] ---XG+----- * JTRUE void + [000457] J--XG+-N--- \--* EQ int + [000288] ---XG+----- +--* IND long + [000287] -----+----- | \--* ADD byref + [000283] -----+----- | +--* LCL_VAR byref V00 arg0 + [000286] -----+----- | \--* LSH long + [000284] -----+----- | +--* LCL_VAR long V04 loc1 + [000285] -----+----- | \--* CNS_INT long 3 + [000289] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) + [000313] ---XG+----- * JTRUE void + [000464] J--XG+-N--- \--* NE int + [000305] ---XG+----- +--* IND long + [000304] -----+----- | \--* ADD byref + [000297] -----+----- | +--* LCL_VAR byref V00 arg0 + [000303] -----+----- | \--* ADD long + [000301] -----+----- | +--* LSH long + [000298] -----+----- | | +--* LCL_VAR long V04 loc1 + [000300] -----+----- | | \--* CNS_INT long 3 + [000302] -----+----- | \--* CNS_INT long -8 + [000306] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB32 [0031] [24A..250) -> BB58(1) (always), preds={BB31} succs={BB58} + +***** BB32 [0031] +STMT00066 ( 0x24A[E--] ... 0x24F ) + [000530] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000368] -----+----- \--* ADD int + [000365] -----+----- +--* LCL_VAR int V04 loc1 + [000529] -----+----- \--* CNS_INT int -1 + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) + [000330] ---XG+----- * JTRUE void + [000471] J--XG+-N--- \--* NE int + [000322] ---XG+----- +--* IND long + [000321] -----+----- | \--* ADD byref + [000314] -----+----- | +--* LCL_VAR byref V00 arg0 + [000320] -----+----- | \--* ADD long + [000318] -----+----- | +--* LSH long + [000315] -----+----- | | +--* LCL_VAR long V04 loc1 + [000317] -----+----- | | \--* CNS_INT long 3 + [000319] -----+----- | \--* CNS_INT long -16 + [000323] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB34 [0033] [278..27E) -> BB58(1) (always), preds={BB33} succs={BB58} + +***** BB34 [0033] +STMT00065 ( 0x278[E--] ... 0x27D ) + [000527] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000362] -----+----- \--* ADD int + [000359] -----+----- +--* LCL_VAR int V04 loc1 + [000526] -----+----- \--* CNS_INT int -2 + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] ---XG+----- * JTRUE void + [000478] J--XG+-N--- \--* NE int + [000339] ---XG+----- +--* IND long + [000338] -----+----- | \--* ADD byref + [000331] -----+----- | +--* LCL_VAR byref V00 arg0 + [000337] -----+----- | \--* ADD long + [000335] -----+----- | +--* LSH long + [000332] -----+----- | | +--* LCL_VAR long V04 loc1 + [000334] -----+----- | | \--* CNS_INT long 3 + [000336] -----+----- | \--* CNS_INT long -24 + [000340] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB36 [0035] [2A6..2AC) -> BB58(1) (always), preds={BB35} succs={BB58} + +***** BB36 [0035] +STMT00064 ( 0x2A6[E--] ... 0x2AB ) + [000524] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000356] -----+----- \--* ADD int + [000353] -----+----- +--* LCL_VAR int V04 loc1 + [000523] -----+----- \--* CNS_INT int -3 + +------------ BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) + [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000351] -----+----- \--* ADD long + [000348] -----+----- +--* LCL_VAR long V04 loc1 + [000350] -----+----- \--* CNS_INT long -4 + +------------ BB38 [0037] [2B3..2DD) -> BB11(0.5),BB40(0.5) (cond), preds={BB41} succs={BB40,BB11} + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) + [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000253] -----+----- \--* ADD int + [000251] -----+----- +--* LCL_VAR int V02 arg2 + [000252] -----+----- \--* CNS_INT int -1 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] ---XG+----- * JTRUE void + [000485] J--XG+-N--- \--* EQ int + [000260] ---XG+----- +--* IND long + [000259] -----+----- | \--* ADD byref + [000255] -----+----- | +--* LCL_VAR byref V00 arg0 + [000258] -----+----- | \--* LSH long + [000256] -----+----- | +--* LCL_VAR long V04 loc1 + [000257] -----+----- | \--* CNS_INT long 3 + [000261] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000272] -----+----- \--* ADD long + [000269] -----+----- +--* LCL_VAR long V04 loc1 + [000271] -----+----- \--* CNS_INT long -1 + +------------ BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} + +***** BB41 [0040] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + [000250] -----+----- * JTRUE void + [000249] J----+-N--- \--* GT int + [000247] -----+----- +--* LCL_VAR int V02 arg2 + [000248] -----+----- \--* CNS_INT int 0 + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} + +***** BB42 [0041] +STMT00088 ( ??? ... ??? ) + [000493] -----+----- * RETURN int + [000277] -----+----- \--* CNS_INT int -1 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) + [000044] --CXG+----- * CALL void + [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 + [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 + [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 + +------------ BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25,BB32,BB34,BB36} succs={} + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) + [000492] -----+----- * RETURN int + [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Post-morph head and tail merge +A subset of 2 preds of BB58 end with the same tree +STMT00037 ( 0x124[E--] ... 0x129 ) + [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000225] -----+----- \--* ADD int + [000222] -----+----- +--* LCL_VAR int V04 loc1 + [000513] -----+----- \--* CNS_INT int -3 +Will cross-jump to BB17 + +unlinking STMT00064 ( 0x2A6[E--] ... 0x2AB ) + [000524] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000356] -----+----- \--* ADD int + [000353] -----+----- +--* LCL_VAR int V04 loc1 + [000523] -----+----- \--* CNS_INT int -3 + from BB36 + +BB36 becomes empty +A subset of 2 preds of BB58 end with the same tree +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000231] -----+----- \--* ADD int + [000228] -----+----- +--* LCL_VAR int V04 loc1 + [000516] -----+----- \--* CNS_INT int -2 +Will cross-jump to BB15 + +unlinking STMT00065 ( 0x278[E--] ... 0x27D ) + [000527] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000362] -----+----- \--* ADD int + [000359] -----+----- +--* LCL_VAR int V04 loc1 + [000526] -----+----- \--* CNS_INT int -2 + from BB34 + +BB34 becomes empty +A subset of 2 preds of BB58 end with the same tree +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000237] -----+----- \--* ADD int + [000234] -----+----- +--* LCL_VAR int V04 loc1 + [000519] -----+----- \--* CNS_INT int -1 +Will cross-jump to BB13 + +unlinking STMT00066 ( 0x24A[E--] ... 0x24F ) + [000530] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000368] -----+----- \--* ADD int + [000365] -----+----- +--* LCL_VAR int V04 loc1 + [000529] -----+----- \--* CNS_INT int -1 + from BB32 + +BB32 becomes empty +Did 3 tail merges in BB58 + +*************** Finishing PHASE Post-morph head and tail merge +Trees after Post-morph head and tail merge + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 1 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target +BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0)-> BB58(1) (always) i +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd +BB13 [0012] 2 BB12,BB32 1 [0C8..0CE)-> BB58(1) (always) i +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd +BB15 [0014] 2 BB14,BB34 1 [0F6..0FC)-> BB58(1) (always) i +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd +BB17 [0016] 2 BB16,BB36 1 [124..12A)-> BB58(1) (always) i +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250)-> BB13(1) (always) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E)-> BB15(1) (always) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB17(1) (always) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 1 [2EB..324) (return) i jmp hascall +BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 1 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000384] -----+----- * JTRUE void + [000002] J----+-N--- \--* GE int + [000000] -----+----- +--* LCL_VAR int V02 arg2 + [000001] -----+----- \--* CNS_INT int 0 + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000387] --CXG+----- * CALL void + [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref + [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) + [000034] -----+----- * JTRUE void + [000033] J----+-N--- \--* GE int + [000031] -----+----- +--* LCL_VAR int V02 arg2 + [000032] -----+----- \--* CNS_INT int 2 vector element count + +------------ BB09 [0008] [068..073) -> BB27(1) (always), preds={BB57} succs={BB27} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) + [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000050] -----+----- \--* ADD long + [000047] -----+----- +--* CAST long <- int + [000046] -----+----- | \--* LCL_VAR int V02 arg2 + [000049] -----+----- \--* CNS_INT long -1 + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) + [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000058] -----+----- \--* ADD int + [000056] -----+----- +--* LCL_VAR int V02 arg2 + [000057] -----+----- \--* CNS_INT int -8 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) + [000073] ---XG+----- * JTRUE void + [000401] J--XG+-N--- \--* NE int + [000065] ---XG+----- +--* IND long + [000064] -----+----- | \--* ADD byref + [000060] -----+----- | +--* LCL_VAR byref V00 arg0 + [000063] -----+----- | \--* LSH long + [000061] -----+----- | +--* LCL_VAR long V04 loc1 + [000062] -----+----- | \--* CNS_INT long 3 + [000066] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB10,BB29,BB38} succs={BB58} + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) + [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000240] -----+----- \--* LCL_VAR int V04 loc1 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] ---XG+----- * JTRUE void + [000408] J--XG+-N--- \--* NE int + [000082] ---XG+----- +--* IND long + [000081] -----+----- | \--* ADD byref + [000074] -----+----- | +--* LCL_VAR byref V00 arg0 + [000080] -----+----- | \--* ADD long + [000078] -----+----- | +--* LSH long + [000075] -----+----- | | +--* LCL_VAR long V04 loc1 + [000077] -----+----- | | \--* CNS_INT long 3 + [000079] -----+----- | \--* CNS_INT long -8 + [000083] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB12,BB32} succs={BB58} + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000237] -----+----- \--* ADD int + [000234] -----+----- +--* LCL_VAR int V04 loc1 + [000519] -----+----- \--* CNS_INT int -1 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] ---XG+----- * JTRUE void + [000415] J--XG+-N--- \--* NE int + [000099] ---XG+----- +--* IND long + [000098] -----+----- | \--* ADD byref + [000091] -----+----- | +--* LCL_VAR byref V00 arg0 + [000097] -----+----- | \--* ADD long + [000095] -----+----- | +--* LSH long + [000092] -----+----- | | +--* LCL_VAR long V04 loc1 + [000094] -----+----- | | \--* CNS_INT long 3 + [000096] -----+----- | \--* CNS_INT long -16 + [000100] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB14,BB34} succs={BB58} + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000231] -----+----- \--* ADD int + [000228] -----+----- +--* LCL_VAR int V04 loc1 + [000516] -----+----- \--* CNS_INT int -2 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] ---XG+----- * JTRUE void + [000422] J--XG+-N--- \--* NE int + [000116] ---XG+----- +--* IND long + [000115] -----+----- | \--* ADD byref + [000108] -----+----- | +--* LCL_VAR byref V00 arg0 + [000114] -----+----- | \--* ADD long + [000112] -----+----- | +--* LSH long + [000109] -----+----- | | +--* LCL_VAR long V04 loc1 + [000111] -----+----- | | \--* CNS_INT long 3 + [000113] -----+----- | \--* CNS_INT long -24 + [000117] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB16,BB36} succs={BB58} + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) + [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000225] -----+----- \--* ADD int + [000222] -----+----- +--* LCL_VAR int V04 loc1 + [000513] -----+----- \--* CNS_INT int -3 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] ---XG+----- * JTRUE void + [000429] J--XG+-N--- \--* NE int + [000133] ---XG+----- +--* IND long + [000132] -----+----- | \--* ADD byref + [000125] -----+----- | +--* LCL_VAR byref V00 arg0 + [000131] -----+----- | \--* ADD long + [000129] -----+----- | +--* LSH long + [000126] -----+----- | | +--* LCL_VAR long V04 loc1 + [000128] -----+----- | | \--* CNS_INT long 3 + [000130] -----+----- | \--* CNS_INT long -32 + [000134] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) + [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000219] -----+----- \--* ADD int + [000216] -----+----- +--* LCL_VAR int V04 loc1 + [000510] -----+----- \--* CNS_INT int -4 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) + [000158] ---XG+----- * JTRUE void + [000436] J--XG+-N--- \--* NE int + [000150] ---XG+----- +--* IND long + [000149] -----+----- | \--* ADD byref + [000142] -----+----- | +--* LCL_VAR byref V00 arg0 + [000148] -----+----- | \--* ADD long + [000146] -----+----- | +--* LSH long + [000143] -----+----- | | +--* LCL_VAR long V04 loc1 + [000145] -----+----- | | \--* CNS_INT long 3 + [000147] -----+----- | \--* CNS_INT long -40 + [000151] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) + [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000213] -----+----- \--* ADD int + [000210] -----+----- +--* LCL_VAR int V04 loc1 + [000507] -----+----- \--* CNS_INT int -5 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) + [000175] ---XG+----- * JTRUE void + [000443] J--XG+-N--- \--* NE int + [000167] ---XG+----- +--* IND long + [000166] -----+----- | \--* ADD byref + [000159] -----+----- | +--* LCL_VAR byref V00 arg0 + [000165] -----+----- | \--* ADD long + [000163] -----+----- | +--* LSH long + [000160] -----+----- | | +--* LCL_VAR long V04 loc1 + [000162] -----+----- | | \--* CNS_INT long 3 + [000164] -----+----- | \--* CNS_INT long -48 + [000168] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) + [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000207] -----+----- \--* ADD int + [000204] -----+----- +--* LCL_VAR int V04 loc1 + [000504] -----+----- \--* CNS_INT int -6 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] ---XG+----- * JTRUE void + [000450] J--XG+-N--- \--* NE int + [000184] ---XG+----- +--* IND long + [000183] -----+----- | \--* ADD byref + [000176] -----+----- | +--* LCL_VAR byref V00 arg0 + [000182] -----+----- | \--* ADD long + [000180] -----+----- | +--* LSH long + [000177] -----+----- | | +--* LCL_VAR long V04 loc1 + [000179] -----+----- | | \--* CNS_INT long 3 + [000181] -----+----- | \--* CNS_INT long -56 + [000185] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) + [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000201] -----+----- \--* ADD int + [000198] -----+----- +--* LCL_VAR int V04 loc1 + [000501] -----+----- \--* CNS_INT int -7 + +------------ BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000196] -----+----- \--* ADD long + [000193] -----+----- +--* LCL_VAR long V04 loc1 + [000195] -----+----- \--* CNS_INT long -8 + +------------ BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} + +***** BB27 [0026] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + [000055] -----+----- * JTRUE void + [000054] J----+-N--- \--* GE int + [000052] -----+----- +--* LCL_VAR int V02 arg2 + [000053] -----+----- \--* CNS_INT int 8 + +------------ BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} + +***** BB28 [0027] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) + [000246] -----+----- * JTRUE void + [000245] J----+-N--- \--* LT int + [000243] -----+----- +--* LCL_VAR int V02 arg2 + [000244] -----+----- \--* CNS_INT int 4 + +------------ BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB28} succs={BB31,BB11} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) + [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000281] -----+----- \--* ADD int + [000279] -----+----- +--* LCL_VAR int V02 arg2 + [000280] -----+----- \--* CNS_INT int -4 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] ---XG+----- * JTRUE void + [000457] J--XG+-N--- \--* EQ int + [000288] ---XG+----- +--* IND long + [000287] -----+----- | \--* ADD byref + [000283] -----+----- | +--* LCL_VAR byref V00 arg0 + [000286] -----+----- | \--* LSH long + [000284] -----+----- | +--* LCL_VAR long V04 loc1 + [000285] -----+----- | \--* CNS_INT long 3 + [000289] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) + [000313] ---XG+----- * JTRUE void + [000464] J--XG+-N--- \--* NE int + [000305] ---XG+----- +--* IND long + [000304] -----+----- | \--* ADD byref + [000297] -----+----- | +--* LCL_VAR byref V00 arg0 + [000303] -----+----- | \--* ADD long + [000301] -----+----- | +--* LSH long + [000298] -----+----- | | +--* LCL_VAR long V04 loc1 + [000300] -----+----- | | \--* CNS_INT long 3 + [000302] -----+----- | \--* CNS_INT long -8 + [000306] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) + [000330] ---XG+----- * JTRUE void + [000471] J--XG+-N--- \--* NE int + [000322] ---XG+----- +--* IND long + [000321] -----+----- | \--* ADD byref + [000314] -----+----- | +--* LCL_VAR byref V00 arg0 + [000320] -----+----- | \--* ADD long + [000318] -----+----- | +--* LSH long + [000315] -----+----- | | +--* LCL_VAR long V04 loc1 + [000317] -----+----- | | \--* CNS_INT long 3 + [000319] -----+----- | \--* CNS_INT long -16 + [000323] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] ---XG+----- * JTRUE void + [000478] J--XG+-N--- \--* NE int + [000339] ---XG+----- +--* IND long + [000338] -----+----- | \--* ADD byref + [000331] -----+----- | +--* LCL_VAR byref V00 arg0 + [000337] -----+----- | \--* ADD long + [000335] -----+----- | +--* LSH long + [000332] -----+----- | | +--* LCL_VAR long V04 loc1 + [000334] -----+----- | | \--* CNS_INT long 3 + [000336] -----+----- | \--* CNS_INT long -24 + [000340] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} + +------------ BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) + [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000351] -----+----- \--* ADD long + [000348] -----+----- +--* LCL_VAR long V04 loc1 + [000350] -----+----- \--* CNS_INT long -4 + +------------ BB38 [0037] [2B3..2DD) -> BB11(0.5),BB40(0.5) (cond), preds={BB41} succs={BB40,BB11} + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) + [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000253] -----+----- \--* ADD int + [000251] -----+----- +--* LCL_VAR int V02 arg2 + [000252] -----+----- \--* CNS_INT int -1 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] ---XG+----- * JTRUE void + [000485] J--XG+-N--- \--* EQ int + [000260] ---XG+----- +--* IND long + [000259] -----+----- | \--* ADD byref + [000255] -----+----- | +--* LCL_VAR byref V00 arg0 + [000258] -----+----- | \--* LSH long + [000256] -----+----- | +--* LCL_VAR long V04 loc1 + [000257] -----+----- | \--* CNS_INT long 3 + [000261] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000272] -----+----- \--* ADD long + [000269] -----+----- +--* LCL_VAR long V04 loc1 + [000271] -----+----- \--* CNS_INT long -1 + +------------ BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} + +***** BB41 [0040] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + [000250] -----+----- * JTRUE void + [000249] J----+-N--- \--* GT int + [000247] -----+----- +--* LCL_VAR int V02 arg2 + [000248] -----+----- \--* CNS_INT int 0 + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} + +***** BB42 [0041] +STMT00088 ( ??? ... ??? ) + [000493] -----+----- * RETURN int + [000277] -----+----- \--* CNS_INT int -1 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) + [000044] --CXG+----- * CALL void + [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 + [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 + [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 + +------------ BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) + [000492] -----+----- * RETURN int + [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE DFS blocks and remove dead code 3 + +*************** Finishing PHASE DFS blocks and remove dead code 3 [no changes] + +*************** Starting PHASE Adjust throw edge likelihoods + +*************** Finishing PHASE Adjust throw edge likelihoods +Trees after Adjust throw edge likelihoods + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 1 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target +BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0)-> BB58(1) (always) i +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd +BB13 [0012] 2 BB12,BB32 1 [0C8..0CE)-> BB58(1) (always) i +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd +BB15 [0014] 2 BB14,BB34 1 [0F6..0FC)-> BB58(1) (always) i +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd +BB17 [0016] 2 BB16,BB36 1 [124..12A)-> BB58(1) (always) i +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250)-> BB13(1) (always) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E)-> BB15(1) (always) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB17(1) (always) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd +BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 1 [2EB..324) (return) i jmp hascall +BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 1 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000384] -----+----- * JTRUE void + [000002] J----+-N--- \--* GE int + [000000] -----+----- +--* LCL_VAR int V02 arg2 + [000001] -----+----- \--* CNS_INT int 0 + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000387] --CXG+----- * CALL void + [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref + [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) + [000034] -----+----- * JTRUE void + [000033] J----+-N--- \--* GE int + [000031] -----+----- +--* LCL_VAR int V02 arg2 + [000032] -----+----- \--* CNS_INT int 2 vector element count + +------------ BB09 [0008] [068..073) -> BB27(1) (always), preds={BB57} succs={BB27} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) + [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000050] -----+----- \--* ADD long + [000047] -----+----- +--* CAST long <- int + [000046] -----+----- | \--* LCL_VAR int V02 arg2 + [000049] -----+----- \--* CNS_INT long -1 + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) + [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000058] -----+----- \--* ADD int + [000056] -----+----- +--* LCL_VAR int V02 arg2 + [000057] -----+----- \--* CNS_INT int -8 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) + [000073] ---XG+----- * JTRUE void + [000401] J--XG+-N--- \--* NE int + [000065] ---XG+----- +--* IND long + [000064] -----+----- | \--* ADD byref + [000060] -----+----- | +--* LCL_VAR byref V00 arg0 + [000063] -----+----- | \--* LSH long + [000061] -----+----- | +--* LCL_VAR long V04 loc1 + [000062] -----+----- | \--* CNS_INT long 3 + [000066] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB10,BB29,BB38} succs={BB58} + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) + [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000240] -----+----- \--* LCL_VAR int V04 loc1 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] ---XG+----- * JTRUE void + [000408] J--XG+-N--- \--* NE int + [000082] ---XG+----- +--* IND long + [000081] -----+----- | \--* ADD byref + [000074] -----+----- | +--* LCL_VAR byref V00 arg0 + [000080] -----+----- | \--* ADD long + [000078] -----+----- | +--* LSH long + [000075] -----+----- | | +--* LCL_VAR long V04 loc1 + [000077] -----+----- | | \--* CNS_INT long 3 + [000079] -----+----- | \--* CNS_INT long -8 + [000083] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB12,BB32} succs={BB58} + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000237] -----+----- \--* ADD int + [000234] -----+----- +--* LCL_VAR int V04 loc1 + [000519] -----+----- \--* CNS_INT int -1 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] ---XG+----- * JTRUE void + [000415] J--XG+-N--- \--* NE int + [000099] ---XG+----- +--* IND long + [000098] -----+----- | \--* ADD byref + [000091] -----+----- | +--* LCL_VAR byref V00 arg0 + [000097] -----+----- | \--* ADD long + [000095] -----+----- | +--* LSH long + [000092] -----+----- | | +--* LCL_VAR long V04 loc1 + [000094] -----+----- | | \--* CNS_INT long 3 + [000096] -----+----- | \--* CNS_INT long -16 + [000100] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB14,BB34} succs={BB58} + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000231] -----+----- \--* ADD int + [000228] -----+----- +--* LCL_VAR int V04 loc1 + [000516] -----+----- \--* CNS_INT int -2 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] ---XG+----- * JTRUE void + [000422] J--XG+-N--- \--* NE int + [000116] ---XG+----- +--* IND long + [000115] -----+----- | \--* ADD byref + [000108] -----+----- | +--* LCL_VAR byref V00 arg0 + [000114] -----+----- | \--* ADD long + [000112] -----+----- | +--* LSH long + [000109] -----+----- | | +--* LCL_VAR long V04 loc1 + [000111] -----+----- | | \--* CNS_INT long 3 + [000113] -----+----- | \--* CNS_INT long -24 + [000117] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB16,BB36} succs={BB58} + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) + [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000225] -----+----- \--* ADD int + [000222] -----+----- +--* LCL_VAR int V04 loc1 + [000513] -----+----- \--* CNS_INT int -3 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] ---XG+----- * JTRUE void + [000429] J--XG+-N--- \--* NE int + [000133] ---XG+----- +--* IND long + [000132] -----+----- | \--* ADD byref + [000125] -----+----- | +--* LCL_VAR byref V00 arg0 + [000131] -----+----- | \--* ADD long + [000129] -----+----- | +--* LSH long + [000126] -----+----- | | +--* LCL_VAR long V04 loc1 + [000128] -----+----- | | \--* CNS_INT long 3 + [000130] -----+----- | \--* CNS_INT long -32 + [000134] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) + [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000219] -----+----- \--* ADD int + [000216] -----+----- +--* LCL_VAR int V04 loc1 + [000510] -----+----- \--* CNS_INT int -4 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) + [000158] ---XG+----- * JTRUE void + [000436] J--XG+-N--- \--* NE int + [000150] ---XG+----- +--* IND long + [000149] -----+----- | \--* ADD byref + [000142] -----+----- | +--* LCL_VAR byref V00 arg0 + [000148] -----+----- | \--* ADD long + [000146] -----+----- | +--* LSH long + [000143] -----+----- | | +--* LCL_VAR long V04 loc1 + [000145] -----+----- | | \--* CNS_INT long 3 + [000147] -----+----- | \--* CNS_INT long -40 + [000151] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) + [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000213] -----+----- \--* ADD int + [000210] -----+----- +--* LCL_VAR int V04 loc1 + [000507] -----+----- \--* CNS_INT int -5 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) + [000175] ---XG+----- * JTRUE void + [000443] J--XG+-N--- \--* NE int + [000167] ---XG+----- +--* IND long + [000166] -----+----- | \--* ADD byref + [000159] -----+----- | +--* LCL_VAR byref V00 arg0 + [000165] -----+----- | \--* ADD long + [000163] -----+----- | +--* LSH long + [000160] -----+----- | | +--* LCL_VAR long V04 loc1 + [000162] -----+----- | | \--* CNS_INT long 3 + [000164] -----+----- | \--* CNS_INT long -48 + [000168] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) + [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000207] -----+----- \--* ADD int + [000204] -----+----- +--* LCL_VAR int V04 loc1 + [000504] -----+----- \--* CNS_INT int -6 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] ---XG+----- * JTRUE void + [000450] J--XG+-N--- \--* NE int + [000184] ---XG+----- +--* IND long + [000183] -----+----- | \--* ADD byref + [000176] -----+----- | +--* LCL_VAR byref V00 arg0 + [000182] -----+----- | \--* ADD long + [000180] -----+----- | +--* LSH long + [000177] -----+----- | | +--* LCL_VAR long V04 loc1 + [000179] -----+----- | | \--* CNS_INT long 3 + [000181] -----+----- | \--* CNS_INT long -56 + [000185] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) + [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000201] -----+----- \--* ADD int + [000198] -----+----- +--* LCL_VAR int V04 loc1 + [000501] -----+----- \--* CNS_INT int -7 + +------------ BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000196] -----+----- \--* ADD long + [000193] -----+----- +--* LCL_VAR long V04 loc1 + [000195] -----+----- \--* CNS_INT long -8 + +------------ BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} + +***** BB27 [0026] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + [000055] -----+----- * JTRUE void + [000054] J----+-N--- \--* GE int + [000052] -----+----- +--* LCL_VAR int V02 arg2 + [000053] -----+----- \--* CNS_INT int 8 + +------------ BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} + +***** BB28 [0027] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) + [000246] -----+----- * JTRUE void + [000245] J----+-N--- \--* LT int + [000243] -----+----- +--* LCL_VAR int V02 arg2 + [000244] -----+----- \--* CNS_INT int 4 + +------------ BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB28} succs={BB31,BB11} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) + [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000281] -----+----- \--* ADD int + [000279] -----+----- +--* LCL_VAR int V02 arg2 + [000280] -----+----- \--* CNS_INT int -4 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] ---XG+----- * JTRUE void + [000457] J--XG+-N--- \--* EQ int + [000288] ---XG+----- +--* IND long + [000287] -----+----- | \--* ADD byref + [000283] -----+----- | +--* LCL_VAR byref V00 arg0 + [000286] -----+----- | \--* LSH long + [000284] -----+----- | +--* LCL_VAR long V04 loc1 + [000285] -----+----- | \--* CNS_INT long 3 + [000289] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) + [000313] ---XG+----- * JTRUE void + [000464] J--XG+-N--- \--* NE int + [000305] ---XG+----- +--* IND long + [000304] -----+----- | \--* ADD byref + [000297] -----+----- | +--* LCL_VAR byref V00 arg0 + [000303] -----+----- | \--* ADD long + [000301] -----+----- | +--* LSH long + [000298] -----+----- | | +--* LCL_VAR long V04 loc1 + [000300] -----+----- | | \--* CNS_INT long 3 + [000302] -----+----- | \--* CNS_INT long -8 + [000306] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) + [000330] ---XG+----- * JTRUE void + [000471] J--XG+-N--- \--* NE int + [000322] ---XG+----- +--* IND long + [000321] -----+----- | \--* ADD byref + [000314] -----+----- | +--* LCL_VAR byref V00 arg0 + [000320] -----+----- | \--* ADD long + [000318] -----+----- | +--* LSH long + [000315] -----+----- | | +--* LCL_VAR long V04 loc1 + [000317] -----+----- | | \--* CNS_INT long 3 + [000319] -----+----- | \--* CNS_INT long -16 + [000323] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] ---XG+----- * JTRUE void + [000478] J--XG+-N--- \--* NE int + [000339] ---XG+----- +--* IND long + [000338] -----+----- | \--* ADD byref + [000331] -----+----- | +--* LCL_VAR byref V00 arg0 + [000337] -----+----- | \--* ADD long + [000335] -----+----- | +--* LSH long + [000332] -----+----- | | +--* LCL_VAR long V04 loc1 + [000334] -----+----- | | \--* CNS_INT long 3 + [000336] -----+----- | \--* CNS_INT long -24 + [000340] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} + +------------ BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) + [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000351] -----+----- \--* ADD long + [000348] -----+----- +--* LCL_VAR long V04 loc1 + [000350] -----+----- \--* CNS_INT long -4 + +------------ BB38 [0037] [2B3..2DD) -> BB11(0.5),BB40(0.5) (cond), preds={BB41} succs={BB40,BB11} + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) + [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000253] -----+----- \--* ADD int + [000251] -----+----- +--* LCL_VAR int V02 arg2 + [000252] -----+----- \--* CNS_INT int -1 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] ---XG+----- * JTRUE void + [000485] J--XG+-N--- \--* EQ int + [000260] ---XG+----- +--* IND long + [000259] -----+----- | \--* ADD byref + [000255] -----+----- | +--* LCL_VAR byref V00 arg0 + [000258] -----+----- | \--* LSH long + [000256] -----+----- | +--* LCL_VAR long V04 loc1 + [000257] -----+----- | \--* CNS_INT long 3 + [000261] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000272] -----+----- \--* ADD long + [000269] -----+----- +--* LCL_VAR long V04 loc1 + [000271] -----+----- \--* CNS_INT long -1 + +------------ BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} + +***** BB41 [0040] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + [000250] -----+----- * JTRUE void + [000249] J----+-N--- \--* GT int + [000247] -----+----- +--* LCL_VAR int V02 arg2 + [000248] -----+----- \--* CNS_INT int 0 + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} + +***** BB42 [0041] +STMT00088 ( ??? ... ??? ) + [000493] -----+----- * RETURN int + [000277] -----+----- \--* CNS_INT int -1 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) + [000044] --CXG+----- * CALL void + [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 + [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 + [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 + +------------ BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) + [000492] -----+----- * RETURN int + [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Find loops +*************** In optFindLoopsPhase() +Identifying loops in DFS tree with following reverse post order: +RPO -> BB [pre, post] +00 -> BB01[0, 36] +01 -> BB52[1, 35] +02 -> BB57[2, 34] +03 -> BB43[36, 33] +04 -> BB09[3, 32] +05 -> BB27[4, 31] +06 -> BB10[23, 30] +07 -> BB12[24, 29] +08 -> BB14[25, 28] +09 -> BB16[26, 27] +10 -> BB18[27, 26] +11 -> BB20[29, 25] +12 -> BB22[31, 24] +13 -> BB24[33, 23] +14 -> BB26[35, 22] +15 -> BB25[34, 21] +16 -> BB23[32, 20] +17 -> BB21[30, 19] +18 -> BB19[28, 18] +19 -> BB28[5, 17] +20 -> BB29[6, 16] +21 -> BB31[7, 15] +22 -> BB33[11, 14] +23 -> BB35[14, 13] +24 -> BB37[17, 12] +25 -> BB41[18, 11] +26 -> BB38[20, 10] +27 -> BB11[22, 9] +28 -> BB40[21, 8] +29 -> BB42[19, 7] +30 -> BB36[15, 6] +31 -> BB17[16, 5] +32 -> BB34[12, 4] +33 -> BB15[13, 3] +34 -> BB32[8, 2] +35 -> BB13[9, 1] +36 -> BB58[10, 0] + +BB26 -> BB27 is a backedge +BB27 is the header of a DFS loop with 1 back edges +Loop has 10 blocks +BB27 -> BB28 is an exit edge +BB10 -> BB11 is an exit edge +BB12 -> BB13 is an exit edge +BB14 -> BB15 is an exit edge +BB16 -> BB17 is an exit edge +BB18 -> BB19 is an exit edge +BB20 -> BB21 is an exit edge +BB22 -> BB23 is an exit edge +BB24 -> BB25 is an exit edge +BB09 -> BB27 is an entry edge +Added loop L00 with header BB27 + +BB40 -> BB41 is a backedge +BB41 is the header of a DFS loop with 1 back edges +Loop has 3 blocks +BB41 -> BB42 is an exit edge +BB38 -> BB11 is an exit edge +BB28 -> BB41 is an entry edge +BB37 -> BB41 is an entry edge +Added loop L01 with header BB41 + +Found 2 loops + +*************** Natural loop graph +L00 header: BB27 + Members (10): BB10;BB12;BB14;BB16;BB18;BB20;BB22;BB24;[BB26..BB27] + Entry: BB09 -> BB27 + Exit: BB27 -> BB28; BB10 -> BB11; BB12 -> BB13; BB14 -> BB15; BB16 -> BB17; BB18 -> BB19; BB20 -> BB21; BB22 -> BB23; BB24 -> BB25 + Back: BB26 -> BB27 +L01 header: BB41 + Members (3): [BB38..BB41] + Entry: BB28 -> BB41; BB37 -> BB41 + Exit: BB41 -> BB42; BB38 -> BB11 + Back: BB40 -> BB41 + +Relocated block [BB11..BB11] inserted after BB27 +Relocated block [BB13..BB13] inserted after BB11 +Relocated block [BB15..BB15] inserted after BB13 +Relocated block [BB17..BB17] inserted after BB15 +Relocated block [BB19..BB19] inserted after BB17 +Relocated block [BB21..BB21] inserted after BB19 +Relocated block [BB23..BB23] inserted after BB21 +Relocated block [BB25..BB25] inserted after BB23 +Natural loop L00 already has preheader BB09 +New Basic Block BB60 [0087] created. +Created new preheader BB60 for L01 +setting likelihood of BB60 -> BB41 to 1 +Entry edge BB28 -> BB41 becomes BB28 -> BB60 +Entry edge BB37 -> BB41 becomes BB37 -> BB60 +All preds of exit BB42 of L01 are already in the loop, no exit canonicalization needed +Canonicalize exit BB11 for L01 to have only loop predecessors +New Basic Block BB61 [0088] created. +setting likelihood of BB61 -> BB11 to 1 +Created new exit BB61 to replace BB11 exit for L01 +All preds of exit BB28 of L00 are already in the loop, no exit canonicalization needed +Canonicalize exit BB11 for L00 to have only loop predecessors +New Basic Block BB62 [0089] created. +setting likelihood of BB62 -> BB11 to 1 +Created new exit BB62 to replace BB11 exit for L00 +Canonicalize exit BB13 for L00 to have only loop predecessors +New Basic Block BB63 [0090] created. +setting likelihood of BB63 -> BB13 to 1 +Created new exit BB63 to replace BB13 exit for L00 +Canonicalize exit BB15 for L00 to have only loop predecessors +New Basic Block BB64 [0091] created. +setting likelihood of BB64 -> BB15 to 1 +Created new exit BB64 to replace BB15 exit for L00 +Canonicalize exit BB17 for L00 to have only loop predecessors +New Basic Block BB65 [0092] created. +setting likelihood of BB65 -> BB17 to 1 +Created new exit BB65 to replace BB17 exit for L00 +All preds of exit BB19 of L00 are already in the loop, no exit canonicalization needed +All preds of exit BB21 of L00 are already in the loop, no exit canonicalization needed +All preds of exit BB23 of L00 are already in the loop, no exit canonicalization needed +All preds of exit BB25 of L00 are already in the loop, no exit canonicalization needed +Identifying loops in DFS tree with following reverse post order: +RPO -> BB [pre, post] +00 -> BB01[0, 42] +01 -> BB52[1, 41] +02 -> BB57[2, 40] +03 -> BB43[42, 39] +04 -> BB09[3, 38] +05 -> BB27[4, 37] +06 -> BB10[25, 36] +07 -> BB12[27, 35] +08 -> BB14[29, 34] +09 -> BB16[31, 33] +10 -> BB18[33, 32] +11 -> BB20[35, 31] +12 -> BB22[37, 30] +13 -> BB24[39, 29] +14 -> BB26[41, 28] +15 -> BB25[40, 27] +16 -> BB23[38, 26] +17 -> BB21[36, 25] +18 -> BB19[34, 24] +19 -> BB65[32, 23] +20 -> BB64[30, 22] +21 -> BB63[28, 21] +22 -> BB62[26, 20] +23 -> BB28[5, 19] +24 -> BB29[6, 18] +25 -> BB31[7, 17] +26 -> BB33[11, 16] +27 -> BB35[14, 15] +28 -> BB37[17, 14] +29 -> BB60[18, 13] +30 -> BB41[19, 12] +31 -> BB38[21, 11] +32 -> BB61[23, 10] +33 -> BB11[24, 9] +34 -> BB40[22, 8] +35 -> BB42[20, 7] +36 -> BB36[15, 6] +37 -> BB17[16, 5] +38 -> BB34[12, 4] +39 -> BB15[13, 3] +40 -> BB32[8, 2] +41 -> BB13[9, 1] +42 -> BB58[10, 0] + +BB26 -> BB27 is a backedge +BB27 is the header of a DFS loop with 1 back edges +Loop has 10 blocks +BB27 -> BB28 is an exit edge +BB10 -> BB62 is an exit edge +BB12 -> BB63 is an exit edge +BB14 -> BB64 is an exit edge +BB16 -> BB65 is an exit edge +BB18 -> BB19 is an exit edge +BB20 -> BB21 is an exit edge +BB22 -> BB23 is an exit edge +BB24 -> BB25 is an exit edge +BB09 -> BB27 is an entry edge +Added loop L00 with header BB27 + +BB40 -> BB41 is a backedge +BB41 is the header of a DFS loop with 1 back edges +Loop has 3 blocks +BB41 -> BB42 is an exit edge +BB38 -> BB61 is an exit edge +BB60 -> BB41 is an entry edge +Added loop L01 with header BB41 + +Found 2 loops + +*************** Natural loop graph +L00 header: BB27 + Members (10): [BB10..BB27] + Entry: BB09 -> BB27 + Exit: BB27 -> BB28; BB10 -> BB62; BB12 -> BB63; BB14 -> BB64; BB16 -> BB65; BB18 -> BB19; BB20 -> BB21; BB22 -> BB23; BB24 -> BB25 + Back: BB26 -> BB27 +L01 header: BB41 + Members (3): [BB38..BB40];BB41 + Entry: BB60 -> BB41 + Exit: BB41 -> BB42; BB38 -> BB61 + Back: BB40 -> BB41 + + +*************** Finishing PHASE Find loops +Trees after Find loops + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 1 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i +BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd +BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src +BB61 [0088] 1 BB38 0.50 [09D..???)-> BB11(1) (always) internal +BB62 [0089] 1 BB10 0.50 [09D..???)-> BB11(1) (always) internal +BB11 [0010] 3 BB29,BB61,BB62 1 [09D..0A0)-> BB58(1) (always) i +BB63 [0090] 1 BB12 0.50 [0C8..???)-> BB13(1) (always) internal +BB13 [0012] 2 BB32,BB63 1 [0C8..0CE)-> BB58(1) (always) i +BB64 [0091] 1 BB14 0.50 [0F6..???)-> BB15(1) (always) internal +BB15 [0014] 2 BB34,BB64 1 [0F6..0FC)-> BB58(1) (always) i +BB65 [0092] 1 BB16 0.50 [124..???)-> BB17(1) (always) internal +BB17 [0016] 2 BB36,BB65 1 [124..12A)-> BB58(1) (always) i +BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i +BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i +BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i +BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i +BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250)-> BB13(1) (always) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E)-> BB15(1) (always) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB17(1) (always) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB60(1) (always) i +BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd +BB60 [0087] 2 BB28,BB37 1.50 [2E5..???)-> BB41(1) (always) internal +BB41 [0040] 2 BB40,BB60 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src +BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 1 [2EB..324) (return) i jmp hascall +BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 1 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000384] -----+----- * JTRUE void + [000002] J----+-N--- \--* GE int + [000000] -----+----- +--* LCL_VAR int V02 arg2 + [000001] -----+----- \--* CNS_INT int 0 + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000387] --CXG+----- * CALL void + [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref + [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) + [000034] -----+----- * JTRUE void + [000033] J----+-N--- \--* GE int + [000031] -----+----- +--* LCL_VAR int V02 arg2 + [000032] -----+----- \--* CNS_INT int 2 vector element count + +------------ BB09 [0008] [068..073) -> BB27(1) (always), preds={BB57} succs={BB27} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) + [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000050] -----+----- \--* ADD long + [000047] -----+----- +--* CAST long <- int + [000046] -----+----- | \--* LCL_VAR int V02 arg2 + [000049] -----+----- \--* CNS_INT long -1 + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB27} succs={BB62,BB12} + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) + [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000058] -----+----- \--* ADD int + [000056] -----+----- +--* LCL_VAR int V02 arg2 + [000057] -----+----- \--* CNS_INT int -8 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) + [000073] ---XG+----- * JTRUE void + [000401] J--XG+-N--- \--* NE int + [000065] ---XG+----- +--* IND long + [000064] -----+----- | \--* ADD byref + [000060] -----+----- | +--* LCL_VAR byref V00 arg0 + [000063] -----+----- | \--* LSH long + [000061] -----+----- | +--* LCL_VAR long V04 loc1 + [000062] -----+----- | \--* CNS_INT long 3 + [000066] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] ---XG+----- * JTRUE void + [000408] J--XG+-N--- \--* NE int + [000082] ---XG+----- +--* IND long + [000081] -----+----- | \--* ADD byref + [000074] -----+----- | +--* LCL_VAR byref V00 arg0 + [000080] -----+----- | \--* ADD long + [000078] -----+----- | +--* LSH long + [000075] -----+----- | | +--* LCL_VAR long V04 loc1 + [000077] -----+----- | | \--* CNS_INT long 3 + [000079] -----+----- | \--* CNS_INT long -8 + [000083] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] ---XG+----- * JTRUE void + [000415] J--XG+-N--- \--* NE int + [000099] ---XG+----- +--* IND long + [000098] -----+----- | \--* ADD byref + [000091] -----+----- | +--* LCL_VAR byref V00 arg0 + [000097] -----+----- | \--* ADD long + [000095] -----+----- | +--* LSH long + [000092] -----+----- | | +--* LCL_VAR long V04 loc1 + [000094] -----+----- | | \--* CNS_INT long 3 + [000096] -----+----- | \--* CNS_INT long -16 + [000100] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] ---XG+----- * JTRUE void + [000422] J--XG+-N--- \--* NE int + [000116] ---XG+----- +--* IND long + [000115] -----+----- | \--* ADD byref + [000108] -----+----- | +--* LCL_VAR byref V00 arg0 + [000114] -----+----- | \--* ADD long + [000112] -----+----- | +--* LSH long + [000109] -----+----- | | +--* LCL_VAR long V04 loc1 + [000111] -----+----- | | \--* CNS_INT long 3 + [000113] -----+----- | \--* CNS_INT long -24 + [000117] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] ---XG+----- * JTRUE void + [000429] J--XG+-N--- \--* NE int + [000133] ---XG+----- +--* IND long + [000132] -----+----- | \--* ADD byref + [000125] -----+----- | +--* LCL_VAR byref V00 arg0 + [000131] -----+----- | \--* ADD long + [000129] -----+----- | +--* LSH long + [000126] -----+----- | | +--* LCL_VAR long V04 loc1 + [000128] -----+----- | | \--* CNS_INT long 3 + [000130] -----+----- | \--* CNS_INT long -32 + [000134] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) + [000158] ---XG+----- * JTRUE void + [000436] J--XG+-N--- \--* NE int + [000150] ---XG+----- +--* IND long + [000149] -----+----- | \--* ADD byref + [000142] -----+----- | +--* LCL_VAR byref V00 arg0 + [000148] -----+----- | \--* ADD long + [000146] -----+----- | +--* LSH long + [000143] -----+----- | | +--* LCL_VAR long V04 loc1 + [000145] -----+----- | | \--* CNS_INT long 3 + [000147] -----+----- | \--* CNS_INT long -40 + [000151] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) + [000175] ---XG+----- * JTRUE void + [000443] J--XG+-N--- \--* NE int + [000167] ---XG+----- +--* IND long + [000166] -----+----- | \--* ADD byref + [000159] -----+----- | +--* LCL_VAR byref V00 arg0 + [000165] -----+----- | \--* ADD long + [000163] -----+----- | +--* LSH long + [000160] -----+----- | | +--* LCL_VAR long V04 loc1 + [000162] -----+----- | | \--* CNS_INT long 3 + [000164] -----+----- | \--* CNS_INT long -48 + [000168] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] ---XG+----- * JTRUE void + [000450] J--XG+-N--- \--* NE int + [000184] ---XG+----- +--* IND long + [000183] -----+----- | \--* ADD byref + [000176] -----+----- | +--* LCL_VAR byref V00 arg0 + [000182] -----+----- | \--* ADD long + [000180] -----+----- | +--* LSH long + [000177] -----+----- | | +--* LCL_VAR long V04 loc1 + [000179] -----+----- | | \--* CNS_INT long 3 + [000181] -----+----- | \--* CNS_INT long -56 + [000185] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000196] -----+----- \--* ADD long + [000193] -----+----- +--* LCL_VAR long V04 loc1 + [000195] -----+----- \--* CNS_INT long -8 + +------------ BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} + +***** BB27 [0026] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + [000055] -----+----- * JTRUE void + [000054] J----+-N--- \--* GE int + [000052] -----+----- +--* LCL_VAR int V02 arg2 + [000053] -----+----- \--* CNS_INT int 8 + +------------ BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} + +------------ BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} + +------------ BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) + [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000240] -----+----- \--* LCL_VAR int V04 loc1 + +------------ BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} + +------------ BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000237] -----+----- \--* ADD int + [000234] -----+----- +--* LCL_VAR int V04 loc1 + [000519] -----+----- \--* CNS_INT int -1 + +------------ BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} + +------------ BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000231] -----+----- \--* ADD int + [000228] -----+----- +--* LCL_VAR int V04 loc1 + [000516] -----+----- \--* CNS_INT int -2 + +------------ BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} + +------------ BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) + [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000225] -----+----- \--* ADD int + [000222] -----+----- +--* LCL_VAR int V04 loc1 + [000513] -----+----- \--* CNS_INT int -3 + +------------ BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) + [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000219] -----+----- \--* ADD int + [000216] -----+----- +--* LCL_VAR int V04 loc1 + [000510] -----+----- \--* CNS_INT int -4 + +------------ BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) + [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000213] -----+----- \--* ADD int + [000210] -----+----- +--* LCL_VAR int V04 loc1 + [000507] -----+----- \--* CNS_INT int -5 + +------------ BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) + [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000207] -----+----- \--* ADD int + [000204] -----+----- +--* LCL_VAR int V04 loc1 + [000504] -----+----- \--* CNS_INT int -6 + +------------ BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) + [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000201] -----+----- \--* ADD int + [000198] -----+----- +--* LCL_VAR int V04 loc1 + [000501] -----+----- \--* CNS_INT int -7 + +------------ BB28 [0027] [1EE..1F5) -> BB60(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB60} + +***** BB28 [0027] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) + [000246] -----+----- * JTRUE void + [000245] J----+-N--- \--* LT int + [000243] -----+----- +--* LCL_VAR int V02 arg2 + [000244] -----+----- \--* CNS_INT int 4 + +------------ BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB28} succs={BB31,BB11} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) + [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000281] -----+----- \--* ADD int + [000279] -----+----- +--* LCL_VAR int V02 arg2 + [000280] -----+----- \--* CNS_INT int -4 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] ---XG+----- * JTRUE void + [000457] J--XG+-N--- \--* EQ int + [000288] ---XG+----- +--* IND long + [000287] -----+----- | \--* ADD byref + [000283] -----+----- | +--* LCL_VAR byref V00 arg0 + [000286] -----+----- | \--* LSH long + [000284] -----+----- | +--* LCL_VAR long V04 loc1 + [000285] -----+----- | \--* CNS_INT long 3 + [000289] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) + [000313] ---XG+----- * JTRUE void + [000464] J--XG+-N--- \--* NE int + [000305] ---XG+----- +--* IND long + [000304] -----+----- | \--* ADD byref + [000297] -----+----- | +--* LCL_VAR byref V00 arg0 + [000303] -----+----- | \--* ADD long + [000301] -----+----- | +--* LSH long + [000298] -----+----- | | +--* LCL_VAR long V04 loc1 + [000300] -----+----- | | \--* CNS_INT long 3 + [000302] -----+----- | \--* CNS_INT long -8 + [000306] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) + [000330] ---XG+----- * JTRUE void + [000471] J--XG+-N--- \--* NE int + [000322] ---XG+----- +--* IND long + [000321] -----+----- | \--* ADD byref + [000314] -----+----- | +--* LCL_VAR byref V00 arg0 + [000320] -----+----- | \--* ADD long + [000318] -----+----- | +--* LSH long + [000315] -----+----- | | +--* LCL_VAR long V04 loc1 + [000317] -----+----- | | \--* CNS_INT long 3 + [000319] -----+----- | \--* CNS_INT long -16 + [000323] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] ---XG+----- * JTRUE void + [000478] J--XG+-N--- \--* NE int + [000339] ---XG+----- +--* IND long + [000338] -----+----- | \--* ADD byref + [000331] -----+----- | +--* LCL_VAR byref V00 arg0 + [000337] -----+----- | \--* ADD long + [000335] -----+----- | +--* LSH long + [000332] -----+----- | | +--* LCL_VAR long V04 loc1 + [000334] -----+----- | | \--* CNS_INT long 3 + [000336] -----+----- | \--* CNS_INT long -24 + [000340] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} + +------------ BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) + [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000351] -----+----- \--* ADD long + [000348] -----+----- +--* LCL_VAR long V04 loc1 + [000350] -----+----- \--* CNS_INT long -4 + +------------ BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB41} succs={BB40,BB61} + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) + [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000253] -----+----- \--* ADD int + [000251] -----+----- +--* LCL_VAR int V02 arg2 + [000252] -----+----- \--* CNS_INT int -1 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] ---XG+----- * JTRUE void + [000485] J--XG+-N--- \--* EQ int + [000260] ---XG+----- +--* IND long + [000259] -----+----- | \--* ADD byref + [000255] -----+----- | +--* LCL_VAR byref V00 arg0 + [000258] -----+----- | \--* LSH long + [000256] -----+----- | +--* LCL_VAR long V04 loc1 + [000257] -----+----- | \--* CNS_INT long 3 + [000261] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000272] -----+----- \--* ADD long + [000269] -----+----- +--* LCL_VAR long V04 loc1 + [000271] -----+----- \--* CNS_INT long -1 + +------------ BB60 [0087] [2E5..???) -> BB41(1) (always), preds={BB28,BB37} succs={BB41} + +------------ BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB40,BB60} succs={BB42,BB38} + +***** BB41 [0040] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + [000250] -----+----- * JTRUE void + [000249] J----+-N--- \--* GT int + [000247] -----+----- +--* LCL_VAR int V02 arg2 + [000248] -----+----- \--* CNS_INT int 0 + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} + +***** BB42 [0041] +STMT00088 ( ??? ... ??? ) + [000493] -----+----- * RETURN int + [000277] -----+----- \--* CNS_INT int -1 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) + [000044] --CXG+----- * CALL void + [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 + [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 + [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 + +------------ BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) + [000492] -----+----- * RETURN int + [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Repair profile post-morph +No PGO data. Skipping profile repair. + +*************** Finishing PHASE Repair profile post-morph [no changes] + +*************** Starting PHASE Invert loops +Analyzing iteration for L01 with header BB41 + Preheader = BB60 + Checking exiting block BB41 + Could not extract an IV + Checking exiting block BB38 + Could not find any IV +Condition in block BB41 of loop L01 is a candidate for duplication to invert the loop + +Duplication of loop condition [000250] is performed, because the cost of duplication (6) is less or equal than 34, + loopIterations = 8.000, optInvertTotalInfo.sharedStaticHelperCount >= 0, haveProfileWeights = false +New Basic Block BB66 [0093] created. +BB41 previous predecessor was BB60, now is BB66 +setting likelihood of BB66 -> BB41 from 1 to 1 +setting likelihood of BB60 -> BB66 to 1 +New Basic Block BB67 [0094] created. +setting likelihood of BB42 -> BB67 to 1 +New preheader is BB66 +Duplicated condition block is BB60 +Old exit is BB42, new non-enter block is BB67 +setting likelihood of BB60 -> BB66 from 1 to 0.5 +setting likelihood of BB60 -> BB67 to 0.5 +STMT00089 ( 0x2E5[E--] ... ??? ) + ( 7, 6) [000531] ----------- * JTRUE void + ( 5, 4) [000532] J------N--- \--* LE int + ( 3, 2) [000533] ----------- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000534] ----------- \--* CNS_INT int 0 +Cond block BB41 has a unique pred now, seeing if we can compact... + ..we can! + +Compacting BB41 into BB40: +*************** In fgDebugCheckBBlist + +Duplicated loop exit block at BB60 for loop L01 +Estimated code size expansion is 6 + +------------ BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB28,BB37} succs={BB66,BB67} + +***** BB60 [0087] +STMT00089 ( 0x2E5[E--] ... ??? ) + ( 7, 6) [000531] ----------- * JTRUE void + ( 5, 4) [000532] J------N--- \--* LE int + ( 3, 2) [000533] ----------- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000534] ----------- \--* CNS_INT int 0 + +------------ BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000272] -----+----- \--* ADD long + [000269] -----+----- +--* LCL_VAR long V04 loc1 + [000271] -----+----- \--* CNS_INT long -1 + +***** BB40 [0039] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + ( 7, 6) [000250] -----+----- * JTRUE void + ( 5, 4) [000249] J----+-N--- \--* GT int + ( 3, 2) [000247] -----+----- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 +Analyzing iteration for L00 with header BB27 + Preheader = BB09 + Checking exiting block BB27 + Could not extract an IV + Checking exiting block BB10 + Checking exiting block BB12 + Could not extract an IV + Checking exiting block BB14 + Could not extract an IV + Checking exiting block BB16 + Could not extract an IV + Checking exiting block BB18 + Could not extract an IV + Checking exiting block BB20 + Could not extract an IV + Checking exiting block BB22 + Could not extract an IV + Checking exiting block BB24 + Could not extract an IV + Could not find any IV +Condition in block BB27 of loop L00 is a candidate for duplication to invert the loop + +Duplication of loop condition [000055] is performed, because the cost of duplication (6) is less or equal than 34, + loopIterations = 8.000, optInvertTotalInfo.sharedStaticHelperCount >= 0, haveProfileWeights = false +New Basic Block BB68 [0095] created. +BB27 previous predecessor was BB09, now is BB68 +setting likelihood of BB68 -> BB27 from 1 to 1 +setting likelihood of BB09 -> BB68 to 1 +New Basic Block BB69 [0096] created. +BB29 previous predecessor was BB28, now is BB69 +BB60 previous predecessor was BB28, now is BB69 +setting likelihood of BB28 -> BB69 to 1 +New preheader is BB68 +Duplicated condition block is BB09 +Old exit is BB28, new non-enter block is BB69 +setting likelihood of BB09 -> BB68 from 1 to 0.5 +setting likelihood of BB09 -> BB69 to 0.5 +STMT00090 ( 0x1E7[E--] ... ??? ) + ( 7, 6) [000535] ----------- * JTRUE void + ( 5, 4) [000536] J------N--- \--* LT int + ( 3, 2) [000537] ----------- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000538] ----------- \--* CNS_INT int 8 +Cond block BB27 has a unique pred now, seeing if we can compact... + ..we can! + +Compacting BB27 into BB26: +*************** In fgDebugCheckBBlist + +Duplicated loop exit block at BB09 for loop L00 +Estimated code size expansion is 6 + +------------ BB09 [0008] [068..073) -> BB69(0.5),BB68(0.5) (cond), preds={BB57} succs={BB68,BB69} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) + [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000050] -----+----- \--* ADD long + [000047] -----+----- +--* CAST long <- int + [000046] -----+----- | \--* LCL_VAR int V02 arg2 + [000049] -----+----- \--* CNS_INT long -1 + +***** BB09 [0008] +STMT00090 ( 0x1E7[E--] ... ??? ) + ( 7, 6) [000535] ----------- * JTRUE void + ( 5, 4) [000536] J------N--- \--* LT int + ( 3, 2) [000537] ----------- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000538] ----------- \--* CNS_INT int 8 + +------------ BB26 [0025] [1E2..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB24} succs={BB28,BB10} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000196] -----+----- \--* ADD long + [000193] -----+----- +--* LCL_VAR long V04 loc1 + [000195] -----+----- \--* CNS_INT long -8 + +***** BB26 [0025] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + ( 7, 6) [000055] -----+----- * JTRUE void + ( 5, 4) [000054] J----+-N--- \--* GE int + ( 3, 2) [000052] -----+----- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 +Identifying loops in DFS tree with following reverse post order: +RPO -> BB [pre, post] +00 -> BB01[0, 44] +01 -> BB52[1, 43] +02 -> BB57[2, 42] +03 -> BB43[44, 41] +04 -> BB09[3, 40] +05 -> BB68[4, 39] +06 -> BB10[5, 38] +07 -> BB12[9, 37] +08 -> BB14[12, 36] +09 -> BB16[15, 35] +10 -> BB18[18, 34] +11 -> BB20[20, 33] +12 -> BB22[22, 32] +13 -> BB24[24, 31] +14 -> BB26[26, 30] +15 -> BB28[27, 29] +16 -> BB69[28, 28] +17 -> BB29[29, 27] +18 -> BB31[30, 26] +19 -> BB33[32, 25] +20 -> BB35[34, 24] +21 -> BB37[36, 23] +22 -> BB60[37, 22] +23 -> BB66[38, 21] +24 -> BB38[39, 20] +25 -> BB61[43, 19] +26 -> BB40[40, 18] +27 -> BB42[41, 17] +28 -> BB67[42, 16] +29 -> BB36[35, 15] +30 -> BB34[33, 14] +31 -> BB32[31, 13] +32 -> BB25[25, 12] +33 -> BB23[23, 11] +34 -> BB21[21, 10] +35 -> BB19[19, 9] +36 -> BB65[16, 8] +37 -> BB17[17, 7] +38 -> BB64[13, 6] +39 -> BB15[14, 5] +40 -> BB63[10, 4] +41 -> BB13[11, 3] +42 -> BB62[6, 2] +43 -> BB11[7, 1] +44 -> BB58[8, 0] + +BB26 -> BB10 is a backedge +BB10 is the header of a DFS loop with 1 back edges +Loop has 9 blocks +BB10 -> BB62 is an exit edge +BB12 -> BB63 is an exit edge +BB14 -> BB64 is an exit edge +BB16 -> BB65 is an exit edge +BB18 -> BB19 is an exit edge +BB20 -> BB21 is an exit edge +BB22 -> BB23 is an exit edge +BB24 -> BB25 is an exit edge +BB26 -> BB28 is an exit edge +BB68 -> BB10 is an entry edge +Added loop L00 with header BB10 + +BB40 -> BB38 is a backedge +BB38 is the header of a DFS loop with 1 back edges +Loop has 2 blocks +BB38 -> BB61 is an exit edge +BB40 -> BB42 is an exit edge +BB66 -> BB38 is an entry edge +Added loop L01 with header BB38 + +Found 2 loops + +*************** Natural loop graph +L00 header: BB10 + Members (9): [BB10..BB26] + Entry: BB68 -> BB10 + Exit: BB10 -> BB62; BB12 -> BB63; BB14 -> BB64; BB16 -> BB65; BB18 -> BB19; BB20 -> BB21; BB22 -> BB23; BB24 -> BB25; BB26 -> BB28 + Back: BB26 -> BB10 +L01 header: BB38 + Members (2): [BB38..BB40] + Entry: BB66 -> BB38 + Exit: BB38 -> BB61; BB40 -> BB42 + Back: BB40 -> BB38 + +Natural loop L00 already has preheader BB68 +Natural loop L01 already has preheader BB66 +All preds of exit BB61 of L01 are already in the loop, no exit canonicalization needed +All preds of exit BB42 of L01 are already in the loop, no exit canonicalization needed +All preds of exit BB62 of L00 are already in the loop, no exit canonicalization needed +All preds of exit BB63 of L00 are already in the loop, no exit canonicalization needed +All preds of exit BB64 of L00 are already in the loop, no exit canonicalization needed +All preds of exit BB65 of L00 are already in the loop, no exit canonicalization needed +All preds of exit BB19 of L00 are already in the loop, no exit canonicalization needed +All preds of exit BB21 of L00 are already in the loop, no exit canonicalization needed +All preds of exit BB23 of L00 are already in the loop, no exit canonicalization needed +All preds of exit BB25 of L00 are already in the loop, no exit canonicalization needed +All preds of exit BB28 of L00 are already in the loop, no exit canonicalization needed + +*************** Finishing PHASE Invert loops +Trees after Invert loops + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 1 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 1 [068..073)-> BB69(0.5),BB68(0.5) ( cond ) i +BB68 [0095] 1 BB09 1 [???..???)-> BB10(1) (always) i +BB10 [0009] 2 BB26,BB68 1 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target +BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd +BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd +BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd +BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB26 [0025] 1 BB24 1 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd +BB61 [0088] 1 BB38 0.50 [09D..???)-> BB11(1) (always) internal +BB62 [0089] 1 BB10 0.50 [09D..???)-> BB11(1) (always) internal +BB11 [0010] 3 BB29,BB61,BB62 1 [09D..0A0)-> BB58(1) (always) i +BB63 [0090] 1 BB12 0.50 [0C8..???)-> BB13(1) (always) internal +BB13 [0012] 2 BB32,BB63 1 [0C8..0CE)-> BB58(1) (always) i +BB64 [0091] 1 BB14 0.50 [0F6..???)-> BB15(1) (always) internal +BB15 [0014] 2 BB34,BB64 1 [0F6..0FC)-> BB58(1) (always) i +BB65 [0092] 1 BB16 0.50 [124..???)-> BB17(1) (always) internal +BB17 [0016] 2 BB36,BB65 1 [124..12A)-> BB58(1) (always) i +BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i +BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i +BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i +BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i +BB28 [0027] 1 BB26 1 [???..???)-> BB69(1) (always) i +BB69 [0096] 2 BB09,BB28 1 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB69 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 1 [24A..250)-> BB13(1) (always) i +BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 1 [278..27E)-> BB15(1) (always) i +BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB17(1) (always) i +BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB60(1) (always) i +BB38 [0037] 2 BB40,BB66 1 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 1 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd +BB60 [0087] 2 BB37,BB69 1.50 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal +BB66 [0093] 1 BB60 1.50 [???..???)-> BB38(1) (always) internal +BB42 [0041] 1 BB40 1 [???..???)-> BB67(1) (always) i +BB67 [0094] 2 BB42,BB60 1 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 1 [2EB..324) (return) i jmp hascall +BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 1 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000384] -----+----- * JTRUE void + [000002] J----+-N--- \--* GE int + [000000] -----+----- +--* LCL_VAR int V02 arg2 + [000001] -----+----- \--* CNS_INT int 0 + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000387] --CXG+----- * CALL void + [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref + [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) + [000034] -----+----- * JTRUE void + [000033] J----+-N--- \--* GE int + [000031] -----+----- +--* LCL_VAR int V02 arg2 + [000032] -----+----- \--* CNS_INT int 2 vector element count + +------------ BB09 [0008] [068..073) -> BB69(0.5),BB68(0.5) (cond), preds={BB57} succs={BB68,BB69} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) + [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000050] -----+----- \--* ADD long + [000047] -----+----- +--* CAST long <- int + [000046] -----+----- | \--* LCL_VAR int V02 arg2 + [000049] -----+----- \--* CNS_INT long -1 + +***** BB09 [0008] +STMT00090 ( 0x1E7[E--] ... ??? ) + ( 7, 6) [000535] ----------- * JTRUE void + ( 5, 4) [000536] J------N--- \--* LT int + ( 3, 2) [000537] ----------- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000538] ----------- \--* CNS_INT int 8 + +------------ BB68 [0095] [???..???) -> BB10(1) (always), preds={BB09} succs={BB10} + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB26,BB68} succs={BB62,BB12} + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) + [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000058] -----+----- \--* ADD int + [000056] -----+----- +--* LCL_VAR int V02 arg2 + [000057] -----+----- \--* CNS_INT int -8 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) + [000073] ---XG+----- * JTRUE void + [000401] J--XG+-N--- \--* NE int + [000065] ---XG+----- +--* IND long + [000064] -----+----- | \--* ADD byref + [000060] -----+----- | +--* LCL_VAR byref V00 arg0 + [000063] -----+----- | \--* LSH long + [000061] -----+----- | +--* LCL_VAR long V04 loc1 + [000062] -----+----- | \--* CNS_INT long 3 + [000066] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] ---XG+----- * JTRUE void + [000408] J--XG+-N--- \--* NE int + [000082] ---XG+----- +--* IND long + [000081] -----+----- | \--* ADD byref + [000074] -----+----- | +--* LCL_VAR byref V00 arg0 + [000080] -----+----- | \--* ADD long + [000078] -----+----- | +--* LSH long + [000075] -----+----- | | +--* LCL_VAR long V04 loc1 + [000077] -----+----- | | \--* CNS_INT long 3 + [000079] -----+----- | \--* CNS_INT long -8 + [000083] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] ---XG+----- * JTRUE void + [000415] J--XG+-N--- \--* NE int + [000099] ---XG+----- +--* IND long + [000098] -----+----- | \--* ADD byref + [000091] -----+----- | +--* LCL_VAR byref V00 arg0 + [000097] -----+----- | \--* ADD long + [000095] -----+----- | +--* LSH long + [000092] -----+----- | | +--* LCL_VAR long V04 loc1 + [000094] -----+----- | | \--* CNS_INT long 3 + [000096] -----+----- | \--* CNS_INT long -16 + [000100] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] ---XG+----- * JTRUE void + [000422] J--XG+-N--- \--* NE int + [000116] ---XG+----- +--* IND long + [000115] -----+----- | \--* ADD byref + [000108] -----+----- | +--* LCL_VAR byref V00 arg0 + [000114] -----+----- | \--* ADD long + [000112] -----+----- | +--* LSH long + [000109] -----+----- | | +--* LCL_VAR long V04 loc1 + [000111] -----+----- | | \--* CNS_INT long 3 + [000113] -----+----- | \--* CNS_INT long -24 + [000117] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] ---XG+----- * JTRUE void + [000429] J--XG+-N--- \--* NE int + [000133] ---XG+----- +--* IND long + [000132] -----+----- | \--* ADD byref + [000125] -----+----- | +--* LCL_VAR byref V00 arg0 + [000131] -----+----- | \--* ADD long + [000129] -----+----- | +--* LSH long + [000126] -----+----- | | +--* LCL_VAR long V04 loc1 + [000128] -----+----- | | \--* CNS_INT long 3 + [000130] -----+----- | \--* CNS_INT long -32 + [000134] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) + [000158] ---XG+----- * JTRUE void + [000436] J--XG+-N--- \--* NE int + [000150] ---XG+----- +--* IND long + [000149] -----+----- | \--* ADD byref + [000142] -----+----- | +--* LCL_VAR byref V00 arg0 + [000148] -----+----- | \--* ADD long + [000146] -----+----- | +--* LSH long + [000143] -----+----- | | +--* LCL_VAR long V04 loc1 + [000145] -----+----- | | \--* CNS_INT long 3 + [000147] -----+----- | \--* CNS_INT long -40 + [000151] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) + [000175] ---XG+----- * JTRUE void + [000443] J--XG+-N--- \--* NE int + [000167] ---XG+----- +--* IND long + [000166] -----+----- | \--* ADD byref + [000159] -----+----- | +--* LCL_VAR byref V00 arg0 + [000165] -----+----- | \--* ADD long + [000163] -----+----- | +--* LSH long + [000160] -----+----- | | +--* LCL_VAR long V04 loc1 + [000162] -----+----- | | \--* CNS_INT long 3 + [000164] -----+----- | \--* CNS_INT long -48 + [000168] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] ---XG+----- * JTRUE void + [000450] J--XG+-N--- \--* NE int + [000184] ---XG+----- +--* IND long + [000183] -----+----- | \--* ADD byref + [000176] -----+----- | +--* LCL_VAR byref V00 arg0 + [000182] -----+----- | \--* ADD long + [000180] -----+----- | +--* LSH long + [000177] -----+----- | | +--* LCL_VAR long V04 loc1 + [000179] -----+----- | | \--* CNS_INT long 3 + [000181] -----+----- | \--* CNS_INT long -56 + [000185] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB26 [0025] [1E2..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB24} succs={BB28,BB10} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000196] -----+----- \--* ADD long + [000193] -----+----- +--* LCL_VAR long V04 loc1 + [000195] -----+----- \--* CNS_INT long -8 + +***** BB26 [0025] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + ( 7, 6) [000055] -----+----- * JTRUE void + ( 5, 4) [000054] J----+-N--- \--* GE int + ( 3, 2) [000052] -----+----- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 + +------------ BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} + +------------ BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} + +------------ BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) + [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000240] -----+----- \--* LCL_VAR int V04 loc1 + +------------ BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} + +------------ BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000237] -----+----- \--* ADD int + [000234] -----+----- +--* LCL_VAR int V04 loc1 + [000519] -----+----- \--* CNS_INT int -1 + +------------ BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} + +------------ BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000231] -----+----- \--* ADD int + [000228] -----+----- +--* LCL_VAR int V04 loc1 + [000516] -----+----- \--* CNS_INT int -2 + +------------ BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} + +------------ BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) + [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000225] -----+----- \--* ADD int + [000222] -----+----- +--* LCL_VAR int V04 loc1 + [000513] -----+----- \--* CNS_INT int -3 + +------------ BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) + [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000219] -----+----- \--* ADD int + [000216] -----+----- +--* LCL_VAR int V04 loc1 + [000510] -----+----- \--* CNS_INT int -4 + +------------ BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) + [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000213] -----+----- \--* ADD int + [000210] -----+----- +--* LCL_VAR int V04 loc1 + [000507] -----+----- \--* CNS_INT int -5 + +------------ BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) + [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000207] -----+----- \--* ADD int + [000204] -----+----- +--* LCL_VAR int V04 loc1 + [000504] -----+----- \--* CNS_INT int -6 + +------------ BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) + [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000201] -----+----- \--* ADD int + [000198] -----+----- +--* LCL_VAR int V04 loc1 + [000501] -----+----- \--* CNS_INT int -7 + +------------ BB28 [0027] [???..???) -> BB69(1) (always), preds={BB26} succs={BB69} + +------------ BB69 [0096] [1EE..1F5) -> BB60(0.5),BB29(0.5) (cond), preds={BB09,BB28} succs={BB29,BB60} + +***** BB69 [0096] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) + [000246] -----+----- * JTRUE void + [000245] J----+-N--- \--* LT int + [000243] -----+----- +--* LCL_VAR int V02 arg2 + [000244] -----+----- \--* CNS_INT int 4 + +------------ BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB69} succs={BB31,BB11} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) + [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000281] -----+----- \--* ADD int + [000279] -----+----- +--* LCL_VAR int V02 arg2 + [000280] -----+----- \--* CNS_INT int -4 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] ---XG+----- * JTRUE void + [000457] J--XG+-N--- \--* EQ int + [000288] ---XG+----- +--* IND long + [000287] -----+----- | \--* ADD byref + [000283] -----+----- | +--* LCL_VAR byref V00 arg0 + [000286] -----+----- | \--* LSH long + [000284] -----+----- | +--* LCL_VAR long V04 loc1 + [000285] -----+----- | \--* CNS_INT long 3 + [000289] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) + [000313] ---XG+----- * JTRUE void + [000464] J--XG+-N--- \--* NE int + [000305] ---XG+----- +--* IND long + [000304] -----+----- | \--* ADD byref + [000297] -----+----- | +--* LCL_VAR byref V00 arg0 + [000303] -----+----- | \--* ADD long + [000301] -----+----- | +--* LSH long + [000298] -----+----- | | +--* LCL_VAR long V04 loc1 + [000300] -----+----- | | \--* CNS_INT long 3 + [000302] -----+----- | \--* CNS_INT long -8 + [000306] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) + [000330] ---XG+----- * JTRUE void + [000471] J--XG+-N--- \--* NE int + [000322] ---XG+----- +--* IND long + [000321] -----+----- | \--* ADD byref + [000314] -----+----- | +--* LCL_VAR byref V00 arg0 + [000320] -----+----- | \--* ADD long + [000318] -----+----- | +--* LSH long + [000315] -----+----- | | +--* LCL_VAR long V04 loc1 + [000317] -----+----- | | \--* CNS_INT long 3 + [000319] -----+----- | \--* CNS_INT long -16 + [000323] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] ---XG+----- * JTRUE void + [000478] J--XG+-N--- \--* NE int + [000339] ---XG+----- +--* IND long + [000338] -----+----- | \--* ADD byref + [000331] -----+----- | +--* LCL_VAR byref V00 arg0 + [000337] -----+----- | \--* ADD long + [000335] -----+----- | +--* LSH long + [000332] -----+----- | | +--* LCL_VAR long V04 loc1 + [000334] -----+----- | | \--* CNS_INT long 3 + [000336] -----+----- | \--* CNS_INT long -24 + [000340] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} + +------------ BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) + [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000351] -----+----- \--* ADD long + [000348] -----+----- +--* LCL_VAR long V04 loc1 + [000350] -----+----- \--* CNS_INT long -4 + +------------ BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB40,BB66} succs={BB40,BB61} + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) + [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000253] -----+----- \--* ADD int + [000251] -----+----- +--* LCL_VAR int V02 arg2 + [000252] -----+----- \--* CNS_INT int -1 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] ---XG+----- * JTRUE void + [000485] J--XG+-N--- \--* EQ int + [000260] ---XG+----- +--* IND long + [000259] -----+----- | \--* ADD byref + [000255] -----+----- | +--* LCL_VAR byref V00 arg0 + [000258] -----+----- | \--* LSH long + [000256] -----+----- | +--* LCL_VAR long V04 loc1 + [000257] -----+----- | \--* CNS_INT long 3 + [000261] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000272] -----+----- \--* ADD long + [000269] -----+----- +--* LCL_VAR long V04 loc1 + [000271] -----+----- \--* CNS_INT long -1 + +***** BB40 [0039] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + ( 7, 6) [000250] -----+----- * JTRUE void + ( 5, 4) [000249] J----+-N--- \--* GT int + ( 3, 2) [000247] -----+----- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 + +------------ BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB37,BB69} succs={BB66,BB67} + +***** BB60 [0087] +STMT00089 ( 0x2E5[E--] ... ??? ) + ( 7, 6) [000531] ----------- * JTRUE void + ( 5, 4) [000532] J------N--- \--* LE int + ( 3, 2) [000533] ----------- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000534] ----------- \--* CNS_INT int 0 + +------------ BB66 [0093] [???..???) -> BB38(1) (always), preds={BB60} succs={BB38} + +------------ BB42 [0041] [???..???) -> BB67(1) (always), preds={BB40} succs={BB67} + +------------ BB67 [0094] [2E9..2EB) (return), preds={BB42,BB60} succs={} + +***** BB67 [0094] +STMT00088 ( ??? ... ??? ) + [000493] -----+----- * RETURN int + [000277] -----+----- \--* CNS_INT int -1 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) + [000044] --CXG+----- * CALL void + [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 + [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 + [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 + +------------ BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) + [000492] -----+----- * RETURN int + [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Set block weights +After computing the dominance tree: +BB01 : BB52 BB57 +BB57 : BB43 BB09 +BB09 : BB68 BB69 BB17 BB15 BB13 BB11 BB58 +BB68 : BB10 +BB10 : BB12 BB62 +BB12 : BB14 BB63 +BB14 : BB16 BB64 +BB16 : BB18 BB65 +BB18 : BB20 BB19 +BB20 : BB22 BB21 +BB22 : BB24 BB23 +BB24 : BB26 BB25 +BB26 : BB28 +BB69 : BB29 BB60 +BB29 : BB31 +BB31 : BB33 BB32 +BB33 : BB35 BB34 +BB35 : BB37 BB36 +BB60 : BB66 BB67 +BB66 : BB38 +BB38 : BB61 BB40 +BB40 : BB42 + + +After computing reachability sets: +------------------------------------------------ +BBnum Reachable by +------------------------------------------------ +BB01 : BB01 +BB52 : BB52 BB01 +BB57 : BB57 BB52 BB01 +BB09 : BB09 BB57 BB52 BB01 +BB68 : BB68 BB09 BB57 BB52 BB01 +BB10 : BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB12 : BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB14 : BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB16 : BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB18 : BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB20 : BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB22 : BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB24 : BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB26 : BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB61 : BB40 BB61 BB38 BB66 BB60 BB37 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB62 : BB62 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB11 : BB11 BB62 BB40 BB61 BB38 BB66 BB60 BB37 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB63 : BB63 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB13 : BB13 BB63 BB32 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB64 : BB64 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB15 : BB15 BB64 BB34 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB65 : BB65 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB17 : BB17 BB65 BB36 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB19 : BB19 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB21 : BB21 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB23 : BB23 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB25 : BB25 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB28 : BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB69 : BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB29 : BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB31 : BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB32 : BB32 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB33 : BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB34 : BB34 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB35 : BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB36 : BB36 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB37 : BB37 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB38 : BB40 BB38 BB66 BB60 BB37 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB40 : BB40 BB38 BB66 BB60 BB37 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB60 : BB60 BB37 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB66 : BB66 BB60 BB37 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB42 : BB42 BB40 BB38 BB66 BB60 BB37 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB67 : BB67 BB42 BB40 BB38 BB66 BB60 BB37 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 +BB43 : BB43 BB57 BB52 BB01 +BB58 : BB58 BB11 BB62 BB13 BB63 BB15 BB64 BB17 BB65 BB19 BB21 BB23 BB25 BB32 BB34 BB36 BB40 BB61 BB38 BB66 BB60 BB37 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 + + BB10(wt=800) + BB12(wt=800) + BB14(wt=800) + BB16(wt=800) + BB18(wt=800) + BB20(wt=800) + BB22(wt=800) + BB24(wt=800) + BB26(wt=800) + BB38(wt=800) + BB40(wt=800)Return blocks: BB58 BB43 BB67 + +*************** Finishing PHASE Set block weights +Trees after Set block weights + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(0.5),BB68(0.5) ( cond ) i +BB68 [0095] 1 BB09 0.50 [???..???)-> BB10(1) (always) i +BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target +BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd +BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd +BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd +BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd +BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal +BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal +BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i +BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal +BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i +BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal +BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i +BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal +BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i +BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i +BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i +BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i +BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i +BB28 [0027] 1 BB26 0.50 [???..???)-> BB69(1) (always) i +BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB69 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i +BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i +BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i +BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i +BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd +BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal +BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal +BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i +BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall +BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000384] -----+----- * JTRUE void + [000002] J----+-N--- \--* GE int + [000000] -----+----- +--* LCL_VAR int V02 arg2 + [000001] -----+----- \--* CNS_INT int 0 + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000387] --CXG+----- * CALL void + [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref + [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) + [000034] -----+----- * JTRUE void + [000033] J----+-N--- \--* GE int + [000031] -----+----- +--* LCL_VAR int V02 arg2 + [000032] -----+----- \--* CNS_INT int 2 vector element count + +------------ BB09 [0008] [068..073) -> BB69(0.5),BB68(0.5) (cond), preds={BB57} succs={BB68,BB69} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) + [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000050] -----+----- \--* ADD long + [000047] -----+----- +--* CAST long <- int + [000046] -----+----- | \--* LCL_VAR int V02 arg2 + [000049] -----+----- \--* CNS_INT long -1 + +***** BB09 [0008] +STMT00090 ( 0x1E7[E--] ... ??? ) + ( 7, 6) [000535] ----------- * JTRUE void + ( 5, 4) [000536] J------N--- \--* LT int + ( 3, 2) [000537] ----------- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000538] ----------- \--* CNS_INT int 8 + +------------ BB68 [0095] [???..???) -> BB10(1) (always), preds={BB09} succs={BB10} + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB26,BB68} succs={BB62,BB12} + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) + [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000058] -----+----- \--* ADD int + [000056] -----+----- +--* LCL_VAR int V02 arg2 + [000057] -----+----- \--* CNS_INT int -8 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) + [000073] ---XG+----- * JTRUE void + [000401] J--XG+-N--- \--* NE int + [000065] ---XG+----- +--* IND long + [000064] -----+----- | \--* ADD byref + [000060] -----+----- | +--* LCL_VAR byref V00 arg0 + [000063] -----+----- | \--* LSH long + [000061] -----+----- | +--* LCL_VAR long V04 loc1 + [000062] -----+----- | \--* CNS_INT long 3 + [000066] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] ---XG+----- * JTRUE void + [000408] J--XG+-N--- \--* NE int + [000082] ---XG+----- +--* IND long + [000081] -----+----- | \--* ADD byref + [000074] -----+----- | +--* LCL_VAR byref V00 arg0 + [000080] -----+----- | \--* ADD long + [000078] -----+----- | +--* LSH long + [000075] -----+----- | | +--* LCL_VAR long V04 loc1 + [000077] -----+----- | | \--* CNS_INT long 3 + [000079] -----+----- | \--* CNS_INT long -8 + [000083] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] ---XG+----- * JTRUE void + [000415] J--XG+-N--- \--* NE int + [000099] ---XG+----- +--* IND long + [000098] -----+----- | \--* ADD byref + [000091] -----+----- | +--* LCL_VAR byref V00 arg0 + [000097] -----+----- | \--* ADD long + [000095] -----+----- | +--* LSH long + [000092] -----+----- | | +--* LCL_VAR long V04 loc1 + [000094] -----+----- | | \--* CNS_INT long 3 + [000096] -----+----- | \--* CNS_INT long -16 + [000100] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] ---XG+----- * JTRUE void + [000422] J--XG+-N--- \--* NE int + [000116] ---XG+----- +--* IND long + [000115] -----+----- | \--* ADD byref + [000108] -----+----- | +--* LCL_VAR byref V00 arg0 + [000114] -----+----- | \--* ADD long + [000112] -----+----- | +--* LSH long + [000109] -----+----- | | +--* LCL_VAR long V04 loc1 + [000111] -----+----- | | \--* CNS_INT long 3 + [000113] -----+----- | \--* CNS_INT long -24 + [000117] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] ---XG+----- * JTRUE void + [000429] J--XG+-N--- \--* NE int + [000133] ---XG+----- +--* IND long + [000132] -----+----- | \--* ADD byref + [000125] -----+----- | +--* LCL_VAR byref V00 arg0 + [000131] -----+----- | \--* ADD long + [000129] -----+----- | +--* LSH long + [000126] -----+----- | | +--* LCL_VAR long V04 loc1 + [000128] -----+----- | | \--* CNS_INT long 3 + [000130] -----+----- | \--* CNS_INT long -32 + [000134] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) + [000158] ---XG+----- * JTRUE void + [000436] J--XG+-N--- \--* NE int + [000150] ---XG+----- +--* IND long + [000149] -----+----- | \--* ADD byref + [000142] -----+----- | +--* LCL_VAR byref V00 arg0 + [000148] -----+----- | \--* ADD long + [000146] -----+----- | +--* LSH long + [000143] -----+----- | | +--* LCL_VAR long V04 loc1 + [000145] -----+----- | | \--* CNS_INT long 3 + [000147] -----+----- | \--* CNS_INT long -40 + [000151] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) + [000175] ---XG+----- * JTRUE void + [000443] J--XG+-N--- \--* NE int + [000167] ---XG+----- +--* IND long + [000166] -----+----- | \--* ADD byref + [000159] -----+----- | +--* LCL_VAR byref V00 arg0 + [000165] -----+----- | \--* ADD long + [000163] -----+----- | +--* LSH long + [000160] -----+----- | | +--* LCL_VAR long V04 loc1 + [000162] -----+----- | | \--* CNS_INT long 3 + [000164] -----+----- | \--* CNS_INT long -48 + [000168] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] ---XG+----- * JTRUE void + [000450] J--XG+-N--- \--* NE int + [000184] ---XG+----- +--* IND long + [000183] -----+----- | \--* ADD byref + [000176] -----+----- | +--* LCL_VAR byref V00 arg0 + [000182] -----+----- | \--* ADD long + [000180] -----+----- | +--* LSH long + [000177] -----+----- | | +--* LCL_VAR long V04 loc1 + [000179] -----+----- | | \--* CNS_INT long 3 + [000181] -----+----- | \--* CNS_INT long -56 + [000185] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB26 [0025] [1E2..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB24} succs={BB28,BB10} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000196] -----+----- \--* ADD long + [000193] -----+----- +--* LCL_VAR long V04 loc1 + [000195] -----+----- \--* CNS_INT long -8 + +***** BB26 [0025] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + ( 7, 6) [000055] -----+----- * JTRUE void + ( 5, 4) [000054] J----+-N--- \--* GE int + ( 3, 2) [000052] -----+----- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 + +------------ BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} + +------------ BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} + +------------ BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) + [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000240] -----+----- \--* LCL_VAR int V04 loc1 + +------------ BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} + +------------ BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000237] -----+----- \--* ADD int + [000234] -----+----- +--* LCL_VAR int V04 loc1 + [000519] -----+----- \--* CNS_INT int -1 + +------------ BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} + +------------ BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000231] -----+----- \--* ADD int + [000228] -----+----- +--* LCL_VAR int V04 loc1 + [000516] -----+----- \--* CNS_INT int -2 + +------------ BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} + +------------ BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) + [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000225] -----+----- \--* ADD int + [000222] -----+----- +--* LCL_VAR int V04 loc1 + [000513] -----+----- \--* CNS_INT int -3 + +------------ BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) + [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000219] -----+----- \--* ADD int + [000216] -----+----- +--* LCL_VAR int V04 loc1 + [000510] -----+----- \--* CNS_INT int -4 + +------------ BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) + [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000213] -----+----- \--* ADD int + [000210] -----+----- +--* LCL_VAR int V04 loc1 + [000507] -----+----- \--* CNS_INT int -5 + +------------ BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) + [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000207] -----+----- \--* ADD int + [000204] -----+----- +--* LCL_VAR int V04 loc1 + [000504] -----+----- \--* CNS_INT int -6 + +------------ BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) + [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000201] -----+----- \--* ADD int + [000198] -----+----- +--* LCL_VAR int V04 loc1 + [000501] -----+----- \--* CNS_INT int -7 + +------------ BB28 [0027] [???..???) -> BB69(1) (always), preds={BB26} succs={BB69} + +------------ BB69 [0096] [1EE..1F5) -> BB60(0.5),BB29(0.5) (cond), preds={BB09,BB28} succs={BB29,BB60} + +***** BB69 [0096] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) + [000246] -----+----- * JTRUE void + [000245] J----+-N--- \--* LT int + [000243] -----+----- +--* LCL_VAR int V02 arg2 + [000244] -----+----- \--* CNS_INT int 4 + +------------ BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB69} succs={BB31,BB11} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) + [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000281] -----+----- \--* ADD int + [000279] -----+----- +--* LCL_VAR int V02 arg2 + [000280] -----+----- \--* CNS_INT int -4 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] ---XG+----- * JTRUE void + [000457] J--XG+-N--- \--* EQ int + [000288] ---XG+----- +--* IND long + [000287] -----+----- | \--* ADD byref + [000283] -----+----- | +--* LCL_VAR byref V00 arg0 + [000286] -----+----- | \--* LSH long + [000284] -----+----- | +--* LCL_VAR long V04 loc1 + [000285] -----+----- | \--* CNS_INT long 3 + [000289] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) + [000313] ---XG+----- * JTRUE void + [000464] J--XG+-N--- \--* NE int + [000305] ---XG+----- +--* IND long + [000304] -----+----- | \--* ADD byref + [000297] -----+----- | +--* LCL_VAR byref V00 arg0 + [000303] -----+----- | \--* ADD long + [000301] -----+----- | +--* LSH long + [000298] -----+----- | | +--* LCL_VAR long V04 loc1 + [000300] -----+----- | | \--* CNS_INT long 3 + [000302] -----+----- | \--* CNS_INT long -8 + [000306] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) + [000330] ---XG+----- * JTRUE void + [000471] J--XG+-N--- \--* NE int + [000322] ---XG+----- +--* IND long + [000321] -----+----- | \--* ADD byref + [000314] -----+----- | +--* LCL_VAR byref V00 arg0 + [000320] -----+----- | \--* ADD long + [000318] -----+----- | +--* LSH long + [000315] -----+----- | | +--* LCL_VAR long V04 loc1 + [000317] -----+----- | | \--* CNS_INT long 3 + [000319] -----+----- | \--* CNS_INT long -16 + [000323] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] ---XG+----- * JTRUE void + [000478] J--XG+-N--- \--* NE int + [000339] ---XG+----- +--* IND long + [000338] -----+----- | \--* ADD byref + [000331] -----+----- | +--* LCL_VAR byref V00 arg0 + [000337] -----+----- | \--* ADD long + [000335] -----+----- | +--* LSH long + [000332] -----+----- | | +--* LCL_VAR long V04 loc1 + [000334] -----+----- | | \--* CNS_INT long 3 + [000336] -----+----- | \--* CNS_INT long -24 + [000340] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} + +------------ BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) + [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000351] -----+----- \--* ADD long + [000348] -----+----- +--* LCL_VAR long V04 loc1 + [000350] -----+----- \--* CNS_INT long -4 + +------------ BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB40,BB66} succs={BB40,BB61} + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) + [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000253] -----+----- \--* ADD int + [000251] -----+----- +--* LCL_VAR int V02 arg2 + [000252] -----+----- \--* CNS_INT int -1 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] ---XG+----- * JTRUE void + [000485] J--XG+-N--- \--* EQ int + [000260] ---XG+----- +--* IND long + [000259] -----+----- | \--* ADD byref + [000255] -----+----- | +--* LCL_VAR byref V00 arg0 + [000258] -----+----- | \--* LSH long + [000256] -----+----- | +--* LCL_VAR long V04 loc1 + [000257] -----+----- | \--* CNS_INT long 3 + [000261] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000272] -----+----- \--* ADD long + [000269] -----+----- +--* LCL_VAR long V04 loc1 + [000271] -----+----- \--* CNS_INT long -1 + +***** BB40 [0039] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + ( 7, 6) [000250] -----+----- * JTRUE void + ( 5, 4) [000249] J----+-N--- \--* GT int + ( 3, 2) [000247] -----+----- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 + +------------ BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB37,BB69} succs={BB66,BB67} + +***** BB60 [0087] +STMT00089 ( 0x2E5[E--] ... ??? ) + ( 7, 6) [000531] ----------- * JTRUE void + ( 5, 4) [000532] J------N--- \--* LE int + ( 3, 2) [000533] ----------- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000534] ----------- \--* CNS_INT int 0 + +------------ BB66 [0093] [???..???) -> BB38(1) (always), preds={BB60} succs={BB38} + +------------ BB42 [0041] [???..???) -> BB67(1) (always), preds={BB40} succs={BB67} + +------------ BB67 [0094] [2E9..2EB) (return), preds={BB42,BB60} succs={} + +***** BB67 [0094] +STMT00088 ( ??? ... ??? ) + [000493] -----+----- * RETURN int + [000277] -----+----- \--* CNS_INT int -1 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) + [000044] --CXG+----- * CALL void + [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 + [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 + [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 + +------------ BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) + [000492] -----+----- * RETURN int + [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Clone loops + +*************** In optCloneLoops() +Considering loop L00 to clone for optimizations. +Analyzing iteration for L00 with header BB10 + Preheader = BB68 + Checking exiting block BB10 + Checking exiting block BB12 + Could not extract an IV + Checking exiting block BB14 + Could not extract an IV + Checking exiting block BB16 + Could not extract an IV + Checking exiting block BB18 + Could not extract an IV + Checking exiting block BB20 + Could not extract an IV + Checking exiting block BB22 + Could not extract an IV + Checking exiting block BB24 + Could not extract an IV + Checking exiting block BB26 + Could not extract an IV + Could not find any IV +Loop cloning: rejecting loop L00. Could not analyze iteration. +------------------------------------------------------------ +Considering loop L01 to clone for optimizations. +Analyzing iteration for L01 with header BB38 + Preheader = BB66 + Checking exiting block BB38 + Checking exiting block BB40 + Could not extract an IV + Could not find any IV +Loop cloning: rejecting loop L01. Could not analyze iteration. +------------------------------------------------------------ + + No clonable loops + +*************** Finishing PHASE Clone loops +Trees after Clone loops + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(0.5),BB68(0.5) ( cond ) i +BB68 [0095] 1 BB09 0.50 [???..???)-> BB10(1) (always) i +BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target +BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd +BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd +BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd +BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd +BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal +BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal +BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i +BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal +BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i +BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal +BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i +BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal +BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i +BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i +BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i +BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i +BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i +BB28 [0027] 1 BB26 0.50 [???..???)-> BB69(1) (always) i +BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB69 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i +BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i +BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i +BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i +BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd +BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal +BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal +BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i +BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall +BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000384] -----+----- * JTRUE void + [000002] J----+-N--- \--* GE int + [000000] -----+----- +--* LCL_VAR int V02 arg2 + [000001] -----+----- \--* CNS_INT int 0 + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000387] --CXG+----- * CALL void + [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref + [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) + [000034] -----+----- * JTRUE void + [000033] J----+-N--- \--* GE int + [000031] -----+----- +--* LCL_VAR int V02 arg2 + [000032] -----+----- \--* CNS_INT int 2 vector element count + +------------ BB09 [0008] [068..073) -> BB69(0.5),BB68(0.5) (cond), preds={BB57} succs={BB68,BB69} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) + [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000050] -----+----- \--* ADD long + [000047] -----+----- +--* CAST long <- int + [000046] -----+----- | \--* LCL_VAR int V02 arg2 + [000049] -----+----- \--* CNS_INT long -1 + +***** BB09 [0008] +STMT00090 ( 0x1E7[E--] ... ??? ) + ( 7, 6) [000535] ----------- * JTRUE void + ( 5, 4) [000536] J------N--- \--* LT int + ( 3, 2) [000537] ----------- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000538] ----------- \--* CNS_INT int 8 + +------------ BB68 [0095] [???..???) -> BB10(1) (always), preds={BB09} succs={BB10} + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB26,BB68} succs={BB62,BB12} + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) + [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000058] -----+----- \--* ADD int + [000056] -----+----- +--* LCL_VAR int V02 arg2 + [000057] -----+----- \--* CNS_INT int -8 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) + [000073] ---XG+----- * JTRUE void + [000401] J--XG+-N--- \--* NE int + [000065] ---XG+----- +--* IND long + [000064] -----+----- | \--* ADD byref + [000060] -----+----- | +--* LCL_VAR byref V00 arg0 + [000063] -----+----- | \--* LSH long + [000061] -----+----- | +--* LCL_VAR long V04 loc1 + [000062] -----+----- | \--* CNS_INT long 3 + [000066] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] ---XG+----- * JTRUE void + [000408] J--XG+-N--- \--* NE int + [000082] ---XG+----- +--* IND long + [000081] -----+----- | \--* ADD byref + [000074] -----+----- | +--* LCL_VAR byref V00 arg0 + [000080] -----+----- | \--* ADD long + [000078] -----+----- | +--* LSH long + [000075] -----+----- | | +--* LCL_VAR long V04 loc1 + [000077] -----+----- | | \--* CNS_INT long 3 + [000079] -----+----- | \--* CNS_INT long -8 + [000083] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] ---XG+----- * JTRUE void + [000415] J--XG+-N--- \--* NE int + [000099] ---XG+----- +--* IND long + [000098] -----+----- | \--* ADD byref + [000091] -----+----- | +--* LCL_VAR byref V00 arg0 + [000097] -----+----- | \--* ADD long + [000095] -----+----- | +--* LSH long + [000092] -----+----- | | +--* LCL_VAR long V04 loc1 + [000094] -----+----- | | \--* CNS_INT long 3 + [000096] -----+----- | \--* CNS_INT long -16 + [000100] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] ---XG+----- * JTRUE void + [000422] J--XG+-N--- \--* NE int + [000116] ---XG+----- +--* IND long + [000115] -----+----- | \--* ADD byref + [000108] -----+----- | +--* LCL_VAR byref V00 arg0 + [000114] -----+----- | \--* ADD long + [000112] -----+----- | +--* LSH long + [000109] -----+----- | | +--* LCL_VAR long V04 loc1 + [000111] -----+----- | | \--* CNS_INT long 3 + [000113] -----+----- | \--* CNS_INT long -24 + [000117] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] ---XG+----- * JTRUE void + [000429] J--XG+-N--- \--* NE int + [000133] ---XG+----- +--* IND long + [000132] -----+----- | \--* ADD byref + [000125] -----+----- | +--* LCL_VAR byref V00 arg0 + [000131] -----+----- | \--* ADD long + [000129] -----+----- | +--* LSH long + [000126] -----+----- | | +--* LCL_VAR long V04 loc1 + [000128] -----+----- | | \--* CNS_INT long 3 + [000130] -----+----- | \--* CNS_INT long -32 + [000134] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) + [000158] ---XG+----- * JTRUE void + [000436] J--XG+-N--- \--* NE int + [000150] ---XG+----- +--* IND long + [000149] -----+----- | \--* ADD byref + [000142] -----+----- | +--* LCL_VAR byref V00 arg0 + [000148] -----+----- | \--* ADD long + [000146] -----+----- | +--* LSH long + [000143] -----+----- | | +--* LCL_VAR long V04 loc1 + [000145] -----+----- | | \--* CNS_INT long 3 + [000147] -----+----- | \--* CNS_INT long -40 + [000151] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) + [000175] ---XG+----- * JTRUE void + [000443] J--XG+-N--- \--* NE int + [000167] ---XG+----- +--* IND long + [000166] -----+----- | \--* ADD byref + [000159] -----+----- | +--* LCL_VAR byref V00 arg0 + [000165] -----+----- | \--* ADD long + [000163] -----+----- | +--* LSH long + [000160] -----+----- | | +--* LCL_VAR long V04 loc1 + [000162] -----+----- | | \--* CNS_INT long 3 + [000164] -----+----- | \--* CNS_INT long -48 + [000168] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] ---XG+----- * JTRUE void + [000450] J--XG+-N--- \--* NE int + [000184] ---XG+----- +--* IND long + [000183] -----+----- | \--* ADD byref + [000176] -----+----- | +--* LCL_VAR byref V00 arg0 + [000182] -----+----- | \--* ADD long + [000180] -----+----- | +--* LSH long + [000177] -----+----- | | +--* LCL_VAR long V04 loc1 + [000179] -----+----- | | \--* CNS_INT long 3 + [000181] -----+----- | \--* CNS_INT long -56 + [000185] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB26 [0025] [1E2..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB24} succs={BB28,BB10} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000196] -----+----- \--* ADD long + [000193] -----+----- +--* LCL_VAR long V04 loc1 + [000195] -----+----- \--* CNS_INT long -8 + +***** BB26 [0025] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + ( 7, 6) [000055] -----+----- * JTRUE void + ( 5, 4) [000054] J----+-N--- \--* GE int + ( 3, 2) [000052] -----+----- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 + +------------ BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} + +------------ BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} + +------------ BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) + [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000240] -----+----- \--* LCL_VAR int V04 loc1 + +------------ BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} + +------------ BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000237] -----+----- \--* ADD int + [000234] -----+----- +--* LCL_VAR int V04 loc1 + [000519] -----+----- \--* CNS_INT int -1 + +------------ BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} + +------------ BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000231] -----+----- \--* ADD int + [000228] -----+----- +--* LCL_VAR int V04 loc1 + [000516] -----+----- \--* CNS_INT int -2 + +------------ BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} + +------------ BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) + [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000225] -----+----- \--* ADD int + [000222] -----+----- +--* LCL_VAR int V04 loc1 + [000513] -----+----- \--* CNS_INT int -3 + +------------ BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) + [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000219] -----+----- \--* ADD int + [000216] -----+----- +--* LCL_VAR int V04 loc1 + [000510] -----+----- \--* CNS_INT int -4 + +------------ BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) + [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000213] -----+----- \--* ADD int + [000210] -----+----- +--* LCL_VAR int V04 loc1 + [000507] -----+----- \--* CNS_INT int -5 + +------------ BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) + [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000207] -----+----- \--* ADD int + [000204] -----+----- +--* LCL_VAR int V04 loc1 + [000504] -----+----- \--* CNS_INT int -6 + +------------ BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) + [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000201] -----+----- \--* ADD int + [000198] -----+----- +--* LCL_VAR int V04 loc1 + [000501] -----+----- \--* CNS_INT int -7 + +------------ BB28 [0027] [???..???) -> BB69(1) (always), preds={BB26} succs={BB69} + +------------ BB69 [0096] [1EE..1F5) -> BB60(0.5),BB29(0.5) (cond), preds={BB09,BB28} succs={BB29,BB60} + +***** BB69 [0096] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) + [000246] -----+----- * JTRUE void + [000245] J----+-N--- \--* LT int + [000243] -----+----- +--* LCL_VAR int V02 arg2 + [000244] -----+----- \--* CNS_INT int 4 + +------------ BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB69} succs={BB31,BB11} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) + [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000281] -----+----- \--* ADD int + [000279] -----+----- +--* LCL_VAR int V02 arg2 + [000280] -----+----- \--* CNS_INT int -4 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] ---XG+----- * JTRUE void + [000457] J--XG+-N--- \--* EQ int + [000288] ---XG+----- +--* IND long + [000287] -----+----- | \--* ADD byref + [000283] -----+----- | +--* LCL_VAR byref V00 arg0 + [000286] -----+----- | \--* LSH long + [000284] -----+----- | +--* LCL_VAR long V04 loc1 + [000285] -----+----- | \--* CNS_INT long 3 + [000289] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) + [000313] ---XG+----- * JTRUE void + [000464] J--XG+-N--- \--* NE int + [000305] ---XG+----- +--* IND long + [000304] -----+----- | \--* ADD byref + [000297] -----+----- | +--* LCL_VAR byref V00 arg0 + [000303] -----+----- | \--* ADD long + [000301] -----+----- | +--* LSH long + [000298] -----+----- | | +--* LCL_VAR long V04 loc1 + [000300] -----+----- | | \--* CNS_INT long 3 + [000302] -----+----- | \--* CNS_INT long -8 + [000306] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) + [000330] ---XG+----- * JTRUE void + [000471] J--XG+-N--- \--* NE int + [000322] ---XG+----- +--* IND long + [000321] -----+----- | \--* ADD byref + [000314] -----+----- | +--* LCL_VAR byref V00 arg0 + [000320] -----+----- | \--* ADD long + [000318] -----+----- | +--* LSH long + [000315] -----+----- | | +--* LCL_VAR long V04 loc1 + [000317] -----+----- | | \--* CNS_INT long 3 + [000319] -----+----- | \--* CNS_INT long -16 + [000323] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] ---XG+----- * JTRUE void + [000478] J--XG+-N--- \--* NE int + [000339] ---XG+----- +--* IND long + [000338] -----+----- | \--* ADD byref + [000331] -----+----- | +--* LCL_VAR byref V00 arg0 + [000337] -----+----- | \--* ADD long + [000335] -----+----- | +--* LSH long + [000332] -----+----- | | +--* LCL_VAR long V04 loc1 + [000334] -----+----- | | \--* CNS_INT long 3 + [000336] -----+----- | \--* CNS_INT long -24 + [000340] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} + +------------ BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) + [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000351] -----+----- \--* ADD long + [000348] -----+----- +--* LCL_VAR long V04 loc1 + [000350] -----+----- \--* CNS_INT long -4 + +------------ BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB40,BB66} succs={BB40,BB61} + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) + [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000253] -----+----- \--* ADD int + [000251] -----+----- +--* LCL_VAR int V02 arg2 + [000252] -----+----- \--* CNS_INT int -1 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] ---XG+----- * JTRUE void + [000485] J--XG+-N--- \--* EQ int + [000260] ---XG+----- +--* IND long + [000259] -----+----- | \--* ADD byref + [000255] -----+----- | +--* LCL_VAR byref V00 arg0 + [000258] -----+----- | \--* LSH long + [000256] -----+----- | +--* LCL_VAR long V04 loc1 + [000257] -----+----- | \--* CNS_INT long 3 + [000261] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000272] -----+----- \--* ADD long + [000269] -----+----- +--* LCL_VAR long V04 loc1 + [000271] -----+----- \--* CNS_INT long -1 + +***** BB40 [0039] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + ( 7, 6) [000250] -----+----- * JTRUE void + ( 5, 4) [000249] J----+-N--- \--* GT int + ( 3, 2) [000247] -----+----- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 + +------------ BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB37,BB69} succs={BB66,BB67} + +***** BB60 [0087] +STMT00089 ( 0x2E5[E--] ... ??? ) + ( 7, 6) [000531] ----------- * JTRUE void + ( 5, 4) [000532] J------N--- \--* LE int + ( 3, 2) [000533] ----------- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000534] ----------- \--* CNS_INT int 0 + +------------ BB66 [0093] [???..???) -> BB38(1) (always), preds={BB60} succs={BB38} + +------------ BB42 [0041] [???..???) -> BB67(1) (always), preds={BB40} succs={BB67} + +------------ BB67 [0094] [2E9..2EB) (return), preds={BB42,BB60} succs={} + +***** BB67 [0094] +STMT00088 ( ??? ... ??? ) + [000493] -----+----- * RETURN int + [000277] -----+----- \--* CNS_INT int -1 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) + [000044] --CXG+----- * CALL void + [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 + [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 + [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 + +------------ BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) + [000492] -----+----- * RETURN int + [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Unroll loops +Analyzing iteration for L01 with header BB38 + Preheader = BB66 + Checking exiting block BB38 + Checking exiting block BB40 + Could not extract an IV + Could not find any IV +Analyzing iteration for L00 with header BB10 + Preheader = BB68 + Checking exiting block BB10 + Checking exiting block BB12 + Could not extract an IV + Checking exiting block BB14 + Could not extract an IV + Checking exiting block BB16 + Could not extract an IV + Checking exiting block BB18 + Could not extract an IV + Checking exiting block BB20 + Could not extract an IV + Checking exiting block BB22 + Could not extract an IV + Checking exiting block BB24 + Could not extract an IV + Checking exiting block BB26 + Could not extract an IV + Could not find any IV +*************** In fgDebugCheckBBlist + +*************** Finishing PHASE Unroll loops [no changes] + +*************** Starting PHASE Compute dominators + +*************** Finishing PHASE Compute dominators [no changes] + +*************** Starting PHASE Morph array ops +No multi-dimensional array references in the function + +*************** Finishing PHASE Morph array ops [no changes] + +*************** Starting PHASE Mark local vars + +*************** In lvaMarkLocalVars() +*** lvaComputeRefCounts *** + +*** lvaComputePreciseRefCounts -- explicit counts *** + +*** marking local variables in block BB01 (weight=1) +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000384] -----+----- * JTRUE void + [000002] J----+-N--- \--* GE int + [000000] -----+----- +--* LCL_VAR int V02 arg2 + [000001] -----+----- \--* CNS_INT int 0 +New refCnts for V02: refCnt = 1, refCntWtd = 1 + +*** marking local variables in block BB52 (weight=0.50) +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + [000387] --CXG+----- * CALL void + [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref + [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref + +*** marking local variables in block BB57 (weight=1) +STMT00003 ( 0x05D[E--] ... 0x063 ) + [000034] -----+----- * JTRUE void + [000033] J----+-N--- \--* GE int + [000031] -----+----- +--* LCL_VAR int V02 arg2 + [000032] -----+----- \--* CNS_INT int 2 vector element count +New refCnts for V02: refCnt = 2, refCntWtd = 2 + +*** marking local variables in block BB09 (weight=0.50) +STMT00005 ( 0x068[E--] ... 0x06D ) + [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000050] -----+----- \--* ADD long + [000047] -----+----- +--* CAST long <- int + [000046] -----+----- | \--* LCL_VAR int V02 arg2 + [000049] -----+----- \--* CNS_INT long -1 +New refCnts for V04: refCnt = 1, refCntWtd = 0.50 +V04 needs explicit zero init. Disqualified as a single-def register candidate. +New refCnts for V02: refCnt = 3, refCntWtd = 2.50 +STMT00090 ( 0x1E7[E--] ... ??? ) + ( 7, 6) [000535] ----------- * JTRUE void + ( 5, 4) [000536] J------N--- \--* LT int + ( 3, 2) [000537] ----------- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000538] ----------- \--* CNS_INT int 8 +New refCnts for V02: refCnt = 4, refCntWtd = 3 + +*** marking local variables in block BB68 (weight=0.50) + +*** marking local variables in block BB10 (weight=4) +STMT00007 ( 0x073[E--] ... 0x076 ) + [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000058] -----+----- \--* ADD int + [000056] -----+----- +--* LCL_VAR int V02 arg2 + [000057] -----+----- \--* CNS_INT int -8 +New refCnts for V02: refCnt = 5, refCntWtd = 7 +V02 needs explicit zero init. Disqualified as a single-def register candidate. +New refCnts for V02: refCnt = 6, refCntWtd = 11 +STMT00010 ( 0x078[E--] ... ??? ) + [000073] ---XG+----- * JTRUE void + [000401] J--XG+-N--- \--* NE int + [000065] ---XG+----- +--* IND long + [000064] -----+----- | \--* ADD byref + [000060] -----+----- | +--* LCL_VAR byref V00 arg0 + [000063] -----+----- | \--* LSH long + [000061] -----+----- | +--* LCL_VAR long V04 loc1 + [000062] -----+----- | \--* CNS_INT long 3 + [000066] -----+----- \--* LCL_VAR long V01 arg1 +New refCnts for V00: refCnt = 1, refCntWtd = 4 +New refCnts for V04: refCnt = 2, refCntWtd = 4.50 +New refCnts for V01: refCnt = 1, refCntWtd = 4 + +*** marking local variables in block BB12 (weight=4) +STMT00013 ( 0x0A0[E--] ... ??? ) + [000090] ---XG+----- * JTRUE void + [000408] J--XG+-N--- \--* NE int + [000082] ---XG+----- +--* IND long + [000081] -----+----- | \--* ADD byref + [000074] -----+----- | +--* LCL_VAR byref V00 arg0 + [000080] -----+----- | \--* ADD long + [000078] -----+----- | +--* LSH long + [000075] -----+----- | | +--* LCL_VAR long V04 loc1 + [000077] -----+----- | | \--* CNS_INT long 3 + [000079] -----+----- | \--* CNS_INT long -8 + [000083] -----+----- \--* LCL_VAR long V01 arg1 +New refCnts for V00: refCnt = 2, refCntWtd = 8 +New refCnts for V04: refCnt = 3, refCntWtd = 8.50 +New refCnts for V01: refCnt = 2, refCntWtd = 8 + +*** marking local variables in block BB14 (weight=4) +STMT00016 ( 0x0CE[E--] ... ??? ) + [000107] ---XG+----- * JTRUE void + [000415] J--XG+-N--- \--* NE int + [000099] ---XG+----- +--* IND long + [000098] -----+----- | \--* ADD byref + [000091] -----+----- | +--* LCL_VAR byref V00 arg0 + [000097] -----+----- | \--* ADD long + [000095] -----+----- | +--* LSH long + [000092] -----+----- | | +--* LCL_VAR long V04 loc1 + [000094] -----+----- | | \--* CNS_INT long 3 + [000096] -----+----- | \--* CNS_INT long -16 + [000100] -----+----- \--* LCL_VAR long V01 arg1 +New refCnts for V00: refCnt = 3, refCntWtd = 12 +New refCnts for V04: refCnt = 4, refCntWtd = 12.50 +New refCnts for V01: refCnt = 3, refCntWtd = 12 + +*** marking local variables in block BB16 (weight=4) +STMT00019 ( 0x0FC[E--] ... ??? ) + [000124] ---XG+----- * JTRUE void + [000422] J--XG+-N--- \--* NE int + [000116] ---XG+----- +--* IND long + [000115] -----+----- | \--* ADD byref + [000108] -----+----- | +--* LCL_VAR byref V00 arg0 + [000114] -----+----- | \--* ADD long + [000112] -----+----- | +--* LSH long + [000109] -----+----- | | +--* LCL_VAR long V04 loc1 + [000111] -----+----- | | \--* CNS_INT long 3 + [000113] -----+----- | \--* CNS_INT long -24 + [000117] -----+----- \--* LCL_VAR long V01 arg1 +New refCnts for V00: refCnt = 4, refCntWtd = 16 +New refCnts for V04: refCnt = 5, refCntWtd = 16.50 +New refCnts for V01: refCnt = 4, refCntWtd = 16 + +*** marking local variables in block BB18 (weight=4) +STMT00022 ( 0x12A[E--] ... ??? ) + [000141] ---XG+----- * JTRUE void + [000429] J--XG+-N--- \--* NE int + [000133] ---XG+----- +--* IND long + [000132] -----+----- | \--* ADD byref + [000125] -----+----- | +--* LCL_VAR byref V00 arg0 + [000131] -----+----- | \--* ADD long + [000129] -----+----- | +--* LSH long + [000126] -----+----- | | +--* LCL_VAR long V04 loc1 + [000128] -----+----- | | \--* CNS_INT long 3 + [000130] -----+----- | \--* CNS_INT long -32 + [000134] -----+----- \--* LCL_VAR long V01 arg1 +New refCnts for V00: refCnt = 5, refCntWtd = 20 +New refCnts for V04: refCnt = 6, refCntWtd = 20.50 +New refCnts for V01: refCnt = 5, refCntWtd = 20 + +*** marking local variables in block BB20 (weight=4) +STMT00025 ( 0x158[E--] ... ??? ) + [000158] ---XG+----- * JTRUE void + [000436] J--XG+-N--- \--* NE int + [000150] ---XG+----- +--* IND long + [000149] -----+----- | \--* ADD byref + [000142] -----+----- | +--* LCL_VAR byref V00 arg0 + [000148] -----+----- | \--* ADD long + [000146] -----+----- | +--* LSH long + [000143] -----+----- | | +--* LCL_VAR long V04 loc1 + [000145] -----+----- | | \--* CNS_INT long 3 + [000147] -----+----- | \--* CNS_INT long -40 + [000151] -----+----- \--* LCL_VAR long V01 arg1 +New refCnts for V00: refCnt = 6, refCntWtd = 24 +New refCnts for V04: refCnt = 7, refCntWtd = 24.50 +New refCnts for V01: refCnt = 6, refCntWtd = 24 + +*** marking local variables in block BB22 (weight=4) +STMT00028 ( 0x186[E--] ... ??? ) + [000175] ---XG+----- * JTRUE void + [000443] J--XG+-N--- \--* NE int + [000167] ---XG+----- +--* IND long + [000166] -----+----- | \--* ADD byref + [000159] -----+----- | +--* LCL_VAR byref V00 arg0 + [000165] -----+----- | \--* ADD long + [000163] -----+----- | +--* LSH long + [000160] -----+----- | | +--* LCL_VAR long V04 loc1 + [000162] -----+----- | | \--* CNS_INT long 3 + [000164] -----+----- | \--* CNS_INT long -48 + [000168] -----+----- \--* LCL_VAR long V01 arg1 +New refCnts for V00: refCnt = 7, refCntWtd = 28 +New refCnts for V04: refCnt = 8, refCntWtd = 28.50 +New refCnts for V01: refCnt = 7, refCntWtd = 28 + +*** marking local variables in block BB24 (weight=4) +STMT00031 ( 0x1B4[E--] ... ??? ) + [000192] ---XG+----- * JTRUE void + [000450] J--XG+-N--- \--* NE int + [000184] ---XG+----- +--* IND long + [000183] -----+----- | \--* ADD byref + [000176] -----+----- | +--* LCL_VAR byref V00 arg0 + [000182] -----+----- | \--* ADD long + [000180] -----+----- | +--* LSH long + [000177] -----+----- | | +--* LCL_VAR long V04 loc1 + [000179] -----+----- | | \--* CNS_INT long 3 + [000181] -----+----- | \--* CNS_INT long -56 + [000185] -----+----- \--* LCL_VAR long V01 arg1 +New refCnts for V00: refCnt = 8, refCntWtd = 32 +New refCnts for V04: refCnt = 9, refCntWtd = 32.50 +New refCnts for V01: refCnt = 8, refCntWtd = 32 + +*** marking local variables in block BB26 (weight=4) +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000196] -----+----- \--* ADD long + [000193] -----+----- +--* LCL_VAR long V04 loc1 + [000195] -----+----- \--* CNS_INT long -8 +New refCnts for V04: refCnt = 10, refCntWtd = 36.50 +New refCnts for V04: refCnt = 11, refCntWtd = 40.50 +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + ( 7, 6) [000055] -----+----- * JTRUE void + ( 5, 4) [000054] J----+-N--- \--* GE int + ( 3, 2) [000052] -----+----- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 +New refCnts for V02: refCnt = 7, refCntWtd = 15 + +*** marking local variables in block BB61 (weight=0.25) + +*** marking local variables in block BB62 (weight=0.25) + +*** marking local variables in block BB11 (weight=0.50) +STMT00040 ( 0x09D[E--] ... 0x09F ) + [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000240] -----+----- \--* LCL_VAR int V04 loc1 +New refCnts for V34: refCnt = 1, refCntWtd = 1 +V34 needs explicit zero init. Disqualified as a single-def register candidate. +New refCnts for V04: refCnt = 12, refCntWtd = 41 + +*** marking local variables in block BB63 (weight=0.25) + +*** marking local variables in block BB13 (weight=0.50) +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000237] -----+----- \--* ADD int + [000234] -----+----- +--* LCL_VAR int V04 loc1 + [000519] -----+----- \--* CNS_INT int -1 +New refCnts for V34: refCnt = 2, refCntWtd = 2 +New refCnts for V04: refCnt = 13, refCntWtd = 41.50 + +*** marking local variables in block BB64 (weight=0.25) + +*** marking local variables in block BB15 (weight=0.50) +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000231] -----+----- \--* ADD int + [000228] -----+----- +--* LCL_VAR int V04 loc1 + [000516] -----+----- \--* CNS_INT int -2 +New refCnts for V34: refCnt = 3, refCntWtd = 3 +New refCnts for V04: refCnt = 14, refCntWtd = 42 + +*** marking local variables in block BB65 (weight=0.25) + +*** marking local variables in block BB17 (weight=0.50) +STMT00037 ( 0x124[E--] ... 0x129 ) + [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000225] -----+----- \--* ADD int + [000222] -----+----- +--* LCL_VAR int V04 loc1 + [000513] -----+----- \--* CNS_INT int -3 +New refCnts for V34: refCnt = 4, refCntWtd = 4 +New refCnts for V04: refCnt = 15, refCntWtd = 42.50 + +*** marking local variables in block BB19 (weight=0.50) +STMT00036 ( 0x152[E--] ... 0x157 ) + [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000219] -----+----- \--* ADD int + [000216] -----+----- +--* LCL_VAR int V04 loc1 + [000510] -----+----- \--* CNS_INT int -4 +New refCnts for V34: refCnt = 5, refCntWtd = 5 +New refCnts for V04: refCnt = 16, refCntWtd = 43 + +*** marking local variables in block BB21 (weight=0.50) +STMT00035 ( 0x180[E--] ... 0x185 ) + [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000213] -----+----- \--* ADD int + [000210] -----+----- +--* LCL_VAR int V04 loc1 + [000507] -----+----- \--* CNS_INT int -5 +New refCnts for V34: refCnt = 6, refCntWtd = 6 +New refCnts for V04: refCnt = 17, refCntWtd = 43.50 + +*** marking local variables in block BB23 (weight=0.50) +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) + [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000207] -----+----- \--* ADD int + [000204] -----+----- +--* LCL_VAR int V04 loc1 + [000504] -----+----- \--* CNS_INT int -6 +New refCnts for V34: refCnt = 7, refCntWtd = 7 +New refCnts for V04: refCnt = 18, refCntWtd = 44 + +*** marking local variables in block BB25 (weight=0.50) +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) + [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 + [000201] -----+----- \--* ADD int + [000198] -----+----- +--* LCL_VAR int V04 loc1 + [000501] -----+----- \--* CNS_INT int -7 +New refCnts for V34: refCnt = 8, refCntWtd = 8 +New refCnts for V04: refCnt = 19, refCntWtd = 44.50 + +*** marking local variables in block BB28 (weight=0.50) + +*** marking local variables in block BB69 (weight=0.50) +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) + [000246] -----+----- * JTRUE void + [000245] J----+-N--- \--* LT int + [000243] -----+----- +--* LCL_VAR int V02 arg2 + [000244] -----+----- \--* CNS_INT int 4 +New refCnts for V02: refCnt = 8, refCntWtd = 15.50 + +*** marking local variables in block BB29 (weight=0.50) +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) + [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000281] -----+----- \--* ADD int + [000279] -----+----- +--* LCL_VAR int V02 arg2 + [000280] -----+----- \--* CNS_INT int -4 +New refCnts for V02: refCnt = 9, refCntWtd = 16 +New refCnts for V02: refCnt = 10, refCntWtd = 16.50 +STMT00053 ( 0x1FA[E--] ... ??? ) + [000296] ---XG+----- * JTRUE void + [000457] J--XG+-N--- \--* EQ int + [000288] ---XG+----- +--* IND long + [000287] -----+----- | \--* ADD byref + [000283] -----+----- | +--* LCL_VAR byref V00 arg0 + [000286] -----+----- | \--* LSH long + [000284] -----+----- | +--* LCL_VAR long V04 loc1 + [000285] -----+----- | \--* CNS_INT long 3 + [000289] -----+----- \--* LCL_VAR long V01 arg1 +New refCnts for V00: refCnt = 9, refCntWtd = 32.50 +New refCnts for V04: refCnt = 20, refCntWtd = 45 +New refCnts for V01: refCnt = 9, refCntWtd = 32.50 + +*** marking local variables in block BB31 (weight=0.50) +STMT00056 ( 0x222[E--] ... ??? ) + [000313] ---XG+----- * JTRUE void + [000464] J--XG+-N--- \--* NE int + [000305] ---XG+----- +--* IND long + [000304] -----+----- | \--* ADD byref + [000297] -----+----- | +--* LCL_VAR byref V00 arg0 + [000303] -----+----- | \--* ADD long + [000301] -----+----- | +--* LSH long + [000298] -----+----- | | +--* LCL_VAR long V04 loc1 + [000300] -----+----- | | \--* CNS_INT long 3 + [000302] -----+----- | \--* CNS_INT long -8 + [000306] -----+----- \--* LCL_VAR long V01 arg1 +New refCnts for V00: refCnt = 10, refCntWtd = 33 +New refCnts for V04: refCnt = 21, refCntWtd = 45.50 +New refCnts for V01: refCnt = 10, refCntWtd = 33 + +*** marking local variables in block BB32 (weight=0.50) + +*** marking local variables in block BB33 (weight=0.50) +STMT00059 ( 0x250[E--] ... ??? ) + [000330] ---XG+----- * JTRUE void + [000471] J--XG+-N--- \--* NE int + [000322] ---XG+----- +--* IND long + [000321] -----+----- | \--* ADD byref + [000314] -----+----- | +--* LCL_VAR byref V00 arg0 + [000320] -----+----- | \--* ADD long + [000318] -----+----- | +--* LSH long + [000315] -----+----- | | +--* LCL_VAR long V04 loc1 + [000317] -----+----- | | \--* CNS_INT long 3 + [000319] -----+----- | \--* CNS_INT long -16 + [000323] -----+----- \--* LCL_VAR long V01 arg1 +New refCnts for V00: refCnt = 11, refCntWtd = 33.50 +New refCnts for V04: refCnt = 22, refCntWtd = 46 +New refCnts for V01: refCnt = 11, refCntWtd = 33.50 + +*** marking local variables in block BB34 (weight=0.50) + +*** marking local variables in block BB35 (weight=0.50) +STMT00062 ( 0x27E[E--] ... ??? ) + [000347] ---XG+----- * JTRUE void + [000478] J--XG+-N--- \--* NE int + [000339] ---XG+----- +--* IND long + [000338] -----+----- | \--* ADD byref + [000331] -----+----- | +--* LCL_VAR byref V00 arg0 + [000337] -----+----- | \--* ADD long + [000335] -----+----- | +--* LSH long + [000332] -----+----- | | +--* LCL_VAR long V04 loc1 + [000334] -----+----- | | \--* CNS_INT long 3 + [000336] -----+----- | \--* CNS_INT long -24 + [000340] -----+----- \--* LCL_VAR long V01 arg1 +New refCnts for V00: refCnt = 12, refCntWtd = 34 +New refCnts for V04: refCnt = 23, refCntWtd = 46.50 +New refCnts for V01: refCnt = 12, refCntWtd = 34 + +*** marking local variables in block BB36 (weight=0.50) + +*** marking local variables in block BB37 (weight=0.50) +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) + [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000351] -----+----- \--* ADD long + [000348] -----+----- +--* LCL_VAR long V04 loc1 + [000350] -----+----- \--* CNS_INT long -4 +New refCnts for V04: refCnt = 24, refCntWtd = 47 +New refCnts for V04: refCnt = 25, refCntWtd = 47.50 + +*** marking local variables in block BB38 (weight=4) +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) + [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 + [000253] -----+----- \--* ADD int + [000251] -----+----- +--* LCL_VAR int V02 arg2 + [000252] -----+----- \--* CNS_INT int -1 +New refCnts for V02: refCnt = 11, refCntWtd = 20.50 +New refCnts for V02: refCnt = 12, refCntWtd = 24.50 +STMT00046 ( 0x2B8[E--] ... ??? ) + [000268] ---XG+----- * JTRUE void + [000485] J--XG+-N--- \--* EQ int + [000260] ---XG+----- +--* IND long + [000259] -----+----- | \--* ADD byref + [000255] -----+----- | +--* LCL_VAR byref V00 arg0 + [000258] -----+----- | \--* LSH long + [000256] -----+----- | +--* LCL_VAR long V04 loc1 + [000257] -----+----- | \--* CNS_INT long 3 + [000261] -----+----- \--* LCL_VAR long V01 arg1 +New refCnts for V00: refCnt = 13, refCntWtd = 38 +New refCnts for V04: refCnt = 26, refCntWtd = 51.50 +New refCnts for V01: refCnt = 13, refCntWtd = 38 + +*** marking local variables in block BB40 (weight=4) +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 + [000272] -----+----- \--* ADD long + [000269] -----+----- +--* LCL_VAR long V04 loc1 + [000271] -----+----- \--* CNS_INT long -1 +New refCnts for V04: refCnt = 27, refCntWtd = 55.50 +New refCnts for V04: refCnt = 28, refCntWtd = 59.50 +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + ( 7, 6) [000250] -----+----- * JTRUE void + ( 5, 4) [000249] J----+-N--- \--* GT int + ( 3, 2) [000247] -----+----- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 +New refCnts for V02: refCnt = 13, refCntWtd = 28.50 + +*** marking local variables in block BB60 (weight=0.75) +STMT00089 ( 0x2E5[E--] ... ??? ) + ( 7, 6) [000531] ----------- * JTRUE void + ( 5, 4) [000532] J------N--- \--* LE int + ( 3, 2) [000533] ----------- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000534] ----------- \--* CNS_INT int 0 +New refCnts for V02: refCnt = 14, refCntWtd = 29.25 + +*** marking local variables in block BB66 (weight=0.75) + +*** marking local variables in block BB42 (weight=0.50) + +*** marking local variables in block BB67 (weight=0.50) +STMT00088 ( ??? ... ??? ) + [000493] -----+----- * RETURN int + [000277] -----+----- \--* CNS_INT int -1 + +*** marking local variables in block BB43 (weight=0.50) +STMT00004 ( 0x31B[E--] ... 0x323 ) + [000044] --CXG+----- * CALL void + [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 + [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 + [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 +New refCnts for V00: refCnt = 14, refCntWtd = 38.50 +New refCnts for V01: refCnt = 14, refCntWtd = 38.50 +New refCnts for V02: refCnt = 15, refCntWtd = 29.75 + +*** marking local variables in block BB58 (weight=0.50) +STMT00087 ( ??? ... ??? ) + [000492] -----+----- * RETURN int + [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 +New refCnts for V34: refCnt = 9, refCntWtd = 9 + +*** lvaComputePreciseRefCounts -- implicit counts *** +New refCnts for V00: refCnt = 15, refCntWtd = 39.50 +New refCnts for V00: refCnt = 16, refCntWtd = 40.50 +New refCnts for V01: refCnt = 15, refCntWtd = 39.50 +New refCnts for V01: refCnt = 16, refCntWtd = 40.50 +New refCnts for V02: refCnt = 16, refCntWtd = 30.75 +New refCnts for V02: refCnt = 17, refCntWtd = 31.75 + +*************** Finishing PHASE Mark local vars [no changes] + +*************** Starting PHASE Find oper order +*************** In fgFindOperOrder() + +*************** Finishing PHASE Find oper order +Trees after Find oper order + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(0.5),BB68(0.5) ( cond ) i +BB68 [0095] 1 BB09 0.50 [???..???)-> BB10(1) (always) i +BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target +BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd +BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd +BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd +BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd +BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal +BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal +BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i +BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal +BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i +BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal +BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i +BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal +BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i +BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i +BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i +BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i +BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i +BB28 [0027] 1 BB26 0.50 [???..???)-> BB69(1) (always) i +BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB69 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i +BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i +BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i +BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i +BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd +BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal +BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal +BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i +BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall +BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + ( 5, 5) [000384] -----+----- * JTRUE void + ( 3, 3) [000002] J----+-N--- \--* GE int + ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + ( 16, 15) [000387] --CXG+----- * CALL void + ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref + ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) + ( 5, 5) [000034] -----+----- * JTRUE void + ( 3, 3) [000033] J----+-N--- \--* GE int + ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count + +------------ BB09 [0008] [068..073) -> BB69(0.5),BB68(0.5) (cond), preds={BB57} succs={BB68,BB69} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) + ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 + ( 4, 5) [000050] -----+----- \--* ADD long + ( 2, 3) [000047] -----+----- +--* CAST long <- int + ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 + ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 + +***** BB09 [0008] +STMT00090 ( 0x1E7[E--] ... ??? ) + ( 5, 5) [000535] ----------- * JTRUE void + ( 3, 3) [000536] J------N--- \--* LT int + ( 1, 1) [000537] ----------- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000538] ----------- \--* CNS_INT int 8 + +------------ BB68 [0095] [???..???) -> BB10(1) (always), preds={BB09} succs={BB10} + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB26,BB68} succs={BB62,BB12} + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) + ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 + ( 3, 3) [000058] -----+----- \--* ADD int + ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) + ( 9, 8) [000073] ---XG+----- * JTRUE void + ( 7, 6) [000401] J--XG+-N--- \--* NE int + ( 5, 4) [000065] ---XG+----- +--* IND long + ( 3, 3) [000064] -----+-N--- | \--* ADD byref + ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 + ( 2, 2) [000063] -----+-N--- | \--* LSH long + ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 + ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 + ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) + ( 9, 9) [000090] ---XG+----- * JTRUE void + ( 7, 7) [000408] J--XG+-N--- \--* NE int + ( 5, 5) [000082] ---XG+----- +--* IND long + ( 4, 4) [000081] -----+-N--- | \--* ADD byref + ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 + ( 3, 3) [000080] -----+-N--- | \--* ADD long + ( 2, 2) [000078] -----+-N--- | +--* LSH long + ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 + ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 + ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 + ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) + ( 9, 9) [000107] ---XG+----- * JTRUE void + ( 7, 7) [000415] J--XG+-N--- \--* NE int + ( 5, 5) [000099] ---XG+----- +--* IND long + ( 4, 4) [000098] -----+-N--- | \--* ADD byref + ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 + ( 3, 3) [000097] -----+-N--- | \--* ADD long + ( 2, 2) [000095] -----+-N--- | +--* LSH long + ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 + ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 + ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 + ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) + ( 9, 9) [000124] ---XG+----- * JTRUE void + ( 7, 7) [000422] J--XG+-N--- \--* NE int + ( 5, 5) [000116] ---XG+----- +--* IND long + ( 4, 4) [000115] -----+-N--- | \--* ADD byref + ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 + ( 3, 3) [000114] -----+-N--- | \--* ADD long + ( 2, 2) [000112] -----+-N--- | +--* LSH long + ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 + ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 + ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 + ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) + ( 9, 9) [000141] ---XG+----- * JTRUE void + ( 7, 7) [000429] J--XG+-N--- \--* NE int + ( 5, 5) [000133] ---XG+----- +--* IND long + ( 4, 4) [000132] -----+-N--- | \--* ADD byref + ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 + ( 3, 3) [000131] -----+-N--- | \--* ADD long + ( 2, 2) [000129] -----+-N--- | +--* LSH long + ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 + ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 + ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 + ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) + ( 9, 9) [000158] ---XG+----- * JTRUE void + ( 7, 7) [000436] J--XG+-N--- \--* NE int + ( 5, 5) [000150] ---XG+----- +--* IND long + ( 4, 4) [000149] -----+-N--- | \--* ADD byref + ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 + ( 3, 3) [000148] -----+-N--- | \--* ADD long + ( 2, 2) [000146] -----+-N--- | +--* LSH long + ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 + ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 + ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 + ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) + ( 9, 9) [000175] ---XG+----- * JTRUE void + ( 7, 7) [000443] J--XG+-N--- \--* NE int + ( 5, 5) [000167] ---XG+----- +--* IND long + ( 4, 4) [000166] -----+-N--- | \--* ADD byref + ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 + ( 3, 3) [000165] -----+-N--- | \--* ADD long + ( 2, 2) [000163] -----+-N--- | +--* LSH long + ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 + ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 + ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 + ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) + ( 9, 9) [000192] ---XG+----- * JTRUE void + ( 7, 7) [000450] J--XG+-N--- \--* NE int + ( 5, 5) [000184] ---XG+----- +--* IND long + ( 4, 4) [000183] -----+-N--- | \--* ADD byref + ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 + ( 3, 3) [000182] -----+-N--- | \--* ADD long + ( 2, 2) [000180] -----+-N--- | +--* LSH long + ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 + ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 + ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 + ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB26 [0025] [1E2..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB24} succs={BB28,BB10} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) + ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 + ( 3, 3) [000196] -----+----- \--* ADD long + ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 + ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 + +***** BB26 [0025] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) + ( 5, 5) [000055] -----+----- * JTRUE void + ( 3, 3) [000054] J----+-N--- \--* GE int + ( 1, 1) [000052] -----+----- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 + +------------ BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} + +------------ BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} + +------------ BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) + ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 + ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 + +------------ BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} + +------------ BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) + ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 + ( 3, 3) [000237] -----+----- \--* ADD int + ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 + ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 + +------------ BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} + +------------ BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) + ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 + ( 3, 3) [000231] -----+----- \--* ADD int + ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 + ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 + +------------ BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} + +------------ BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) + ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 + ( 3, 3) [000225] -----+----- \--* ADD int + ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 + ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 + +------------ BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) + ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 + ( 3, 3) [000219] -----+----- \--* ADD int + ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 + ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 + +------------ BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) + ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 + ( 3, 3) [000213] -----+----- \--* ADD int + ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 + ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 + +------------ BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) + ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 + ( 3, 3) [000207] -----+----- \--* ADD int + ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 + ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 + +------------ BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) + ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 + ( 3, 3) [000201] -----+----- \--* ADD int + ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 + ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 + +------------ BB28 [0027] [???..???) -> BB69(1) (always), preds={BB26} succs={BB69} + +------------ BB69 [0096] [1EE..1F5) -> BB60(0.5),BB29(0.5) (cond), preds={BB09,BB28} succs={BB29,BB60} + +***** BB69 [0096] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) + ( 5, 5) [000246] -----+----- * JTRUE void + ( 3, 3) [000245] J----+-N--- \--* LT int + ( 1, 1) [000243] -----+----- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000244] -----+----- \--* CNS_INT int 4 + +------------ BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB69} succs={BB31,BB11} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) + ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 + ( 3, 3) [000281] -----+----- \--* ADD int + ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) + ( 9, 8) [000296] ---XG+----- * JTRUE void + ( 7, 6) [000457] J--XG+-N--- \--* EQ int + ( 5, 4) [000288] ---XG+----- +--* IND long + ( 3, 3) [000287] -----+-N--- | \--* ADD byref + ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 + ( 2, 2) [000286] -----+-N--- | \--* LSH long + ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 + ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 + ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) + ( 9, 9) [000313] ---XG+----- * JTRUE void + ( 7, 7) [000464] J--XG+-N--- \--* NE int + ( 5, 5) [000305] ---XG+----- +--* IND long + ( 4, 4) [000304] -----+-N--- | \--* ADD byref + ( 1, 1) [000297] -----+----- | +--* LCL_VAR byref V00 arg0 + ( 3, 3) [000303] -----+-N--- | \--* ADD long + ( 2, 2) [000301] -----+-N--- | +--* LSH long + ( 1, 1) [000298] -----+----- | | +--* LCL_VAR long V04 loc1 + ( 1, 1) [000300] -----+----- | | \--* CNS_INT long 3 + ( 1, 1) [000302] -----+----- | \--* CNS_INT long -8 + ( 1, 1) [000306] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) + ( 9, 9) [000330] ---XG+----- * JTRUE void + ( 7, 7) [000471] J--XG+-N--- \--* NE int + ( 5, 5) [000322] ---XG+----- +--* IND long + ( 4, 4) [000321] -----+-N--- | \--* ADD byref + ( 1, 1) [000314] -----+----- | +--* LCL_VAR byref V00 arg0 + ( 3, 3) [000320] -----+-N--- | \--* ADD long + ( 2, 2) [000318] -----+-N--- | +--* LSH long + ( 1, 1) [000315] -----+----- | | +--* LCL_VAR long V04 loc1 + ( 1, 1) [000317] -----+----- | | \--* CNS_INT long 3 + ( 1, 1) [000319] -----+----- | \--* CNS_INT long -16 + ( 1, 1) [000323] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) + ( 9, 9) [000347] ---XG+----- * JTRUE void + ( 7, 7) [000478] J--XG+-N--- \--* NE int + ( 5, 5) [000339] ---XG+----- +--* IND long + ( 4, 4) [000338] -----+-N--- | \--* ADD byref + ( 1, 1) [000331] -----+----- | +--* LCL_VAR byref V00 arg0 + ( 3, 3) [000337] -----+-N--- | \--* ADD long + ( 2, 2) [000335] -----+-N--- | +--* LSH long + ( 1, 1) [000332] -----+----- | | +--* LCL_VAR long V04 loc1 + ( 1, 1) [000334] -----+----- | | \--* CNS_INT long 3 + ( 1, 1) [000336] -----+----- | \--* CNS_INT long -24 + ( 1, 1) [000340] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} + +------------ BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) + ( 3, 3) [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 + ( 3, 3) [000351] -----+----- \--* ADD long + ( 1, 1) [000348] -----+----- +--* LCL_VAR long V04 loc1 + ( 1, 1) [000350] -----+----- \--* CNS_INT long -4 + +------------ BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB40,BB66} succs={BB40,BB61} + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) + ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 + ( 3, 3) [000253] -----+----- \--* ADD int + ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) + ( 9, 8) [000268] ---XG+----- * JTRUE void + ( 7, 6) [000485] J--XG+-N--- \--* EQ int + ( 5, 4) [000260] ---XG+----- +--* IND long + ( 3, 3) [000259] -----+-N--- | \--* ADD byref + ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 + ( 2, 2) [000258] -----+-N--- | \--* LSH long + ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 + ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 + ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) + ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 + ( 3, 3) [000272] -----+----- \--* ADD long + ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 + ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 + +***** BB40 [0039] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) + ( 5, 5) [000250] -----+----- * JTRUE void + ( 3, 3) [000249] J----+-N--- \--* GT int + ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 + +------------ BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB37,BB69} succs={BB66,BB67} + +***** BB60 [0087] +STMT00089 ( 0x2E5[E--] ... ??? ) + ( 5, 5) [000531] ----------- * JTRUE void + ( 3, 3) [000532] J------N--- \--* LE int + ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 + ( 1, 1) [000534] ----------- \--* CNS_INT int 0 + +------------ BB66 [0093] [???..???) -> BB38(1) (always), preds={BB60} succs={BB38} + +------------ BB42 [0041] [???..???) -> BB67(1) (always), preds={BB40} succs={BB67} + +------------ BB67 [0094] [2E9..2EB) (return), preds={BB42,BB60} succs={} + +***** BB67 [0094] +STMT00088 ( ??? ... ??? ) + ( 2, 2) [000493] -----+----- * RETURN int + ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) + ( 17, 11) [000044] --CXG+----- * CALL void + ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 + ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 + ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 + +------------ BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) + ( 2, 2) [000492] -----+----- * RETURN int + ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Set block order +*************** In fgSetBlockOrder() +Found a cycle that does not go through a GC safe point: +BB38 <- BB40 <- BB38 +Marking method as fully interruptible +The biggest BB has 11 tree nodes + +*************** Finishing PHASE Set block order +Trees after Set block order + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(0.5),BB68(0.5) ( cond ) i +BB68 [0095] 1 BB09 0.50 [???..???)-> BB10(1) (always) i +BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target +BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd +BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd +BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd +BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd +BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal +BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal +BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i +BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal +BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i +BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal +BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i +BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal +BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i +BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i +BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i +BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i +BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i +BB28 [0027] 1 BB26 0.50 [???..???)-> BB69(1) (always) i +BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB69 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i +BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i +BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i +BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i +BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd +BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal +BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal +BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i +BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall +BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N004 ( 5, 5) [000384] -----+----- * JTRUE void +N003 ( 3, 3) [000002] J----+-N--- \--* GE int +N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 +N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N003 ( 16, 15) [000387] --CXG+----- * CALL void +N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref +N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) +N004 ( 5, 5) [000034] -----+----- * JTRUE void +N003 ( 3, 3) [000033] J----+-N--- \--* GE int +N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 +N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count + +------------ BB09 [0008] [068..073) -> BB69(0.5),BB68(0.5) (cond), preds={BB57} succs={BB68,BB69} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) +N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 +N004 ( 4, 5) [000050] -----+----- \--* ADD long +N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int +N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 +N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 + +***** BB09 [0008] +STMT00090 ( 0x1E7[E--] ... ??? ) +N004 ( 5, 5) [000535] ----------- * JTRUE void +N003 ( 3, 3) [000536] J------N--- \--* LT int +N001 ( 1, 1) [000537] ----------- +--* LCL_VAR int V02 arg2 +N002 ( 1, 1) [000538] ----------- \--* CNS_INT int 8 + +------------ BB68 [0095] [???..???) -> BB10(1) (always), preds={BB09} succs={BB10} + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB26,BB68} succs={BB62,BB12} + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) +N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 +N003 ( 3, 3) [000058] -----+----- \--* ADD int +N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 +N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) +N009 ( 9, 8) [000073] ---XG+----- * JTRUE void +N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int +N006 ( 5, 4) [000065] ---XG+----- +--* IND long +N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 +N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long +N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 +N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 +N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) +N011 ( 9, 9) [000090] ---XG+----- * JTRUE void +N010 ( 7, 7) [000408] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000082] ---XG+----- +--* IND long +N007 ( 4, 4) [000081] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 +N006 ( 3, 3) [000080] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000078] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 +N003 ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 +N009 ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) +N011 ( 9, 9) [000107] ---XG+----- * JTRUE void +N010 ( 7, 7) [000415] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000099] ---XG+----- +--* IND long +N007 ( 4, 4) [000098] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 +N006 ( 3, 3) [000097] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000095] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 +N003 ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 +N009 ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) +N011 ( 9, 9) [000124] ---XG+----- * JTRUE void +N010 ( 7, 7) [000422] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000116] ---XG+----- +--* IND long +N007 ( 4, 4) [000115] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 +N006 ( 3, 3) [000114] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000112] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 +N003 ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 +N009 ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) +N011 ( 9, 9) [000141] ---XG+----- * JTRUE void +N010 ( 7, 7) [000429] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000133] ---XG+----- +--* IND long +N007 ( 4, 4) [000132] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 +N006 ( 3, 3) [000131] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000129] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 +N003 ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 +N009 ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) +N011 ( 9, 9) [000158] ---XG+----- * JTRUE void +N010 ( 7, 7) [000436] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000150] ---XG+----- +--* IND long +N007 ( 4, 4) [000149] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 +N006 ( 3, 3) [000148] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000146] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 +N003 ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 +N009 ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) +N011 ( 9, 9) [000175] ---XG+----- * JTRUE void +N010 ( 7, 7) [000443] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000167] ---XG+----- +--* IND long +N007 ( 4, 4) [000166] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 +N006 ( 3, 3) [000165] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000163] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 +N003 ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 +N009 ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) +N011 ( 9, 9) [000192] ---XG+----- * JTRUE void +N010 ( 7, 7) [000450] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000184] ---XG+----- +--* IND long +N007 ( 4, 4) [000183] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 +N006 ( 3, 3) [000182] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000180] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 +N003 ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 +N009 ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB26 [0025] [1E2..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB24} succs={BB28,BB10} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) +N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 +N003 ( 3, 3) [000196] -----+----- \--* ADD long +N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 +N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 + +***** BB26 [0025] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) +N004 ( 5, 5) [000055] -----+----- * JTRUE void +N003 ( 3, 3) [000054] J----+-N--- \--* GE int +N001 ( 1, 1) [000052] -----+----- +--* LCL_VAR int V02 arg2 +N002 ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 + +------------ BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} + +------------ BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} + +------------ BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) +N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 +N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 + +------------ BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} + +------------ BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) +N004 ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 +N003 ( 3, 3) [000237] -----+----- \--* ADD int +N001 ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 +N002 ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 + +------------ BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} + +------------ BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) +N004 ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 +N003 ( 3, 3) [000231] -----+----- \--* ADD int +N001 ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 +N002 ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 + +------------ BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} + +------------ BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) +N004 ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 +N003 ( 3, 3) [000225] -----+----- \--* ADD int +N001 ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 +N002 ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 + +------------ BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) +N004 ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 +N003 ( 3, 3) [000219] -----+----- \--* ADD int +N001 ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 +N002 ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 + +------------ BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) +N004 ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 +N003 ( 3, 3) [000213] -----+----- \--* ADD int +N001 ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 +N002 ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 + +------------ BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) +N004 ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 +N003 ( 3, 3) [000207] -----+----- \--* ADD int +N001 ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 +N002 ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 + +------------ BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) +N004 ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 +N003 ( 3, 3) [000201] -----+----- \--* ADD int +N001 ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 +N002 ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 + +------------ BB28 [0027] [???..???) -> BB69(1) (always), preds={BB26} succs={BB69} + +------------ BB69 [0096] [1EE..1F5) -> BB60(0.5),BB29(0.5) (cond), preds={BB09,BB28} succs={BB29,BB60} + +***** BB69 [0096] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) +N004 ( 5, 5) [000246] -----+----- * JTRUE void +N003 ( 3, 3) [000245] J----+-N--- \--* LT int +N001 ( 1, 1) [000243] -----+----- +--* LCL_VAR int V02 arg2 +N002 ( 1, 1) [000244] -----+----- \--* CNS_INT int 4 + +------------ BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB69} succs={BB31,BB11} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) +N004 ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 +N003 ( 3, 3) [000281] -----+----- \--* ADD int +N001 ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 +N002 ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) +N009 ( 9, 8) [000296] ---XG+----- * JTRUE void +N008 ( 7, 6) [000457] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000288] ---XG+----- +--* IND long +N005 ( 3, 3) [000287] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 +N004 ( 2, 2) [000286] -----+-N--- | \--* LSH long +N002 ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 +N003 ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 +N007 ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) +N011 ( 9, 9) [000313] ---XG+----- * JTRUE void +N010 ( 7, 7) [000464] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000305] ---XG+----- +--* IND long +N007 ( 4, 4) [000304] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000297] -----+----- | +--* LCL_VAR byref V00 arg0 +N006 ( 3, 3) [000303] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000301] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000298] -----+----- | | +--* LCL_VAR long V04 loc1 +N003 ( 1, 1) [000300] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000302] -----+----- | \--* CNS_INT long -8 +N009 ( 1, 1) [000306] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) +N011 ( 9, 9) [000330] ---XG+----- * JTRUE void +N010 ( 7, 7) [000471] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000322] ---XG+----- +--* IND long +N007 ( 4, 4) [000321] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000314] -----+----- | +--* LCL_VAR byref V00 arg0 +N006 ( 3, 3) [000320] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000318] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000315] -----+----- | | +--* LCL_VAR long V04 loc1 +N003 ( 1, 1) [000317] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000319] -----+----- | \--* CNS_INT long -16 +N009 ( 1, 1) [000323] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) +N011 ( 9, 9) [000347] ---XG+----- * JTRUE void +N010 ( 7, 7) [000478] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000339] ---XG+----- +--* IND long +N007 ( 4, 4) [000338] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000331] -----+----- | +--* LCL_VAR byref V00 arg0 +N006 ( 3, 3) [000337] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000335] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000332] -----+----- | | +--* LCL_VAR long V04 loc1 +N003 ( 1, 1) [000334] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000336] -----+----- | \--* CNS_INT long -24 +N009 ( 1, 1) [000340] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} + +------------ BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) +N004 ( 3, 3) [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 +N003 ( 3, 3) [000351] -----+----- \--* ADD long +N001 ( 1, 1) [000348] -----+----- +--* LCL_VAR long V04 loc1 +N002 ( 1, 1) [000350] -----+----- \--* CNS_INT long -4 + +------------ BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB40,BB66} succs={BB40,BB61} + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) +N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 +N003 ( 3, 3) [000253] -----+----- \--* ADD int +N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 +N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) +N009 ( 9, 8) [000268] ---XG+----- * JTRUE void +N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000260] ---XG+----- +--* IND long +N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 +N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long +N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 +N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 +N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 + +------------ BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) +N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 +N003 ( 3, 3) [000272] -----+----- \--* ADD long +N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 +N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 + +***** BB40 [0039] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) +N004 ( 5, 5) [000250] -----+----- * JTRUE void +N003 ( 3, 3) [000249] J----+-N--- \--* GT int +N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 +N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 + +------------ BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB37,BB69} succs={BB66,BB67} + +***** BB60 [0087] +STMT00089 ( 0x2E5[E--] ... ??? ) +N004 ( 5, 5) [000531] ----------- * JTRUE void +N003 ( 3, 3) [000532] J------N--- \--* LE int +N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 +N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 + +------------ BB66 [0093] [???..???) -> BB38(1) (always), preds={BB60} succs={BB38} + +------------ BB42 [0041] [???..???) -> BB67(1) (always), preds={BB40} succs={BB67} + +------------ BB67 [0094] [2E9..2EB) (return), preds={BB42,BB60} succs={} + +***** BB67 [0094] +STMT00088 ( ??? ... ??? ) +N002 ( 2, 2) [000493] -----+----- * RETURN int +N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) +N004 ( 17, 11) [000044] --CXG+----- * CALL void +N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 +N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 +N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 + +------------ BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) +N002 ( 2, 2) [000492] -----+----- * RETURN int +N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Build SSA representation +*************** In SsaBuilder::Build() +*************** In Liveness::Run() +In Liveness::Init + +Local V05 should not be enregistered because: struct size does not match reg size +Tracked variable (5 out of 35) table: +V04 loc1 [ long]: refCnt = 28, refCntWtd = 59.50 +V00 arg0 [ byref]: refCnt = 16, refCntWtd = 40.50 +V01 arg1 [ long]: refCnt = 16, refCntWtd = 40.50 +V02 arg2 [ int]: refCnt = 17, refCntWtd = 31.75 +V34 tmp29 [ int]: refCnt = 9, refCntWtd = 9 + +*************** In Liveness::PerBlockLocalVarLiveness() +BB01 USE(1)={V02} + DEF(0)={ } + +BB52 USE(0)={} + ByrefExposed + GcHeap + DEF(0)={} + ByrefExposed* + GcHeap* + +BB57 USE(1)={V02} + DEF(0)={ } + +BB09 USE(1)={ V02} + DEF(1)={V04 } + +BB68 USE(0)={} + DEF(0)={} + +BB10 USE(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + DEF(1)={ V02} + +BB12 USE(3)={V04 V00 V01} + ByrefExposed + GcHeap + DEF(0)={ } + +BB14 USE(3)={V04 V00 V01} + ByrefExposed + GcHeap + DEF(0)={ } + +BB16 USE(3)={V04 V00 V01} + ByrefExposed + GcHeap + DEF(0)={ } + +BB18 USE(3)={V04 V00 V01} + ByrefExposed + GcHeap + DEF(0)={ } + +BB20 USE(3)={V04 V00 V01} + ByrefExposed + GcHeap + DEF(0)={ } + +BB22 USE(3)={V04 V00 V01} + ByrefExposed + GcHeap + DEF(0)={ } + +BB24 USE(3)={V04 V00 V01} + ByrefExposed + GcHeap + DEF(0)={ } + +BB26 USE(2)={V04 V02} + DEF(1)={V04 } + +BB61 USE(0)={} + DEF(0)={} + +BB62 USE(0)={} + DEF(0)={} + +BB11 USE(1)={V04 } + DEF(1)={ V34} + +BB63 USE(0)={} + DEF(0)={} + +BB13 USE(1)={V04 } + DEF(1)={ V34} + +BB64 USE(0)={} + DEF(0)={} + +BB15 USE(1)={V04 } + DEF(1)={ V34} + +BB65 USE(0)={} + DEF(0)={} + +BB17 USE(1)={V04 } + DEF(1)={ V34} + +BB19 USE(1)={V04 } + DEF(1)={ V34} + +BB21 USE(1)={V04 } + DEF(1)={ V34} + +BB23 USE(1)={V04 } + DEF(1)={ V34} + +BB25 USE(1)={V04 } + DEF(1)={ V34} + +BB28 USE(0)={} + DEF(0)={} + +BB69 USE(1)={V02} + DEF(0)={ } + +BB29 USE(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + DEF(1)={ V02} + +BB31 USE(3)={V04 V00 V01} + ByrefExposed + GcHeap + DEF(0)={ } + +BB32 USE(0)={} + DEF(0)={} + +BB33 USE(3)={V04 V00 V01} + ByrefExposed + GcHeap + DEF(0)={ } + +BB34 USE(0)={} + DEF(0)={} + +BB35 USE(3)={V04 V00 V01} + ByrefExposed + GcHeap + DEF(0)={ } + +BB36 USE(0)={} + DEF(0)={} + +BB37 USE(1)={V04} + DEF(1)={V04} + +BB38 USE(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + DEF(1)={ V02} + +BB40 USE(2)={V04 V02} + DEF(1)={V04 } + +BB60 USE(1)={V02} + DEF(0)={ } + +BB66 USE(0)={} + DEF(0)={} + +BB42 USE(0)={} + DEF(0)={} + +BB67 USE(0)={} + DEF(0)={} + +BB43 USE(3)={V00 V01 V02} + ByrefExposed + GcHeap + DEF(0)={ } + ByrefExposed* + GcHeap* + +BB58 USE(1)={V34} + DEF(0)={ } + +** Memory liveness computed, GcHeap states and ByrefExposed states match +*************** IngInterBlockLocalVarLiveness() + +BB liveness after DoLiveVarAnalysis(): + +BB01 IN (3)={V00 V01 V02} + ByrefExposed + GcHeap + OUT(3)={V00 V01 V02} + ByrefExposed + GcHeap + +BB52 IN (3)={V00 V01 V02} + ByrefExposed + GcHeap + OUT(3)={V00 V01 V02} + ByrefExposed + GcHeap + +BB57 IN (3)={V00 V01 V02} + ByrefExposed + GcHeap + OUT(3)={V00 V01 V02} + ByrefExposed + GcHeap + +BB09 IN (3)={ V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB68 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB10 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB12 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB14 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB16 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB18 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB20 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB22 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB24 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB26 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB61 IN (1)={V04} + OUT(1)={V04} + +BB62 IN (1)={V04} + OUT(1)={V04} + +BB11 IN (1)={V04 } + OUT(1)={ V34} + +BB63 IN (1)={V04} + OUT(1)={V04} + +BB13 IN (1)={V04 } + OUT(1)={ V34} + +BB64 IN (1)={V04} + OUT(1)={V04} + +BB15 IN (1)={V04 } + OUT(1)={ V34} + +BB65 IN (1)={V04} + OUT(1)={V04} + +BB17 IN (1)={V04 } + OUT(1)={ V34} + +BB19 IN (1)={V04 } + OUT(1)={ V34} + +BB21 IN (1)={V04 } + OUT(1)={ V34} + +BB23 IN (1)={V04 } + OUT(1)={ V34} + +BB25 IN (1)={V04 } + OUT(1)={ V34} + +BB28 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB69 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB29 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB31 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB32 IN (1)={V04} + OUT(1)={V04} + +BB33 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB34 IN (1)={V04} + OUT(1)={V04} + +BB35 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB36 IN (1)={V04} + OUT(1)={V04} + +BB37 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB38 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB40 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB60 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB66 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap + +BB42 IN (0)={} + OUT(0)={} + +BB67 IN (0)={} + OUT(0)={} + +BB43 IN (3)={V00 V01 V02} + ByrefExposed + GcHeap + OUT(0)={ } + +BB58 IN (1)={V34} + OUT(0)={ } + +*************** In optRemoveRedundantZeroInits() +Analyzing BB01 +*************** In SsaBuilder::InsertPhiFunctions() +Inserting phi functions: +Added PHI definition for V34 at start of BB58. +Added PHI definition for V04 at start of BB38. +Added PHI definition for V04 at start of BB11. +Added PHI definition for V02 at start of BB38. +Added PHI definition for V04 at start of BB60. +Added PHI definition for V02 at start of BB60. +Added PHI definition for V04 at start of BB69. +Added PHI definition for V04 at start of BB10. +Added PHI definition for V04 at start of BB13. +Added PHI definition for V04 at start of BB15. +Added PHI definition for V04 at start of BB17. +Added PHI definition for V02 at start of BB69. +Added PHI definition for V02 at start of BB10. +Inserting phi definition for ByrefExposed at start of BB57. +*************** In SsaBuilder::RenameVariables() +V00.1: defined in BB00 14 uses (global) +V01.1: defined in BB00 14 uses (global) +V02.1: defined in BB00 7 uses (global), has phi uses +V02.2: defined in BB10 1 uses (local) +V02.3: defined in BB10 3 uses (global), has phi uses +V02.4: defined in BB69 3 uses (global), has phi uses +V02.5: defined in BB29 1 uses (global), has phi uses +V02.6: defined in BB60 2 uses (global), has phi uses +V02.7: defined in BB38 1 uses (local) +V02.8: defined in BB38 2 uses (global), has phi uses +V04.1: defined in BB09 2 uses (global), has phi uses +V04.2: defined in BB10 17 uses (global), has phi uses +V04.3: defined in BB26 2 uses (global), has phi uses +V04.4: defined in BB69 10 uses (global), has phi uses +V04.5: defined in BB37 1 uses (global), has phi uses +V04.6: defined in BB60 1 uses (global), has phi uses +V04.7: defined in BB38 3 uses (global), has phi uses +V04.8: defined in BB40 1 uses (global), has phi uses +V04.9: defined in BB17 1 uses (local) +V04.10: defined in BB15 1 uses (local) +V04.11: defined in BB13 1 uses (local) +V04.12: defined in BB11 1 uses (local) +V34.1: defined in BB25 1 uses (global), has phi uses +V34.2: defined in BB23 1 uses (global), has phi uses +V34.3: defined in BB21 1 uses (global), has phi uses +V34.4: defined in BB19 1 uses (global), has phi uses +V34.5: defined in BB17 1 uses (global), has phi uses +V34.6: defined in BB15 1 uses (global), has phi uses +V34.7: defined in BB13 1 uses (global), has phi uses +V34.8: defined in BB11 1 uses (global), has phi uses +V34.9: defined in BB58 1 uses (local) + +*************** Finishing PHASE Build SSA representation +Trees after Build SSA representation + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(0.5),BB68(0.5) ( cond ) i +BB68 [0095] 1 BB09 0.50 [???..???)-> BB10(1) (always) i +BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target +BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd +BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd +BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd +BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd +BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal +BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal +BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i +BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal +BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i +BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal +BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i +BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal +BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i +BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i +BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i +BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i +BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i +BB28 [0027] 1 BB26 0.50 [???..???)-> BB69(1) (always) i +BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB69 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i +BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i +BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i +BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i +BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd +BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal +BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal +BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i +BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall +BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} +SSA MEM: ByrefExposed, GcHeap = m:1 + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N004 ( 5, 5) [000384] -----+----- * JTRUE void +N003 ( 3, 3) [000002] J----+-N--- \--* GE int +N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 +N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 + +SSA MEM: ByrefExposed, GcHeap = m:1 + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} +SSA MEM: ByrefExposed, GcHeap = m:1 + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N003 ( 16, 15) [000387] --CXG+----- * CALL void +N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref +N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref + +SSA MEM: ByrefExposed, GcHeap = m:2 + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} +SSA MEM: ByrefExposed, GcHeap = phi(m:2, m:1) + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) +N004 ( 5, 5) [000034] -----+----- * JTRUE void +N003 ( 3, 3) [000033] J----+-N--- \--* GE int +N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 +N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB09 [0008] [068..073) -> BB69(0.5),BB68(0.5) (cond), preds={BB57} succs={BB68,BB69} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) +N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 +N004 ( 4, 5) [000050] -----+----- \--* ADD long +N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int +N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 +N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 + +***** BB09 [0008] +STMT00090 ( 0x1E7[E--] ... ??? ) +N004 ( 5, 5) [000535] ----------- * JTRUE void +N003 ( 3, 3) [000536] J------N--- \--* LT int +N001 ( 1, 1) [000537] ----------- +--* LCL_VAR int V02 arg2 u:1 +N002 ( 1, 1) [000538] ----------- \--* CNS_INT int 8 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB68 [0095] [???..???) -> BB10(1) (always), preds={BB09} succs={BB10} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB26,BB68} succs={BB62,BB12} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB10 [0009] +STMT00103 ( ??? ... ??? ) +N004 ( 0, 0) [000564] DA--------- * STORE_LCL_VAR int V02 arg2 d:2 +N003 ( 0, 0) [000563] ----------- \--* PHI int +N001 ( 0, 0) [000569] ----------- pred BB26 +--* PHI_ARG int V02 arg2 u:3 +N002 ( 0, 0) [000567] ----------- pred BB68 \--* PHI_ARG int V02 arg2 u:1 + +***** BB10 [0009] +STMT00098 ( ??? ... ??? ) +N004 ( 0, 0) [000554] DA--------- * STORE_LCL_VAR long V04 loc1 d:2 +N003 ( 0, 0) [000553] ----------- \--* PHI long +N001 ( 0, 0) [000570] ----------- pred BB26 +--* PHI_ARG long V04 loc1 u:3 +N002 ( 0, 0) [000568] ----------- pred BB68 \--* PHI_ARG long V04 loc1 u:1 + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) +N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 d:3 +N003 ( 3, 3) [000058] -----+----- \--* ADD int +N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 u:2 (last use) +N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) +N009 ( 9, 8) [000073] ---XG+----- * JTRUE void +N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int +N006 ( 5, 4) [000065] ---XG+----- +--* IND long +N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long +N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 u:2 +N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 +N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) +N011 ( 9, 9) [000090] ---XG+----- * JTRUE void +N010 ( 7, 7) [000408] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000082] ---XG+----- +--* IND long +N007 ( 4, 4) [000081] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N006 ( 3, 3) [000080] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000078] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 +N003 ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 +N009 ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) +N011 ( 9, 9) [000107] ---XG+----- * JTRUE void +N010 ( 7, 7) [000415] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000099] ---XG+----- +--* IND long +N007 ( 4, 4) [000098] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N006 ( 3, 3) [000097] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000095] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 +N003 ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 +N009 ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) +N011 ( 9, 9) [000124] ---XG+----- * JTRUE void +N010 ( 7, 7) [000422] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000116] ---XG+----- +--* IND long +N007 ( 4, 4) [000115] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N006 ( 3, 3) [000114] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000112] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 +N003 ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 +N009 ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) +N011 ( 9, 9) [000141] ---XG+----- * JTRUE void +N010 ( 7, 7) [000429] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000133] ---XG+----- +--* IND long +N007 ( 4, 4) [000132] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N006 ( 3, 3) [000131] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000129] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 +N003 ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 +N009 ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) +N011 ( 9, 9) [000158] ---XG+----- * JTRUE void +N010 ( 7, 7) [000436] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000150] ---XG+----- +--* IND long +N007 ( 4, 4) [000149] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N006 ( 3, 3) [000148] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000146] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 +N003 ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 +N009 ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) +N011 ( 9, 9) [000175] ---XG+----- * JTRUE void +N010 ( 7, 7) [000443] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000167] ---XG+----- +--* IND long +N007 ( 4, 4) [000166] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N006 ( 3, 3) [000165] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000163] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 +N003 ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 +N009 ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) +N011 ( 9, 9) [000192] ---XG+----- * JTRUE void +N010 ( 7, 7) [000450] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000184] ---XG+----- +--* IND long +N007 ( 4, 4) [000183] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N006 ( 3, 3) [000182] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000180] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 +N003 ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 +N009 ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB26 [0025] [1E2..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB24} succs={BB28,BB10} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) +N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 d:3 +N003 ( 3, 3) [000196] -----+----- \--* ADD long +N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 u:2 (last use) +N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 + +***** BB26 [0025] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) +N004 ( 5, 5) [000055] -----+----- * JTRUE void +N003 ( 3, 3) [000054] J----+-N--- \--* GE int +N001 ( 1, 1) [000052] -----+----- +--* LCL_VAR int V02 arg2 u:3 +N002 ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB11 [0010] +STMT00093 ( ??? ... ??? ) +N005 ( 0, 0) [000544] DA--------- * STORE_LCL_VAR long V04 loc1 d:12 +N004 ( 0, 0) [000543] ----------- \--* PHI long +N001 ( 0, 0) [000591] ----------- pred BB61 +--* PHI_ARG long V04 loc1 u:7 +N002 ( 0, 0) [000583] ----------- pred BB29 +--* PHI_ARG long V04 loc1 u:4 +N003 ( 0, 0) [000580] ----------- pred BB62 \--* PHI_ARG long V04 loc1 u:2 + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) +N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 +N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB13 [0012] +STMT00099 ( ??? ... ??? ) +N004 ( 0, 0) [000556] DA--------- * STORE_LCL_VAR long V04 loc1 d:11 +N003 ( 0, 0) [000555] ----------- \--* PHI long +N001 ( 0, 0) [000588] ----------- pred BB32 +--* PHI_ARG long V04 loc1 u:4 +N002 ( 0, 0) [000579] ----------- pred BB63 \--* PHI_ARG long V04 loc1 u:2 + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) +N004 ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:7 +N003 ( 3, 3) [000237] -----+----- \--* ADD int +N001 ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 u:11 (last use) +N002 ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB15 [0014] +STMT00100 ( ??? ... ??? ) +N004 ( 0, 0) [000558] DA--------- * STORE_LCL_VAR long V04 loc1 d:10 +N003 ( 0, 0) [000557] ----------- \--* PHI long +N001 ( 0, 0) [000587] ----------- pred BB34 +--* PHI_ARG long V04 loc1 u:4 +N002 ( 0, 0) [000578] ----------- pred BB64 \--* PHI_ARG long V04 loc1 u:2 + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) +N004 ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:6 +N003 ( 3, 3) [000231] -----+----- \--* ADD int +N001 ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 u:10 (last use) +N002 ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB17 [0016] +STMT00101 ( ??? ... ??? ) +N004 ( 0, 0) [000560] DA--------- * STORE_LCL_VAR long V04 loc1 d:9 +N003 ( 0, 0) [000559] ----------- \--* PHI long +N001 ( 0, 0) [000586] ----------- pred BB36 +--* PHI_ARG long V04 loc1 u:4 +N002 ( 0, 0) [000577] ----------- pred BB65 \--* PHI_ARG long V04 loc1 u:2 + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) +N004 ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:5 +N003 ( 3, 3) [000225] -----+----- \--* ADD int +N001 ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 u:9 (last use) +N002 ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) +N004 ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:4 +N003 ( 3, 3) [000219] -----+----- \--* ADD int +N001 ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) +N002 ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) +N004 ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:3 +N003 ( 3, 3) [000213] -----+----- \--* ADD int +N001 ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) +N002 ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) +N004 ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:2 +N003 ( 3, 3) [000207] -----+----- \--* ADD int +N001 ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) +N002 ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) +N004 ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:1 +N003 ( 3, 3) [000201] -----+----- \--* ADD int +N001 ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) +N002 ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB28 [0027] [???..???) -> BB69(1) (always), preds={BB26} succs={BB69} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB69 [0096] [1EE..1F5) -> BB60(0.5),BB29(0.5) (cond), preds={BB09,BB28} succs={BB29,BB60} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB69 [0096] +STMT00102 ( ??? ... ??? ) +N004 ( 0, 0) [000562] DA--------- * STORE_LCL_VAR int V02 arg2 d:4 +N003 ( 0, 0) [000561] ----------- \--* PHI int +N001 ( 0, 0) [000571] ----------- pred BB28 +--* PHI_ARG int V02 arg2 u:3 +N002 ( 0, 0) [000565] ----------- pred BB09 \--* PHI_ARG int V02 arg2 u:1 + +***** BB69 [0096] +STMT00097 ( ??? ... ??? ) +N004 ( 0, 0) [000552] DA--------- * STORE_LCL_VAR long V04 loc1 d:4 +N003 ( 0, 0) [000551] ----------- \--* PHI long +N001 ( 0, 0) [000572] ----------- pred BB28 +--* PHI_ARG long V04 loc1 u:3 +N002 ( 0, 0) [000566] ----------- pred BB09 \--* PHI_ARG long V04 loc1 u:1 + +***** BB69 [0096] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) +N004 ( 5, 5) [000246] -----+----- * JTRUE void +N003 ( 3, 3) [000245] J----+-N--- \--* LT int +N001 ( 1, 1) [000243] -----+----- +--* LCL_VAR int V02 arg2 u:4 +N002 ( 1, 1) [000244] -----+----- \--* CNS_INT int 4 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB69} succs={BB31,BB11} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) +N004 ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 d:5 +N003 ( 3, 3) [000281] -----+----- \--* ADD int +N001 ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 u:4 (last use) +N002 ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) +N009 ( 9, 8) [000296] ---XG+----- * JTRUE void +N008 ( 7, 6) [000457] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000288] ---XG+----- +--* IND long +N005 ( 3, 3) [000287] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N004 ( 2, 2) [000286] -----+-N--- | \--* LSH long +N002 ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 u:4 +N003 ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 +N007 ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) +N011 ( 9, 9) [000313] ---XG+----- * JTRUE void +N010 ( 7, 7) [000464] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000305] ---XG+----- +--* IND long +N007 ( 4, 4) [000304] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000297] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N006 ( 3, 3) [000303] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000301] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000298] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 +N003 ( 1, 1) [000300] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000302] -----+----- | \--* CNS_INT long -8 +N009 ( 1, 1) [000306] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) +N011 ( 9, 9) [000330] ---XG+----- * JTRUE void +N010 ( 7, 7) [000471] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000322] ---XG+----- +--* IND long +N007 ( 4, 4) [000321] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000314] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N006 ( 3, 3) [000320] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000318] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000315] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 +N003 ( 1, 1) [000317] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000319] -----+----- | \--* CNS_INT long -16 +N009 ( 1, 1) [000323] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) +N011 ( 9, 9) [000347] ---XG+----- * JTRUE void +N010 ( 7, 7) [000478] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000339] ---XG+----- +--* IND long +N007 ( 4, 4) [000338] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000331] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N006 ( 3, 3) [000337] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000335] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000332] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 +N003 ( 1, 1) [000334] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000336] -----+----- | \--* CNS_INT long -24 +N009 ( 1, 1) [000340] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) +N004 ( 3, 3) [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 d:5 +N003 ( 3, 3) [000351] -----+----- \--* ADD long +N001 ( 1, 1) [000348] -----+----- +--* LCL_VAR long V04 loc1 u:4 (last use) +N002 ( 1, 1) [000350] -----+----- \--* CNS_INT long -4 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB40,BB66} succs={BB40,BB61} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB38 [0037] +STMT00094 ( ??? ... ??? ) +N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 +N003 ( 0, 0) [000545] ----------- \--* PHI int +N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 +N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 + +***** BB38 [0037] +STMT00092 ( ??? ... ??? ) +N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 +N003 ( 0, 0) [000541] ----------- \--* PHI long +N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 +N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) +N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 +N003 ( 3, 3) [000253] -----+----- \--* ADD int +N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) +N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) +N009 ( 9, 8) [000268] ---XG+----- * JTRUE void +N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000260] ---XG+----- +--* IND long +N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long +N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 +N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 +N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) +N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 +N003 ( 3, 3) [000272] -----+----- \--* ADD long +N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) +N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 + +***** BB40 [0039] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) +N004 ( 5, 5) [000250] -----+----- * JTRUE void +N003 ( 3, 3) [000249] J----+-N--- \--* GT int +N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 +N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB37,BB69} succs={BB66,BB67} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB60 [0087] +STMT00096 ( ??? ... ??? ) +N004 ( 0, 0) [000550] DA--------- * STORE_LCL_VAR int V02 arg2 d:6 +N003 ( 0, 0) [000549] ----------- \--* PHI int +N001 ( 0, 0) [000584] ----------- pred BB37 +--* PHI_ARG int V02 arg2 u:5 +N002 ( 0, 0) [000581] ----------- pred BB69 \--* PHI_ARG int V02 arg2 u:4 + +***** BB60 [0087] +STMT00095 ( ??? ... ??? ) +N004 ( 0, 0) [000548] DA--------- * STORE_LCL_VAR long V04 loc1 d:6 +N003 ( 0, 0) [000547] ----------- \--* PHI long +N001 ( 0, 0) [000585] ----------- pred BB37 +--* PHI_ARG long V04 loc1 u:5 +N002 ( 0, 0) [000582] ----------- pred BB69 \--* PHI_ARG long V04 loc1 u:4 + +***** BB60 [0087] +STMT00089 ( 0x2E5[E--] ... ??? ) +N004 ( 5, 5) [000531] ----------- * JTRUE void +N003 ( 3, 3) [000532] J------N--- \--* LE int +N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 +N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB66 [0093] [???..???) -> BB38(1) (always), preds={BB60} succs={BB38} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB42 [0041] [???..???) -> BB67(1) (always), preds={BB40} succs={BB67} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB67 [0094] [2E9..2EB) (return), preds={BB42,BB60} succs={} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB67 [0094] +STMT00088 ( ??? ... ??? ) +N002 ( 2, 2) [000493] -----+----- * RETURN int +N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) +N004 ( 17, 11) [000044] --CXG+----- * CALL void +N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) +N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) +N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) + +SSA MEM: ByrefExposed, GcHeap = m:4 + +------------ BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB58 [0085] +STMT00091 ( ??? ... ??? ) +N010 ( 0, 0) [000540] DA--------- * STORE_LCL_VAR int V34 tmp29 d:9 +N009 ( 0, 0) [000539] ----------- \--* PHI int +N001 ( 0, 0) [000597] ----------- pred BB11 +--* PHI_ARG int V34 tmp29 u:8 +N002 ( 0, 0) [000596] ----------- pred BB13 +--* PHI_ARG int V34 tmp29 u:7 +N003 ( 0, 0) [000595] ----------- pred BB15 +--* PHI_ARG int V34 tmp29 u:6 +N004 ( 0, 0) [000594] ----------- pred BB17 +--* PHI_ARG int V34 tmp29 u:5 +N005 ( 0, 0) [000576] ----------- pred BB19 +--* PHI_ARG int V34 tmp29 u:4 +N006 ( 0, 0) [000575] ----------- pred BB21 +--* PHI_ARG int V34 tmp29 u:3 +N007 ( 0, 0) [000574] ----------- pred BB23 +--* PHI_ARG int V34 tmp29 u:2 +N008 ( 0, 0) [000573] ----------- pred BB25 \--* PHI_ARG int V34 tmp29 u:1 + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) +N002 ( 2, 2) [000492] -----+----- * RETURN int +N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +SSA checks completed successfully +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Early Value Propagation +no arrays or null checks in the method + +*************** Finishing PHASE Early Value Propagation [no changes] + +*************** Starting PHASE Do value numbering + +*************** In fgValueNumber() +optComputeLoopSideEffectsOfBlock BB10, mostNestedLoop L00 +optComputeLoopSideEffectsOfBlock BB12, mostNestedLoop L00 +optComputeLoopSideEffectsOfBlock BB14, mostNestedLoop L00 +optComputeLoopSideEffectsOfBlock BB16, mostNestedLoop L00 +optComputeLoopSideEffectsOfBlock BB18, mostNestedLoop L00 +optComputeLoopSideEffectsOfBlock BB20, mostNestedLoop L00 +optComputeLoopSideEffectsOfBlock BB22, mostNestedLoop L00 +optComputeLoopSideEffectsOfBlock BB24, mostNestedLoop L00 +optComputeLoopSideEffectsOfBlock BB26, mostNestedLoop L00 +optComputeLoopSideEffectsOfBlock BB38, mostNestedLoop L01 +optComputeLoopSideEffectsOfBlock BB40, mostNestedLoop L01 +Memory Initial Value in BB01 is: $140 +Visiting BB01 +The SSA definition for ByrefExposed (#1) at start of BB01 is $140 {InitVal($43)} +The SSA definition for GcHeap (#1) at start of BB01 is $140 {InitVal($43)} + +***** BB01, STMT00069(before) +N004 ( 5, 5) [000384] -----+----- * JTRUE void +N003 ( 3, 3) [000002] J----+-N--- \--* GE int +N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 +N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 + +N001 [000000] LCL_VAR V02 arg2 u:1 => $100 {InitVal($42)} +N002 [000001] CNS_INT 0 => $40 {IntCns 0} +N003 [000002] GE => $180 {GE($100, $40)} +N004 [000384] JTRUE => $VN.Void + +***** BB01, STMT00069(after) +N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000002] J----+-N--- \--* GE int $180 +N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 $40 + +Visiting BB52 + Reachable through pred BB01 +The SSA definition for ByrefExposed (#1) at start of BB52 is $140 {InitVal($43)} +The SSA definition for GcHeap (#1) at start of BB52 is $140 {InitVal($43)} + +***** BB52, STMT00070(before) +N003 ( 16, 15) [000387] --CXG+----- * CALL void +N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref +N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref + +N001 [000497] CNS_INT(h) => $1c0 {Hnd const: 0x4000000000443870 GTF_ICON_OBJ_HDL} +N002 [000498] CNS_INT(h) => $1c1 {Hnd const: 0x40000000004207C0 GTF_ICON_OBJ_HDL} + fgCurMemoryVN[GcHeap] assigned for CALL at [000387] to VN: $141. +N003 [000387] CALL => $VN.Void + +***** BB52, STMT00070(after) +N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void +N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref $1c0 +N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref $1c1 + +Visiting BB57 + Reachable through pred BB01 + Building memory phi def for block BB57. +The SSA definition for GcHeap (#3) at start of BB57 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB57, STMT00003(before) +N004 ( 5, 5) [000034] -----+----- * JTRUE void +N003 ( 3, 3) [000033] J----+-N--- \--* GE int +N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 +N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count + +N001 [000031] LCL_VAR V02 arg2 u:1 => $100 {InitVal($42)} +N002 [000032] CNS_INT 2 vector element count => $42 {IntCns 2} +N003 [000033] GE => $181 {GE($100, $42)} +N004 [000034] JTRUE => $VN.Void + +***** BB57, STMT00003(after) +N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000033] J----+-N--- \--* GE int $181 +N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 + +Visiting BB43 + Reachable through pred BB57 +The SSA definition for ByrefExposed (#3) at start of BB43 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB43 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB43, STMT00004(before) +N004 ( 17, 11) [000044] --CXG+----- * CALL void +N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) +N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) +N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) + +N001 [000041] LCL_VAR V00 arg0 u:1 (last use) => $80 {InitVal($40)} +N002 [000042] LCL_VAR V01 arg1 u:1 (last use) => $c0 {InitVal($41)} +N003 [000043] LCL_VAR V02 arg2 u:1 (last use) => $100 {InitVal($42)} + fgCurMemoryVN[GcHeap] assigned for CALL at [000044] to VN: $142. +N004 [000044] CALL => $VN.Void + +***** BB43, STMT00004(after) +N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void +N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) $80 +N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) $c0 +N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) $100 + +Visiting BB09 + Reachable through pred BB57 +The SSA definition for ByrefExposed (#3) at start of BB09 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB09 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB09, STMT00005(before) +N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 +N004 ( 4, 5) [000050] -----+----- \--* ADD long +N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int +N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 +N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 + +N001 [000046] LCL_VAR V02 arg2 u:1 => $100 {InitVal($42)} +N002 [000047] CAST => $240 {$100, long <- int} +N003 [000049] CNS_INT -1 => $280 {LngCns -1} +N004 [000050] ADD => $241 {ADD($240, $280)} +Tree [000051] assigned VN to local var V04/1: $241 {ADD($240, $280)} +N005 [000051] STORE_LCL_VAR V04 loc1 d:1 => $VN.Void + +***** BB09, STMT00005(after) +N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void +N004 ( 4, 5) [000050] -----+----- \--* ADD long $241 +N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int $240 +N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 $100 +N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 $280 + +--------- + +***** BB09, STMT00090(before) +N004 ( 5, 5) [000535] ----------- * JTRUE void +N003 ( 3, 3) [000536] J------N--- \--* LT int +N001 ( 1, 1) [000537] ----------- +--* LCL_VAR int V02 arg2 u:1 +N002 ( 1, 1) [000538] ----------- \--* CNS_INT int 8 + +N001 [000537] LCL_VAR V02 arg2 u:1 => $100 {InitVal($42)} +N002 [000538] CNS_INT 8 => $45 {IntCns 8} +N003 [000536] LT => $182 {LT($100, $45)} +N004 [000535] JTRUE => $VN.Void + +***** BB09, STMT00090(after) +N004 ( 5, 5) [000535] ----------- * JTRUE void $VN.Void +N003 ( 3, 3) [000536] J------N--- \--* LT int $182 +N001 ( 1, 1) [000537] ----------- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000538] ----------- \--* CNS_INT int 8 $45 + +Visiting BB68 + Reachable through pred BB09 +The SSA definition for ByrefExposed (#3) at start of BB68 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB68 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +Visiting BB10 + Reachable through pred BB26 + +***** BB10, STMT00103(before) +N004 ( 0, 0) [000564] DA--------- * STORE_LCL_VAR int V02 arg2 d:2 +N003 ( 0, 0) [000563] ----------- \--* PHI int +N001 ( 0, 0) [000569] ----------- pred BB26 +--* PHI_ARG int V02 arg2 u:3 +N002 ( 0, 0) [000567] ----------- pred BB68 \--* PHI_ARG int V02 arg2 u:1 + +SSA PHI definition: set VN of local 2/2 to $2c0 {PhiDef(V02 d:2, u:3, u:1)} . + +***** BB10, STMT00103(after) +N004 ( 0, 0) [000564] DA--------- * STORE_LCL_VAR int V02 arg2 d:2 $VN.Void +N003 ( 0, 0) [000563] ----------- \--* PHI int $2c0 +N001 ( 0, 0) [000569] ----------- pred BB26 +--* PHI_ARG int V02 arg2 u:3 +N002 ( 0, 0) [000567] ----------- pred BB68 \--* PHI_ARG int V02 arg2 u:1 $100 + +--------- + +***** BB10, STMT00098(before) +N004 ( 0, 0) [000554] DA--------- * STORE_LCL_VAR long V04 loc1 d:2 +N003 ( 0, 0) [000553] ----------- \--* PHI long +N001 ( 0, 0) [000570] ----------- pred BB26 +--* PHI_ARG long V04 loc1 u:3 +N002 ( 0, 0) [000568] ----------- pred BB68 \--* PHI_ARG long V04 loc1 u:1 + +SSA PHI definition: set VN of local 4/2 to $300 {PhiDef(V04 d:2, u:3, u:1)} . + +***** BB10, STMT00098(after) +N004 ( 0, 0) [000554] DA--------- * STORE_LCL_VAR long V04 loc1 d:2 $VN.Void +N003 ( 0, 0) [000553] ----------- \--* PHI long $300 +N001 ( 0, 0) [000570] ----------- pred BB26 +--* PHI_ARG long V04 loc1 u:3 +N002 ( 0, 0) [000568] ----------- pred BB68 \--* PHI_ARG long V04 loc1 u:1 $241 + +--------- +The SSA definition for ByrefExposed (#3) at start of BB10 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB10 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB10, STMT00007(before) +N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 d:3 +N003 ( 3, 3) [000058] -----+----- \--* ADD int +N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 u:2 (last use) +N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 + +N001 [000056] LCL_VAR V02 arg2 u:2 (last use) => $2c0 {PhiDef(V02 d:2, u:3, u:1)} +N002 [000057] CNS_INT -8 => $46 {IntCns -8} +N003 [000058] ADD => $183 {ADD($2c0, $46)} +Tree [000059] assigned VN to local var V02/3: $183 {ADD($2c0, $46)} +N004 [000059] STORE_LCL_VAR V02 arg2 d:3 => $VN.Void + +***** BB10, STMT00007(after) +N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 d:3 $VN.Void +N003 ( 3, 3) [000058] -----+----- \--* ADD int $183 +N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 u:2 (last use) $2c0 +N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 $46 + +--------- + +***** BB10, STMT00010(before) +N009 ( 9, 8) [000073] ---XG+----- * JTRUE void +N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int +N006 ( 5, 4) [000065] ---XG+----- +--* IND long +N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long +N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 u:2 +N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 +N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +N001 [000060] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} +N002 [000061] LCL_VAR V04 loc1 u:2 => $300 {PhiDef(V04 d:2, u:3, u:1)} +N003 [000062] CNS_INT 3 => $282 {LngCns 3} +N004 [000063] LSH => $242 {LSH($300, $282)} +N005 [000064] ADD => $340 {ADD($80, $242)} +N006 [000065] IND => +N007 [000066] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} +N008 [000401] NE => +N009 [000073] JTRUE => $401 {norm=$VN.Void, exc=$400 {NullPtrExc($340)}} + +***** BB10, STMT00010(after) +N009 ( 9, 8) [000073] ---XG+----- * JTRUE void $401 +N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int +N006 ( 5, 4) [000065] ---XG+----- +--* IND long +N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref $340 +N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long $242 +N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +Visiting BB12 + Reachable through pred BB10 +The SSA definition for ByrefExposed (#3) at start of BB12 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB12 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB12, STMT00013(before) +N011 ( 9, 9) [000090] ---XG+----- * JTRUE void +N010 ( 7, 7) [000408] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000082] ---XG+----- +--* IND long +N007 ( 4, 4) [000081] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N006 ( 3, 3) [000080] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000078] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 +N003 ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 +N009 ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +N001 [000074] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} +N002 [000075] LCL_VAR V04 loc1 u:2 => $300 {PhiDef(V04 d:2, u:3, u:1)} +N003 [000077] CNS_INT 3 => $282 {LngCns 3} +N004 [000078] LSH => $242 {LSH($300, $282)} +N005 [000079] CNS_INT -8 => $283 {LngCns -8} +N006 [000080] ADD => $245 {ADD($242, $283)} +N007 [000081] ADD => $341 {ADD($80, $245)} +N008 [000082] IND => +N009 [000083] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} +N010 [000408] NE => +N011 [000090] JTRUE => $403 {norm=$VN.Void, exc=$402 {NullPtrExc($341)}} + +***** BB12, STMT00013(after) +N011 ( 9, 9) [000090] ---XG+----- * JTRUE void $403 +N010 ( 7, 7) [000408] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000082] ---XG+----- +--* IND long +N007 ( 4, 4) [000081] -----+-N--- | \--* ADD byref $341 +N001 ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000080] -----+-N--- | \--* ADD long $245 +N004 ( 2, 2) [000078] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 $283 +N009 ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +Visiting BB14 + Reachable through pred BB12 +The SSA definition for ByrefExposed (#3) at start of BB14 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB14 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB14, STMT00016(before) +N011 ( 9, 9) [000107] ---XG+----- * JTRUE void +N010 ( 7, 7) [000415] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000099] ---XG+----- +--* IND long +N007 ( 4, 4) [000098] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N006 ( 3, 3) [000097] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000095] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 +N003 ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 +N009 ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +N001 [000091] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} +N002 [000092] LCL_VAR V04 loc1 u:2 => $300 {PhiDef(V04 d:2, u:3, u:1)} +N003 [000094] CNS_INT 3 => $282 {LngCns 3} +N004 [000095] LSH => $242 {LSH($300, $282)} +N005 [000096] CNS_INT -16 => $284 {LngCns -16} +N006 [000097] ADD => $248 {ADD($242, $284)} +N007 [000098] ADD => $342 {ADD($80, $248)} +N008 [000099] IND => +N009 [000100] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} +N010 [000415] NE => +N011 [000107] JTRUE => $405 {norm=$VN.Void, exc=$404 {NullPtrExc($342)}} + +***** BB14, STMT00016(after) +N011 ( 9, 9) [000107] ---XG+----- * JTRUE void $405 +N010 ( 7, 7) [000415] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000099] ---XG+----- +--* IND long +N007 ( 4, 4) [000098] -----+-N--- | \--* ADD byref $342 +N001 ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000097] -----+-N--- | \--* ADD long $248 +N004 ( 2, 2) [000095] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 $284 +N009 ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +Visiting BB16 + Reachable through pred BB14 +The SSA definition for ByrefExposed (#3) at start of BB16 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB16 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB16, STMT00019(before) +N011 ( 9, 9) [000124] ---XG+----- * JTRUE void +N010 ( 7, 7) [000422] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000116] ---XG+----- +--* IND long +N007 ( 4, 4) [000115] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N006 ( 3, 3) [000114] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000112] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 +N003 ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 +N009 ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +N001 [000108] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} +N002 [000109] LCL_VAR V04 loc1 u:2 => $300 {PhiDef(V04 d:2, u:3, u:1)} +N003 [000111] CNS_INT 3 => $282 {LngCns 3} +N004 [000112] LSH => $242 {LSH($300, $282)} +N005 [000113] CNS_INT -24 => $285 {LngCns -24} +N006 [000114] ADD => $24b {ADD($242, $285)} +N007 [000115] ADD => $343 {ADD($80, $24b)} +N008 [000116] IND => +N009 [000117] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} +N010 [000422] NE => +N011 [000124] JTRUE => $407 {norm=$VN.Void, exc=$406 {NullPtrExc($343)}} + +***** BB16, STMT00019(after) +N011 ( 9, 9) [000124] ---XG+----- * JTRUE void $407 +N010 ( 7, 7) [000422] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000116] ---XG+----- +--* IND long +N007 ( 4, 4) [000115] -----+-N--- | \--* ADD byref $343 +N001 ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000114] -----+-N--- | \--* ADD long $24b +N004 ( 2, 2) [000112] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 $285 +N009 ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +Visiting BB18 + Reachable through pred BB16 +The SSA definition for ByrefExposed (#3) at start of BB18 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB18 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB18, STMT00022(before) +N011 ( 9, 9) [000141] ---XG+----- * JTRUE void +N010 ( 7, 7) [000429] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000133] ---XG+----- +--* IND long +N007 ( 4, 4) [000132] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N006 ( 3, 3) [000131] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000129] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 +N003 ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 +N009 ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +N001 [000125] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} +N002 [000126] LCL_VAR V04 loc1 u:2 => $300 {PhiDef(V04 d:2, u:3, u:1)} +N003 [000128] CNS_INT 3 => $282 {LngCns 3} +N004 [000129] LSH => $242 {LSH($300, $282)} +N005 [000130] CNS_INT -32 => $286 {LngCns -32} +N006 [000131] ADD => $24e {ADD($242, $286)} +N007 [000132] ADD => $344 {ADD($80, $24e)} +N008 [000133] IND => +N009 [000134] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} +N010 [000429] NE => +N011 [000141] JTRUE => $409 {norm=$VN.Void, exc=$408 {NullPtrExc($344)}} + +***** BB18, STMT00022(after) +N011 ( 9, 9) [000141] ---XG+----- * JTRUE void $409 +N010 ( 7, 7) [000429] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000133] ---XG+----- +--* IND long +N007 ( 4, 4) [000132] -----+-N--- | \--* ADD byref $344 +N001 ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000131] -----+-N--- | \--* ADD long $24e +N004 ( 2, 2) [000129] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 $286 +N009 ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +Visiting BB20 + Reachable through pred BB18 +The SSA definition for ByrefExposed (#3) at start of BB20 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB20 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB20, STMT00025(before) +N011 ( 9, 9) [000158] ---XG+----- * JTRUE void +N010 ( 7, 7) [000436] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000150] ---XG+----- +--* IND long +N007 ( 4, 4) [000149] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N006 ( 3, 3) [000148] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000146] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 +N003 ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 +N009 ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +N001 [000142] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} +N002 [000143] LCL_VAR V04 loc1 u:2 => $300 {PhiDef(V04 d:2, u:3, u:1)} +N003 [000145] CNS_INT 3 => $282 {LngCns 3} +N004 [000146] LSH => $242 {LSH($300, $282)} +N005 [000147] CNS_INT -40 => $287 {LngCns -40} +N006 [000148] ADD => $251 {ADD($242, $287)} +N007 [000149] ADD => $345 {ADD($80, $251)} +N008 [000150] IND => +N009 [000151] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} +N010 [000436] NE => +N011 [000158] JTRUE => $40b {norm=$VN.Void, exc=$40a {NullPtrExc($345)}} + +***** BB20, STMT00025(after) +N011 ( 9, 9) [000158] ---XG+----- * JTRUE void $40b +N010 ( 7, 7) [000436] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000150] ---XG+----- +--* IND long +N007 ( 4, 4) [000149] -----+-N--- | \--* ADD byref $345 +N001 ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000148] -----+-N--- | \--* ADD long $251 +N004 ( 2, 2) [000146] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 $287 +N009 ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +Visiting BB22 + Reachable through pred BB20 +The SSA definition for ByrefExposed (#3) at start of BB22 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB22 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB22, STMT00028(before) +N011 ( 9, 9) [000175] ---XG+----- * JTRUE void +N010 ( 7, 7) [000443] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000167] ---XG+----- +--* IND long +N007 ( 4, 4) [000166] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N006 ( 3, 3) [000165] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000163] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 +N003 ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 +N009 ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +N001 [000159] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} +N002 [000160] LCL_VAR V04 loc1 u:2 => $300 {PhiDef(V04 d:2, u:3, u:1)} +N003 [000162] CNS_INT 3 => $282 {LngCns 3} +N004 [000163] LSH => $242 {LSH($300, $282)} +N005 [000164] CNS_INT -48 => $288 {LngCns -48} +N006 [000165] ADD => $254 {ADD($242, $288)} +N007 [000166] ADD => $346 {ADD($80, $254)} +N008 [000167] IND => +N009 [000168] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} +N010 [000443] NE => +N011 [000175] JTRUE => $40d {norm=$VN.Void, exc=$40c {NullPtrExc($346)}} + +***** BB22, STMT00028(after) +N011 ( 9, 9) [000175] ---XG+----- * JTRUE void $40d +N010 ( 7, 7) [000443] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000167] ---XG+----- +--* IND long +N007 ( 4, 4) [000166] -----+-N--- | \--* ADD byref $346 +N001 ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000165] -----+-N--- | \--* ADD long $254 +N004 ( 2, 2) [000163] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 $288 +N009 ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +Visiting BB24 + Reachable through pred BB22 +The SSA definition for ByrefExposed (#3) at start of BB24 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB24 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB24, STMT00031(before) +N011 ( 9, 9) [000192] ---XG+----- * JTRUE void +N010 ( 7, 7) [000450] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000184] ---XG+----- +--* IND long +N007 ( 4, 4) [000183] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N006 ( 3, 3) [000182] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000180] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 +N003 ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 +N009 ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +N001 [000176] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} +N002 [000177] LCL_VAR V04 loc1 u:2 => $300 {PhiDef(V04 d:2, u:3, u:1)} +N003 [000179] CNS_INT 3 => $282 {LngCns 3} +N004 [000180] LSH => $242 {LSH($300, $282)} +N005 [000181] CNS_INT -56 => $289 {LngCns -56} +N006 [000182] ADD => $257 {ADD($242, $289)} +N007 [000183] ADD => $347 {ADD($80, $257)} +N008 [000184] IND => +N009 [000185] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} +N010 [000450] NE => +N011 [000192] JTRUE => $40f {norm=$VN.Void, exc=$40e {NullPtrExc($347)}} + +***** BB24, STMT00031(after) +N011 ( 9, 9) [000192] ---XG+----- * JTRUE void $40f +N010 ( 7, 7) [000450] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000184] ---XG+----- +--* IND long +N007 ( 4, 4) [000183] -----+-N--- | \--* ADD byref $347 +N001 ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000182] -----+-N--- | \--* ADD long $257 +N004 ( 2, 2) [000180] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 $289 +N009 ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +Visiting BB26 + Reachable through pred BB24 +The SSA definition for ByrefExposed (#3) at start of BB26 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB26 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB26, STMT00032(before) +N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 d:3 +N003 ( 3, 3) [000196] -----+----- \--* ADD long +N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 u:2 (last use) +N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 + +N001 [000193] LCL_VAR V04 loc1 u:2 (last use) => $300 {PhiDef(V04 d:2, u:3, u:1)} +N002 [000195] CNS_INT -8 => $283 {LngCns -8} +N003 [000196] ADD => $25a {ADD($300, $283)} +Tree [000197] assigned VN to local var V04/3: $25a {ADD($300, $283)} +N004 [000197] STORE_LCL_VAR V04 loc1 d:3 => $VN.Void + +***** BB26, STMT00032(after) +N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 d:3 $VN.Void +N003 ( 3, 3) [000196] -----+----- \--* ADD long $25a +N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 u:2 (last use) $300 +N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 $283 + +--------- + +***** BB26, STMT00006(before) +N004 ( 5, 5) [000055] -----+----- * JTRUE void +N003 ( 3, 3) [000054] J----+-N--- \--* GE int +N001 ( 1, 1) [000052] -----+----- +--* LCL_VAR int V02 arg2 u:3 +N002 ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 + +N001 [000052] LCL_VAR V02 arg2 u:3 => $183 {ADD($2c0, $46)} +N002 [000053] CNS_INT 8 => $45 {IntCns 8} +N003 [000054] GE => $1a4 {GE($183, $45)} +N004 [000055] JTRUE => $VN.Void + +***** BB26, STMT00006(after) +N004 ( 5, 5) [000055] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000054] J----+-N--- \--* GE int $1a4 +N001 ( 1, 1) [000052] -----+----- +--* LCL_VAR int V02 arg2 u:3 $183 +N002 ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 $45 + +Can't update phi arg [000569] with $183 -- varies in L00 +SSA PHI definition: set VN of local 2/2 to $2c0 {PhiDef(V02 d:2, u:3, u:1)} . +Can't update phi arg [000570] with $25a -- varies in L00 +SSA PHI definition: set VN of local 4/2 to $300 {PhiDef(V04 d:2, u:3, u:1)} . +Visiting BB28 + Reachable through pred BB26 +The SSA definition for ByrefExposed (#3) at start of BB28 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB28 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +Visiting BB69 + Reachable through pred BB09 + +***** BB69, STMT00102(before) +N004 ( 0, 0) [000562] DA--------- * STORE_LCL_VAR int V02 arg2 d:4 +N003 ( 0, 0) [000561] ----------- \--* PHI int +N001 ( 0, 0) [000571] ----------- pred BB28 +--* PHI_ARG int V02 arg2 u:3 +N002 ( 0, 0) [000565] ----------- pred BB09 \--* PHI_ARG int V02 arg2 u:1 + +SSA PHI definition: set VN of local 2/4 to $2c1 {PhiDef(V02 d:4, u:3, u:1)} . + +***** BB69, STMT00102(after) +N004 ( 0, 0) [000562] DA--------- * STORE_LCL_VAR int V02 arg2 d:4 $VN.Void +N003 ( 0, 0) [000561] ----------- \--* PHI int $2c1 +N001 ( 0, 0) [000571] ----------- pred BB28 +--* PHI_ARG int V02 arg2 u:3 $183 +N002 ( 0, 0) [000565] ----------- pred BB09 \--* PHI_ARG int V02 arg2 u:1 $100 + +--------- + +***** BB69, STMT00097(before) +N004 ( 0, 0) [000552] DA--------- * STORE_LCL_VAR long V04 loc1 d:4 +N003 ( 0, 0) [000551] ----------- \--* PHI long +N001 ( 0, 0) [000572] ----------- pred BB28 +--* PHI_ARG long V04 loc1 u:3 +N002 ( 0, 0) [000566] ----------- pred BB09 \--* PHI_ARG long V04 loc1 u:1 + +SSA PHI definition: set VN of local 4/4 to $301 {PhiDef(V04 d:4, u:3, u:1)} . + +***** BB69, STMT00097(after) +N004 ( 0, 0) [000552] DA--------- * STORE_LCL_VAR long V04 loc1 d:4 $VN.Void +N003 ( 0, 0) [000551] ----------- \--* PHI long $301 +N001 ( 0, 0) [000572] ----------- pred BB28 +--* PHI_ARG long V04 loc1 u:3 $25a +N002 ( 0, 0) [000566] ----------- pred BB09 \--* PHI_ARG long V04 loc1 u:1 $241 + +--------- +The SSA definition for ByrefExposed (#3) at start of BB69 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB69 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB69, STMT00041(before) +N004 ( 5, 5) [000246] -----+----- * JTRUE void +N003 ( 3, 3) [000245] J----+-N--- \--* LT int +N001 ( 1, 1) [000243] -----+----- +--* LCL_VAR int V02 arg2 u:4 +N002 ( 1, 1) [000244] -----+----- \--* CNS_INT int 4 + +N001 [000243] LCL_VAR V02 arg2 u:4 => $2c1 {PhiDef(V02 d:4, u:3, u:1)} +N002 [000244] CNS_INT 4 => $47 {IntCns 4} +N003 [000245] LT => $1a5 {LT($2c1, $47)} +N004 [000246] JTRUE => $VN.Void + +***** BB69, STMT00041(after) +N004 ( 5, 5) [000246] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000245] J----+-N--- \--* LT int $1a5 +N001 ( 1, 1) [000243] -----+----- +--* LCL_VAR int V02 arg2 u:4 $2c1 +N002 ( 1, 1) [000244] -----+----- \--* CNS_INT int 4 $47 + +Visiting BB29 + Reachable through pred BB69 +The SSA definition for ByrefExposed (#3) at start of BB29 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB29 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB29, STMT00050(before) +N004 ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 d:5 +N003 ( 3, 3) [000281] -----+----- \--* ADD int +N001 ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 u:4 (last use) +N002 ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 + +N001 [000279] LCL_VAR V02 arg2 u:4 (last use) => $2c1 {PhiDef(V02 d:4, u:3, u:1)} +N002 [000280] CNS_INT -4 => $48 {IntCns -4} +N003 [000281] ADD => $1a6 {ADD($2c1, $48)} +Tree [000282] assigned VN to local var V02/5: $1a6 {ADD($2c1, $48)} +N004 [000282] STORE_LCL_VAR V02 arg2 d:5 => $VN.Void + +***** BB29, STMT00050(after) +N004 ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 d:5 $VN.Void +N003 ( 3, 3) [000281] -----+----- \--* ADD int $1a6 +N001 ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 u:4 (last use) $2c1 +N002 ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 $48 + +--------- + +***** BB29, STMT00053(before) +N009 ( 9, 8) [000296] ---XG+----- * JTRUE void +N008 ( 7, 6) [000457] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000288] ---XG+----- +--* IND long +N005 ( 3, 3) [000287] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N004 ( 2, 2) [000286] -----+-N--- | \--* LSH long +N002 ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 u:4 +N003 ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 +N007 ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +N001 [000283] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} +N002 [000284] LCL_VAR V04 loc1 u:4 => $301 {PhiDef(V04 d:4, u:3, u:1)} +N003 [000285] CNS_INT 3 => $282 {LngCns 3} +N004 [000286] LSH => $25b {LSH($301, $282)} +N005 [000287] ADD => $348 {ADD($80, $25b)} +N006 [000288] IND => +N007 [000289] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} +N008 [000457] EQ => +N009 [000296] JTRUE => $411 {norm=$VN.Void, exc=$410 {NullPtrExc($348)}} + +***** BB29, STMT00053(after) +N009 ( 9, 8) [000296] ---XG+----- * JTRUE void $411 +N008 ( 7, 6) [000457] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000288] ---XG+----- +--* IND long +N005 ( 3, 3) [000287] -----+-N--- | \--* ADD byref $348 +N001 ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000286] -----+-N--- | \--* LSH long $25b +N002 ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +Visiting BB31 + Reachable through pred BB29 +The SSA definition for ByrefExposed (#3) at start of BB31 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB31 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB31, STMT00056(before) +N011 ( 9, 9) [000313] ---XG+----- * JTRUE void +N010 ( 7, 7) [000464] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000305] ---XG+----- +--* IND long +N007 ( 4, 4) [000304] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000297] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N006 ( 3, 3) [000303] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000301] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000298] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 +N003 ( 1, 1) [000300] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000302] -----+----- | \--* CNS_INT long -8 +N009 ( 1, 1) [000306] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +N001 [000297] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} +N002 [000298] LCL_VAR V04 loc1 u:4 => $301 {PhiDef(V04 d:4, u:3, u:1)} +N003 [000300] CNS_INT 3 => $282 {LngCns 3} +N004 [000301] LSH => $25b {LSH($301, $282)} +N005 [000302] CNS_INT -8 => $283 {LngCns -8} +N006 [000303] ADD => $25e {ADD($25b, $283)} +N007 [000304] ADD => $349 {ADD($80, $25e)} +N008 [000305] IND => +N009 [000306] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} +N010 [000464] NE => +N011 [000313] JTRUE => $413 {norm=$VN.Void, exc=$412 {NullPtrExc($349)}} + +***** BB31, STMT00056(after) +N011 ( 9, 9) [000313] ---XG+----- * JTRUE void $413 +N010 ( 7, 7) [000464] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000305] ---XG+----- +--* IND long +N007 ( 4, 4) [000304] -----+-N--- | \--* ADD byref $349 +N001 ( 1, 1) [000297] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000303] -----+-N--- | \--* ADD long $25e +N004 ( 2, 2) [000301] -----+-N--- | +--* LSH long $25b +N002 ( 1, 1) [000298] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000300] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000302] -----+----- | \--* CNS_INT long -8 $283 +N009 ( 1, 1) [000306] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +Visiting BB33 + Reachable through pred BB31 +The SSA definition for ByrefExposed (#3) at start of BB33 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB33 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB33, STMT00059(before) +N011 ( 9, 9) [000330] ---XG+----- * JTRUE void +N010 ( 7, 7) [000471] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000322] ---XG+----- +--* IND long +N007 ( 4, 4) [000321] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000314] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N006 ( 3, 3) [000320] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000318] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000315] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 +N003 ( 1, 1) [000317] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000319] -----+----- | \--* CNS_INT long -16 +N009 ( 1, 1) [000323] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +N001 [000314] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} +N002 [000315] LCL_VAR V04 loc1 u:4 => $301 {PhiDef(V04 d:4, u:3, u:1)} +N003 [000317] CNS_INT 3 => $282 {LngCns 3} +N004 [000318] LSH => $25b {LSH($301, $282)} +N005 [000319] CNS_INT -16 => $284 {LngCns -16} +N006 [000320] ADD => $261 {ADD($25b, $284)} +N007 [000321] ADD => $34a {ADD($80, $261)} +N008 [000322] IND => +N009 [000323] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} +N010 [000471] NE => +N011 [000330] JTRUE => $415 {norm=$VN.Void, exc=$414 {NullPtrExc($34a)}} + +***** BB33, STMT00059(after) +N011 ( 9, 9) [000330] ---XG+----- * JTRUE void $415 +N010 ( 7, 7) [000471] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000322] ---XG+----- +--* IND long +N007 ( 4, 4) [000321] -----+-N--- | \--* ADD byref $34a +N001 ( 1, 1) [000314] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000320] -----+-N--- | \--* ADD long $261 +N004 ( 2, 2) [000318] -----+-N--- | +--* LSH long $25b +N002 ( 1, 1) [000315] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000317] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000319] -----+----- | \--* CNS_INT long -16 $284 +N009 ( 1, 1) [000323] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +Visiting BB35 + Reachable through pred BB33 +The SSA definition for ByrefExposed (#3) at start of BB35 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB35 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB35, STMT00062(before) +N011 ( 9, 9) [000347] ---XG+----- * JTRUE void +N010 ( 7, 7) [000478] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000339] ---XG+----- +--* IND long +N007 ( 4, 4) [000338] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000331] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N006 ( 3, 3) [000337] -----+-N--- | \--* ADD long +N004 ( 2, 2) [000335] -----+-N--- | +--* LSH long +N002 ( 1, 1) [000332] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 +N003 ( 1, 1) [000334] -----+----- | | \--* CNS_INT long 3 +N005 ( 1, 1) [000336] -----+----- | \--* CNS_INT long -24 +N009 ( 1, 1) [000340] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +N001 [000331] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} +N002 [000332] LCL_VAR V04 loc1 u:4 => $301 {PhiDef(V04 d:4, u:3, u:1)} +N003 [000334] CNS_INT 3 => $282 {LngCns 3} +N004 [000335] LSH => $25b {LSH($301, $282)} +N005 [000336] CNS_INT -24 => $285 {LngCns -24} +N006 [000337] ADD => $264 {ADD($25b, $285)} +N007 [000338] ADD => $34b {ADD($80, $264)} +N008 [000339] IND => +N009 [000340] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} +N010 [000478] NE => +N011 [000347] JTRUE => $417 {norm=$VN.Void, exc=$416 {NullPtrExc($34b)}} + +***** BB35, STMT00062(after) +N011 ( 9, 9) [000347] ---XG+----- * JTRUE void $417 +N010 ( 7, 7) [000478] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000339] ---XG+----- +--* IND long +N007 ( 4, 4) [000338] -----+-N--- | \--* ADD byref $34b +N001 ( 1, 1) [000331] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000337] -----+-N--- | \--* ADD long $264 +N004 ( 2, 2) [000335] -----+-N--- | +--* LSH long $25b +N002 ( 1, 1) [000332] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000334] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000336] -----+----- | \--* CNS_INT long -24 $285 +N009 ( 1, 1) [000340] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +Visiting BB37 + Reachable through pred BB35 +The SSA definition for ByrefExposed (#3) at start of BB37 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB37 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB37, STMT00063(before) +N004 ( 3, 3) [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 d:5 +N003 ( 3, 3) [000351] -----+----- \--* ADD long +N001 ( 1, 1) [000348] -----+----- +--* LCL_VAR long V04 loc1 u:4 (last use) +N002 ( 1, 1) [000350] -----+----- \--* CNS_INT long -4 + +N001 [000348] LCL_VAR V04 loc1 u:4 (last use) => $301 {PhiDef(V04 d:4, u:3, u:1)} +N002 [000350] CNS_INT -4 => $28a {LngCns -4} +N003 [000351] ADD => $267 {ADD($301, $28a)} +Tree [000352] assigned VN to local var V04/5: $267 {ADD($301, $28a)} +N004 [000352] STORE_LCL_VAR V04 loc1 d:5 => $VN.Void + +***** BB37, STMT00063(after) +N004 ( 3, 3) [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 d:5 $VN.Void +N003 ( 3, 3) [000351] -----+----- \--* ADD long $267 +N001 ( 1, 1) [000348] -----+----- +--* LCL_VAR long V04 loc1 u:4 (last use) $301 +N002 ( 1, 1) [000350] -----+----- \--* CNS_INT long -4 $28a + +Visiting BB60 + Reachable through pred BB37 + +***** BB60, STMT00096(before) +N004 ( 0, 0) [000550] DA--------- * STORE_LCL_VAR int V02 arg2 d:6 +N003 ( 0, 0) [000549] ----------- \--* PHI int +N001 ( 0, 0) [000584] ----------- pred BB37 +--* PHI_ARG int V02 arg2 u:5 +N002 ( 0, 0) [000581] ----------- pred BB69 \--* PHI_ARG int V02 arg2 u:4 + +SSA PHI definition: set VN of local 2/6 to $2c2 {PhiDef(V02 d:6, u:5, u:4)} . + +***** BB60, STMT00096(after) +N004 ( 0, 0) [000550] DA--------- * STORE_LCL_VAR int V02 arg2 d:6 $VN.Void +N003 ( 0, 0) [000549] ----------- \--* PHI int $2c2 +N001 ( 0, 0) [000584] ----------- pred BB37 +--* PHI_ARG int V02 arg2 u:5 $1a6 +N002 ( 0, 0) [000581] ----------- pred BB69 \--* PHI_ARG int V02 arg2 u:4 $2c1 + +--------- + +***** BB60, STMT00095(before) +N004 ( 0, 0) [000548] DA--------- * STORE_LCL_VAR long V04 loc1 d:6 +N003 ( 0, 0) [000547] ----------- \--* PHI long +N001 ( 0, 0) [000585] ----------- pred BB37 +--* PHI_ARG long V04 loc1 u:5 +N002 ( 0, 0) [000582] ----------- pred BB69 \--* PHI_ARG long V04 loc1 u:4 + +SSA PHI definition: set VN of local 4/6 to $302 {PhiDef(V04 d:6, u:5, u:4)} . + +***** BB60, STMT00095(after) +N004 ( 0, 0) [000548] DA--------- * STORE_LCL_VAR long V04 loc1 d:6 $VN.Void +N003 ( 0, 0) [000547] ----------- \--* PHI long $302 +N001 ( 0, 0) [000585] ----------- pred BB37 +--* PHI_ARG long V04 loc1 u:5 $267 +N002 ( 0, 0) [000582] ----------- pred BB69 \--* PHI_ARG long V04 loc1 u:4 $301 + +--------- +The SSA definition for ByrefExposed (#3) at start of BB60 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB60 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB60, STMT00089(before) +N004 ( 5, 5) [000531] ----------- * JTRUE void +N003 ( 3, 3) [000532] J------N--- \--* LE int +N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 +N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 + +N001 [000533] LCL_VAR V02 arg2 u:6 => $2c2 {PhiDef(V02 d:6, u:5, u:4)} +N002 [000534] CNS_INT 0 => $40 {IntCns 0} +N003 [000532] LE => $1b7 {LE($2c2, $40)} +N004 [000531] JTRUE => $VN.Void + +***** BB60, STMT00089(after) +N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void +N003 ( 3, 3) [000532] J------N--- \--* LE int $1b7 +N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 +N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 + +Visiting BB66 + Reachable through pred BB60 +The SSA definition for ByrefExposed (#3) at start of BB66 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB66 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +Visiting BB38 + Reachable through pred BB40 + +***** BB38, STMT00094(before) +N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 +N003 ( 0, 0) [000545] ----------- \--* PHI int +N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 +N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 + +SSA PHI definition: set VN of local 2/7 to $2c3 {PhiDef(V02 d:7, u:8, u:6)} . + +***** BB38, STMT00094(after) +N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 $VN.Void +N003 ( 0, 0) [000545] ----------- \--* PHI int $2c3 +N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 +N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 $2c2 + +--------- + +***** BB38, STMT00092(before) +N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 +N003 ( 0, 0) [000541] ----------- \--* PHI long +N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 +N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 + +SSA PHI definition: set VN of local 4/7 to $303 {PhiDef(V04 d:7, u:8, u:6)} . + +***** BB38, STMT00092(after) +N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 $VN.Void +N003 ( 0, 0) [000541] ----------- \--* PHI long $303 +N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 +N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 $302 + +--------- +The SSA definition for ByrefExposed (#3) at start of BB38 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB38 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB38, STMT00043(before) +N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 +N003 ( 3, 3) [000253] -----+----- \--* ADD int +N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) +N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 + +N001 [000251] LCL_VAR V02 arg2 u:7 (last use) => $2c3 {PhiDef(V02 d:7, u:8, u:6)} +N002 [000252] CNS_INT -1 => $43 {IntCns -1} +N003 [000253] ADD => $1b8 {ADD($2c3, $43)} +Tree [000254] assigned VN to local var V02/8: $1b8 {ADD($2c3, $43)} +N004 [000254] STORE_LCL_VAR V02 arg2 d:8 => $VN.Void + +***** BB38, STMT00043(after) +N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void +N003 ( 3, 3) [000253] -----+----- \--* ADD int $1b8 +N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) $2c3 +N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 $43 + +--------- + +***** BB38, STMT00046(before) +N009 ( 9, 8) [000268] ---XG+----- * JTRUE void +N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000260] ---XG+----- +--* IND long +N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref +N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 +N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long +N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 +N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 +N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 + +N001 [000255] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} +N002 [000256] LCL_VAR V04 loc1 u:7 => $303 {PhiDef(V04 d:7, u:8, u:6)} +N003 [000257] CNS_INT 3 => $282 {LngCns 3} +N004 [000258] LSH => $268 {LSH($303, $282)} +N005 [000259] ADD => $34c {ADD($80, $268)} +N006 [000260] IND => +N007 [000261] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} +N008 [000485] EQ => +N009 [000268] JTRUE => $419 {norm=$VN.Void, exc=$418 {NullPtrExc($34c)}} + +***** BB38, STMT00046(after) +N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 +N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000260] ---XG+----- +--* IND long +N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref $34c +N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long $268 +N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 $303 +N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +Visiting BB40 + Reachable through pred BB38 +The SSA definition for ByrefExposed (#3) at start of BB40 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB40 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB40, STMT00047(before) +N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 +N003 ( 3, 3) [000272] -----+----- \--* ADD long +N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) +N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 + +N001 [000269] LCL_VAR V04 loc1 u:7 (last use) => $303 {PhiDef(V04 d:7, u:8, u:6)} +N002 [000271] CNS_INT -1 => $280 {LngCns -1} +N003 [000272] ADD => $26b {ADD($303, $280)} +Tree [000273] assigned VN to local var V04/8: $26b {ADD($303, $280)} +N004 [000273] STORE_LCL_VAR V04 loc1 d:8 => $VN.Void + +***** BB40, STMT00047(after) +N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void +N003 ( 3, 3) [000272] -----+----- \--* ADD long $26b +N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) $303 +N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 $280 + +--------- + +***** BB40, STMT00042(before) +N004 ( 5, 5) [000250] -----+----- * JTRUE void +N003 ( 3, 3) [000249] J----+-N--- \--* GT int +N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 +N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 + +N001 [000247] LCL_VAR V02 arg2 u:8 => $1b8 {ADD($2c3, $43)} +N002 [000248] CNS_INT 0 => $40 {IntCns 0} +N003 [000249] GT => $1bd {GT($1b8, $40)} +N004 [000250] JTRUE => $VN.Void + +***** BB40, STMT00042(after) +N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000249] J----+-N--- \--* GT int $1bd +N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 $1b8 +N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 $40 + +Can't update phi arg [000592] with $1b8 -- varies in L01 +SSA PHI definition: set VN of local 2/7 to $2c3 {PhiDef(V02 d:7, u:8, u:6)} . +Can't update phi arg [000593] with $26b -- varies in L01 +SSA PHI definition: set VN of local 4/7 to $303 {PhiDef(V04 d:7, u:8, u:6)} . +Visiting BB61 + Reachable through pred BB38 +The SSA definition for ByrefExposed (#3) at start of BB61 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB61 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +Visiting BB42 + Reachable through pred BB40 +The SSA definition for ByrefExposed (#3) at start of BB42 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB42 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +Visiting BB67 + Reachable through pred BB42 +The SSA definition for ByrefExposed (#3) at start of BB67 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB67 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB67, STMT00088(before) +N002 ( 2, 2) [000493] -----+----- * RETURN int +N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 + +N001 [000277] CNS_INT -1 => $43 {IntCns -1} +N002 [000493] RETURN => $VN.Void + +***** BB67, STMT00088(after) +N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void +N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 $43 + +Visiting BB36 + Reachable through pred BB35 +The SSA definition for ByrefExposed (#3) at start of BB36 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB36 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +Visiting BB34 + Reachable through pred BB33 +The SSA definition for ByrefExposed (#3) at start of BB34 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB34 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +Visiting BB32 + Reachable through pred BB31 +The SSA definition for ByrefExposed (#3) at start of BB32 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB32 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +Visiting BB25 + Reachable through pred BB24 +The SSA definition for ByrefExposed (#3) at start of BB25 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB25 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB25, STMT00033(before) +N004 ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:1 +N003 ( 3, 3) [000201] -----+----- \--* ADD int +N001 ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) +N002 ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 + +N001 [000198] LCL_VAR V04 loc1 u:2 (last use) => $1be {$300, int <- long} +N002 [000501] CNS_INT -7 => $4a {IntCns -7} +N003 [000201] ADD => $1bf {ADD($1be, $4a)} +Tree [000502] assigned VN to local var V34/1: $1bf {ADD($1be, $4a)} +N004 [000502] STORE_LCL_VAR V34 tmp29 d:1 => $VN.Void + +***** BB25, STMT00033(after) +N004 ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:1 $VN.Void +N003 ( 3, 3) [000201] -----+----- \--* ADD int $1bf +N001 ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 $4a + +Visiting BB23 + Reachable through pred BB22 +The SSA definition for ByrefExposed (#3) at start of BB23 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB23 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB23, STMT00034(before) +N004 ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:2 +N003 ( 3, 3) [000207] -----+----- \--* ADD int +N001 ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) +N002 ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 + +N001 [000204] LCL_VAR V04 loc1 u:2 (last use) => $1be {$300, int <- long} +N002 [000504] CNS_INT -6 => $4b {IntCns -6} +N003 [000207] ADD => $440 {ADD($1be, $4b)} +Tree [000505] assigned VN to local var V34/2: $440 {ADD($1be, $4b)} +N004 [000505] STORE_LCL_VAR V34 tmp29 d:2 => $VN.Void + +***** BB23, STMT00034(after) +N004 ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:2 $VN.Void +N003 ( 3, 3) [000207] -----+----- \--* ADD int $440 +N001 ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 $4b + +Visiting BB21 + Reachable through pred BB20 +The SSA definition for ByrefExposed (#3) at start of BB21 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB21 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB21, STMT00035(before) +N004 ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:3 +N003 ( 3, 3) [000213] -----+----- \--* ADD int +N001 ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) +N002 ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 + +N001 [000210] LCL_VAR V04 loc1 u:2 (last use) => $1be {$300, int <- long} +N002 [000507] CNS_INT -5 => $4c {IntCns -5} +N003 [000213] ADD => $441 {ADD($1be, $4c)} +Tree [000508] assigned VN to local var V34/3: $441 {ADD($1be, $4c)} +N004 [000508] STORE_LCL_VAR V34 tmp29 d:3 => $VN.Void + +***** BB21, STMT00035(after) +N004 ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:3 $VN.Void +N003 ( 3, 3) [000213] -----+----- \--* ADD int $441 +N001 ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 $4c + +Visiting BB19 + Reachable through pred BB18 +The SSA definition for ByrefExposed (#3) at start of BB19 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB19 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB19, STMT00036(before) +N004 ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:4 +N003 ( 3, 3) [000219] -----+----- \--* ADD int +N001 ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) +N002 ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 + +N001 [000216] LCL_VAR V04 loc1 u:2 (last use) => $1be {$300, int <- long} +N002 [000510] CNS_INT -4 => $48 {IntCns -4} +N003 [000219] ADD => $442 {ADD($1be, $48)} +Tree [000511] assigned VN to local var V34/4: $442 {ADD($1be, $48)} +N004 [000511] STORE_LCL_VAR V34 tmp29 d:4 => $VN.Void + +***** BB19, STMT00036(after) +N004 ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:4 $VN.Void +N003 ( 3, 3) [000219] -----+----- \--* ADD int $442 +N001 ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 $48 + +Visiting BB65 + Reachable through pred BB16 +The SSA definition for ByrefExposed (#3) at start of BB65 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB65 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +Visiting BB17 + Reachable through pred BB36 + +***** BB17, STMT00101(before) +N004 ( 0, 0) [000560] DA--------- * STORE_LCL_VAR long V04 loc1 d:9 +N003 ( 0, 0) [000559] ----------- \--* PHI long +N001 ( 0, 0) [000586] ----------- pred BB36 +--* PHI_ARG long V04 loc1 u:4 +N002 ( 0, 0) [000577] ----------- pred BB65 \--* PHI_ARG long V04 loc1 u:2 + +SSA PHI definition: set VN of local 4/9 to $304 {PhiDef(V04 d:9, u:4, u:2)} . + +***** BB17, STMT00101(after) +N004 ( 0, 0) [000560] DA--------- * STORE_LCL_VAR long V04 loc1 d:9 $VN.Void +N003 ( 0, 0) [000559] ----------- \--* PHI long $304 +N001 ( 0, 0) [000586] ----------- pred BB36 +--* PHI_ARG long V04 loc1 u:4 $301 +N002 ( 0, 0) [000577] ----------- pred BB65 \--* PHI_ARG long V04 loc1 u:2 $300 + +--------- +The SSA definition for ByrefExposed (#3) at start of BB17 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB17 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB17, STMT00037(before) +N004 ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:5 +N003 ( 3, 3) [000225] -----+----- \--* ADD int +N001 ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 u:9 (last use) +N002 ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 + +N001 [000222] LCL_VAR V04 loc1 u:9 (last use) => $443 {$304, int <- long} +N002 [000513] CNS_INT -3 => $4d {IntCns -3} +N003 [000225] ADD => $444 {ADD($443, $4d)} +Tree [000514] assigned VN to local var V34/5: $444 {ADD($443, $4d)} +N004 [000514] STORE_LCL_VAR V34 tmp29 d:5 => $VN.Void + +***** BB17, STMT00037(after) +N004 ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:5 $VN.Void +N003 ( 3, 3) [000225] -----+----- \--* ADD int $444 +N001 ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 u:9 (last use) $443 +N002 ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 $4d + +Visiting BB64 + Reachable through pred BB14 +The SSA definition for ByrefExposed (#3) at start of BB64 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB64 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +Visiting BB15 + Reachable through pred BB34 + +***** BB15, STMT00100(before) +N004 ( 0, 0) [000558] DA--------- * STORE_LCL_VAR long V04 loc1 d:10 +N003 ( 0, 0) [000557] ----------- \--* PHI long +N001 ( 0, 0) [000587] ----------- pred BB34 +--* PHI_ARG long V04 loc1 u:4 +N002 ( 0, 0) [000578] ----------- pred BB64 \--* PHI_ARG long V04 loc1 u:2 + +SSA PHI definition: set VN of local 4/10 to $305 {PhiDef(V04 d:10, u:4, u:2)} . + +***** BB15, STMT00100(after) +N004 ( 0, 0) [000558] DA--------- * STORE_LCL_VAR long V04 loc1 d:10 $VN.Void +N003 ( 0, 0) [000557] ----------- \--* PHI long $305 +N001 ( 0, 0) [000587] ----------- pred BB34 +--* PHI_ARG long V04 loc1 u:4 $301 +N002 ( 0, 0) [000578] ----------- pred BB64 \--* PHI_ARG long V04 loc1 u:2 $300 + +--------- +The SSA definition for ByrefExposed (#3) at start of BB15 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB15 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB15, STMT00038(before) +N004 ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:6 +N003 ( 3, 3) [000231] -----+----- \--* ADD int +N001 ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 u:10 (last use) +N002 ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 + +N001 [000228] LCL_VAR V04 loc1 u:10 (last use) => $445 {$305, int <- long} +N002 [000516] CNS_INT -2 => $4e {IntCns -2} +N003 [000231] ADD => $446 {ADD($445, $4e)} +Tree [000517] assigned VN to local var V34/6: $446 {ADD($445, $4e)} +N004 [000517] STORE_LCL_VAR V34 tmp29 d:6 => $VN.Void + +***** BB15, STMT00038(after) +N004 ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:6 $VN.Void +N003 ( 3, 3) [000231] -----+----- \--* ADD int $446 +N001 ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 u:10 (last use) $445 +N002 ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 $4e + +Visiting BB63 + Reachable through pred BB12 +The SSA definition for ByrefExposed (#3) at start of BB63 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB63 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +Visiting BB13 + Reachable through pred BB32 + +***** BB13, STMT00099(before) +N004 ( 0, 0) [000556] DA--------- * STORE_LCL_VAR long V04 loc1 d:11 +N003 ( 0, 0) [000555] ----------- \--* PHI long +N001 ( 0, 0) [000588] ----------- pred BB32 +--* PHI_ARG long V04 loc1 u:4 +N002 ( 0, 0) [000579] ----------- pred BB63 \--* PHI_ARG long V04 loc1 u:2 + +SSA PHI definition: set VN of local 4/11 to $306 {PhiDef(V04 d:11, u:4, u:2)} . + +***** BB13, STMT00099(after) +N004 ( 0, 0) [000556] DA--------- * STORE_LCL_VAR long V04 loc1 d:11 $VN.Void +N003 ( 0, 0) [000555] ----------- \--* PHI long $306 +N001 ( 0, 0) [000588] ----------- pred BB32 +--* PHI_ARG long V04 loc1 u:4 $301 +N002 ( 0, 0) [000579] ----------- pred BB63 \--* PHI_ARG long V04 loc1 u:2 $300 + +--------- +The SSA definition for ByrefExposed (#3) at start of BB13 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB13 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB13, STMT00039(before) +N004 ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:7 +N003 ( 3, 3) [000237] -----+----- \--* ADD int +N001 ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 u:11 (last use) +N002 ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 + +N001 [000234] LCL_VAR V04 loc1 u:11 (last use) => $447 {$306, int <- long} +N002 [000519] CNS_INT -1 => $43 {IntCns -1} +N003 [000237] ADD => $448 {ADD($447, $43)} +Tree [000520] assigned VN to local var V34/7: $448 {ADD($447, $43)} +N004 [000520] STORE_LCL_VAR V34 tmp29 d:7 => $VN.Void + +***** BB13, STMT00039(after) +N004 ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:7 $VN.Void +N003 ( 3, 3) [000237] -----+----- \--* ADD int $448 +N001 ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 u:11 (last use) $447 +N002 ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 $43 + +Visiting BB62 + Reachable through pred BB10 +The SSA definition for ByrefExposed (#3) at start of BB62 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB62 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +Visiting BB11 + Reachable through pred BB29 + +***** BB11, STMT00093(before) +N005 ( 0, 0) [000544] DA--------- * STORE_LCL_VAR long V04 loc1 d:12 +N004 ( 0, 0) [000543] ----------- \--* PHI long +N001 ( 0, 0) [000591] ----------- pred BB61 +--* PHI_ARG long V04 loc1 u:7 +N002 ( 0, 0) [000583] ----------- pred BB29 +--* PHI_ARG long V04 loc1 u:4 +N003 ( 0, 0) [000580] ----------- pred BB62 \--* PHI_ARG long V04 loc1 u:2 + +SSA PHI definition: set VN of local 4/12 to $307 {PhiDef(V04 d:12, u:7, u:4, u:2)} . + +***** BB11, STMT00093(after) +N005 ( 0, 0) [000544] DA--------- * STORE_LCL_VAR long V04 loc1 d:12 $VN.Void +N004 ( 0, 0) [000543] ----------- \--* PHI long $307 +N001 ( 0, 0) [000591] ----------- pred BB61 +--* PHI_ARG long V04 loc1 u:7 $303 +N002 ( 0, 0) [000583] ----------- pred BB29 +--* PHI_ARG long V04 loc1 u:4 $301 +N003 ( 0, 0) [000580] ----------- pred BB62 \--* PHI_ARG long V04 loc1 u:2 $300 + +--------- +The SSA definition for ByrefExposed (#3) at start of BB11 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB11 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB11, STMT00040(before) +N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 +N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) + +N001 [000240] LCL_VAR V04 loc1 u:12 (last use) => $449 {$307, int <- long} +Tree [000521] assigned VN to local var V34/8: $449 {$307, int <- long} +N002 [000521] STORE_LCL_VAR V34 tmp29 d:8 => $VN.Void + +***** BB11, STMT00040(after) +N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void +N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) $449 + +Visiting BB58 + Reachable through pred BB11 + +***** BB58, STMT00091(before) +N010 ( 0, 0) [000540] DA--------- * STORE_LCL_VAR int V34 tmp29 d:9 +N009 ( 0, 0) [000539] ----------- \--* PHI int +N001 ( 0, 0) [000597] ----------- pred BB11 +--* PHI_ARG int V34 tmp29 u:8 +N002 ( 0, 0) [000596] ----------- pred BB13 +--* PHI_ARG int V34 tmp29 u:7 +N003 ( 0, 0) [000595] ----------- pred BB15 +--* PHI_ARG int V34 tmp29 u:6 +N004 ( 0, 0) [000594] ----------- pred BB17 +--* PHI_ARG int V34 tmp29 u:5 +N005 ( 0, 0) [000576] ----------- pred BB19 +--* PHI_ARG int V34 tmp29 u:4 +N006 ( 0, 0) [000575] ----------- pred BB21 +--* PHI_ARG int V34 tmp29 u:3 +N007 ( 0, 0) [000574] ----------- pred BB23 +--* PHI_ARG int V34 tmp29 u:2 +N008 ( 0, 0) [000573] ----------- pred BB25 \--* PHI_ARG int V34 tmp29 u:1 + +SSA PHI definition: set VN of local 34/9 to $2c4 {PhiDef(V34 d:9, u:8, u:7, u:6, u:5, u:4, u:3, u:2, u:1)} . + +***** BB58, STMT00091(after) +N010 ( 0, 0) [000540] DA--------- * STORE_LCL_VAR int V34 tmp29 d:9 $VN.Void +N009 ( 0, 0) [000539] ----------- \--* PHI int $2c4 +N001 ( 0, 0) [000597] ----------- pred BB11 +--* PHI_ARG int V34 tmp29 u:8 $449 +N002 ( 0, 0) [000596] ----------- pred BB13 +--* PHI_ARG int V34 tmp29 u:7 $448 +N003 ( 0, 0) [000595] ----------- pred BB15 +--* PHI_ARG int V34 tmp29 u:6 $446 +N004 ( 0, 0) [000594] ----------- pred BB17 +--* PHI_ARG int V34 tmp29 u:5 $444 +N005 ( 0, 0) [000576] ----------- pred BB19 +--* PHI_ARG int V34 tmp29 u:4 $442 +N006 ( 0, 0) [000575] ----------- pred BB21 +--* PHI_ARG int V34 tmp29 u:3 $441 +N007 ( 0, 0) [000574] ----------- pred BB23 +--* PHI_ARG int V34 tmp29 u:2 $440 +N008 ( 0, 0) [000573] ----------- pred BB25 \--* PHI_ARG int V34 tmp29 u:1 $1bf + +--------- +The SSA definition for ByrefExposed (#3) at start of BB58 is $200 {MemoryPhiDef(BB57, m:2, m:1)} +The SSA definition for GcHeap (#3) at start of BB58 is $200 {MemoryPhiDef(BB57, m:2, m:1)} + +***** BB58, STMT00087(before) +N002 ( 2, 2) [000492] -----+----- * RETURN int +N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) + +N001 [000491] LCL_VAR V34 tmp29 u:9 (last use) => $2c4 {PhiDef(V34 d:9, u:8, u:7, u:6, u:5, u:4, u:3, u:2, u:1)} +N002 [000492] RETURN => $VN.Void + +***** BB58, STMT00087(after) +N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void +N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) $2c4 + + +*************** Finishing PHASE Do value numbering +Trees after Do value numbering + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(0.5),BB68(0.5) ( cond ) i +BB68 [0095] 1 BB09 0.50 [???..???)-> BB10(1) (always) i +BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target +BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd +BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd +BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd +BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd +BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal +BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal +BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i +BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal +BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i +BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal +BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i +BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal +BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i +BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i +BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i +BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i +BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i +BB28 [0027] 1 BB26 0.50 [???..???)-> BB69(1) (always) i +BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB69 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i +BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i +BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i +BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i +BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd +BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal +BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal +BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i +BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall +BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} +SSA MEM: ByrefExposed, GcHeap = m:1 + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000002] J----+-N--- \--* GE int $180 +N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 $40 + +SSA MEM: ByrefExposed, GcHeap = m:1 + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} +SSA MEM: ByrefExposed, GcHeap = m:1 + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void +N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref $1c0 +N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref $1c1 + +SSA MEM: ByrefExposed, GcHeap = m:2 + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} +SSA MEM: ByrefExposed, GcHeap = phi(m:2, m:1) + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) +N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000033] J----+-N--- \--* GE int $181 +N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB09 [0008] [068..073) -> BB69(0.5),BB68(0.5) (cond), preds={BB57} succs={BB68,BB69} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) +N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void +N004 ( 4, 5) [000050] -----+----- \--* ADD long $241 +N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int $240 +N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 $100 +N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 $280 + +***** BB09 [0008] +STMT00090 ( 0x1E7[E--] ... ??? ) +N004 ( 5, 5) [000535] ----------- * JTRUE void $VN.Void +N003 ( 3, 3) [000536] J------N--- \--* LT int $182 +N001 ( 1, 1) [000537] ----------- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000538] ----------- \--* CNS_INT int 8 $45 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB68 [0095] [???..???) -> BB10(1) (always), preds={BB09} succs={BB10} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB26,BB68} succs={BB62,BB12} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB10 [0009] +STMT00103 ( ??? ... ??? ) +N004 ( 0, 0) [000564] DA--------- * STORE_LCL_VAR int V02 arg2 d:2 $VN.Void +N003 ( 0, 0) [000563] ----------- \--* PHI int $2c0 +N001 ( 0, 0) [000569] ----------- pred BB26 +--* PHI_ARG int V02 arg2 u:3 +N002 ( 0, 0) [000567] ----------- pred BB68 \--* PHI_ARG int V02 arg2 u:1 $100 + +***** BB10 [0009] +STMT00098 ( ??? ... ??? ) +N004 ( 0, 0) [000554] DA--------- * STORE_LCL_VAR long V04 loc1 d:2 $VN.Void +N003 ( 0, 0) [000553] ----------- \--* PHI long $300 +N001 ( 0, 0) [000570] ----------- pred BB26 +--* PHI_ARG long V04 loc1 u:3 +N002 ( 0, 0) [000568] ----------- pred BB68 \--* PHI_ARG long V04 loc1 u:1 $241 + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) +N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 d:3 $VN.Void +N003 ( 3, 3) [000058] -----+----- \--* ADD int $183 +N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 u:2 (last use) $2c0 +N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 $46 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) +N009 ( 9, 8) [000073] ---XG+----- * JTRUE void $401 +N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int +N006 ( 5, 4) [000065] ---XG+----- +--* IND long +N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref $340 +N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long $242 +N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) +N011 ( 9, 9) [000090] ---XG+----- * JTRUE void $403 +N010 ( 7, 7) [000408] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000082] ---XG+----- +--* IND long +N007 ( 4, 4) [000081] -----+-N--- | \--* ADD byref $341 +N001 ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000080] -----+-N--- | \--* ADD long $245 +N004 ( 2, 2) [000078] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 $283 +N009 ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) +N011 ( 9, 9) [000107] ---XG+----- * JTRUE void $405 +N010 ( 7, 7) [000415] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000099] ---XG+----- +--* IND long +N007 ( 4, 4) [000098] -----+-N--- | \--* ADD byref $342 +N001 ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000097] -----+-N--- | \--* ADD long $248 +N004 ( 2, 2) [000095] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 $284 +N009 ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) +N011 ( 9, 9) [000124] ---XG+----- * JTRUE void $407 +N010 ( 7, 7) [000422] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000116] ---XG+----- +--* IND long +N007 ( 4, 4) [000115] -----+-N--- | \--* ADD byref $343 +N001 ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000114] -----+-N--- | \--* ADD long $24b +N004 ( 2, 2) [000112] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 $285 +N009 ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) +N011 ( 9, 9) [000141] ---XG+----- * JTRUE void $409 +N010 ( 7, 7) [000429] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000133] ---XG+----- +--* IND long +N007 ( 4, 4) [000132] -----+-N--- | \--* ADD byref $344 +N001 ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000131] -----+-N--- | \--* ADD long $24e +N004 ( 2, 2) [000129] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 $286 +N009 ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) +N011 ( 9, 9) [000158] ---XG+----- * JTRUE void $40b +N010 ( 7, 7) [000436] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000150] ---XG+----- +--* IND long +N007 ( 4, 4) [000149] -----+-N--- | \--* ADD byref $345 +N001 ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000148] -----+-N--- | \--* ADD long $251 +N004 ( 2, 2) [000146] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 $287 +N009 ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) +N011 ( 9, 9) [000175] ---XG+----- * JTRUE void $40d +N010 ( 7, 7) [000443] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000167] ---XG+----- +--* IND long +N007 ( 4, 4) [000166] -----+-N--- | \--* ADD byref $346 +N001 ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000165] -----+-N--- | \--* ADD long $254 +N004 ( 2, 2) [000163] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 $288 +N009 ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) +N011 ( 9, 9) [000192] ---XG+----- * JTRUE void $40f +N010 ( 7, 7) [000450] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000184] ---XG+----- +--* IND long +N007 ( 4, 4) [000183] -----+-N--- | \--* ADD byref $347 +N001 ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000182] -----+-N--- | \--* ADD long $257 +N004 ( 2, 2) [000180] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 $289 +N009 ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB26 [0025] [1E2..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB24} succs={BB28,BB10} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) +N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 d:3 $VN.Void +N003 ( 3, 3) [000196] -----+----- \--* ADD long $25a +N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 u:2 (last use) $300 +N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 $283 + +***** BB26 [0025] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) +N004 ( 5, 5) [000055] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000054] J----+-N--- \--* GE int $1a4 +N001 ( 1, 1) [000052] -----+----- +--* LCL_VAR int V02 arg2 u:3 $183 +N002 ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 $45 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB11 [0010] +STMT00093 ( ??? ... ??? ) +N005 ( 0, 0) [000544] DA--------- * STORE_LCL_VAR long V04 loc1 d:12 $VN.Void +N004 ( 0, 0) [000543] ----------- \--* PHI long $307 +N001 ( 0, 0) [000591] ----------- pred BB61 +--* PHI_ARG long V04 loc1 u:7 $303 +N002 ( 0, 0) [000583] ----------- pred BB29 +--* PHI_ARG long V04 loc1 u:4 $301 +N003 ( 0, 0) [000580] ----------- pred BB62 \--* PHI_ARG long V04 loc1 u:2 $300 + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) +N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void +N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) $449 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB13 [0012] +STMT00099 ( ??? ... ??? ) +N004 ( 0, 0) [000556] DA--------- * STORE_LCL_VAR long V04 loc1 d:11 $VN.Void +N003 ( 0, 0) [000555] ----------- \--* PHI long $306 +N001 ( 0, 0) [000588] ----------- pred BB32 +--* PHI_ARG long V04 loc1 u:4 $301 +N002 ( 0, 0) [000579] ----------- pred BB63 \--* PHI_ARG long V04 loc1 u:2 $300 + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) +N004 ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:7 $VN.Void +N003 ( 3, 3) [000237] -----+----- \--* ADD int $448 +N001 ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 u:11 (last use) $447 +N002 ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 $43 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB15 [0014] +STMT00100 ( ??? ... ??? ) +N004 ( 0, 0) [000558] DA--------- * STORE_LCL_VAR long V04 loc1 d:10 $VN.Void +N003 ( 0, 0) [000557] ----------- \--* PHI long $305 +N001 ( 0, 0) [000587] ----------- pred BB34 +--* PHI_ARG long V04 loc1 u:4 $301 +N002 ( 0, 0) [000578] ----------- pred BB64 \--* PHI_ARG long V04 loc1 u:2 $300 + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) +N004 ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:6 $VN.Void +N003 ( 3, 3) [000231] -----+----- \--* ADD int $446 +N001 ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 u:10 (last use) $445 +N002 ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 $4e + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB17 [0016] +STMT00101 ( ??? ... ??? ) +N004 ( 0, 0) [000560] DA--------- * STORE_LCL_VAR long V04 loc1 d:9 $VN.Void +N003 ( 0, 0) [000559] ----------- \--* PHI long $304 +N001 ( 0, 0) [000586] ----------- pred BB36 +--* PHI_ARG long V04 loc1 u:4 $301 +N002 ( 0, 0) [000577] ----------- pred BB65 \--* PHI_ARG long V04 loc1 u:2 $300 + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) +N004 ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:5 $VN.Void +N003 ( 3, 3) [000225] -----+----- \--* ADD int $444 +N001 ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 u:9 (last use) $443 +N002 ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 $4d + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) +N004 ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:4 $VN.Void +N003 ( 3, 3) [000219] -----+----- \--* ADD int $442 +N001 ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 $48 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) +N004 ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:3 $VN.Void +N003 ( 3, 3) [000213] -----+----- \--* ADD int $441 +N001 ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 $4c + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) +N004 ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:2 $VN.Void +N003 ( 3, 3) [000207] -----+----- \--* ADD int $440 +N001 ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 $4b + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) +N004 ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:1 $VN.Void +N003 ( 3, 3) [000201] -----+----- \--* ADD int $1bf +N001 ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 $4a + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB28 [0027] [???..???) -> BB69(1) (always), preds={BB26} succs={BB69} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB69 [0096] [1EE..1F5) -> BB60(0.5),BB29(0.5) (cond), preds={BB09,BB28} succs={BB29,BB60} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB69 [0096] +STMT00102 ( ??? ... ??? ) +N004 ( 0, 0) [000562] DA--------- * STORE_LCL_VAR int V02 arg2 d:4 $VN.Void +N003 ( 0, 0) [000561] ----------- \--* PHI int $2c1 +N001 ( 0, 0) [000571] ----------- pred BB28 +--* PHI_ARG int V02 arg2 u:3 $183 +N002 ( 0, 0) [000565] ----------- pred BB09 \--* PHI_ARG int V02 arg2 u:1 $100 + +***** BB69 [0096] +STMT00097 ( ??? ... ??? ) +N004 ( 0, 0) [000552] DA--------- * STORE_LCL_VAR long V04 loc1 d:4 $VN.Void +N003 ( 0, 0) [000551] ----------- \--* PHI long $301 +N001 ( 0, 0) [000572] ----------- pred BB28 +--* PHI_ARG long V04 loc1 u:3 $25a +N002 ( 0, 0) [000566] ----------- pred BB09 \--* PHI_ARG long V04 loc1 u:1 $241 + +***** BB69 [0096] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) +N004 ( 5, 5) [000246] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000245] J----+-N--- \--* LT int $1a5 +N001 ( 1, 1) [000243] -----+----- +--* LCL_VAR int V02 arg2 u:4 $2c1 +N002 ( 1, 1) [000244] -----+----- \--* CNS_INT int 4 $47 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB69} succs={BB31,BB11} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) +N004 ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 d:5 $VN.Void +N003 ( 3, 3) [000281] -----+----- \--* ADD int $1a6 +N001 ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 u:4 (last use) $2c1 +N002 ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 $48 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) +N009 ( 9, 8) [000296] ---XG+----- * JTRUE void $411 +N008 ( 7, 6) [000457] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000288] ---XG+----- +--* IND long +N005 ( 3, 3) [000287] -----+-N--- | \--* ADD byref $348 +N001 ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000286] -----+-N--- | \--* LSH long $25b +N002 ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) +N011 ( 9, 9) [000313] ---XG+----- * JTRUE void $413 +N010 ( 7, 7) [000464] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000305] ---XG+----- +--* IND long +N007 ( 4, 4) [000304] -----+-N--- | \--* ADD byref $349 +N001 ( 1, 1) [000297] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000303] -----+-N--- | \--* ADD long $25e +N004 ( 2, 2) [000301] -----+-N--- | +--* LSH long $25b +N002 ( 1, 1) [000298] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000300] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000302] -----+----- | \--* CNS_INT long -8 $283 +N009 ( 1, 1) [000306] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) +N011 ( 9, 9) [000330] ---XG+----- * JTRUE void $415 +N010 ( 7, 7) [000471] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000322] ---XG+----- +--* IND long +N007 ( 4, 4) [000321] -----+-N--- | \--* ADD byref $34a +N001 ( 1, 1) [000314] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000320] -----+-N--- | \--* ADD long $261 +N004 ( 2, 2) [000318] -----+-N--- | +--* LSH long $25b +N002 ( 1, 1) [000315] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000317] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000319] -----+----- | \--* CNS_INT long -16 $284 +N009 ( 1, 1) [000323] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) +N011 ( 9, 9) [000347] ---XG+----- * JTRUE void $417 +N010 ( 7, 7) [000478] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000339] ---XG+----- +--* IND long +N007 ( 4, 4) [000338] -----+-N--- | \--* ADD byref $34b +N001 ( 1, 1) [000331] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000337] -----+-N--- | \--* ADD long $264 +N004 ( 2, 2) [000335] -----+-N--- | +--* LSH long $25b +N002 ( 1, 1) [000332] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000334] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000336] -----+----- | \--* CNS_INT long -24 $285 +N009 ( 1, 1) [000340] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) +N004 ( 3, 3) [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 d:5 $VN.Void +N003 ( 3, 3) [000351] -----+----- \--* ADD long $267 +N001 ( 1, 1) [000348] -----+----- +--* LCL_VAR long V04 loc1 u:4 (last use) $301 +N002 ( 1, 1) [000350] -----+----- \--* CNS_INT long -4 $28a + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB40,BB66} succs={BB40,BB61} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB38 [0037] +STMT00094 ( ??? ... ??? ) +N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 $VN.Void +N003 ( 0, 0) [000545] ----------- \--* PHI int $2c3 +N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 +N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 $2c2 + +***** BB38 [0037] +STMT00092 ( ??? ... ??? ) +N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 $VN.Void +N003 ( 0, 0) [000541] ----------- \--* PHI long $303 +N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 +N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 $302 + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) +N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void +N003 ( 3, 3) [000253] -----+----- \--* ADD int $1b8 +N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) $2c3 +N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 $43 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) +N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 +N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000260] ---XG+----- +--* IND long +N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref $34c +N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long $268 +N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 $303 +N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) +N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void +N003 ( 3, 3) [000272] -----+----- \--* ADD long $26b +N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) $303 +N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 $280 + +***** BB40 [0039] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) +N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000249] J----+-N--- \--* GT int $1bd +N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 $1b8 +N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 $40 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB37,BB69} succs={BB66,BB67} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB60 [0087] +STMT00096 ( ??? ... ??? ) +N004 ( 0, 0) [000550] DA--------- * STORE_LCL_VAR int V02 arg2 d:6 $VN.Void +N003 ( 0, 0) [000549] ----------- \--* PHI int $2c2 +N001 ( 0, 0) [000584] ----------- pred BB37 +--* PHI_ARG int V02 arg2 u:5 $1a6 +N002 ( 0, 0) [000581] ----------- pred BB69 \--* PHI_ARG int V02 arg2 u:4 $2c1 + +***** BB60 [0087] +STMT00095 ( ??? ... ??? ) +N004 ( 0, 0) [000548] DA--------- * STORE_LCL_VAR long V04 loc1 d:6 $VN.Void +N003 ( 0, 0) [000547] ----------- \--* PHI long $302 +N001 ( 0, 0) [000585] ----------- pred BB37 +--* PHI_ARG long V04 loc1 u:5 $267 +N002 ( 0, 0) [000582] ----------- pred BB69 \--* PHI_ARG long V04 loc1 u:4 $301 + +***** BB60 [0087] +STMT00089 ( 0x2E5[E--] ... ??? ) +N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void +N003 ( 3, 3) [000532] J------N--- \--* LE int $1b7 +N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 +N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB66 [0093] [???..???) -> BB38(1) (always), preds={BB60} succs={BB38} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB42 [0041] [???..???) -> BB67(1) (always), preds={BB40} succs={BB67} +SSA MEM: ByrefExposed, GcHeap = m:3 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB67 [0094] [2E9..2EB) (return), preds={BB42,BB60} succs={} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB67 [0094] +STMT00088 ( ??? ... ??? ) +N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void +N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 $43 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) +N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void +N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) $80 +N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) $c0 +N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) $100 + +SSA MEM: ByrefExposed, GcHeap = m:4 + +------------ BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} +SSA MEM: ByrefExposed, GcHeap = m:3 + +***** BB58 [0085] +STMT00091 ( ??? ... ??? ) +N010 ( 0, 0) [000540] DA--------- * STORE_LCL_VAR int V34 tmp29 d:9 $VN.Void +N009 ( 0, 0) [000539] ----------- \--* PHI int $2c4 +N001 ( 0, 0) [000597] ----------- pred BB11 +--* PHI_ARG int V34 tmp29 u:8 $449 +N002 ( 0, 0) [000596] ----------- pred BB13 +--* PHI_ARG int V34 tmp29 u:7 $448 +N003 ( 0, 0) [000595] ----------- pred BB15 +--* PHI_ARG int V34 tmp29 u:6 $446 +N004 ( 0, 0) [000594] ----------- pred BB17 +--* PHI_ARG int V34 tmp29 u:5 $444 +N005 ( 0, 0) [000576] ----------- pred BB19 +--* PHI_ARG int V34 tmp29 u:4 $442 +N006 ( 0, 0) [000575] ----------- pred BB21 +--* PHI_ARG int V34 tmp29 u:3 $441 +N007 ( 0, 0) [000574] ----------- pred BB23 +--* PHI_ARG int V34 tmp29 u:2 $440 +N008 ( 0, 0) [000573] ----------- pred BB25 \--* PHI_ARG int V34 tmp29 u:1 $1bf + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) +N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void +N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) $2c4 + +SSA MEM: ByrefExposed, GcHeap = m:3 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +SSA checks completed successfully +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Hoist loop code + +*************** In optHoistLoopCode() + +*************** Exception Handling table is empty +optHoistThisLoop processing L01 header: BB38 + Members (2): [BB38..BB40] + Entry: BB66 -> BB38 + Exit: BB38 -> BB61; BB40 -> BB42 + Back: BB40 -> BB38 + Loop body does not contain a call + + USEDEF (4)={V00 V01 V02 V04} + INOUT (4)={V00 V01 V02 V04} + LOOPVARS(4)={V00 V01 V02 V04} + Considering hoisting in entry block BB38 because L01 has more than one exit + -- BB38 (header block) + + HoistBlock BB38 (weight= 4 ) of loop L01 (head: BB38) +----- PreOrderVisit for [000254] STORE_LCL_VAR +----- PreOrderVisit for [000253] ADD +----- PreOrderVisit for [000251] LCL_VAR +----- PostOrderVisit for [000251] LCL_VAR + [000251] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop +----- PreOrderVisit for [000252] CNS_INT +----- PostOrderVisit for [000252] CNS_INT +CONST CSE is disabled +Standard CSE Heuristic +----- PostOrderVisit for [000253] ADD +----- PostOrderVisit for [000254] STORE_LCL_VAR + [000254] not invariant: variant child +----- PreOrderVisit for [000268] JTRUE +----- PreOrderVisit for [000485] EQ +----- PreOrderVisit for [000260] IND +----- PreOrderVisit for [000259] ADD +----- PreOrderVisit for [000255] LCL_VAR +----- PostOrderVisit for [000255] LCL_VAR + [000255] LCL_VAR: not hoistable: not handled by hoisting or CSE +----- PreOrderVisit for [000258] LSH +----- PreOrderVisit for [000256] LCL_VAR +----- PostOrderVisit for [000256] LCL_VAR + [000256] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop +----- PreOrderVisit for [000257] CNS_INT +----- PostOrderVisit for [000257] CNS_INT +----- PostOrderVisit for [000258] LSH +----- PostOrderVisit for [000259] ADD +----- PostOrderVisit for [000260] IND +----- PreOrderVisit for [000261] LCL_VAR +----- PostOrderVisit for [000261] LCL_VAR + [000261] LCL_VAR: not hoistable: not handled by hoisting or CSE +----- PostOrderVisit for [000485] EQ +----- PostOrderVisit for [000268] JTRUE + [000268] not invariant: variant child + + HoistBlock BB40 (weight= 4 ) of loop L01 (head: BB38) +----- PreOrderVisit for [000273] STORE_LCL_VAR +----- PreOrderVisit for [000272] ADD +----- PreOrderVisit for [000269] LCL_VAR +----- PostOrderVisit for [000269] LCL_VAR + [000269] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop +----- PreOrderVisit for [000271] CNS_INT +----- PostOrderVisit for [000271] CNS_INT +----- PostOrderVisit for [000272] ADD +----- PostOrderVisit for [000273] STORE_LCL_VAR + [000273] not invariant: variant child +----- PreOrderVisit for [000250] JTRUE +----- PreOrderVisit for [000249] GT +----- PreOrderVisit for [000247] LCL_VAR +----- PostOrderVisit for [000247] LCL_VAR + [000247] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop +----- PreOrderVisit for [000248] CNS_INT +----- PostOrderVisit for [000248] CNS_INT +----- PostOrderVisit for [000249] GT +----- PostOrderVisit for [000250] JTRUE + [000250] not invariant: variant child +Resetting m_pHoistedInCurLoop +optHoistThisLoop processing L00 header: BB10 + Members (9): [BB10..BB26] + Entry: BB68 -> BB10 + Exit: BB10 -> BB62; BB12 -> BB63; BB14 -> BB64; BB16 -> BB65; BB18 -> BB19; BB20 -> BB21; BB22 -> BB23; BB24 -> BB25; BB26 -> BB28 + Back: BB26 -> BB10 + Loop body does not contain a call + + USEDEF (4)={V00 V01 V02 V04} + INOUT (4)={V00 V01 V02 V04} + LOOPVARS(4)={V00 V01 V02 V04} + Considering hoisting in entry block BB10 because L00 has more than one exit + -- BB10 (header block) + + HoistBlock BB10 (weight= 4 ) of loop L00 (head: BB10) +----- PreOrderVisit for [000059] STORE_LCL_VAR +----- PreOrderVisit for [000058] ADD +----- PreOrderVisit for [000056] LCL_VAR +----- PostOrderVisit for [000056] LCL_VAR + [000056] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop +----- PreOrderVisit for [000057] CNS_INT +----- PostOrderVisit for [000057] CNS_INT +----- PostOrderVisit for [000058] ADD +----- PostOrderVisit for [000059] STORE_LCL_VAR + [000059] not invariant: variant child +----- PreOrderVisit for [000073] JTRUE +----- PreOrderVisit for [000401] NE +----- PreOrderVisit for [000065] IND +----- PreOrderVisit for [000064] ADD +----- PreOrderVisit for [000060] LCL_VAR +----- PostOrderVisit for [000060] LCL_VAR + [000060] LCL_VAR: not hoistable: not handled by hoisting or CSE +----- PreOrderVisit for [000063] LSH +----- PreOrderVisit for [000061] LCL_VAR +----- PostOrderVisit for [000061] LCL_VAR + [000061] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop +----- PreOrderVisit for [000062] CNS_INT +----- PostOrderVisit for [000062] CNS_INT +----- PostOrderVisit for [000063] LSH +----- PostOrderVisit for [000064] ADD +----- PostOrderVisit for [000065] IND +----- PreOrderVisit for [000066] LCL_VAR +----- PostOrderVisit for [000066] LCL_VAR + [000066] LCL_VAR: not hoistable: not handled by hoisting or CSE +----- PostOrderVisit for [000401] NE +----- PostOrderVisit for [000073] JTRUE + [000073] not invariant: variant child + + HoistBlock BB12 (weight= 4 ) of loop L00 (head: BB10) +----- PreOrderVisit for [000090] JTRUE +----- PreOrderVisit for [000408] NE +----- PreOrderVisit for [000082] IND +----- PreOrderVisit for [000081] ADD +----- PreOrderVisit for [000074] LCL_VAR +----- PostOrderVisit for [000074] LCL_VAR + [000074] LCL_VAR: not hoistable: not handled by hoisting or CSE +----- PreOrderVisit for [000080] ADD +----- PreOrderVisit for [000078] LSH +----- PreOrderVisit for [000075] LCL_VAR +----- PostOrderVisit for [000075] LCL_VAR + [000075] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop +----- PreOrderVisit for [000077] CNS_INT +----- PostOrderVisit for [000077] CNS_INT +----- PostOrderVisit for [000078] LSH +----- PreOrderVisit for [000079] CNS_INT +----- PostOrderVisit for [000079] CNS_INT +----- PostOrderVisit for [000080] ADD +----- PostOrderVisit for [000081] ADD +----- PostOrderVisit for [000082] IND +----- PreOrderVisit for [000083] LCL_VAR +----- PostOrderVisit for [000083] LCL_VAR + [000083] LCL_VAR: not hoistable: not handled by hoisting or CSE +----- PostOrderVisit for [000408] NE +----- PostOrderVisit for [000090] JTRUE + [000090] not invariant: variant child + + HoistBlock BB14 (weight= 4 ) of loop L00 (head: BB10) +----- PreOrderVisit for [000107] JTRUE +----- PreOrderVisit for [000415] NE +----- PreOrderVisit for [000099] IND +----- PreOrderVisit for [000098] ADD +----- PreOrderVisit for [000091] LCL_VAR +----- PostOrderVisit for [000091] LCL_VAR + [000091] LCL_VAR: not hoistable: not handled by hoisting or CSE +----- PreOrderVisit for [000097] ADD +----- PreOrderVisit for [000095] LSH +----- PreOrderVisit for [000092] LCL_VAR +----- PostOrderVisit for [000092] LCL_VAR + [000092] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop +----- PreOrderVisit for [000094] CNS_INT +----- PostOrderVisit for [000094] CNS_INT +----- PostOrderVisit for [000095] LSH +----- PreOrderVisit for [000096] CNS_INT +----- PostOrderVisit for [000096] CNS_INT +----- PostOrderVisit for [000097] ADD +----- PostOrderVisit for [000098] ADD +----- PostOrderVisit for [000099] IND +----- PreOrderVisit for [000100] LCL_VAR +----- PostOrderVisit for [000100] LCL_VAR + [000100] LCL_VAR: not hoistable: not handled by hoisting or CSE +----- PostOrderVisit for [000415] NE +----- PostOrderVisit for [000107] JTRUE + [000107] not invariant: variant child + + HoistBlock BB16 (weight= 4 ) of loop L00 (head: BB10) +----- PreOrderVisit for [000124] JTRUE +----- PreOrderVisit for [000422] NE +----- PreOrderVisit for [000116] IND +----- PreOrderVisit for [000115] ADD +----- PreOrderVisit for [000108] LCL_VAR +----- PostOrderVisit for [000108] LCL_VAR + [000108] LCL_VAR: not hoistable: not handled by hoisting or CSE +----- PreOrderVisit for [000114] ADD +----- PreOrderVisit for [000112] LSH +----- PreOrderVisit for [000109] LCL_VAR +----- PostOrderVisit for [000109] LCL_VAR + [000109] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop +----- PreOrderVisit for [000111] CNS_INT +----- PostOrderVisit for [000111] CNS_INT +----- PostOrderVisit for [000112] LSH +----- PreOrderVisit for [000113] CNS_INT +----- PostOrderVisit for [000113] CNS_INT +----- PostOrderVisit for [000114] ADD +----- PostOrderVisit for [000115] ADD +----- PostOrderVisit for [000116] IND +----- PreOrderVisit for [000117] LCL_VAR +----- PostOrderVisit for [000117] LCL_VAR + [000117] LCL_VAR: not hoistable: not handled by hoisting or CSE +----- PostOrderVisit for [000422] NE +----- PostOrderVisit for [000124] JTRUE + [000124] not invariant: variant child + + HoistBlock BB18 (weight= 4 ) of loop L00 (head: BB10) +----- PreOrderVisit for [000141] JTRUE +----- PreOrderVisit for [000429] NE +----- PreOrderVisit for [000133] IND +----- PreOrderVisit for [000132] ADD +----- PreOrderVisit for [000125] LCL_VAR +----- PostOrderVisit for [000125] LCL_VAR + [000125] LCL_VAR: not hoistable: not handled by hoisting or CSE +----- PreOrderVisit for [000131] ADD +----- PreOrderVisit for [000129] LSH +----- PreOrderVisit for [000126] LCL_VAR +----- PostOrderVisit for [000126] LCL_VAR + [000126] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop +----- PreOrderVisit for [000128] CNS_INT +----- PostOrderVisit for [000128] CNS_INT +----- PostOrderVisit for [000129] LSH +----- PreOrderVisit for [000130] CNS_INT +----- PostOrderVisit for [000130] CNS_INT +----- PostOrderVisit for [000131] ADD +----- PostOrderVisit for [000132] ADD +----- PostOrderVisit for [000133] IND +----- PreOrderVisit for [000134] LCL_VAR +----- PostOrderVisit for [000134] LCL_VAR + [000134] LCL_VAR: not hoistable: not handled by hoisting or CSE +----- PostOrderVisit for [000429] NE +----- PostOrderVisit for [000141] JTRUE + [000141] not invariant: variant child + + HoistBlock BB20 (weight= 4 ) of loop L00 (head: BB10) +----- PreOrderVisit for [000158] JTRUE +----- PreOrderVisit for [000436] NE +----- PreOrderVisit for [000150] IND +----- PreOrderVisit for [000149] ADD +----- PreOrderVisit for [000142] LCL_VAR +----- PostOrderVisit for [000142] LCL_VAR + [000142] LCL_VAR: not hoistable: not handled by hoisting or CSE +----- PreOrderVisit for [000148] ADD +----- PreOrderVisit for [000146] LSH +----- PreOrderVisit for [000143] LCL_VAR +----- PostOrderVisit for [000143] LCL_VAR + [000143] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop +----- PreOrderVisit for [000145] CNS_INT +----- PostOrderVisit for [000145] CNS_INT +----- PostOrderVisit for [000146] LSH +----- PreOrderVisit for [000147] CNS_INT +----- PostOrderVisit for [000147] CNS_INT +----- PostOrderVisit for [000148] ADD +----- PostOrderVisit for [000149] ADD +----- PostOrderVisit for [000150] IND +----- PreOrderVisit for [000151] LCL_VAR +----- PostOrderVisit for [000151] LCL_VAR + [000151] LCL_VAR: not hoistable: not handled by hoisting or CSE +----- PostOrderVisit for [000436] NE +----- PostOrderVisit for [000158] JTRUE + [000158] not invariant: variant child + + HoistBlock BB22 (weight= 4 ) of loop L00 (head: BB10) +----- PreOrderVisit for [000175] JTRUE +----- PreOrderVisit for [000443] NE +----- PreOrderVisit for [000167] IND +----- PreOrderVisit for [000166] ADD +----- PreOrderVisit for [000159] LCL_VAR +----- PostOrderVisit for [000159] LCL_VAR + [000159] LCL_VAR: not hoistable: not handled by hoisting or CSE +----- PreOrderVisit for [000165] ADD +----- PreOrderVisit for [000163] LSH +----- PreOrderVisit for [000160] LCL_VAR +----- PostOrderVisit for [000160] LCL_VAR + [000160] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop +----- PreOrderVisit for [000162] CNS_INT +----- PostOrderVisit for [000162] CNS_INT +----- PostOrderVisit for [000163] LSH +----- PreOrderVisit for [000164] CNS_INT +----- PostOrderVisit for [000164] CNS_INT +----- PostOrderVisit for [000165] ADD +----- PostOrderVisit for [000166] ADD +----- PostOrderVisit for [000167] IND +----- PreOrderVisit for [000168] LCL_VAR +----- PostOrderVisit for [000168] LCL_VAR + [000168] LCL_VAR: not hoistable: not handled by hoisting or CSE +----- PostOrderVisit for [000443] NE +----- PostOrderVisit for [000175] JTRUE + [000175] not invariant: variant child + + HoistBlock BB24 (weight= 4 ) of loop L00 (head: BB10) +----- PreOrderVisit for [000192] JTRUE +----- PreOrderVisit for [000450] NE +----- PreOrderVisit for [000184] IND +----- PreOrderVisit for [000183] ADD +----- PreOrderVisit for [000176] LCL_VAR +----- PostOrderVisit for [000176] LCL_VAR + [000176] LCL_VAR: not hoistable: not handled by hoisting or CSE +----- PreOrderVisit for [000182] ADD +----- PreOrderVisit for [000180] LSH +----- PreOrderVisit for [000177] LCL_VAR +----- PostOrderVisit for [000177] LCL_VAR + [000177] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop +----- PreOrderVisit for [000179] CNS_INT +----- PostOrderVisit for [000179] CNS_INT +----- PostOrderVisit for [000180] LSH +----- PreOrderVisit for [000181] CNS_INT +----- PostOrderVisit for [000181] CNS_INT +----- PostOrderVisit for [000182] ADD +----- PostOrderVisit for [000183] ADD +----- PostOrderVisit for [000184] IND +----- PreOrderVisit for [000185] LCL_VAR +----- PostOrderVisit for [000185] LCL_VAR + [000185] LCL_VAR: not hoistable: not handled by hoisting or CSE +----- PostOrderVisit for [000450] NE +----- PostOrderVisit for [000192] JTRUE + [000192] not invariant: variant child + + HoistBlock BB26 (weight= 4 ) of loop L00 (head: BB10) +----- PreOrderVisit for [000197] STORE_LCL_VAR +----- PreOrderVisit for [000196] ADD +----- PreOrderVisit for [000193] LCL_VAR +----- PostOrderVisit for [000193] LCL_VAR + [000193] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop +----- PreOrderVisit for [000195] CNS_INT +----- PostOrderVisit for [000195] CNS_INT +----- PostOrderVisit for [000196] ADD +----- PostOrderVisit for [000197] STORE_LCL_VAR + [000197] not invariant: variant child +----- PreOrderVisit for [000055] JTRUE +----- PreOrderVisit for [000054] GE +----- PreOrderVisit for [000052] LCL_VAR +----- PostOrderVisit for [000052] LCL_VAR + [000052] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop +----- PreOrderVisit for [000053] CNS_INT +----- PostOrderVisit for [000053] CNS_INT +----- PostOrderVisit for [000054] GE +----- PostOrderVisit for [000055] JTRUE + [000055] not invariant: variant child +Resetting m_pHoistedInCurLoop + +*************** Finishing PHASE Hoist loop code [no changes] + +*************** Starting PHASE VN based copy prop +Copy Assertion for BB01 + curSsaName stack: { } + +Copy Assertion for BB52 + curSsaName stack: { [000000]:V02/1 } + +Copy Assertion for BB57 + curSsaName stack: { [000000]:V02/1 } + +Copy Assertion for BB43 + curSsaName stack: { [000000]:V02/1 } + + Live vars after [000041]: {V00 V01 V02} -{V00} => {V01 V02} +orig [000041] copy [000000] VNs proved equivalent + Live vars after [000042]: {V01 V02} -{V01} => {V02} +orig [000042] copy [000041] VNs proved equivalent +orig [000042] copy [000000] VNs proved equivalent + Live vars after [000043]: {V02} -{V02} => {} +orig [000043] copy [000041] VNs proved equivalent +orig [000043] copy [000042] VNs proved equivalent +Copy Assertion for BB09 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000000]:V02/1 } + +orig [000046] copy [000041] VNs proved equivalent +orig [000046] copy [000042] VNs proved equivalent + Live vars after [000051]: {V00 V01 V02} +{V04} => {V00 V01 V02 V04} +orig [000537] copy [000041] VNs proved equivalent +orig [000537] copy [000042] VNs proved equivalent +orig [000537] copy [000051] VNs proved equivalent +Copy Assertion for BB68 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000000]:V02/1 [000051]:V04/1 } + +Copy Assertion for BB10 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000000]:V02/1 [000051]:V04/1 } + + Live vars after [000056]: {V00 V01 V02 V04} -{V02} => {V00 V01 V04} +orig [000056] copy [000041] VNs proved equivalent +orig [000056] copy [000042] VNs proved equivalent +orig [000056] copy [000554] VNs proved equivalent + Live vars after [000059]: {V00 V01 V04} +{V02} => {V00 V01 V02 V04} +orig [000060] copy [000042] VNs proved equivalent +orig [000060] copy [000059] VNs proved equivalent +orig [000060] copy [000554] VNs proved equivalent +orig [000061] copy [000041] VNs proved equivalent +orig [000061] copy [000042] VNs proved equivalent +orig [000061] copy [000059] VNs proved equivalent +orig [000066] copy [000041] VNs proved equivalent +orig [000066] copy [000059] VNs proved equivalent +orig [000066] copy [000554] VNs proved equivalent +Copy Assertion for BB12 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } + +orig [000074] copy [000042] VNs proved equivalent +orig [000074] copy [000059] VNs proved equivalent +orig [000074] copy [000554] VNs proved equivalent +orig [000075] copy [000041] VNs proved equivalent +orig [000075] copy [000042] VNs proved equivalent +orig [000075] copy [000059] VNs proved equivalent +orig [000083] copy [000041] VNs proved equivalent +orig [000083] copy [000059] VNs proved equivalent +orig [000083] copy [000554] VNs proved equivalent +Copy Assertion for BB14 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } + +orig [000091] copy [000042] VNs proved equivalent +orig [000091] copy [000059] VNs proved equivalent +orig [000091] copy [000554] VNs proved equivalent +orig [000092] copy [000041] VNs proved equivalent +orig [000092] copy [000042] VNs proved equivalent +orig [000092] copy [000059] VNs proved equivalent +orig [000100] copy [000041] VNs proved equivalent +orig [000100] copy [000059] VNs proved equivalent +orig [000100] copy [000554] VNs proved equivalent +Copy Assertion for BB16 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } + +orig [000108] copy [000042] VNs proved equivalent +orig [000108] copy [000059] VNs proved equivalent +orig [000108] copy [000554] VNs proved equivalent +orig [000109] copy [000041] VNs proved equivalent +orig [000109] copy [000042] VNs proved equivalent +orig [000109] copy [000059] VNs proved equivalent +orig [000117] copy [000041] VNs proved equivalent +orig [000117] copy [000059] VNs proved equivalent +orig [000117] copy [000554] VNs proved equivalent +Copy Assertion for BB18 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } + +orig [000125] copy [000042] VNs proved equivalent +orig [000125] copy [000059] VNs proved equivalent +orig [000125] copy [000554] VNs proved equivalent +orig [000126] copy [000041] VNs proved equivalent +orig [000126] copy [000042] VNs proved equivalent +orig [000126] copy [000059] VNs proved equivalent +orig [000134] copy [000041] VNs proved equivalent +orig [000134] copy [000059] VNs proved equivalent +orig [000134] copy [000554] VNs proved equivalent +Copy Assertion for BB20 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } + +orig [000142] copy [000042] VNs proved equivalent +orig [000142] copy [000059] VNs proved equivalent +orig [000142] copy [000554] VNs proved equivalent +orig [000143] copy [000041] VNs proved equivalent +orig [000143] copy [000042] VNs proved equivalent +orig [000143] copy [000059] VNs proved equivalent +orig [000151] copy [000041] VNs proved equivalent +orig [000151] copy [000059] VNs proved equivalent +orig [000151] copy [000554] VNs proved equivalent +Copy Assertion for BB22 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } + +orig [000159] copy [000042] VNs proved equivalent +orig [000159] copy [000059] VNs proved equivalent +orig [000159] copy [000554] VNs proved equivalent +orig [000160] copy [000041] VNs proved equivalent +orig [000160] copy [000042] VNs proved equivalent +orig [000160] copy [000059] VNs proved equivalent +orig [000168] copy [000041] VNs proved equivalent +orig [000168] copy [000059] VNs proved equivalent +orig [000168] copy [000554] VNs proved equivalent +Copy Assertion for BB24 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } + +orig [000176] copy [000042] VNs proved equivalent +orig [000176] copy [000059] VNs proved equivalent +orig [000176] copy [000554] VNs proved equivalent +orig [000177] copy [000041] VNs proved equivalent +orig [000177] copy [000042] VNs proved equivalent +orig [000177] copy [000059] VNs proved equivalent +orig [000185] copy [000041] VNs proved equivalent +orig [000185] copy [000059] VNs proved equivalent +orig [000185] copy [000554] VNs proved equivalent +Copy Assertion for BB26 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } + + Live vars after [000193]: {V00 V01 V02 V04} -{V04} => {V00 V01 V02} +orig [000193] copy [000041] VNs proved equivalent +orig [000193] copy [000042] VNs proved equivalent +orig [000193] copy [000059] VNs proved equivalent + Live vars after [000197]: {V00 V01 V02} +{V04} => {V00 V01 V02 V04} +orig [000052] copy [000041] VNs proved equivalent +orig [000052] copy [000042] VNs proved equivalent +orig [000052] copy [000197] VNs proved equivalent +Copy Assertion for BB28 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000197]:V04/3 } + +Copy Assertion for BB25 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } + + Live vars after [000198]: {V04} -{V04} => {} +orig [000198] copy [000041] VNs proved equivalent +orig [000198] copy [000042] VNs proved equivalent +orig [000198] copy [000059] VNs proved equivalent + Live vars after [000502]: {} +{V34} => {V34} +Copy Assertion for BB23 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } + + Live vars after [000204]: {V04} -{V04} => {} +orig [000204] copy [000041] VNs proved equivalent +orig [000204] copy [000042] VNs proved equivalent +orig [000204] copy [000059] VNs proved equivalent + Live vars after [000505]: {} +{V34} => {V34} +Copy Assertion for BB21 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } + + Live vars after [000210]: {V04} -{V04} => {} +orig [000210] copy [000041] VNs proved equivalent +orig [000210] copy [000042] VNs proved equivalent +orig [000210] copy [000059] VNs proved equivalent + Live vars after [000508]: {} +{V34} => {V34} +Copy Assertion for BB19 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } + + Live vars after [000216]: {V04} -{V04} => {} +orig [000216] copy [000041] VNs proved equivalent +orig [000216] copy [000042] VNs proved equivalent +orig [000216] copy [000059] VNs proved equivalent + Live vars after [000511]: {} +{V34} => {V34} +Copy Assertion for BB65 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } + +Copy Assertion for BB64 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } + +Copy Assertion for BB63 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } + +Copy Assertion for BB62 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } + +Copy Assertion for BB69 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000000]:V02/1 [000051]:V04/1 } + +orig [000243] copy [000041] VNs proved equivalent +orig [000243] copy [000042] VNs proved equivalent +orig [000243] copy [000552] VNs proved equivalent +Copy Assertion for BB29 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000562]:V02/4 [000552]:V04/4 } + + Live vars after [000279]: {V00 V01 V02 V04} -{V02} => {V00 V01 V04} +orig [000279] copy [000041] VNs proved equivalent +orig [000279] copy [000042] VNs proved equivalent +orig [000279] copy [000552] VNs proved equivalent + Live vars after [000282]: {V00 V01 V04} +{V02} => {V00 V01 V02 V04} +orig [000283] copy [000042] VNs proved equivalent +orig [000283] copy [000282] VNs proved equivalent +orig [000283] copy [000552] VNs proved equivalent +orig [000284] copy [000041] VNs proved equivalent +orig [000284] copy [000042] VNs proved equivalent +orig [000284] copy [000282] VNs proved equivalent +orig [000289] copy [000041] VNs proved equivalent +orig [000289] copy [000282] VNs proved equivalent +orig [000289] copy [000552] VNs proved equivalent +Copy Assertion for BB31 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000282]:V02/5 [000552]:V04/4 } + +orig [000297] copy [000042] VNs proved equivalent +orig [000297] copy [000282] VNs proved equivalent +orig [000297] copy [000552] VNs proved equivalent +orig [000298] copy [000041] VNs proved equivalent +orig [000298] copy [000042] VNs proved equivalent +orig [000298] copy [000282] VNs proved equivalent +orig [000306] copy [000041] VNs proved equivalent +orig [000306] copy [000282] VNs proved equivalent +orig [000306] copy [000552] VNs proved equivalent +Copy Assertion for BB33 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000282]:V02/5 [000552]:V04/4 } + +orig [000314] copy [000042] VNs proved equivalent +orig [000314] copy [000282] VNs proved equivalent +orig [000314] copy [000552] VNs proved equivalent +orig [000315] copy [000041] VNs proved equivalent +orig [000315] copy [000042] VNs proved equivalent +orig [000315] copy [000282] VNs proved equivalent +orig [000323] copy [000041] VNs proved equivalent +orig [000323] copy [000282] VNs proved equivalent +orig [000323] copy [000552] VNs proved equivalent +Copy Assertion for BB35 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000282]:V02/5 [000552]:V04/4 } + +orig [000331] copy [000042] VNs proved equivalent +orig [000331] copy [000282] VNs proved equivalent +orig [000331] copy [000552] VNs proved equivalent +orig [000332] copy [000041] VNs proved equivalent +orig [000332] copy [000042] VNs proved equivalent +orig [000332] copy [000282] VNs proved equivalent +orig [000340] copy [000041] VNs proved equivalent +orig [000340] copy [000282] VNs proved equivalent +orig [000340] copy [000552] VNs proved equivalent +Copy Assertion for BB37 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000282]:V02/5 [000552]:V04/4 } + + Live vars after [000348]: {V00 V01 V02 V04} -{V04} => {V00 V01 V02} +orig [000348] copy [000041] VNs proved equivalent +orig [000348] copy [000042] VNs proved equivalent +orig [000348] copy [000282] VNs proved equivalent + Live vars after [000352]: {V00 V01 V02} +{V04} => {V00 V01 V02 V04} +Copy Assertion for BB36 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000282]:V02/5 [000552]:V04/4 } + +Copy Assertion for BB34 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000282]:V02/5 [000552]:V04/4 } + +Copy Assertion for BB32 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000282]:V02/5 [000552]:V04/4 } + +Copy Assertion for BB60 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000562]:V02/4 [000552]:V04/4 } + +orig [000533] copy [000041] VNs proved equivalent +orig [000533] copy [000042] VNs proved equivalent +orig [000533] copy [000548] VNs proved equivalent +Copy Assertion for BB66 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000550]:V02/6 [000548]:V04/6 } + +Copy Assertion for BB38 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000550]:V02/6 [000548]:V04/6 } + + Live vars after [000251]: {V00 V01 V02 V04} -{V02} => {V00 V01 V04} +orig [000251] copy [000041] VNs proved equivalent +orig [000251] copy [000042] VNs proved equivalent +orig [000251] copy [000542] VNs proved equivalent + Live vars after [000254]: {V00 V01 V04} +{V02} => {V00 V01 V02 V04} +orig [000255] copy [000042] VNs proved equivalent +orig [000255] copy [000254] VNs proved equivalent +orig [000255] copy [000542] VNs proved equivalent +orig [000256] copy [000041] VNs proved equivalent +orig [000256] copy [000042] VNs proved equivalent +orig [000256] copy [000254] VNs proved equivalent +orig [000261] copy [000041] VNs proved equivalent +orig [000261] copy [000254] VNs proved equivalent +orig [000261] copy [000542] VNs proved equivalent +Copy Assertion for BB61 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000254]:V02/8 [000542]:V04/7 } + +Copy Assertion for BB40 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000254]:V02/8 [000542]:V04/7 } + + Live vars after [000269]: {V00 V01 V02 V04} -{V04} => {V00 V01 V02} +orig [000269] copy [000041] VNs proved equivalent +orig [000269] copy [000042] VNs proved equivalent +orig [000269] copy [000254] VNs proved equivalent + Live vars after [000273]: {V00 V01 V02} +{V04} => {V00 V01 V02 V04} +orig [000247] copy [000041] VNs proved equivalent +orig [000247] copy [000042] VNs proved equivalent +orig [000247] copy [000273] VNs proved equivalent +Copy Assertion for BB42 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000254]:V02/8 [000273]:V04/8 } + +Copy Assertion for BB67 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000550]:V02/6 [000548]:V04/6 } + +Copy Assertion for BB17 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000000]:V02/1 [000051]:V04/1 } + + Live vars after [000222]: {V04} -{V04} => {} +orig [000222] copy [000041] VNs proved equivalent +orig [000222] copy [000042] VNs proved equivalent +orig [000222] copy [000000] VNs proved equivalent + Live vars after [000514]: {} +{V34} => {V34} +Copy Assertion for BB15 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000000]:V02/1 [000051]:V04/1 } + + Live vars after [000228]: {V04} -{V04} => {} +orig [000228] copy [000041] VNs proved equivalent +orig [000228] copy [000042] VNs proved equivalent +orig [000228] copy [000000] VNs proved equivalent + Live vars after [000517]: {} +{V34} => {V34} +Copy Assertion for BB13 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000000]:V02/1 [000051]:V04/1 } + + Live vars after [000234]: {V04} -{V04} => {} +orig [000234] copy [000041] VNs proved equivalent +orig [000234] copy [000042] VNs proved equivalent +orig [000234] copy [000000] VNs proved equivalent + Live vars after [000520]: {} +{V34} => {V34} +Copy Assertion for BB11 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000000]:V02/1 [000051]:V04/1 } + + Live vars after [000240]: {V04} -{V04} => {} +orig [000240] copy [000041] VNs proved equivalent +orig [000240] copy [000042] VNs proved equivalent +orig [000240] copy [000000] VNs proved equivalent + Live vars after [000521]: {} +{V34} => {V34} +Copy Assertion for BB58 + curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000000]:V02/1 [000051]:V04/1 } + + Live vars after [000491]: {V34} -{V34} => {} +orig [000491] copy [000041] VNs proved equivalent +orig [000491] copy [000042] VNs proved equivalent +orig [000491] copy [000000] VNs proved equivalent +orig [000491] copy [000051] VNs proved equivalent + +*************** Finishing PHASE VN based copy prop [no changes] + +*************** Starting PHASE Redundant branch opts + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(0.5),BB68(0.5) ( cond ) i +BB68 [0095] 1 BB09 0.50 [???..???)-> BB10(1) (always) i +BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target +BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd +BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd +BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd +BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd +BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal +BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal +BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i +BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal +BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i +BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal +BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i +BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal +BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i +BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i +BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i +BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i +BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i +BB28 [0027] 1 BB26 0.50 [???..???)-> BB69(1) (always) i +BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB69 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i +BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i +BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i +BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i +BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd +BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal +BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal +BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i +BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall +BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +optRedundantRelop in BB26; jump tree is +N004 ( 5, 5) [000055] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000054] J----+-N--- \--* GE int $1a4 +N001 ( 1, 1) [000052] -----+----- +--* LCL_VAR int V02 arg2 u:3 $183 +N002 ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 $45 + ... checking previous tree +N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 d:3 $VN.Void +N003 ( 3, 3) [000196] -----+----- \--* ADD long $25a +N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 u:2 (last use) $300 +N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 $283 + -- prev tree VN is not related + +--- Trying RBO in BB26 --- +Relop [000054] BB26 value unknown, trying inference +BB26 has side effects; no threading + +--- Trying RBO in BB24 --- +Relop [000450] BB24 value unknown, trying inference +BB24 has side effects; no threading + +--- Trying RBO in BB22 --- +Relop [000443] BB22 value unknown, trying inference +BB22 has side effects; no threading + +--- Trying RBO in BB20 --- +Relop [000436] BB20 value unknown, trying inference +BB20 has side effects; no threading + +--- Trying RBO in BB18 --- +Relop [000429] BB18 value unknown, trying inference +BB18 has side effects; no threading + +--- Trying RBO in BB16 --- +Relop [000422] BB16 value unknown, trying inference +BB16 has side effects; no threading + +--- Trying RBO in BB14 --- +Relop [000415] BB14 value unknown, trying inference +BB14 has side effects; no threading + +--- Trying RBO in BB12 --- +Relop [000408] BB12 value unknown, trying inference +BB12 has side effects; no threading + +optRedundantRelop in BB10; jump tree is +N009 ( 9, 8) [000073] ---XG+----- * JTRUE void $401 +N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int +N006 ( 5, 4) [000065] ---XG+----- +--* IND long +N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref $340 +N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long $242 +N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + ... checking previous tree +N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 d:3 $VN.Void +N003 ( 3, 3) [000058] -----+----- \--* ADD int $183 +N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 u:2 (last use) $2c0 +N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 $46 + -- prev tree VN is not related + ... checking previous tree +N004 ( 0, 0) [000554] DA--------- * STORE_LCL_VAR long V04 loc1 d:2 $VN.Void +N003 ( 0, 0) [000553] ----------- \--* PHI long $300 +N001 ( 0, 0) [000570] ----------- pred BB26 +--* PHI_ARG long V04 loc1 u:3 +N002 ( 0, 0) [000568] ----------- pred BB68 \--* PHI_ARG long V04 loc1 u:1 $241 + -- prev tree is a phi + +--- Trying RBO in BB10 --- +Relop [000401] BB10 value unknown, trying inference +BB10 has global phi for V04.2; must look for phi uses +BB10 has side effects; no threading + +--- Trying RBO in BB35 --- +Relop [000478] BB35 value unknown, trying inference +BB35 has side effects; no threading + +--- Trying RBO in BB33 --- +Relop [000471] BB33 value unknown, trying inference +BB33 has side effects; no threading + +--- Trying RBO in BB31 --- +Relop [000464] BB31 value unknown, trying inference +BB31 has side effects; no threading + +optRedundantRelop in BB29; jump tree is +N009 ( 9, 8) [000296] ---XG+----- * JTRUE void $411 +N008 ( 7, 6) [000457] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000288] ---XG+----- +--* IND long +N005 ( 3, 3) [000287] -----+-N--- | \--* ADD byref $348 +N001 ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000286] -----+-N--- | \--* LSH long $25b +N002 ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + ... checking previous tree +N004 ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 d:5 $VN.Void +N003 ( 3, 3) [000281] -----+----- \--* ADD int $1a6 +N001 ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 u:4 (last use) $2c1 +N002 ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 $48 + -- prev tree VN is not related + +--- Trying RBO in BB29 --- +Relop [000457] BB29 value unknown, trying inference +BB29 has side effects; no threading + +optRedundantRelop in BB40; jump tree is +N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000249] J----+-N--- \--* GT int $1bd +N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 $1b8 +N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 $40 + ... checking previous tree +N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void +N003 ( 3, 3) [000272] -----+----- \--* ADD long $26b +N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) $303 +N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 $280 + -- prev tree VN is not related + +--- Trying RBO in BB40 --- +Relop [000249] BB40 value unknown, trying inference +BB40 has side effects; no threading + +optRedundantRelop in BB38; jump tree is +N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 +N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000260] ---XG+----- +--* IND long +N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref $34c +N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long $268 +N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 $303 +N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + ... checking previous tree +N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void +N003 ( 3, 3) [000253] -----+----- \--* ADD int $1b8 +N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) $2c3 +N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 $43 + -- prev tree VN is not related + ... checking previous tree +N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 $VN.Void +N003 ( 0, 0) [000541] ----------- \--* PHI long $303 +N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 +N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 $302 + -- prev tree is a phi + +--- Trying RBO in BB38 --- +Relop [000485] BB38 value unknown, trying inference +BB38 has global phi for V04.7; must look for phi uses +BB38 has side effects; no threading + +optRedundantRelop in BB60; jump tree is +N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void +N003 ( 3, 3) [000532] J------N--- \--* LE int $1b7 +N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 +N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 + ... checking previous tree +N004 ( 0, 0) [000548] DA--------- * STORE_LCL_VAR long V04 loc1 d:6 $VN.Void +N003 ( 0, 0) [000547] ----------- \--* PHI long $302 +N001 ( 0, 0) [000585] ----------- pred BB37 +--* PHI_ARG long V04 loc1 u:5 $267 +N002 ( 0, 0) [000582] ----------- pred BB69 \--* PHI_ARG long V04 loc1 u:4 $301 + -- prev tree is a phi + +--- Trying RBO in BB60 --- +Relop [000532] BB60 value unknown, trying inference +BB60 has global phi for V02.6; must look for phi uses +BB60 has global phi for V04.6; must look for phi uses +... JT-PHI [interestingVN] in BB60 relop first operand VN is PhiDef for V02 +N003 ( 3, 3) [000532] J------N--- * LE int $1b7 +N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 +N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 +Found local PHI [000550] for V02 +... substituting ($1a6,$40) for ($2c2,$40) in $1b7 gives $47d +BB37 is an ambiguous pred +... substituting ($2c1,$40) for ($2c2,$40) in $1b7 gives $47e +BB69 is an ambiguous pred +Could not find all uses for V02.6 in BB60 or its successors +BB60 has global phi uses we cannot safely account for; no phi-based threading +Checking BB60 for redundant dominating branches +failed -- BB69 does not share a successor with BB60 + +optRedundantRelop in BB69; jump tree is +N004 ( 5, 5) [000246] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000245] J----+-N--- \--* LT int $1a5 +N001 ( 1, 1) [000243] -----+----- +--* LCL_VAR int V02 arg2 u:4 $2c1 +N002 ( 1, 1) [000244] -----+----- \--* CNS_INT int 4 $47 + ... checking previous tree +N004 ( 0, 0) [000552] DA--------- * STORE_LCL_VAR long V04 loc1 d:4 $VN.Void +N003 ( 0, 0) [000551] ----------- \--* PHI long $301 +N001 ( 0, 0) [000572] ----------- pred BB28 +--* PHI_ARG long V04 loc1 u:3 $25a +N002 ( 0, 0) [000566] ----------- pred BB09 \--* PHI_ARG long V04 loc1 u:1 $241 + -- prev tree is a phi + +--- Trying RBO in BB69 --- +Relop [000245] BB69 value unknown, trying inference +BB69 has global phi for V02.4; must look for phi uses +BB69 has global phi for V04.4; must look for phi uses +... JT-PHI [interestingVN] in BB69 relop first operand VN is PhiDef for V02 +N003 ( 3, 3) [000245] J----+-N--- * LT int $1a5 +N001 ( 1, 1) [000243] -----+----- +--* LCL_VAR int V02 arg2 u:4 $2c1 +N002 ( 1, 1) [000244] -----+----- \--* CNS_INT int 4 $47 +Found local PHI [000562] for V02 +... substituting ($100,$47) for ($2c1,$47) in $1a5 gives $47f +BB09 is an ambiguous pred +... substituting ($183,$47) for ($2c1,$47) in $1a5 gives $480 +BB28 is an ambiguous pred +Could not find all uses for V02.4 in BB69 or its successors +BB69 has global phi uses we cannot safely account for; no phi-based threading +Checking BB69 for redundant dominating branches +failed -- BB09 does not share a successor with BB69 + +optRedundantRelop in BB09; jump tree is +N004 ( 5, 5) [000535] ----------- * JTRUE void $VN.Void +N003 ( 3, 3) [000536] J------N--- \--* LT int $182 +N001 ( 1, 1) [000537] ----------- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000538] ----------- \--* CNS_INT int 8 $45 + ... checking previous tree +N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void +N004 ( 4, 5) [000050] -----+----- \--* ADD long $241 +N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int $240 +N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 $100 +N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 $280 + -- prev tree VN is not related + +--- Trying RBO in BB09 --- +Relop [000536] BB09 value unknown, trying inference + +Dominator BB57 of BB09 can infer value of dominated relop +N003 ( 3, 3) [000033] J----+-N--- * GE int $181 +N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 + Redundant compare; current relop: +N003 ( 3, 3) [000536] J------N--- * LT int $182 +N001 ( 1, 1) [000537] ----------- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000538] ----------- \--* CNS_INT int 8 $45 +False successor BB09 of BB57 reaches, relop [000536] must be true + +Redundant branch opt in BB09: + +removing useless STMT00090 ( 0x1E7[E--] ... ??? ) +N004 ( 5, 5) [000535] ----------- * JTRUE void $VN.Void +N003 ( 3, 3) [000536] ----------- \--* CNS_INT int 1 + from BB09 +setting likelihood of BB09 -> BB69 from 0.5 to 1 + +Conditional folded at BB09 +BB09 becomes a BBJ_ALWAYS to BB69 +Compiler::optRedundantBranch removed tree: +N004 ( 5, 5) [000535] ----------- * JTRUE void $VN.Void +N003 ( 3, 3) [000536] ----------- \--* CNS_INT int 1 + +Will retry RBO in BB10; pred BB68 now unreachable + +--- Trying RBO in BB10 --- +Relop [000401] BB10 value unknown, trying inference +BB10 has global phi for V04.2; must look for phi uses +BB10 has side effects; no threading + +--- Trying RBO in BB57 --- +Relop [000033] BB57 value unknown, trying inference + +Dominator BB01 of BB57 can infer value of dominated relop +N003 ( 3, 3) [000002] J----+-N--- * GE int $180 +N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 $40 + Redundant compare; current relop: +N003 ( 3, 3) [000033] J----+-N--- * GE int $181 +N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 +inference failed -- will keep looking higher +No usable PhiDef VNs +Checking BB57 for redundant dominating branches +failed -- BB01 does not share a successor with BB57 + +--- Trying RBO in BB01 --- +Checking BB01 for redundant dominating branches +failed -- no dominator + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(1) (always) i +BB68 [0095] 0 0.50 [???..???)-> BB10(1) (always) i +BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target +BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd +BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd +BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd +BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd +BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal +BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal +BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i +BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal +BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i +BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal +BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i +BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal +BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i +BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i +BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i +BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i +BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i +BB28 [0027] 1 BB26 0.50 [???..???)-> BB69(1) (always) i +BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB69 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i +BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i +BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i +BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i +BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd +BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal +BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal +BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i +BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall +BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Finishing PHASE Redundant branch opts +Trees after Redundant branch opts + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(1) (always) i +BB68 [0095] 0 0.50 [???..???)-> BB10(1) (always) i +BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target +BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd +BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd +BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd +BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd +BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal +BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal +BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i +BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal +BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i +BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal +BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i +BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal +BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i +BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i +BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i +BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i +BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i +BB28 [0027] 1 BB26 0.50 [???..???)-> BB69(1) (always) i +BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB69 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i +BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i +BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i +BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i +BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd +BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal +BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal +BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i +BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall +BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000002] J----+-N--- \--* GE int $180 +N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 $40 + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void +N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref $1c0 +N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref $1c1 + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) +N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000033] J----+-N--- \--* GE int $181 +N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 + +------------ BB09 [0008] [068..073) -> BB69(1) (always), preds={BB57} succs={BB69} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) +N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void +N004 ( 4, 5) [000050] -----+----- \--* ADD long $241 +N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int $240 +N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 $100 +N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 $280 + +------------ BB68 [0095] [???..???) -> BB10(1) (always), preds={} succs={BB10} + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB26,BB68} succs={BB62,BB12} + +***** BB10 [0009] +STMT00103 ( ??? ... ??? ) +N004 ( 0, 0) [000564] DA--------- * STORE_LCL_VAR int V02 arg2 d:2 $VN.Void +N003 ( 0, 0) [000563] ----------- \--* PHI int $2c0 +N001 ( 0, 0) [000569] ----------- pred BB26 +--* PHI_ARG int V02 arg2 u:3 +N002 ( 0, 0) [000567] ----------- pred BB68 \--* PHI_ARG int V02 arg2 u:1 $100 + +***** BB10 [0009] +STMT00098 ( ??? ... ??? ) +N004 ( 0, 0) [000554] DA--------- * STORE_LCL_VAR long V04 loc1 d:2 $VN.Void +N003 ( 0, 0) [000553] ----------- \--* PHI long $300 +N001 ( 0, 0) [000570] ----------- pred BB26 +--* PHI_ARG long V04 loc1 u:3 +N002 ( 0, 0) [000568] ----------- pred BB68 \--* PHI_ARG long V04 loc1 u:1 $241 + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) +N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 d:3 $VN.Void +N003 ( 3, 3) [000058] -----+----- \--* ADD int $183 +N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 u:2 (last use) $2c0 +N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 $46 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) +N009 ( 9, 8) [000073] ---XG+----- * JTRUE void $401 +N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int +N006 ( 5, 4) [000065] ---XG+----- +--* IND long +N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref $340 +N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long $242 +N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) +N011 ( 9, 9) [000090] ---XG+----- * JTRUE void $403 +N010 ( 7, 7) [000408] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000082] ---XG+----- +--* IND long +N007 ( 4, 4) [000081] -----+-N--- | \--* ADD byref $341 +N001 ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000080] -----+-N--- | \--* ADD long $245 +N004 ( 2, 2) [000078] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 $283 +N009 ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) +N011 ( 9, 9) [000107] ---XG+----- * JTRUE void $405 +N010 ( 7, 7) [000415] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000099] ---XG+----- +--* IND long +N007 ( 4, 4) [000098] -----+-N--- | \--* ADD byref $342 +N001 ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000097] -----+-N--- | \--* ADD long $248 +N004 ( 2, 2) [000095] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 $284 +N009 ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) +N011 ( 9, 9) [000124] ---XG+----- * JTRUE void $407 +N010 ( 7, 7) [000422] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000116] ---XG+----- +--* IND long +N007 ( 4, 4) [000115] -----+-N--- | \--* ADD byref $343 +N001 ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000114] -----+-N--- | \--* ADD long $24b +N004 ( 2, 2) [000112] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 $285 +N009 ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) +N011 ( 9, 9) [000141] ---XG+----- * JTRUE void $409 +N010 ( 7, 7) [000429] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000133] ---XG+----- +--* IND long +N007 ( 4, 4) [000132] -----+-N--- | \--* ADD byref $344 +N001 ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000131] -----+-N--- | \--* ADD long $24e +N004 ( 2, 2) [000129] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 $286 +N009 ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) +N011 ( 9, 9) [000158] ---XG+----- * JTRUE void $40b +N010 ( 7, 7) [000436] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000150] ---XG+----- +--* IND long +N007 ( 4, 4) [000149] -----+-N--- | \--* ADD byref $345 +N001 ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000148] -----+-N--- | \--* ADD long $251 +N004 ( 2, 2) [000146] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 $287 +N009 ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) +N011 ( 9, 9) [000175] ---XG+----- * JTRUE void $40d +N010 ( 7, 7) [000443] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000167] ---XG+----- +--* IND long +N007 ( 4, 4) [000166] -----+-N--- | \--* ADD byref $346 +N001 ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000165] -----+-N--- | \--* ADD long $254 +N004 ( 2, 2) [000163] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 $288 +N009 ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) +N011 ( 9, 9) [000192] ---XG+----- * JTRUE void $40f +N010 ( 7, 7) [000450] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000184] ---XG+----- +--* IND long +N007 ( 4, 4) [000183] -----+-N--- | \--* ADD byref $347 +N001 ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000182] -----+-N--- | \--* ADD long $257 +N004 ( 2, 2) [000180] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 $289 +N009 ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB26 [0025] [1E2..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB24} succs={BB28,BB10} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) +N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 d:3 $VN.Void +N003 ( 3, 3) [000196] -----+----- \--* ADD long $25a +N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 u:2 (last use) $300 +N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 $283 + +***** BB26 [0025] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) +N004 ( 5, 5) [000055] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000054] J----+-N--- \--* GE int $1a4 +N001 ( 1, 1) [000052] -----+----- +--* LCL_VAR int V02 arg2 u:3 $183 +N002 ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 $45 + +------------ BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} + +------------ BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} + +------------ BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} + +***** BB11 [0010] +STMT00093 ( ??? ... ??? ) +N005 ( 0, 0) [000544] DA--------- * STORE_LCL_VAR long V04 loc1 d:12 $VN.Void +N004 ( 0, 0) [000543] ----------- \--* PHI long $307 +N001 ( 0, 0) [000591] ----------- pred BB61 +--* PHI_ARG long V04 loc1 u:7 $303 +N002 ( 0, 0) [000583] ----------- pred BB29 +--* PHI_ARG long V04 loc1 u:4 $301 +N003 ( 0, 0) [000580] ----------- pred BB62 \--* PHI_ARG long V04 loc1 u:2 $300 + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) +N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void +N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) $449 + +------------ BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} + +------------ BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} + +***** BB13 [0012] +STMT00099 ( ??? ... ??? ) +N004 ( 0, 0) [000556] DA--------- * STORE_LCL_VAR long V04 loc1 d:11 $VN.Void +N003 ( 0, 0) [000555] ----------- \--* PHI long $306 +N001 ( 0, 0) [000588] ----------- pred BB32 +--* PHI_ARG long V04 loc1 u:4 $301 +N002 ( 0, 0) [000579] ----------- pred BB63 \--* PHI_ARG long V04 loc1 u:2 $300 + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) +N004 ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:7 $VN.Void +N003 ( 3, 3) [000237] -----+----- \--* ADD int $448 +N001 ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 u:11 (last use) $447 +N002 ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 $43 + +------------ BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} + +------------ BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} + +***** BB15 [0014] +STMT00100 ( ??? ... ??? ) +N004 ( 0, 0) [000558] DA--------- * STORE_LCL_VAR long V04 loc1 d:10 $VN.Void +N003 ( 0, 0) [000557] ----------- \--* PHI long $305 +N001 ( 0, 0) [000587] ----------- pred BB34 +--* PHI_ARG long V04 loc1 u:4 $301 +N002 ( 0, 0) [000578] ----------- pred BB64 \--* PHI_ARG long V04 loc1 u:2 $300 + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) +N004 ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:6 $VN.Void +N003 ( 3, 3) [000231] -----+----- \--* ADD int $446 +N001 ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 u:10 (last use) $445 +N002 ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 $4e + +------------ BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} + +------------ BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} + +***** BB17 [0016] +STMT00101 ( ??? ... ??? ) +N004 ( 0, 0) [000560] DA--------- * STORE_LCL_VAR long V04 loc1 d:9 $VN.Void +N003 ( 0, 0) [000559] ----------- \--* PHI long $304 +N001 ( 0, 0) [000586] ----------- pred BB36 +--* PHI_ARG long V04 loc1 u:4 $301 +N002 ( 0, 0) [000577] ----------- pred BB65 \--* PHI_ARG long V04 loc1 u:2 $300 + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) +N004 ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:5 $VN.Void +N003 ( 3, 3) [000225] -----+----- \--* ADD int $444 +N001 ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 u:9 (last use) $443 +N002 ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 $4d + +------------ BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) +N004 ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:4 $VN.Void +N003 ( 3, 3) [000219] -----+----- \--* ADD int $442 +N001 ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 $48 + +------------ BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) +N004 ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:3 $VN.Void +N003 ( 3, 3) [000213] -----+----- \--* ADD int $441 +N001 ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 $4c + +------------ BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) +N004 ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:2 $VN.Void +N003 ( 3, 3) [000207] -----+----- \--* ADD int $440 +N001 ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 $4b + +------------ BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) +N004 ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:1 $VN.Void +N003 ( 3, 3) [000201] -----+----- \--* ADD int $1bf +N001 ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 $4a + +------------ BB28 [0027] [???..???) -> BB69(1) (always), preds={BB26} succs={BB69} + +------------ BB69 [0096] [1EE..1F5) -> BB60(0.5),BB29(0.5) (cond), preds={BB09,BB28} succs={BB29,BB60} + +***** BB69 [0096] +STMT00102 ( ??? ... ??? ) +N004 ( 0, 0) [000562] DA--------- * STORE_LCL_VAR int V02 arg2 d:4 $VN.Void +N003 ( 0, 0) [000561] ----------- \--* PHI int $2c1 +N001 ( 0, 0) [000571] ----------- pred BB28 +--* PHI_ARG int V02 arg2 u:3 $183 +N002 ( 0, 0) [000565] ----------- pred BB09 \--* PHI_ARG int V02 arg2 u:1 $100 + +***** BB69 [0096] +STMT00097 ( ??? ... ??? ) +N004 ( 0, 0) [000552] DA--------- * STORE_LCL_VAR long V04 loc1 d:4 $VN.Void +N003 ( 0, 0) [000551] ----------- \--* PHI long $301 +N001 ( 0, 0) [000572] ----------- pred BB28 +--* PHI_ARG long V04 loc1 u:3 $25a +N002 ( 0, 0) [000566] ----------- pred BB09 \--* PHI_ARG long V04 loc1 u:1 $241 + +***** BB69 [0096] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) +N004 ( 5, 5) [000246] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000245] J----+-N--- \--* LT int $1a5 +N001 ( 1, 1) [000243] -----+----- +--* LCL_VAR int V02 arg2 u:4 $2c1 +N002 ( 1, 1) [000244] -----+----- \--* CNS_INT int 4 $47 + +------------ BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB69} succs={BB31,BB11} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) +N004 ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 d:5 $VN.Void +N003 ( 3, 3) [000281] -----+----- \--* ADD int $1a6 +N001 ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 u:4 (last use) $2c1 +N002 ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 $48 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) +N009 ( 9, 8) [000296] ---XG+----- * JTRUE void $411 +N008 ( 7, 6) [000457] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000288] ---XG+----- +--* IND long +N005 ( 3, 3) [000287] -----+-N--- | \--* ADD byref $348 +N001 ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000286] -----+-N--- | \--* LSH long $25b +N002 ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) +N011 ( 9, 9) [000313] ---XG+----- * JTRUE void $413 +N010 ( 7, 7) [000464] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000305] ---XG+----- +--* IND long +N007 ( 4, 4) [000304] -----+-N--- | \--* ADD byref $349 +N001 ( 1, 1) [000297] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000303] -----+-N--- | \--* ADD long $25e +N004 ( 2, 2) [000301] -----+-N--- | +--* LSH long $25b +N002 ( 1, 1) [000298] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000300] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000302] -----+----- | \--* CNS_INT long -8 $283 +N009 ( 1, 1) [000306] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) +N011 ( 9, 9) [000330] ---XG+----- * JTRUE void $415 +N010 ( 7, 7) [000471] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000322] ---XG+----- +--* IND long +N007 ( 4, 4) [000321] -----+-N--- | \--* ADD byref $34a +N001 ( 1, 1) [000314] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000320] -----+-N--- | \--* ADD long $261 +N004 ( 2, 2) [000318] -----+-N--- | +--* LSH long $25b +N002 ( 1, 1) [000315] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000317] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000319] -----+----- | \--* CNS_INT long -16 $284 +N009 ( 1, 1) [000323] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) +N011 ( 9, 9) [000347] ---XG+----- * JTRUE void $417 +N010 ( 7, 7) [000478] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000339] ---XG+----- +--* IND long +N007 ( 4, 4) [000338] -----+-N--- | \--* ADD byref $34b +N001 ( 1, 1) [000331] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000337] -----+-N--- | \--* ADD long $264 +N004 ( 2, 2) [000335] -----+-N--- | +--* LSH long $25b +N002 ( 1, 1) [000332] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000334] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000336] -----+----- | \--* CNS_INT long -24 $285 +N009 ( 1, 1) [000340] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} + +------------ BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) +N004 ( 3, 3) [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 d:5 $VN.Void +N003 ( 3, 3) [000351] -----+----- \--* ADD long $267 +N001 ( 1, 1) [000348] -----+----- +--* LCL_VAR long V04 loc1 u:4 (last use) $301 +N002 ( 1, 1) [000350] -----+----- \--* CNS_INT long -4 $28a + +------------ BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB40,BB66} succs={BB40,BB61} + +***** BB38 [0037] +STMT00094 ( ??? ... ??? ) +N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 $VN.Void +N003 ( 0, 0) [000545] ----------- \--* PHI int $2c3 +N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 +N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 $2c2 + +***** BB38 [0037] +STMT00092 ( ??? ... ??? ) +N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 $VN.Void +N003 ( 0, 0) [000541] ----------- \--* PHI long $303 +N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 +N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 $302 + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) +N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void +N003 ( 3, 3) [000253] -----+----- \--* ADD int $1b8 +N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) $2c3 +N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 $43 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) +N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 +N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000260] ---XG+----- +--* IND long +N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref $34c +N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long $268 +N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 $303 +N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) +N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void +N003 ( 3, 3) [000272] -----+----- \--* ADD long $26b +N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) $303 +N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 $280 + +***** BB40 [0039] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) +N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000249] J----+-N--- \--* GT int $1bd +N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 $1b8 +N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 $40 + +------------ BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB37,BB69} succs={BB66,BB67} + +***** BB60 [0087] +STMT00096 ( ??? ... ??? ) +N004 ( 0, 0) [000550] DA--------- * STORE_LCL_VAR int V02 arg2 d:6 $VN.Void +N003 ( 0, 0) [000549] ----------- \--* PHI int $2c2 +N001 ( 0, 0) [000584] ----------- pred BB37 +--* PHI_ARG int V02 arg2 u:5 $1a6 +N002 ( 0, 0) [000581] ----------- pred BB69 \--* PHI_ARG int V02 arg2 u:4 $2c1 + +***** BB60 [0087] +STMT00095 ( ??? ... ??? ) +N004 ( 0, 0) [000548] DA--------- * STORE_LCL_VAR long V04 loc1 d:6 $VN.Void +N003 ( 0, 0) [000547] ----------- \--* PHI long $302 +N001 ( 0, 0) [000585] ----------- pred BB37 +--* PHI_ARG long V04 loc1 u:5 $267 +N002 ( 0, 0) [000582] ----------- pred BB69 \--* PHI_ARG long V04 loc1 u:4 $301 + +***** BB60 [0087] +STMT00089 ( 0x2E5[E--] ... ??? ) +N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void +N003 ( 3, 3) [000532] J------N--- \--* LE int $1b7 +N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 +N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 + +------------ BB66 [0093] [???..???) -> BB38(1) (always), preds={BB60} succs={BB38} + +------------ BB42 [0041] [???..???) -> BB67(1) (always), preds={BB40} succs={BB67} + +------------ BB67 [0094] [2E9..2EB) (return), preds={BB42,BB60} succs={} + +***** BB67 [0094] +STMT00088 ( ??? ... ??? ) +N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void +N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 $43 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) +N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void +N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) $80 +N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) $c0 +N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) $100 + +------------ BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} + +***** BB58 [0085] +STMT00091 ( ??? ... ??? ) +N010 ( 0, 0) [000540] DA--------- * STORE_LCL_VAR int V34 tmp29 d:9 $VN.Void +N009 ( 0, 0) [000539] ----------- \--* PHI int $2c4 +N001 ( 0, 0) [000597] ----------- pred BB11 +--* PHI_ARG int V34 tmp29 u:8 $449 +N002 ( 0, 0) [000596] ----------- pred BB13 +--* PHI_ARG int V34 tmp29 u:7 $448 +N003 ( 0, 0) [000595] ----------- pred BB15 +--* PHI_ARG int V34 tmp29 u:6 $446 +N004 ( 0, 0) [000594] ----------- pred BB17 +--* PHI_ARG int V34 tmp29 u:5 $444 +N005 ( 0, 0) [000576] ----------- pred BB19 +--* PHI_ARG int V34 tmp29 u:4 $442 +N006 ( 0, 0) [000575] ----------- pred BB21 +--* PHI_ARG int V34 tmp29 u:3 $441 +N007 ( 0, 0) [000574] ----------- pred BB23 +--* PHI_ARG int V34 tmp29 u:2 $440 +N008 ( 0, 0) [000573] ----------- pred BB25 \--* PHI_ARG int V34 tmp29 u:1 $1bf + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) +N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void +N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) $2c4 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Optimize Valnum CSEs +Standard CSE Heuristic + +*************** Finishing PHASE Optimize Valnum CSEs +Trees after Optimize Valnum CSEs + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(1) (always) i +BB68 [0095] 0 0.50 [???..???)-> BB10(1) (always) i +BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target +BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd +BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd +BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd +BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd +BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal +BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal +BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i +BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal +BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i +BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal +BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i +BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal +BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i +BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i +BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i +BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i +BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i +BB28 [0027] 1 BB26 0.50 [???..???)-> BB69(1) (always) i +BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i +BB29 [0028] 1 BB69 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i +BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i +BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i +BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i +BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd +BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal +BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal +BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i +BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall +BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000002] J----+-N--- \--* GE int $180 +N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 $40 + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void +N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref $1c0 +N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref $1c1 + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) +N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000033] J----+-N--- \--* GE int $181 +N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 + +------------ BB09 [0008] [068..073) -> BB69(1) (always), preds={BB57} succs={BB69} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) +N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void +N004 ( 4, 5) [000050] -----+----- \--* ADD long $241 +N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int $240 +N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 $100 +N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 $280 + +------------ BB68 [0095] [???..???) -> BB10(1) (always), preds={} succs={BB10} + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB26,BB68} succs={BB62,BB12} + +***** BB10 [0009] +STMT00103 ( ??? ... ??? ) +N004 ( 0, 0) [000564] DA--------- * STORE_LCL_VAR int V02 arg2 d:2 $VN.Void +N003 ( 0, 0) [000563] ----------- \--* PHI int $2c0 +N001 ( 0, 0) [000569] ----------- pred BB26 +--* PHI_ARG int V02 arg2 u:3 +N002 ( 0, 0) [000567] ----------- pred BB68 \--* PHI_ARG int V02 arg2 u:1 $100 + +***** BB10 [0009] +STMT00098 ( ??? ... ??? ) +N004 ( 0, 0) [000554] DA--------- * STORE_LCL_VAR long V04 loc1 d:2 $VN.Void +N003 ( 0, 0) [000553] ----------- \--* PHI long $300 +N001 ( 0, 0) [000570] ----------- pred BB26 +--* PHI_ARG long V04 loc1 u:3 +N002 ( 0, 0) [000568] ----------- pred BB68 \--* PHI_ARG long V04 loc1 u:1 $241 + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) +N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 d:3 $VN.Void +N003 ( 3, 3) [000058] -----+----- \--* ADD int $183 +N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 u:2 (last use) $2c0 +N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 $46 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) +N009 ( 9, 8) [000073] ---XG+----- * JTRUE void $401 +N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int +N006 ( 5, 4) [000065] ---XG+----- +--* IND long +N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref $340 +N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long $242 +N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) +N011 ( 9, 9) [000090] ---XG+----- * JTRUE void $403 +N010 ( 7, 7) [000408] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000082] ---XG+----- +--* IND long +N007 ( 4, 4) [000081] -----+-N--- | \--* ADD byref $341 +N001 ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000080] -----+-N--- | \--* ADD long $245 +N004 ( 2, 2) [000078] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 $283 +N009 ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) +N011 ( 9, 9) [000107] ---XG+----- * JTRUE void $405 +N010 ( 7, 7) [000415] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000099] ---XG+----- +--* IND long +N007 ( 4, 4) [000098] -----+-N--- | \--* ADD byref $342 +N001 ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000097] -----+-N--- | \--* ADD long $248 +N004 ( 2, 2) [000095] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 $284 +N009 ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) +N011 ( 9, 9) [000124] ---XG+----- * JTRUE void $407 +N010 ( 7, 7) [000422] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000116] ---XG+----- +--* IND long +N007 ( 4, 4) [000115] -----+-N--- | \--* ADD byref $343 +N001 ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000114] -----+-N--- | \--* ADD long $24b +N004 ( 2, 2) [000112] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 $285 +N009 ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) +N011 ( 9, 9) [000141] ---XG+----- * JTRUE void $409 +N010 ( 7, 7) [000429] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000133] ---XG+----- +--* IND long +N007 ( 4, 4) [000132] -----+-N--- | \--* ADD byref $344 +N001 ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000131] -----+-N--- | \--* ADD long $24e +N004 ( 2, 2) [000129] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 $286 +N009 ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) +N011 ( 9, 9) [000158] ---XG+----- * JTRUE void $40b +N010 ( 7, 7) [000436] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000150] ---XG+----- +--* IND long +N007 ( 4, 4) [000149] -----+-N--- | \--* ADD byref $345 +N001 ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000148] -----+-N--- | \--* ADD long $251 +N004 ( 2, 2) [000146] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 $287 +N009 ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) +N011 ( 9, 9) [000175] ---XG+----- * JTRUE void $40d +N010 ( 7, 7) [000443] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000167] ---XG+----- +--* IND long +N007 ( 4, 4) [000166] -----+-N--- | \--* ADD byref $346 +N001 ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000165] -----+-N--- | \--* ADD long $254 +N004 ( 2, 2) [000163] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 $288 +N009 ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) +N011 ( 9, 9) [000192] ---XG+----- * JTRUE void $40f +N010 ( 7, 7) [000450] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000184] ---XG+----- +--* IND long +N007 ( 4, 4) [000183] -----+-N--- | \--* ADD byref $347 +N001 ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000182] -----+-N--- | \--* ADD long $257 +N004 ( 2, 2) [000180] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 $289 +N009 ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB26 [0025] [1E2..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB24} succs={BB28,BB10} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) +N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 d:3 $VN.Void +N003 ( 3, 3) [000196] -----+----- \--* ADD long $25a +N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 u:2 (last use) $300 +N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 $283 + +***** BB26 [0025] +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) +N004 ( 5, 5) [000055] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000054] J----+-N--- \--* GE int $1a4 +N001 ( 1, 1) [000052] -----+----- +--* LCL_VAR int V02 arg2 u:3 $183 +N002 ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 $45 + +------------ BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} + +------------ BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} + +------------ BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} + +***** BB11 [0010] +STMT00093 ( ??? ... ??? ) +N005 ( 0, 0) [000544] DA--------- * STORE_LCL_VAR long V04 loc1 d:12 $VN.Void +N004 ( 0, 0) [000543] ----------- \--* PHI long $307 +N001 ( 0, 0) [000591] ----------- pred BB61 +--* PHI_ARG long V04 loc1 u:7 $303 +N002 ( 0, 0) [000583] ----------- pred BB29 +--* PHI_ARG long V04 loc1 u:4 $301 +N003 ( 0, 0) [000580] ----------- pred BB62 \--* PHI_ARG long V04 loc1 u:2 $300 + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) +N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void +N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) $449 + +------------ BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} + +------------ BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} + +***** BB13 [0012] +STMT00099 ( ??? ... ??? ) +N004 ( 0, 0) [000556] DA--------- * STORE_LCL_VAR long V04 loc1 d:11 $VN.Void +N003 ( 0, 0) [000555] ----------- \--* PHI long $306 +N001 ( 0, 0) [000588] ----------- pred BB32 +--* PHI_ARG long V04 loc1 u:4 $301 +N002 ( 0, 0) [000579] ----------- pred BB63 \--* PHI_ARG long V04 loc1 u:2 $300 + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) +N004 ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:7 $VN.Void +N003 ( 3, 3) [000237] -----+----- \--* ADD int $448 +N001 ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 u:11 (last use) $447 +N002 ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 $43 + +------------ BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} + +------------ BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} + +***** BB15 [0014] +STMT00100 ( ??? ... ??? ) +N004 ( 0, 0) [000558] DA--------- * STORE_LCL_VAR long V04 loc1 d:10 $VN.Void +N003 ( 0, 0) [000557] ----------- \--* PHI long $305 +N001 ( 0, 0) [000587] ----------- pred BB34 +--* PHI_ARG long V04 loc1 u:4 $301 +N002 ( 0, 0) [000578] ----------- pred BB64 \--* PHI_ARG long V04 loc1 u:2 $300 + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) +N004 ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:6 $VN.Void +N003 ( 3, 3) [000231] -----+----- \--* ADD int $446 +N001 ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 u:10 (last use) $445 +N002 ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 $4e + +------------ BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} + +------------ BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} + +***** BB17 [0016] +STMT00101 ( ??? ... ??? ) +N004 ( 0, 0) [000560] DA--------- * STORE_LCL_VAR long V04 loc1 d:9 $VN.Void +N003 ( 0, 0) [000559] ----------- \--* PHI long $304 +N001 ( 0, 0) [000586] ----------- pred BB36 +--* PHI_ARG long V04 loc1 u:4 $301 +N002 ( 0, 0) [000577] ----------- pred BB65 \--* PHI_ARG long V04 loc1 u:2 $300 + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) +N004 ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:5 $VN.Void +N003 ( 3, 3) [000225] -----+----- \--* ADD int $444 +N001 ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 u:9 (last use) $443 +N002 ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 $4d + +------------ BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) +N004 ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:4 $VN.Void +N003 ( 3, 3) [000219] -----+----- \--* ADD int $442 +N001 ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 $48 + +------------ BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) +N004 ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:3 $VN.Void +N003 ( 3, 3) [000213] -----+----- \--* ADD int $441 +N001 ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 $4c + +------------ BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) +N004 ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:2 $VN.Void +N003 ( 3, 3) [000207] -----+----- \--* ADD int $440 +N001 ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 $4b + +------------ BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) +N004 ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:1 $VN.Void +N003 ( 3, 3) [000201] -----+----- \--* ADD int $1bf +N001 ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 $4a + +------------ BB28 [0027] [???..???) -> BB69(1) (always), preds={BB26} succs={BB69} + +------------ BB69 [0096] [1EE..1F5) -> BB60(0.5),BB29(0.5) (cond), preds={BB09,BB28} succs={BB29,BB60} + +***** BB69 [0096] +STMT00102 ( ??? ... ??? ) +N004 ( 0, 0) [000562] DA--------- * STORE_LCL_VAR int V02 arg2 d:4 $VN.Void +N003 ( 0, 0) [000561] ----------- \--* PHI int $2c1 +N001 ( 0, 0) [000571] ----------- pred BB28 +--* PHI_ARG int V02 arg2 u:3 $183 +N002 ( 0, 0) [000565] ----------- pred BB09 \--* PHI_ARG int V02 arg2 u:1 $100 + +***** BB69 [0096] +STMT00097 ( ??? ... ??? ) +N004 ( 0, 0) [000552] DA--------- * STORE_LCL_VAR long V04 loc1 d:4 $VN.Void +N003 ( 0, 0) [000551] ----------- \--* PHI long $301 +N001 ( 0, 0) [000572] ----------- pred BB28 +--* PHI_ARG long V04 loc1 u:3 $25a +N002 ( 0, 0) [000566] ----------- pred BB09 \--* PHI_ARG long V04 loc1 u:1 $241 + +***** BB69 [0096] +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) +N004 ( 5, 5) [000246] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000245] J----+-N--- \--* LT int $1a5 +N001 ( 1, 1) [000243] -----+----- +--* LCL_VAR int V02 arg2 u:4 $2c1 +N002 ( 1, 1) [000244] -----+----- \--* CNS_INT int 4 $47 + +------------ BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB69} succs={BB31,BB11} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) +N004 ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 d:5 $VN.Void +N003 ( 3, 3) [000281] -----+----- \--* ADD int $1a6 +N001 ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 u:4 (last use) $2c1 +N002 ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 $48 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) +N009 ( 9, 8) [000296] ---XG+----- * JTRUE void $411 +N008 ( 7, 6) [000457] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000288] ---XG+----- +--* IND long +N005 ( 3, 3) [000287] -----+-N--- | \--* ADD byref $348 +N001 ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000286] -----+-N--- | \--* LSH long $25b +N002 ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) +N011 ( 9, 9) [000313] ---XG+----- * JTRUE void $413 +N010 ( 7, 7) [000464] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000305] ---XG+----- +--* IND long +N007 ( 4, 4) [000304] -----+-N--- | \--* ADD byref $349 +N001 ( 1, 1) [000297] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000303] -----+-N--- | \--* ADD long $25e +N004 ( 2, 2) [000301] -----+-N--- | +--* LSH long $25b +N002 ( 1, 1) [000298] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000300] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000302] -----+----- | \--* CNS_INT long -8 $283 +N009 ( 1, 1) [000306] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) +N011 ( 9, 9) [000330] ---XG+----- * JTRUE void $415 +N010 ( 7, 7) [000471] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000322] ---XG+----- +--* IND long +N007 ( 4, 4) [000321] -----+-N--- | \--* ADD byref $34a +N001 ( 1, 1) [000314] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000320] -----+-N--- | \--* ADD long $261 +N004 ( 2, 2) [000318] -----+-N--- | +--* LSH long $25b +N002 ( 1, 1) [000315] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000317] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000319] -----+----- | \--* CNS_INT long -16 $284 +N009 ( 1, 1) [000323] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) +N011 ( 9, 9) [000347] ---XG+----- * JTRUE void $417 +N010 ( 7, 7) [000478] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000339] ---XG+----- +--* IND long +N007 ( 4, 4) [000338] -----+-N--- | \--* ADD byref $34b +N001 ( 1, 1) [000331] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000337] -----+-N--- | \--* ADD long $264 +N004 ( 2, 2) [000335] -----+-N--- | +--* LSH long $25b +N002 ( 1, 1) [000332] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000334] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000336] -----+----- | \--* CNS_INT long -24 $285 +N009 ( 1, 1) [000340] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} + +------------ BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) +N004 ( 3, 3) [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 d:5 $VN.Void +N003 ( 3, 3) [000351] -----+----- \--* ADD long $267 +N001 ( 1, 1) [000348] -----+----- +--* LCL_VAR long V04 loc1 u:4 (last use) $301 +N002 ( 1, 1) [000350] -----+----- \--* CNS_INT long -4 $28a + +------------ BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB40,BB66} succs={BB40,BB61} + +***** BB38 [0037] +STMT00094 ( ??? ... ??? ) +N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 $VN.Void +N003 ( 0, 0) [000545] ----------- \--* PHI int $2c3 +N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 +N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 $2c2 + +***** BB38 [0037] +STMT00092 ( ??? ... ??? ) +N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 $VN.Void +N003 ( 0, 0) [000541] ----------- \--* PHI long $303 +N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 +N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 $302 + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) +N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void +N003 ( 3, 3) [000253] -----+----- \--* ADD int $1b8 +N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) $2c3 +N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 $43 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) +N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 +N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000260] ---XG+----- +--* IND long +N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref $34c +N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long $268 +N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 $303 +N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) +N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void +N003 ( 3, 3) [000272] -----+----- \--* ADD long $26b +N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) $303 +N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 $280 + +***** BB40 [0039] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) +N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000249] J----+-N--- \--* GT int $1bd +N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 $1b8 +N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 $40 + +------------ BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB37,BB69} succs={BB66,BB67} + +***** BB60 [0087] +STMT00096 ( ??? ... ??? ) +N004 ( 0, 0) [000550] DA--------- * STORE_LCL_VAR int V02 arg2 d:6 $VN.Void +N003 ( 0, 0) [000549] ----------- \--* PHI int $2c2 +N001 ( 0, 0) [000584] ----------- pred BB37 +--* PHI_ARG int V02 arg2 u:5 $1a6 +N002 ( 0, 0) [000581] ----------- pred BB69 \--* PHI_ARG int V02 arg2 u:4 $2c1 + +***** BB60 [0087] +STMT00095 ( ??? ... ??? ) +N004 ( 0, 0) [000548] DA--------- * STORE_LCL_VAR long V04 loc1 d:6 $VN.Void +N003 ( 0, 0) [000547] ----------- \--* PHI long $302 +N001 ( 0, 0) [000585] ----------- pred BB37 +--* PHI_ARG long V04 loc1 u:5 $267 +N002 ( 0, 0) [000582] ----------- pred BB69 \--* PHI_ARG long V04 loc1 u:4 $301 + +***** BB60 [0087] +STMT00089 ( 0x2E5[E--] ... ??? ) +N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void +N003 ( 3, 3) [000532] J------N--- \--* LE int $1b7 +N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 +N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 + +------------ BB66 [0093] [???..???) -> BB38(1) (always), preds={BB60} succs={BB38} + +------------ BB42 [0041] [???..???) -> BB67(1) (always), preds={BB40} succs={BB67} + +------------ BB67 [0094] [2E9..2EB) (return), preds={BB42,BB60} succs={} + +***** BB67 [0094] +STMT00088 ( ??? ... ??? ) +N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void +N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 $43 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) +N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void +N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) $80 +N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) $c0 +N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) $100 + +------------ BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} + +***** BB58 [0085] +STMT00091 ( ??? ... ??? ) +N010 ( 0, 0) [000540] DA--------- * STORE_LCL_VAR int V34 tmp29 d:9 $VN.Void +N009 ( 0, 0) [000539] ----------- \--* PHI int $2c4 +N001 ( 0, 0) [000597] ----------- pred BB11 +--* PHI_ARG int V34 tmp29 u:8 $449 +N002 ( 0, 0) [000596] ----------- pred BB13 +--* PHI_ARG int V34 tmp29 u:7 $448 +N003 ( 0, 0) [000595] ----------- pred BB15 +--* PHI_ARG int V34 tmp29 u:6 $446 +N004 ( 0, 0) [000594] ----------- pred BB17 +--* PHI_ARG int V34 tmp29 u:5 $444 +N005 ( 0, 0) [000576] ----------- pred BB19 +--* PHI_ARG int V34 tmp29 u:4 $442 +N006 ( 0, 0) [000575] ----------- pred BB21 +--* PHI_ARG int V34 tmp29 u:3 $441 +N007 ( 0, 0) [000574] ----------- pred BB23 +--* PHI_ARG int V34 tmp29 u:2 $440 +N008 ( 0, 0) [000573] ----------- pred BB25 \--* PHI_ARG int V34 tmp29 u:1 $1bf + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) +N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void +N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) $2c4 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Assertion prop +GenTreeNode creates assertion: +N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void +In BB01 New Global #01 VN $100 >= 0 +GenTreeNode creates assertion: +N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void +In BB01 New Global #02 VN $100 < 0 +GenTreeNode creates assertion: +N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void +In BB57 New Global #03 VN $100 >= 2 +GenTreeNode creates assertion: +N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void +In BB57 New Global #04 VN $100 < 2 +GenTreeNode creates assertion: +N004 ( 5, 5) [000055] -----+----- * JTRUE void $VN.Void +In BB26 New Global #05 VN $183 >= 8 +GenTreeNode creates assertion: +N004 ( 5, 5) [000055] -----+----- * JTRUE void $VN.Void +In BB26 New Global #06 VN $183 < 8 +GenTreeNode creates assertion: +N004 ( 5, 5) [000246] -----+----- * JTRUE void $VN.Void +In BB69 New Global #07 VN $2c1 < 4 +GenTreeNode creates assertion: +N004 ( 5, 5) [000246] -----+----- * JTRUE void $VN.Void +In BB69 New Global #08 VN $2c1 >= 4 +GenTreeNode creates assertion: +N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void +In BB40 New Global #09 VN $1b8 > 0 +GenTreeNode creates assertion: +N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void +In BB40 New Global #10 VN $1b8 <= 0 +GenTreeNode creates assertion: +N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void +In BB60 New Global #11 VN $2c2 <= 0 +GenTreeNode creates assertion: +N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void +In BB60 New Global #12 VN $2c2 > 0 + +BB01 valueGen = #02 => BB57 valueGen = #01 +BB52 valueGen = #NA +BB57 valueGen = #04 => BB43 valueGen = #03 +BB09 valueGen = #NA +BB68 valueGen = #NA +BB10 valueGen = #NA => BB12 valueGen = #NA +BB12 valueGen = #NA => BB14 valueGen = #NA +BB14 valueGen = #NA => BB16 valueGen = #NA +BB16 valueGen = #NA => BB18 valueGen = #NA +BB18 valueGen = #NA => BB20 valueGen = #NA +BB20 valueGen = #NA => BB22 valueGen = #NA +BB22 valueGen = #NA => BB24 valueGen = #NA +BB24 valueGen = #NA => BB26 valueGen = #NA +BB26 valueGen = #06 => BB10 valueGen = #05 +BB61 valueGen = #NA +BB62 valueGen = #NA +BB11 valueGen = #NA +BB63 valueGen = #NA +BB13 valueGen = #NA +BB64 valueGen = #NA +BB15 valueGen = #NA +BB65 valueGen = #NA +BB17 valueGen = #NA +BB19 valueGen = #NA +BB21 valueGen = #NA +BB23 valueGen = #NA +BB25 valueGen = #NA +BB28 valueGen = #NA +BB69 valueGen = #08 => BB60 valueGen = #07 +BB29 valueGen = #NA => BB11 valueGen = #NA +BB31 valueGen = #NA => BB33 valueGen = #NA +BB32 valueGen = #NA +BB33 valueGen = #NA => BB35 valueGen = #NA +BB34 valueGen = #NA +BB35 valueGen = #NA => BB37 valueGen = #NA +BB36 valueGen = #NA +BB37 valueGen = #NA +BB38 valueGen = #NA => BB61 valueGen = #NA +BB40 valueGen = #10 => BB38 valueGen = #09 +BB60 valueGen = #12 => BB67 valueGen = #11 +BB66 valueGen = #NA +BB42 valueGen = #NA +BB67 valueGen = #NA +BB43 valueGen = #NA +BB58 valueGen = #NA + +BB01: + in = #NA + out = #02 + BB57 = #01 +BB52: + in = #02 + out = #02 +BB57: + in = #NA + out = #04 + BB43 = #03 +BB09: + in = #04 + out = #04 +BB68: + in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 +BB10: + in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + BB12 = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 +BB12: + in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + BB14 = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 +BB14: + in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + BB16 = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 +BB16: + in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + BB18 = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 +BB18: + in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + BB20 = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 +BB20: + in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + BB22 = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 +BB22: + in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + BB24 = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 +BB24: + in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + BB26 = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 +BB26: + in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + BB10 = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 +BB61: + in = #04 #12 + out = #04 #12 +BB62: + in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 +BB11: + in = #04 + out = #04 +BB63: + in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 +BB13: + in = #04 #08 + out = #04 #08 +BB64: + in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 +BB15: + in = #04 #08 + out = #04 #08 +BB65: + in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 +BB17: + in = #04 #08 + out = #04 #08 +BB19: + in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 +BB21: + in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 +BB23: + in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 +BB25: + in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 +BB28: + in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 + out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 +BB69: + in = #04 + out = #04 #08 + BB60 = #04 #07 +BB29: + in = #04 #08 + out = #04 #08 + BB11 = #04 #08 +BB31: + in = #04 #08 + out = #04 #08 + BB33 = #04 #08 +BB32: + in = #04 #08 + out = #04 #08 +BB33: + in = #04 #08 + out = #04 #08 + BB35 = #04 #08 +BB34: + in = #04 #08 + out = #04 #08 +BB35: + in = #04 #08 + out = #04 #08 + BB37 = #04 #08 +BB36: + in = #04 #08 + out = #04 #08 +BB37: + in = #04 #08 + out = #04 #08 +BB38: + in = #04 #12 + out = #04 #12 + BB61 = #04 #12 +BB40: + in = #04 #12 + out = #04 #10 #12 + BB38 = #04 #09 #12 +BB60: + in = #04 + out = #04 #12 + BB67 = #04 #11 +BB66: + in = #04 #12 + out = #04 #12 +BB42: + in = #04 #10 #12 + out = #04 #10 #12 +BB67: + in = #04 + out = #04 +BB43: + in = #03 + out = #03 +BB58: + in = #04 + out = #04 + +Propagating #NA for BB01, stmt STMT00069, tree [000000], tree -> #NA +Propagating #NA for BB01, stmt STMT00069, tree [000001], tree -> #NA +Propagating #NA for BB01, stmt STMT00069, tree [000002], tree -> #NA +Propagating #NA for BB01, stmt STMT00069, tree [000384], tree -> #01 +Propagating #02 for BB52, stmt STMT00070, tree [000497], tree -> #NA +Propagating #02 for BB52, stmt STMT00070, tree [000498], tree -> #NA +Propagating #02 for BB52, stmt STMT00070, tree [000387], tree -> #NA +Propagating #NA for BB57, stmt STMT00003, tree [000031], tree -> #NA +Propagating #NA for BB57, stmt STMT00003, tree [000032], tree -> #NA +Propagating #NA for BB57, stmt STMT00003, tree [000033], tree -> #NA +Propagating #NA for BB57, stmt STMT00003, tree [000034], tree -> #03 +Propagating #04 for BB09, stmt STMT00005, tree [000046], tree -> #NA +Propagating #04 for BB09, stmt STMT00005, tree [000047], tree -> #NA +#04 VN $100 < 2 +Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [] into [<-2147483648, 1>] +#04 VN $100 < 2 +Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [] into [<-2147483648, 1>] +Propagating #04 for BB09, stmt STMT00005, tree [000049], tree -> #NA +Propagating #04 for BB09, stmt STMT00005, tree [000050], tree -> #NA +Propagating #04 for BB09, stmt STMT00005, tree [000051], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00007, tree [000056], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00007, tree [000057], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00007, tree [000058], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00007, tree [000059], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00010, tree [000060], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00010, tree [000061], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00010, tree [000062], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00010, tree [000063], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00010, tree [000064], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00010, tree [000065], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00010, tree [000066], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00010, tree [000401], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00010, tree [000073], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000074], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000075], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000077], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000078], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000079], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000080], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000081], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000082], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000083], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000408], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000090], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000091], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000092], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000094], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000095], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000096], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000097], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000098], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000099], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000100], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000415], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000107], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000108], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000109], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000111], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000112], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000113], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000114], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000115], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000116], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000117], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000422], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000124], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000125], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000126], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000128], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000129], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000130], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000131], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000132], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000133], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000134], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000429], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000141], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000142], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000143], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000145], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000146], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000147], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000148], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000149], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000150], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000151], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000436], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000158], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000159], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000160], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000162], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000163], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000164], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000165], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000166], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000167], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000168], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000443], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000175], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000176], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000177], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000179], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000180], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000181], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000182], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000183], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000184], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000185], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000450], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000192], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB26, stmt STMT00032, tree [000193], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB26, stmt STMT00032, tree [000195], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB26, stmt STMT00032, tree [000196], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB26, stmt STMT00032, tree [000197], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB26, stmt STMT00006, tree [000052], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB26, stmt STMT00006, tree [000053], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB26, stmt STMT00006, tree [000054], tree -> #NA +Found matching assertion #04 for tree 000054.. Folded into: + [000598] ----------- * CNS_INT int 1 +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB26, stmt STMT00006, tree [000055], tree -> #05 +Re-morphing this stmt: +STMT00006 ( 0x1E7[E--] ... 0x1E9 ) +N004 ( 5, 5) [000055] -----+----- * JTRUE void $VN.Void + [000598] ----------- \--* CNS_INT int 1 + + +removing useless STMT00006 ( 0x1E7[E--] ... 0x1E9 ) +N004 ( 5, 5) [000055] ----------- * JTRUE void $VN.Void + [000598] ----------- \--* CNS_INT int 1 + from BB26 +setting likelihood of BB26 -> BB10 from 0.5 to 1 + +Conditional folded at BB26 +BB26 becomes a BBJ_ALWAYS to BB10 +optAssertionPropMain removed tree: +N004 ( 5, 5) [000055] ----------- * JTRUE void $VN.Void + [000598] ----------- \--* CNS_INT int 1 + +Propagating #04 for BB11, stmt STMT00040, tree [000240], tree -> #NA +Propagating #04 for BB11, stmt STMT00040, tree [000521], tree -> #NA +Propagating #04 #08 for BB13, stmt STMT00039, tree [000234], tree -> #NA +Propagating #04 #08 for BB13, stmt STMT00039, tree [000519], tree -> #NA +Propagating #04 #08 for BB13, stmt STMT00039, tree [000237], tree -> #NA +Propagating #04 #08 for BB13, stmt STMT00039, tree [000520], tree -> #NA +Propagating #04 #08 for BB15, stmt STMT00038, tree [000228], tree -> #NA +Propagating #04 #08 for BB15, stmt STMT00038, tree [000516], tree -> #NA +Propagating #04 #08 for BB15, stmt STMT00038, tree [000231], tree -> #NA +Propagating #04 #08 for BB15, stmt STMT00038, tree [000517], tree -> #NA +Propagating #04 #08 for BB17, stmt STMT00037, tree [000222], tree -> #NA +Propagating #04 #08 for BB17, stmt STMT00037, tree [000513], tree -> #NA +Propagating #04 #08 for BB17, stmt STMT00037, tree [000225], tree -> #NA +Propagating #04 #08 for BB17, stmt STMT00037, tree [000514], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB19, stmt STMT00036, tree [000216], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB19, stmt STMT00036, tree [000510], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB19, stmt STMT00036, tree [000219], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB19, stmt STMT00036, tree [000511], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB21, stmt STMT00035, tree [000210], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB21, stmt STMT00035, tree [000507], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB21, stmt STMT00035, tree [000213], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB21, stmt STMT00035, tree [000508], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB23, stmt STMT00034, tree [000204], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB23, stmt STMT00034, tree [000504], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB23, stmt STMT00034, tree [000207], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB23, stmt STMT00034, tree [000505], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB25, stmt STMT00033, tree [000198], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB25, stmt STMT00033, tree [000501], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB25, stmt STMT00033, tree [000201], tree -> #NA +Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB25, stmt STMT00033, tree [000502], tree -> #NA +Propagating #04 for BB69, stmt STMT00041, tree [000243], tree -> #NA +Propagating #04 for BB69, stmt STMT00041, tree [000244], tree -> #NA +Propagating #04 for BB69, stmt STMT00041, tree [000245], tree -> #NA +... optVisitReachingAssertions in BB69: phi-pred BB28 is unreachable, ignoring +#04 VN $100 < 2 +Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [] into [<-2147483648, 1>] +Propagating #04 for BB69, stmt STMT00041, tree [000246], tree -> #07 +Re-morphing this stmt: +STMT00041 ( 0x1EE[E--] ... 0x1F0 ) +N004 ( 5, 5) [000246] -----+----- * JTRUE void $VN.Void + [000599] ----------- \--* CNS_INT int 1 + + +removing useless STMT00041 ( 0x1EE[E--] ... 0x1F0 ) +N004 ( 5, 5) [000246] ----------- * JTRUE void $VN.Void + [000599] ----------- \--* CNS_INT int 1 + from BB69 +setting likelihood of BB69 -> BB60 from 0.5 to 1 + +Conditional folded at BB69 +BB69 becomes a BBJ_ALWAYS to BB60 +optAssertionPropMain removed tree: +N004 ( 5, 5) [000246] ----------- * JTRUE void $VN.Void + [000599] ----------- \--* CNS_INT int 1 + +Propagating #04 #08 for BB29, stmt STMT00050, tree [000279], tree -> #NA +Propagating #04 #08 for BB29, stmt STMT00050, tree [000280], tree -> #NA +Propagating #04 #08 for BB29, stmt STMT00050, tree [000281], tree -> #NA +Propagating #04 #08 for BB29, stmt STMT00050, tree [000282], tree -> #NA +Propagating #04 #08 for BB29, stmt STMT00053, tree [000283], tree -> #NA +Propagating #04 #08 for BB29, stmt STMT00053, tree [000284], tree -> #NA +Propagating #04 #08 for BB29, stmt STMT00053, tree [000285], tree -> #NA +Propagating #04 #08 for BB29, stmt STMT00053, tree [000286], tree -> #NA +Propagating #04 #08 for BB29, stmt STMT00053, tree [000287], tree -> #NA +Propagating #04 #08 for BB29, stmt STMT00053, tree [000288], tree -> #NA +Propagating #04 #08 for BB29, stmt STMT00053, tree [000289], tree -> #NA +Propagating #04 #08 for BB29, stmt STMT00053, tree [000457], tree -> #NA +Propagating #04 #08 for BB29, stmt STMT00053, tree [000296], tree -> #NA +Propagating #04 #08 for BB31, stmt STMT00056, tree [000297], tree -> #NA +Propagating #04 #08 for BB31, stmt STMT00056, tree [000298], tree -> #NA +Propagating #04 #08 for BB31, stmt STMT00056, tree [000300], tree -> #NA +Propagating #04 #08 for BB31, stmt STMT00056, tree [000301], tree -> #NA +Propagating #04 #08 for BB31, stmt STMT00056, tree [000302], tree -> #NA +Propagating #04 #08 for BB31, stmt STMT00056, tree [000303], tree -> #NA +Propagating #04 #08 for BB31, stmt STMT00056, tree [000304], tree -> #NA +Propagating #04 #08 for BB31, stmt STMT00056, tree [000305], tree -> #NA +Propagating #04 #08 for BB31, stmt STMT00056, tree [000306], tree -> #NA +Propagating #04 #08 for BB31, stmt STMT00056, tree [000464], tree -> #NA +Propagating #04 #08 for BB31, stmt STMT00056, tree [000313], tree -> #NA +Propagating #04 #08 for BB33, stmt STMT00059, tree [000314], tree -> #NA +Propagating #04 #08 for BB33, stmt STMT00059, tree [000315], tree -> #NA +Propagating #04 #08 for BB33, stmt STMT00059, tree [000317], tree -> #NA +Propagating #04 #08 for BB33, stmt STMT00059, tree [000318], tree -> #NA +Propagating #04 #08 for BB33, stmt STMT00059, tree [000319], tree -> #NA +Propagating #04 #08 for BB33, stmt STMT00059, tree [000320], tree -> #NA +Propagating #04 #08 for BB33, stmt STMT00059, tree [000321], tree -> #NA +Propagating #04 #08 for BB33, stmt STMT00059, tree [000322], tree -> #NA +Propagating #04 #08 for BB33, stmt STMT00059, tree [000323], tree -> #NA +Propagating #04 #08 for BB33, stmt STMT00059, tree [000471], tree -> #NA +Propagating #04 #08 for BB33, stmt STMT00059, tree [000330], tree -> #NA +Propagating #04 #08 for BB35, stmt STMT00062, tree [000331], tree -> #NA +Propagating #04 #08 for BB35, stmt STMT00062, tree [000332], tree -> #NA +Propagating #04 #08 for BB35, stmt STMT00062, tree [000334], tree -> #NA +Propagating #04 #08 for BB35, stmt STMT00062, tree [000335], tree -> #NA +Propagating #04 #08 for BB35, stmt STMT00062, tree [000336], tree -> #NA +Propagating #04 #08 for BB35, stmt STMT00062, tree [000337], tree -> #NA +Propagating #04 #08 for BB35, stmt STMT00062, tree [000338], tree -> #NA +Propagating #04 #08 for BB35, stmt STMT00062, tree [000339], tree -> #NA +Propagating #04 #08 for BB35, stmt STMT00062, tree [000340], tree -> #NA +Propagating #04 #08 for BB35, stmt STMT00062, tree [000478], tree -> #NA +Propagating #04 #08 for BB35, stmt STMT00062, tree [000347], tree -> #NA +Propagating #04 #08 for BB37, stmt STMT00063, tree [000348], tree -> #NA +Propagating #04 #08 for BB37, stmt STMT00063, tree [000350], tree -> #NA +Propagating #04 #08 for BB37, stmt STMT00063, tree [000351], tree -> #NA +Propagating #04 #08 for BB37, stmt STMT00063, tree [000352], tree -> #NA +Propagating #04 #12 for BB38, stmt STMT00043, tree [000251], tree -> #NA +Propagating #04 #12 for BB38, stmt STMT00043, tree [000252], tree -> #NA +Propagating #04 #12 for BB38, stmt STMT00043, tree [000253], tree -> #NA +Propagating #04 #12 for BB38, stmt STMT00043, tree [000254], tree -> #NA +Propagating #04 #12 for BB38, stmt STMT00046, tree [000255], tree -> #NA +Propagating #04 #12 for BB38, stmt STMT00046, tree [000256], tree -> #NA +Propagating #04 #12 for BB38, stmt STMT00046, tree [000257], tree -> #NA +Propagating #04 #12 for BB38, stmt STMT00046, tree [000258], tree -> #NA +Propagating #04 #12 for BB38, stmt STMT00046, tree [000259], tree -> #NA +Propagating #04 #12 for BB38, stmt STMT00046, tree [000260], tree -> #NA +Propagating #04 #12 for BB38, stmt STMT00046, tree [000261], tree -> #NA +Propagating #04 #12 for BB38, stmt STMT00046, tree [000485], tree -> #NA +Propagating #04 #12 for BB38, stmt STMT00046, tree [000268], tree -> #NA +Propagating #04 #12 for BB40, stmt STMT00047, tree [000269], tree -> #NA +Propagating #04 #12 for BB40, stmt STMT00047, tree [000271], tree -> #NA +Propagating #04 #12 for BB40, stmt STMT00047, tree [000272], tree -> #NA +Propagating #04 #12 for BB40, stmt STMT00047, tree [000273], tree -> #NA +Propagating #04 #12 for BB40, stmt STMT00042, tree [000247], tree -> #NA +Propagating #04 #12 for BB40, stmt STMT00042, tree [000248], tree -> #NA +Propagating #04 #12 for BB40, stmt STMT00042, tree [000249], tree -> #NA +#09 VN $1b8 > 0 +Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [<1, Unknown>] into [<1, 2147483647>] +... optVisitReachingAssertions in BB69: phi-pred BB28 is unreachable, ignoring +#04 VN $100 < 2 +Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [] into [<-2147483648, 1>] +#08 VN $2c1 >= 4 +Tightening pRange: [<-2147483648, 1>] with assertedRange: [<4, Unknown>] into [<4, 1>] +invalid range after tightening +#12 VN $2c2 > 0 +Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [<1, Unknown>] into [<1, 2147483647>] +#09 VN $1b8 > 0 +Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [<1, Unknown>] into [<1, 2147483647>] +... optVisitReachingAssertions in BB69: phi-pred BB28 is unreachable, ignoring +#04 VN $100 < 2 +Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [] into [<-2147483648, 1>] +#08 VN $2c1 >= 4 +Tightening pRange: [<-2147483648, 1>] with assertedRange: [<4, Unknown>] into [<4, 1>] +invalid range after tightening +#12 VN $2c2 > 0 +Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [<1, Unknown>] into [<1, 2147483647>] +Propagating #04 #12 for BB40, stmt STMT00042, tree [000250], tree -> #09 +Propagating #04 for BB60, stmt STMT00089, tree [000533], tree -> #NA +Propagating #04 for BB60, stmt STMT00089, tree [000534], tree -> #NA +Propagating #04 for BB60, stmt STMT00089, tree [000532], tree -> #NA +... optVisitReachingAssertions in BB69: phi-pred BB28 is unreachable, ignoring +#04 VN $100 < 2 +Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [] into [<-2147483648, 1>] +#08 VN $2c1 >= 4 +Tightening pRange: [<-2147483648, 1>] with assertedRange: [<4, Unknown>] into [<4, 1>] +invalid range after tightening +... optVisitReachingAssertions in BB69: phi-pred BB28 is unreachable, ignoring +#04 VN $100 < 2 +Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [] into [<-2147483648, 1>] +#08 VN $2c1 >= 4 +Tightening pRange: [<-2147483648, 1>] with assertedRange: [<4, Unknown>] into [<4, 1>] +invalid range after tightening +Propagating #04 for BB60, stmt STMT00089, tree [000531], tree -> #11 +Propagating #04 for BB67, stmt STMT00088, tree [000277], tree -> #NA +Propagating #04 for BB67, stmt STMT00088, tree [000493], tree -> #NA +Propagating #03 for BB43, stmt STMT00004, tree [000041], tree -> #NA +Propagating #03 for BB43, stmt STMT00004, tree [000042], tree -> #NA +Propagating #03 for BB43, stmt STMT00004, tree [000043], tree -> #NA +Propagating #03 for BB43, stmt STMT00004, tree [000044], tree -> #NA +Propagating #04 for BB58, stmt STMT00087, tree [000491], tree -> #NA +Propagating #04 for BB58, stmt STMT00087, tree [000492], tree -> #NA + +*************** Finishing PHASE Assertion prop +Trees after Assertion prop + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(1) (always) i +BB68 [0095] 0 0.50 [???..???)-> BB10(1) (always) i +BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target +BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd +BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd +BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd +BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(1) (always) i bwd +BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal +BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal +BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i +BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal +BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i +BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal +BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i +BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal +BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i +BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i +BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i +BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i +BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i +BB28 [0027] 0 0.50 [???..???)-> BB69(1) (always) i +BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(1) (always) i +BB29 [0028] 0 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i +BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i +BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i +BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i +BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i +BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i +BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd +BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal +BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal +BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i +BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall +BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000002] J----+-N--- \--* GE int $180 +N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 $40 + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void +N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref $1c0 +N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref $1c1 + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) +N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000033] J----+-N--- \--* GE int $181 +N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 + +------------ BB09 [0008] [068..073) -> BB69(1) (always), preds={BB57} succs={BB69} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) +N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void +N004 ( 4, 5) [000050] -----+----- \--* ADD long $241 +N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int $240 +N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 $100 +N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 $280 + +------------ BB68 [0095] [???..???) -> BB10(1) (always), preds={} succs={BB10} + +------------ BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB26,BB68} succs={BB62,BB12} + +***** BB10 [0009] +STMT00103 ( ??? ... ??? ) +N004 ( 0, 0) [000564] DA--------- * STORE_LCL_VAR int V02 arg2 d:2 $VN.Void +N003 ( 0, 0) [000563] ----------- \--* PHI int $2c0 +N001 ( 0, 0) [000569] ----------- pred BB26 +--* PHI_ARG int V02 arg2 u:3 +N002 ( 0, 0) [000567] ----------- pred BB68 \--* PHI_ARG int V02 arg2 u:1 $100 + +***** BB10 [0009] +STMT00098 ( ??? ... ??? ) +N004 ( 0, 0) [000554] DA--------- * STORE_LCL_VAR long V04 loc1 d:2 $VN.Void +N003 ( 0, 0) [000553] ----------- \--* PHI long $300 +N001 ( 0, 0) [000570] ----------- pred BB26 +--* PHI_ARG long V04 loc1 u:3 +N002 ( 0, 0) [000568] ----------- pred BB68 \--* PHI_ARG long V04 loc1 u:1 $241 + +***** BB10 [0009] +STMT00007 ( 0x073[E--] ... 0x076 ) +N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 d:3 $VN.Void +N003 ( 3, 3) [000058] -----+----- \--* ADD int $183 +N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 u:2 (last use) $2c0 +N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 $46 + +***** BB10 [0009] +STMT00010 ( 0x078[E--] ... ??? ) +N009 ( 9, 8) [000073] ---XG+----- * JTRUE void $401 +N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int +N006 ( 5, 4) [000065] ---XG+----- +--* IND long +N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref $340 +N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long $242 +N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) +N011 ( 9, 9) [000090] ---XG+----- * JTRUE void $403 +N010 ( 7, 7) [000408] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000082] ---XG+----- +--* IND long +N007 ( 4, 4) [000081] -----+-N--- | \--* ADD byref $341 +N001 ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000080] -----+-N--- | \--* ADD long $245 +N004 ( 2, 2) [000078] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 $283 +N009 ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) +N011 ( 9, 9) [000107] ---XG+----- * JTRUE void $405 +N010 ( 7, 7) [000415] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000099] ---XG+----- +--* IND long +N007 ( 4, 4) [000098] -----+-N--- | \--* ADD byref $342 +N001 ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000097] -----+-N--- | \--* ADD long $248 +N004 ( 2, 2) [000095] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 $284 +N009 ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) +N011 ( 9, 9) [000124] ---XG+----- * JTRUE void $407 +N010 ( 7, 7) [000422] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000116] ---XG+----- +--* IND long +N007 ( 4, 4) [000115] -----+-N--- | \--* ADD byref $343 +N001 ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000114] -----+-N--- | \--* ADD long $24b +N004 ( 2, 2) [000112] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 $285 +N009 ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) +N011 ( 9, 9) [000141] ---XG+----- * JTRUE void $409 +N010 ( 7, 7) [000429] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000133] ---XG+----- +--* IND long +N007 ( 4, 4) [000132] -----+-N--- | \--* ADD byref $344 +N001 ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000131] -----+-N--- | \--* ADD long $24e +N004 ( 2, 2) [000129] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 $286 +N009 ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) +N011 ( 9, 9) [000158] ---XG+----- * JTRUE void $40b +N010 ( 7, 7) [000436] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000150] ---XG+----- +--* IND long +N007 ( 4, 4) [000149] -----+-N--- | \--* ADD byref $345 +N001 ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000148] -----+-N--- | \--* ADD long $251 +N004 ( 2, 2) [000146] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 $287 +N009 ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) +N011 ( 9, 9) [000175] ---XG+----- * JTRUE void $40d +N010 ( 7, 7) [000443] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000167] ---XG+----- +--* IND long +N007 ( 4, 4) [000166] -----+-N--- | \--* ADD byref $346 +N001 ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000165] -----+-N--- | \--* ADD long $254 +N004 ( 2, 2) [000163] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 $288 +N009 ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) +N011 ( 9, 9) [000192] ---XG+----- * JTRUE void $40f +N010 ( 7, 7) [000450] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000184] ---XG+----- +--* IND long +N007 ( 4, 4) [000183] -----+-N--- | \--* ADD byref $347 +N001 ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000182] -----+-N--- | \--* ADD long $257 +N004 ( 2, 2) [000180] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 $289 +N009 ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB26 [0025] [1E2..1EE) -> BB10(1) (always), preds={BB24} succs={BB10} + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) +N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 d:3 $VN.Void +N003 ( 3, 3) [000196] -----+----- \--* ADD long $25a +N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 u:2 (last use) $300 +N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 $283 + +------------ BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} + +------------ BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} + +------------ BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} + +***** BB11 [0010] +STMT00093 ( ??? ... ??? ) +N005 ( 0, 0) [000544] DA--------- * STORE_LCL_VAR long V04 loc1 d:12 $VN.Void +N004 ( 0, 0) [000543] ----------- \--* PHI long $307 +N001 ( 0, 0) [000591] ----------- pred BB61 +--* PHI_ARG long V04 loc1 u:7 $303 +N002 ( 0, 0) [000583] ----------- pred BB29 +--* PHI_ARG long V04 loc1 u:4 $301 +N003 ( 0, 0) [000580] ----------- pred BB62 \--* PHI_ARG long V04 loc1 u:2 $300 + +***** BB11 [0010] +STMT00040 ( 0x09D[E--] ... 0x09F ) +N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void +N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) $449 + +------------ BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} + +------------ BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} + +***** BB13 [0012] +STMT00099 ( ??? ... ??? ) +N004 ( 0, 0) [000556] DA--------- * STORE_LCL_VAR long V04 loc1 d:11 $VN.Void +N003 ( 0, 0) [000555] ----------- \--* PHI long $306 +N001 ( 0, 0) [000588] ----------- pred BB32 +--* PHI_ARG long V04 loc1 u:4 $301 +N002 ( 0, 0) [000579] ----------- pred BB63 \--* PHI_ARG long V04 loc1 u:2 $300 + +***** BB13 [0012] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) +N004 ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:7 $VN.Void +N003 ( 3, 3) [000237] -----+----- \--* ADD int $448 +N001 ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 u:11 (last use) $447 +N002 ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 $43 + +------------ BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} + +------------ BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} + +***** BB15 [0014] +STMT00100 ( ??? ... ??? ) +N004 ( 0, 0) [000558] DA--------- * STORE_LCL_VAR long V04 loc1 d:10 $VN.Void +N003 ( 0, 0) [000557] ----------- \--* PHI long $305 +N001 ( 0, 0) [000587] ----------- pred BB34 +--* PHI_ARG long V04 loc1 u:4 $301 +N002 ( 0, 0) [000578] ----------- pred BB64 \--* PHI_ARG long V04 loc1 u:2 $300 + +***** BB15 [0014] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) +N004 ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:6 $VN.Void +N003 ( 3, 3) [000231] -----+----- \--* ADD int $446 +N001 ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 u:10 (last use) $445 +N002 ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 $4e + +------------ BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} + +------------ BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} + +***** BB17 [0016] +STMT00101 ( ??? ... ??? ) +N004 ( 0, 0) [000560] DA--------- * STORE_LCL_VAR long V04 loc1 d:9 $VN.Void +N003 ( 0, 0) [000559] ----------- \--* PHI long $304 +N001 ( 0, 0) [000586] ----------- pred BB36 +--* PHI_ARG long V04 loc1 u:4 $301 +N002 ( 0, 0) [000577] ----------- pred BB65 \--* PHI_ARG long V04 loc1 u:2 $300 + +***** BB17 [0016] +STMT00037 ( 0x124[E--] ... 0x129 ) +N004 ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:5 $VN.Void +N003 ( 3, 3) [000225] -----+----- \--* ADD int $444 +N001 ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 u:9 (last use) $443 +N002 ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 $4d + +------------ BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) +N004 ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:4 $VN.Void +N003 ( 3, 3) [000219] -----+----- \--* ADD int $442 +N001 ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 $48 + +------------ BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) +N004 ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:3 $VN.Void +N003 ( 3, 3) [000213] -----+----- \--* ADD int $441 +N001 ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 $4c + +------------ BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) +N004 ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:2 $VN.Void +N003 ( 3, 3) [000207] -----+----- \--* ADD int $440 +N001 ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 $4b + +------------ BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) +N004 ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:1 $VN.Void +N003 ( 3, 3) [000201] -----+----- \--* ADD int $1bf +N001 ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 $4a + +------------ BB28 [0027] [???..???) -> BB69(1) (always), preds={} succs={BB69} + +------------ BB69 [0096] [1EE..1F5) -> BB60(1) (always), preds={BB09,BB28} succs={BB60} + +***** BB69 [0096] +STMT00102 ( ??? ... ??? ) +N004 ( 0, 0) [000562] DA--------- * STORE_LCL_VAR int V02 arg2 d:4 $VN.Void +N003 ( 0, 0) [000561] ----------- \--* PHI int $2c1 +N001 ( 0, 0) [000571] ----------- pred BB28 +--* PHI_ARG int V02 arg2 u:3 $183 +N002 ( 0, 0) [000565] ----------- pred BB09 \--* PHI_ARG int V02 arg2 u:1 $100 + +***** BB69 [0096] +STMT00097 ( ??? ... ??? ) +N004 ( 0, 0) [000552] DA--------- * STORE_LCL_VAR long V04 loc1 d:4 $VN.Void +N003 ( 0, 0) [000551] ----------- \--* PHI long $301 +N001 ( 0, 0) [000572] ----------- pred BB28 +--* PHI_ARG long V04 loc1 u:3 $25a +N002 ( 0, 0) [000566] ----------- pred BB09 \--* PHI_ARG long V04 loc1 u:1 $241 + +------------ BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={} succs={BB31,BB11} + +***** BB29 [0028] +STMT00050 ( 0x1F5[E--] ... 0x1F8 ) +N004 ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 d:5 $VN.Void +N003 ( 3, 3) [000281] -----+----- \--* ADD int $1a6 +N001 ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 u:4 (last use) $2c1 +N002 ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 $48 + +***** BB29 [0028] +STMT00053 ( 0x1FA[E--] ... ??? ) +N009 ( 9, 8) [000296] ---XG+----- * JTRUE void $411 +N008 ( 7, 6) [000457] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000288] ---XG+----- +--* IND long +N005 ( 3, 3) [000287] -----+-N--- | \--* ADD byref $348 +N001 ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000286] -----+-N--- | \--* LSH long $25b +N002 ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} + +***** BB31 [0030] +STMT00056 ( 0x222[E--] ... ??? ) +N011 ( 9, 9) [000313] ---XG+----- * JTRUE void $413 +N010 ( 7, 7) [000464] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000305] ---XG+----- +--* IND long +N007 ( 4, 4) [000304] -----+-N--- | \--* ADD byref $349 +N001 ( 1, 1) [000297] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000303] -----+-N--- | \--* ADD long $25e +N004 ( 2, 2) [000301] -----+-N--- | +--* LSH long $25b +N002 ( 1, 1) [000298] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000300] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000302] -----+----- | \--* CNS_INT long -8 $283 +N009 ( 1, 1) [000306] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} + +------------ BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} + +***** BB33 [0032] +STMT00059 ( 0x250[E--] ... ??? ) +N011 ( 9, 9) [000330] ---XG+----- * JTRUE void $415 +N010 ( 7, 7) [000471] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000322] ---XG+----- +--* IND long +N007 ( 4, 4) [000321] -----+-N--- | \--* ADD byref $34a +N001 ( 1, 1) [000314] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000320] -----+-N--- | \--* ADD long $261 +N004 ( 2, 2) [000318] -----+-N--- | +--* LSH long $25b +N002 ( 1, 1) [000315] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000317] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000319] -----+----- | \--* CNS_INT long -16 $284 +N009 ( 1, 1) [000323] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} + +------------ BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} + +***** BB35 [0034] +STMT00062 ( 0x27E[E--] ... ??? ) +N011 ( 9, 9) [000347] ---XG+----- * JTRUE void $417 +N010 ( 7, 7) [000478] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000339] ---XG+----- +--* IND long +N007 ( 4, 4) [000338] -----+-N--- | \--* ADD byref $34b +N001 ( 1, 1) [000331] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000337] -----+-N--- | \--* ADD long $264 +N004 ( 2, 2) [000335] -----+-N--- | +--* LSH long $25b +N002 ( 1, 1) [000332] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000334] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000336] -----+----- | \--* CNS_INT long -24 $285 +N009 ( 1, 1) [000340] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} + +------------ BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} + +***** BB37 [0036] +STMT00063 ( 0x2AC[E--] ... 0x2B0 ) +N004 ( 3, 3) [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 d:5 $VN.Void +N003 ( 3, 3) [000351] -----+----- \--* ADD long $267 +N001 ( 1, 1) [000348] -----+----- +--* LCL_VAR long V04 loc1 u:4 (last use) $301 +N002 ( 1, 1) [000350] -----+----- \--* CNS_INT long -4 $28a + +------------ BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB40,BB66} succs={BB40,BB61} + +***** BB38 [0037] +STMT00094 ( ??? ... ??? ) +N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 $VN.Void +N003 ( 0, 0) [000545] ----------- \--* PHI int $2c3 +N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 +N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 $2c2 + +***** BB38 [0037] +STMT00092 ( ??? ... ??? ) +N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 $VN.Void +N003 ( 0, 0) [000541] ----------- \--* PHI long $303 +N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 +N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 $302 + +***** BB38 [0037] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) +N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void +N003 ( 3, 3) [000253] -----+----- \--* ADD int $1b8 +N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) $2c3 +N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 $43 + +***** BB38 [0037] +STMT00046 ( 0x2B8[E--] ... ??? ) +N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 +N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000260] ---XG+----- +--* IND long +N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref $34c +N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long $268 +N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 $303 +N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) +N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void +N003 ( 3, 3) [000272] -----+----- \--* ADD long $26b +N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) $303 +N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 $280 + +***** BB40 [0039] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) +N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000249] J----+-N--- \--* GT int $1bd +N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 $1b8 +N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 $40 + +------------ BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB37,BB69} succs={BB66,BB67} + +***** BB60 [0087] +STMT00096 ( ??? ... ??? ) +N004 ( 0, 0) [000550] DA--------- * STORE_LCL_VAR int V02 arg2 d:6 $VN.Void +N003 ( 0, 0) [000549] ----------- \--* PHI int $2c2 +N001 ( 0, 0) [000584] ----------- pred BB37 +--* PHI_ARG int V02 arg2 u:5 $1a6 +N002 ( 0, 0) [000581] ----------- pred BB69 \--* PHI_ARG int V02 arg2 u:4 $2c1 + +***** BB60 [0087] +STMT00095 ( ??? ... ??? ) +N004 ( 0, 0) [000548] DA--------- * STORE_LCL_VAR long V04 loc1 d:6 $VN.Void +N003 ( 0, 0) [000547] ----------- \--* PHI long $302 +N001 ( 0, 0) [000585] ----------- pred BB37 +--* PHI_ARG long V04 loc1 u:5 $267 +N002 ( 0, 0) [000582] ----------- pred BB69 \--* PHI_ARG long V04 loc1 u:4 $301 + +***** BB60 [0087] +STMT00089 ( 0x2E5[E--] ... ??? ) +N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void +N003 ( 3, 3) [000532] J------N--- \--* LE int $1b7 +N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 +N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 + +------------ BB66 [0093] [???..???) -> BB38(1) (always), preds={BB60} succs={BB38} + +------------ BB42 [0041] [???..???) -> BB67(1) (always), preds={BB40} succs={BB67} + +------------ BB67 [0094] [2E9..2EB) (return), preds={BB42,BB60} succs={} + +***** BB67 [0094] +STMT00088 ( ??? ... ??? ) +N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void +N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 $43 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) +N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void +N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) $80 +N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) $c0 +N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) $100 + +------------ BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} + +***** BB58 [0085] +STMT00091 ( ??? ... ??? ) +N010 ( 0, 0) [000540] DA--------- * STORE_LCL_VAR int V34 tmp29 d:9 $VN.Void +N009 ( 0, 0) [000539] ----------- \--* PHI int $2c4 +N001 ( 0, 0) [000597] ----------- pred BB11 +--* PHI_ARG int V34 tmp29 u:8 $449 +N002 ( 0, 0) [000596] ----------- pred BB13 +--* PHI_ARG int V34 tmp29 u:7 $448 +N003 ( 0, 0) [000595] ----------- pred BB15 +--* PHI_ARG int V34 tmp29 u:6 $446 +N004 ( 0, 0) [000594] ----------- pred BB17 +--* PHI_ARG int V34 tmp29 u:5 $444 +N005 ( 0, 0) [000576] ----------- pred BB19 +--* PHI_ARG int V34 tmp29 u:4 $442 +N006 ( 0, 0) [000575] ----------- pred BB21 +--* PHI_ARG int V34 tmp29 u:3 $441 +N007 ( 0, 0) [000574] ----------- pred BB23 +--* PHI_ARG int V34 tmp29 u:2 $440 +N008 ( 0, 0) [000573] ----------- pred BB25 \--* PHI_ARG int V34 tmp29 u:1 $1bf + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) +N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void +N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) $2c4 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Optimize index checks + +*************** Finishing PHASE Optimize index checks [no changes] + +*************** Starting PHASE Optimize Induction Variables +*************** In optInductionVariables() +After computing the dominance tree: +BB01 : BB52 BB57 +BB57 : BB43 BB09 +BB09 : BB69 +BB69 : BB60 +BB60 : BB66 BB67 +BB66 : BB38 +BB38 : BB61 BB40 +BB61 : BB11 +BB11 : BB58 +BB40 : BB42 + +Identifying loops in DFS tree with following reverse post order: +RPO -> BB [pre, post] +00 -> BB01[0, 14] +01 -> BB52[1, 13] +02 -> BB57[2, 12] +03 -> BB43[14, 11] +04 -> BB09[3, 10] +05 -> BB69[4, 9] +06 -> BB60[5, 8] +07 -> BB66[6, 7] +08 -> BB38[7, 6] +09 -> BB61[11, 5] +10 -> BB11[12, 4] +11 -> BB58[13, 3] +12 -> BB40[8, 2] +13 -> BB42[9, 1] +14 -> BB67[10, 0] + +BB40 -> BB38 is a backedge +BB38 is the header of a DFS loop with 1 back edges +Loop has 2 blocks +BB38 -> BB61 is an exit edge +BB40 -> BB42 is an exit edge +BB66 -> BB38 is an entry edge +Added loop L00 with header BB38 + +Found 1 loops + +*************** Natural loop graph +L00 header: BB38 + Members (2): [BB38..BB40] + Entry: BB66 -> BB38 + Exit: BB38 -> BB61; BB40 -> BB42 + Back: BB40 -> BB38 + +Optimizing induction variables: +Processing L00 header: BB38 + Members (2): [BB38..BB40] + Entry: BB66 -> BB38 + Exit: BB38 -> BB61; BB40 -> BB42 + Back: BB40 -> BB38 +Considering L00 for strength reduction... + L00 exits when: + <= 0 + Does not overflow past the test + Need to prove 0 <= (V02.6 + -1): unknown + Bound on backedge taken count is + + Considering primary IVs +STMT00094 ( ??? ... ??? ) +N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 $VN.Void +N003 ( 0, 0) [000545] ----------- \--* PHI int $2c3 +N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 +N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 $2c2 + => + Could not create cursors for all loop uses of primary IV +STMT00092 ( ??? ... ??? ) +N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 $VN.Void +N003 ( 0, 0) [000541] ----------- \--* PHI long $303 +N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 +N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 $302 + => + Has non-loop uses +Checking if we should make L00 downwards counted + Considering exiting block BB40 + No; operand of condition [000249] is already 0 + Considering exiting block BB38 + No; exit node has side effects +Considering primary IVs of L00 for widening + +STMT00094 ( ??? ... ??? ) +N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 $VN.Void +N003 ( 0, 0) [000545] ----------- \--* PHI int $2c3 +N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 +N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 $2c2 + => + V02 is a primary induction variable in L00 + Exit BB61 does not need a sink; V02 is not live-in + Exit BB42 does not need a sink; V02 is not live-in + Estimated cycle improvement: -1.5 cycles per invocation + Estimated size improvement: -3 bytes + Widening is not profitable + +STMT00092 ( ??? ... ??? ) +N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 $VN.Void +N003 ( 0, 0) [000541] ----------- \--* PHI long $303 +N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 +N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 $302 + => + V04 is a primary induction variable in L00 + Type is long, no widening to be done + Now looking for unnecessary primary IVs + V02 has essential uses, cannot remove + V04 has non-loop uses, cannot remove + +*************** Finishing PHASE Optimize Induction Variables [no changes] + +*************** Starting PHASE VN-based dead store removal +Considering [000564] for removal... + -- no; last def not in the same block +Considering [000059] for removal... + -- no; not redundant +Considering [000562] for removal... + -- no; last def not in the same block +Considering [000282] for removal... + -- no; last def not in the same block +Considering [000550] for removal... + -- no; last def not in the same block +Considering [000546] for removal... + -- no; last def not in the same block +Considering [000254] for removal... + -- no; not redundant +Considering [000554] for removal... + -- no; last def not in the same block +Considering [000197] for removal... + -- no; last def not in the same block +Considering [000552] for removal... + -- no; last def not in the same block +Considering [000352] for removal... + -- no; last def not in the same block +Considering [000548] for removal... + -- no; last def not in the same block +Considering [000542] for removal... + -- no; last def not in the same block +Considering [000273] for removal... + -- no; last def not in the same block +Considering [000560] for removal... + -- no; last def not in the same block +Considering [000558] for removal... + -- no; last def not in the same block +Considering [000556] for removal... + -- no; last def not in the same block +Considering [000544] for removal... + -- no; last def not in the same block +Considering [000505] for removal... + -- no; last def not in the same block +Considering [000508] for removal... + -- no; last def not in the same block +Considering [000511] for removal... + -- no; last def not in the same block +Considering [000514] for removal... + -- no; last def not in the same block +Considering [000517] for removal... + -- no; last def not in the same block +Considering [000520] for removal... + -- no; last def not in the same block +Considering [000521] for removal... + -- no; last def not in the same block +Considering [000540] for removal... + -- no; last def not in the same block + +*************** Finishing PHASE VN-based dead store removal [no changes] + +*************** Starting PHASE Clone blocks with range checks +Current method has no bounds checks + +*************** Finishing PHASE Clone blocks with range checks [no changes] + +*************** Starting PHASE VN based intrinsic expansion + +*************** Finishing PHASE VN based intrinsic expansion [no changes] + +*************** Starting PHASE Update flow graph opt pass + +Optimizing a jump to an unconditional jump (BB09 -> BB69 -> BB60) + +Compacting BB10 into BB68: +Second block has 1 other incoming edges +*************** In fgDebugCheckBBlist + +Compacting BB68 into BB26: +*************** In fgDebugCheckBBlist + +Compacting BB11 into BB61: +Second block has 2 other incoming edges +setting likelihood of BB61 -> BB58 from 1 to 1 +*************** In fgDebugCheckBBlist + +Compacting BB61 into BB62: +Second block has 2 other incoming edges +setting likelihood of BB62 -> BB58 from 1 to 1 +*************** In fgDebugCheckBBlist + +Compacting BB13 into BB63: +Second block has 1 other incoming edges +setting likelihood of BB63 -> BB58 from 1 to 1 +*************** In fgDebugCheckBBlist + +Compacting BB15 into BB64: +Second block has 1 other incoming edges +setting likelihood of BB64 -> BB58 from 1 to 1 +*************** In fgDebugCheckBBlist + +Compacting BB17 into BB65: +Second block has 1 other incoming edges +setting likelihood of BB65 -> BB58 from 1 to 1 +*************** In fgDebugCheckBBlist + +Compacting BB69 into BB28: +setting likelihood of BB28 -> BB60 from 1 to 1 +*************** In fgDebugCheckBBlist + +Compacting BB60 into BB28: +Second block has 2 other incoming edges +*************** In fgDebugCheckBBlist +fgRemoveBlock BB29, unreachable=true + +Removing unreachable BB29 + +removing useless STMT00050 ( 0x1F5[E--] ... 0x1F8 ) +N004 ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 d:5 $VN.Void +N003 ( 3, 3) [000281] -----+----- \--* ADD int $1a6 +N001 ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 u:4 (last use) $2c1 +N002 ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 $48 + from BB29 + +removing useless STMT00053 ( 0x1FA[E--] ... ??? ) +N009 ( 9, 8) [000296] ---XG+----- * JTRUE void $411 +N008 ( 7, 6) [000457] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000288] ---XG+----- +--* IND long +N005 ( 3, 3) [000287] -----+-N--- | \--* ADD byref $348 +N001 ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000286] -----+-N--- | \--* LSH long $25b +N002 ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + from BB29 + +BB29 becomes empty + +Reversing a conditional jump around an unconditional jump (BB31 -> BB33, BB32 -> BB63) + +After reversing the jump: + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 0.50 [068..073)-> BB28(1) (always) i +BB12 [0011] 1 BB26 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd +BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd +BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd +BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB26 [0025] 1 BB24 4 [073..1EE)-> BB12(0.5),BB62(0.5) ( cond ) i bwd +BB62 [0089] 2 BB26,BB38 0.50 [09D..0A0)-> BB58(1) (always) i +BB63 [0090] 2 BB12,BB31 0.50 [0C8..0CE)-> BB58(1) (always) i +BB64 [0091] 2 BB14,BB34 0.50 [0F6..0FC)-> BB58(1) (always) i +BB65 [0092] 2 BB16,BB36 0.50 [124..12A)-> BB58(1) (always) i +BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i +BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i +BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i +BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i +BB28 [0027] 2 BB09,BB37 0.75 [1EE..1F5)-> BB67(0.5),BB66(0.5) ( cond ) i +BB31 [0030] 0 0.50 [222..24A)-> BB63(0.5),BB33(0.5) ( cond ) i +BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i +BB34 [0033] 1 BB33 0.50 [278..27E)-> BB64(1) (always) i +BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB65(1) (always) i +BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB28(1) (always) i +BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd +BB66 [0093] 1 BB28 0.75 [???..???)-> BB38(1) (always) internal +BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i +BB67 [0094] 2 BB28,BB42 0.50 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall +BB58 [0085] 8 BB19,BB21,BB23,BB25,BB62,BB63,BB64,BB65 0.50 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +fgRemoveBlock BB31, unreachable=true + +Removing unreachable BB31 + +removing useless STMT00056 ( 0x222[E--] ... ??? ) +N011 ( 9, 9) [000313] ---XG+----- * JTRUE void $413 +N010 ( 7, 7) [000464] J--XG+-N--- \--* EQ int +N008 ( 5, 5) [000305] ---XG+----- +--* IND long +N007 ( 4, 4) [000304] -----+-N--- | \--* ADD byref $349 +N001 ( 1, 1) [000297] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000303] -----+-N--- | \--* ADD long $25e +N004 ( 2, 2) [000301] -----+-N--- | +--* LSH long $25b +N002 ( 1, 1) [000298] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000300] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000302] -----+----- | \--* CNS_INT long -8 $283 +N009 ( 1, 1) [000306] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + from BB31 + +BB31 becomes empty + +Reversing a conditional jump around an unconditional jump (BB33 -> BB35, BB34 -> BB64) + +After reversing the jump: + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 0.50 [068..073)-> BB28(1) (always) i +BB12 [0011] 1 BB26 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd +BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd +BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd +BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB26 [0025] 1 BB24 4 [073..1EE)-> BB12(0.5),BB62(0.5) ( cond ) i bwd +BB62 [0089] 2 BB26,BB38 0.50 [09D..0A0)-> BB58(1) (always) i +BB63 [0090] 1 BB12 0.50 [0C8..0CE)-> BB58(1) (always) i +BB64 [0091] 2 BB14,BB33 0.50 [0F6..0FC)-> BB58(1) (always) i +BB65 [0092] 2 BB16,BB36 0.50 [124..12A)-> BB58(1) (always) i +BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i +BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i +BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i +BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i +BB28 [0027] 2 BB09,BB37 0.75 [1EE..1F5)-> BB67(0.5),BB66(0.5) ( cond ) i +BB33 [0032] 0 0.50 [250..278)-> BB64(0.5),BB35(0.5) ( cond ) i +BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i +BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB65(1) (always) i +BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB28(1) (always) i +BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd +BB66 [0093] 1 BB28 0.75 [???..???)-> BB38(1) (always) internal +BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i +BB67 [0094] 2 BB28,BB42 0.50 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall +BB58 [0085] 8 BB19,BB21,BB23,BB25,BB62,BB63,BB64,BB65 0.50 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +fgRemoveBlock BB33, unreachable=true + +Removing unreachable BB33 + +removing useless STMT00059 ( 0x250[E--] ... ??? ) +N011 ( 9, 9) [000330] ---XG+----- * JTRUE void $415 +N010 ( 7, 7) [000471] J--XG+-N--- \--* EQ int +N008 ( 5, 5) [000322] ---XG+----- +--* IND long +N007 ( 4, 4) [000321] -----+-N--- | \--* ADD byref $34a +N001 ( 1, 1) [000314] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000320] -----+-N--- | \--* ADD long $261 +N004 ( 2, 2) [000318] -----+-N--- | +--* LSH long $25b +N002 ( 1, 1) [000315] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000317] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000319] -----+----- | \--* CNS_INT long -16 $284 +N009 ( 1, 1) [000323] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + from BB33 + +BB33 becomes empty + +Reversing a conditional jump around an unconditional jump (BB35 -> BB37, BB36 -> BB65) + +After reversing the jump: + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 0.50 [068..073)-> BB28(1) (always) i +BB12 [0011] 1 BB26 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd +BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd +BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd +BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB26 [0025] 1 BB24 4 [073..1EE)-> BB12(0.5),BB62(0.5) ( cond ) i bwd +BB62 [0089] 2 BB26,BB38 0.50 [09D..0A0)-> BB58(1) (always) i +BB63 [0090] 1 BB12 0.50 [0C8..0CE)-> BB58(1) (always) i +BB64 [0091] 1 BB14 0.50 [0F6..0FC)-> BB58(1) (always) i +BB65 [0092] 2 BB16,BB35 0.50 [124..12A)-> BB58(1) (always) i +BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i +BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i +BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i +BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i +BB28 [0027] 2 BB09,BB37 0.75 [1EE..1F5)-> BB67(0.5),BB66(0.5) ( cond ) i +BB35 [0034] 0 0.50 [27E..2A6)-> BB65(0.5),BB37(0.5) ( cond ) i +BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB28(1) (always) i +BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i bwd bwd-target +BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd +BB66 [0093] 1 BB28 0.75 [???..???)-> BB38(1) (always) internal +BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i +BB67 [0094] 2 BB28,BB42 0.50 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall +BB58 [0085] 8 BB19,BB21,BB23,BB25,BB62,BB63,BB64,BB65 0.50 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +fgRemoveBlock BB35, unreachable=true + +Removing unreachable BB35 + +removing useless STMT00062 ( 0x27E[E--] ... ??? ) +N011 ( 9, 9) [000347] ---XG+----- * JTRUE void $417 +N010 ( 7, 7) [000478] J--XG+-N--- \--* EQ int +N008 ( 5, 5) [000339] ---XG+----- +--* IND long +N007 ( 4, 4) [000338] -----+-N--- | \--* ADD byref $34b +N001 ( 1, 1) [000331] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000337] -----+-N--- | \--* ADD long $264 +N004 ( 2, 2) [000335] -----+-N--- | +--* LSH long $25b +N002 ( 1, 1) [000332] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 +N003 ( 1, 1) [000334] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000336] -----+----- | \--* CNS_INT long -24 $285 +N009 ( 1, 1) [000340] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + from BB35 + +BB35 becomes empty +fgRemoveBlock BB37, unreachable=true + +Removing unreachable BB37 + +removing useless STMT00063 ( 0x2AC[E--] ... 0x2B0 ) +N004 ( 3, 3) [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 d:5 $VN.Void +N003 ( 3, 3) [000351] -----+----- \--* ADD long $267 +N001 ( 1, 1) [000348] -----+----- +--* LCL_VAR long V04 loc1 u:4 (last use) $301 +N002 ( 1, 1) [000350] -----+----- \--* CNS_INT long -4 $28a + from BB37 + +BB37 becomes empty + +Compacting BB38 into BB66: +Second block has 1 other incoming edges +*************** In fgDebugCheckBBlist + +Compacting BB67 into BB42: +Second block has 1 other incoming edges +*************** In fgDebugCheckBBlist + +Compacting BB28 into BB09: +*************** In fgDebugCheckBBlist + +*************** Finishing PHASE Update flow graph opt pass +Trees after Update flow graph opt pass + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i +BB12 [0011] 1 BB26 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd +BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd +BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd +BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd +BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd +BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd +BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd +BB26 [0025] 1 BB24 4 [073..1EE)-> BB12(0.5),BB62(0.5) ( cond ) i bwd +BB62 [0089] 2 BB26,BB66 0.50 [09D..0A0)-> BB58(1) (always) i +BB63 [0090] 1 BB12 0.50 [0C8..0CE)-> BB58(1) (always) i +BB64 [0091] 1 BB14 0.50 [0F6..0FC)-> BB58(1) (always) i +BB65 [0092] 1 BB16 0.50 [124..12A)-> BB58(1) (always) i +BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i +BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i +BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i +BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i +BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i bwd +BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i bwd +BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall +BB58 [0085] 8 BB19,BB21,BB23,BB25,BB62,BB63,BB64,BB65 0.50 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000002] J----+-N--- \--* GE int $180 +N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 $40 + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void +N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref $1c0 +N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref $1c1 + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) +N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000033] J----+-N--- \--* GE int $181 +N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 + +------------ BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} + +***** BB09 [0008] +STMT00102 ( ??? ... ??? ) +N004 ( 0, 0) [000562] DA--------- * STORE_LCL_VAR int V02 arg2 d:4 $VN.Void +N003 ( 0, 0) [000561] ----------- \--* PHI int $2c1 +N001 ( 0, 0) [000571] ----------- pred BB28 +--* PHI_ARG int V02 arg2 u:3 $183 +N002 ( 0, 0) [000565] ----------- pred BB09 \--* PHI_ARG int V02 arg2 u:1 $100 + +***** BB09 [0008] +STMT00097 ( ??? ... ??? ) +N004 ( 0, 0) [000552] DA--------- * STORE_LCL_VAR long V04 loc1 d:4 $VN.Void +N003 ( 0, 0) [000551] ----------- \--* PHI long $301 +N001 ( 0, 0) [000572] ----------- pred BB28 +--* PHI_ARG long V04 loc1 u:3 $25a +N002 ( 0, 0) [000566] ----------- pred BB09 \--* PHI_ARG long V04 loc1 u:1 $241 + +***** BB09 [0008] +STMT00096 ( ??? ... ??? ) +N004 ( 0, 0) [000550] DA--------- * STORE_LCL_VAR int V02 arg2 d:6 $VN.Void +N003 ( 0, 0) [000549] ----------- \--* PHI int $2c2 +N001 ( 0, 0) [000584] ----------- pred BB37 +--* PHI_ARG int V02 arg2 u:5 $1a6 +N002 ( 0, 0) [000581] ----------- pred BB69 \--* PHI_ARG int V02 arg2 u:4 $2c1 + +***** BB09 [0008] +STMT00095 ( ??? ... ??? ) +N004 ( 0, 0) [000548] DA--------- * STORE_LCL_VAR long V04 loc1 d:6 $VN.Void +N003 ( 0, 0) [000547] ----------- \--* PHI long $302 +N001 ( 0, 0) [000585] ----------- pred BB37 +--* PHI_ARG long V04 loc1 u:5 $267 +N002 ( 0, 0) [000582] ----------- pred BB69 \--* PHI_ARG long V04 loc1 u:4 $301 + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) +N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void +N004 ( 4, 5) [000050] -----+----- \--* ADD long $241 +N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int $240 +N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 $100 +N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 $280 + +***** BB09 [0008] +STMT00089 ( 0x2E5[E--] ... ??? ) +N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void +N003 ( 3, 3) [000532] J------N--- \--* LE int $1b7 +N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 +N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 + +------------ BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB26} succs={BB63,BB14} + +***** BB12 [0011] +STMT00013 ( 0x0A0[E--] ... ??? ) +N011 ( 9, 9) [000090] ---XG+----- * JTRUE void $403 +N010 ( 7, 7) [000408] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000082] ---XG+----- +--* IND long +N007 ( 4, 4) [000081] -----+-N--- | \--* ADD byref $341 +N001 ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000080] -----+-N--- | \--* ADD long $245 +N004 ( 2, 2) [000078] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 $283 +N009 ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} + +***** BB14 [0013] +STMT00016 ( 0x0CE[E--] ... ??? ) +N011 ( 9, 9) [000107] ---XG+----- * JTRUE void $405 +N010 ( 7, 7) [000415] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000099] ---XG+----- +--* IND long +N007 ( 4, 4) [000098] -----+-N--- | \--* ADD byref $342 +N001 ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000097] -----+-N--- | \--* ADD long $248 +N004 ( 2, 2) [000095] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 $284 +N009 ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} + +***** BB16 [0015] +STMT00019 ( 0x0FC[E--] ... ??? ) +N011 ( 9, 9) [000124] ---XG+----- * JTRUE void $407 +N010 ( 7, 7) [000422] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000116] ---XG+----- +--* IND long +N007 ( 4, 4) [000115] -----+-N--- | \--* ADD byref $343 +N001 ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000114] -----+-N--- | \--* ADD long $24b +N004 ( 2, 2) [000112] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 $285 +N009 ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} + +***** BB18 [0017] +STMT00022 ( 0x12A[E--] ... ??? ) +N011 ( 9, 9) [000141] ---XG+----- * JTRUE void $409 +N010 ( 7, 7) [000429] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000133] ---XG+----- +--* IND long +N007 ( 4, 4) [000132] -----+-N--- | \--* ADD byref $344 +N001 ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000131] -----+-N--- | \--* ADD long $24e +N004 ( 2, 2) [000129] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 $286 +N009 ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} + +***** BB20 [0019] +STMT00025 ( 0x158[E--] ... ??? ) +N011 ( 9, 9) [000158] ---XG+----- * JTRUE void $40b +N010 ( 7, 7) [000436] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000150] ---XG+----- +--* IND long +N007 ( 4, 4) [000149] -----+-N--- | \--* ADD byref $345 +N001 ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000148] -----+-N--- | \--* ADD long $251 +N004 ( 2, 2) [000146] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 $287 +N009 ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} + +***** BB22 [0021] +STMT00028 ( 0x186[E--] ... ??? ) +N011 ( 9, 9) [000175] ---XG+----- * JTRUE void $40d +N010 ( 7, 7) [000443] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000167] ---XG+----- +--* IND long +N007 ( 4, 4) [000166] -----+-N--- | \--* ADD byref $346 +N001 ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000165] -----+-N--- | \--* ADD long $254 +N004 ( 2, 2) [000163] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 $288 +N009 ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} + +***** BB24 [0023] +STMT00031 ( 0x1B4[E--] ... ??? ) +N011 ( 9, 9) [000192] ---XG+----- * JTRUE void $40f +N010 ( 7, 7) [000450] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000184] ---XG+----- +--* IND long +N007 ( 4, 4) [000183] -----+-N--- | \--* ADD byref $347 +N001 ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000182] -----+-N--- | \--* ADD long $257 +N004 ( 2, 2) [000180] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 $289 +N009 ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB26 [0025] [073..1EE) -> BB12(0.5),BB62(0.5) (cond), preds={BB24} succs={BB62,BB12} + +***** BB26 [0025] +STMT00103 ( ??? ... ??? ) +N004 ( 0, 0) [000564] DA--------- * STORE_LCL_VAR int V02 arg2 d:2 $VN.Void +N003 ( 0, 0) [000563] ----------- \--* PHI int $2c0 +N001 ( 0, 0) [000569] ----------- pred BB26 +--* PHI_ARG int V02 arg2 u:3 +N002 ( 0, 0) [000567] ----------- pred BB68 \--* PHI_ARG int V02 arg2 u:1 $100 + +***** BB26 [0025] +STMT00098 ( ??? ... ??? ) +N004 ( 0, 0) [000554] DA--------- * STORE_LCL_VAR long V04 loc1 d:2 $VN.Void +N003 ( 0, 0) [000553] ----------- \--* PHI long $300 +N001 ( 0, 0) [000570] ----------- pred BB26 +--* PHI_ARG long V04 loc1 u:3 +N002 ( 0, 0) [000568] ----------- pred BB68 \--* PHI_ARG long V04 loc1 u:1 $241 + +***** BB26 [0025] +STMT00032 ( 0x1E2[E--] ... 0x1E6 ) +N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 d:3 $VN.Void +N003 ( 3, 3) [000196] -----+----- \--* ADD long $25a +N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 u:2 (last use) $300 +N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 $283 + +***** BB26 [0025] +STMT00007 ( 0x073[E--] ... 0x076 ) +N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 d:3 $VN.Void +N003 ( 3, 3) [000058] -----+----- \--* ADD int $183 +N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 u:2 (last use) $2c0 +N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 $46 + +***** BB26 [0025] +STMT00010 ( 0x078[E--] ... ??? ) +N009 ( 9, 8) [000073] ---XG+----- * JTRUE void $401 +N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int +N006 ( 5, 4) [000065] ---XG+----- +--* IND long +N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref $340 +N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long $242 +N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB62 [0089] [09D..0A0) -> BB58(1) (always), preds={BB26,BB66} succs={BB58} + +***** BB62 [0089] +STMT00093 ( ??? ... ??? ) +N005 ( 0, 0) [000544] DA--------- * STORE_LCL_VAR long V04 loc1 d:12 $VN.Void +N004 ( 0, 0) [000543] ----------- \--* PHI long $307 +N001 ( 0, 0) [000591] ----------- pred BB61 +--* PHI_ARG long V04 loc1 u:7 $303 +N002 ( 0, 0) [000583] ----------- pred BB29 +--* PHI_ARG long V04 loc1 u:4 $301 +N003 ( 0, 0) [000580] ----------- pred BB62 \--* PHI_ARG long V04 loc1 u:2 $300 + +***** BB62 [0089] +STMT00040 ( 0x09D[E--] ... 0x09F ) +N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void +N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) $449 + +------------ BB63 [0090] [0C8..0CE) -> BB58(1) (always), preds={BB12} succs={BB58} + +***** BB63 [0090] +STMT00099 ( ??? ... ??? ) +N004 ( 0, 0) [000556] DA--------- * STORE_LCL_VAR long V04 loc1 d:11 $VN.Void +N003 ( 0, 0) [000555] ----------- \--* PHI long $306 +N001 ( 0, 0) [000588] ----------- pred BB32 +--* PHI_ARG long V04 loc1 u:4 $301 +N002 ( 0, 0) [000579] ----------- pred BB63 \--* PHI_ARG long V04 loc1 u:2 $300 + +***** BB63 [0090] +STMT00039 ( 0x0C8[E--] ... 0x0CD ) +N004 ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:7 $VN.Void +N003 ( 3, 3) [000237] -----+----- \--* ADD int $448 +N001 ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 u:11 (last use) $447 +N002 ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 $43 + +------------ BB64 [0091] [0F6..0FC) -> BB58(1) (always), preds={BB14} succs={BB58} + +***** BB64 [0091] +STMT00100 ( ??? ... ??? ) +N004 ( 0, 0) [000558] DA--------- * STORE_LCL_VAR long V04 loc1 d:10 $VN.Void +N003 ( 0, 0) [000557] ----------- \--* PHI long $305 +N001 ( 0, 0) [000587] ----------- pred BB34 +--* PHI_ARG long V04 loc1 u:4 $301 +N002 ( 0, 0) [000578] ----------- pred BB64 \--* PHI_ARG long V04 loc1 u:2 $300 + +***** BB64 [0091] +STMT00038 ( 0x0F6[E--] ... 0x0FB ) +N004 ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:6 $VN.Void +N003 ( 3, 3) [000231] -----+----- \--* ADD int $446 +N001 ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 u:10 (last use) $445 +N002 ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 $4e + +------------ BB65 [0092] [124..12A) -> BB58(1) (always), preds={BB16} succs={BB58} + +***** BB65 [0092] +STMT00101 ( ??? ... ??? ) +N004 ( 0, 0) [000560] DA--------- * STORE_LCL_VAR long V04 loc1 d:9 $VN.Void +N003 ( 0, 0) [000559] ----------- \--* PHI long $304 +N001 ( 0, 0) [000586] ----------- pred BB36 +--* PHI_ARG long V04 loc1 u:4 $301 +N002 ( 0, 0) [000577] ----------- pred BB65 \--* PHI_ARG long V04 loc1 u:2 $300 + +***** BB65 [0092] +STMT00037 ( 0x124[E--] ... 0x129 ) +N004 ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:5 $VN.Void +N003 ( 3, 3) [000225] -----+----- \--* ADD int $444 +N001 ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 u:9 (last use) $443 +N002 ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 $4d + +------------ BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} + +***** BB19 [0018] +STMT00036 ( 0x152[E--] ... 0x157 ) +N004 ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:4 $VN.Void +N003 ( 3, 3) [000219] -----+----- \--* ADD int $442 +N001 ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 $48 + +------------ BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} + +***** BB21 [0020] +STMT00035 ( 0x180[E--] ... 0x185 ) +N004 ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:3 $VN.Void +N003 ( 3, 3) [000213] -----+----- \--* ADD int $441 +N001 ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 $4c + +------------ BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} + +***** BB23 [0022] +STMT00034 ( 0x1AE[E--] ... 0x1B3 ) +N004 ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:2 $VN.Void +N003 ( 3, 3) [000207] -----+----- \--* ADD int $440 +N001 ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 $4b + +------------ BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} + +***** BB25 [0024] +STMT00033 ( 0x1DC[E--] ... 0x1E1 ) +N004 ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:1 $VN.Void +N003 ( 3, 3) [000201] -----+----- \--* ADD int $1bf +N001 ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 $4a + +------------ BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) +N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void +N003 ( 3, 3) [000272] -----+----- \--* ADD long $26b +N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) $303 +N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 $280 + +***** BB40 [0039] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) +N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000249] J----+-N--- \--* GT int $1bd +N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 $1b8 +N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 $40 + +------------ BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} + +***** BB66 [0093] +STMT00094 ( ??? ... ??? ) +N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 $VN.Void +N003 ( 0, 0) [000545] ----------- \--* PHI int $2c3 +N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 +N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 $2c2 + +***** BB66 [0093] +STMT00092 ( ??? ... ??? ) +N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 $VN.Void +N003 ( 0, 0) [000541] ----------- \--* PHI long $303 +N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 +N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 $302 + +***** BB66 [0093] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) +N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void +N003 ( 3, 3) [000253] -----+----- \--* ADD int $1b8 +N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) $2c3 +N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 $43 + +***** BB66 [0093] +STMT00046 ( 0x2B8[E--] ... ??? ) +N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 +N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000260] ---XG+----- +--* IND long +N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref $34c +N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long $268 +N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 $303 +N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} + +***** BB42 [0041] +STMT00088 ( ??? ... ??? ) +N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void +N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 $43 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) +N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void +N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) $80 +N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) $c0 +N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) $100 + +------------ BB58 [0085] [???..???) (return), preds={BB19,BB21,BB23,BB25,BB62,BB63,BB64,BB65} succs={} + +***** BB58 [0085] +STMT00091 ( ??? ... ??? ) +N010 ( 0, 0) [000540] DA--------- * STORE_LCL_VAR int V34 tmp29 d:9 $VN.Void +N009 ( 0, 0) [000539] ----------- \--* PHI int $2c4 +N001 ( 0, 0) [000597] ----------- pred BB11 +--* PHI_ARG int V34 tmp29 u:8 $449 +N002 ( 0, 0) [000596] ----------- pred BB13 +--* PHI_ARG int V34 tmp29 u:7 $448 +N003 ( 0, 0) [000595] ----------- pred BB15 +--* PHI_ARG int V34 tmp29 u:6 $446 +N004 ( 0, 0) [000594] ----------- pred BB17 +--* PHI_ARG int V34 tmp29 u:5 $444 +N005 ( 0, 0) [000576] ----------- pred BB19 +--* PHI_ARG int V34 tmp29 u:4 $442 +N006 ( 0, 0) [000575] ----------- pred BB21 +--* PHI_ARG int V34 tmp29 u:3 $441 +N007 ( 0, 0) [000574] ----------- pred BB23 +--* PHI_ARG int V34 tmp29 u:2 $440 +N008 ( 0, 0) [000573] ----------- pred BB25 \--* PHI_ARG int V34 tmp29 u:1 $1bf + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) +N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void +N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) $2c4 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Remove unreachable blocks +15/25 blocks are unreachable and will be removed: + BB12 + BB14 + BB16 + BB18 + BB20 + BB22 + BB24 + BB26 + BB63 + BB64 + BB65 + BB19 + BB21 + BB23 + BB25 + +Removing unreachable BB12 + +removing useless STMT00013 ( 0x0A0[E--] ... ??? ) +N011 ( 9, 9) [000090] ---XG+----- * JTRUE void $403 +N010 ( 7, 7) [000408] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000082] ---XG+----- +--* IND long +N007 ( 4, 4) [000081] -----+-N--- | \--* ADD byref $341 +N001 ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000080] -----+-N--- | \--* ADD long $245 +N004 ( 2, 2) [000078] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 $283 +N009 ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + from BB12 + +BB12 becomes empty + +Removing unreachable BB14 + +removing useless STMT00016 ( 0x0CE[E--] ... ??? ) +N011 ( 9, 9) [000107] ---XG+----- * JTRUE void $405 +N010 ( 7, 7) [000415] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000099] ---XG+----- +--* IND long +N007 ( 4, 4) [000098] -----+-N--- | \--* ADD byref $342 +N001 ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000097] -----+-N--- | \--* ADD long $248 +N004 ( 2, 2) [000095] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 $284 +N009 ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + from BB14 + +BB14 becomes empty + +Removing unreachable BB16 + +removing useless STMT00019 ( 0x0FC[E--] ... ??? ) +N011 ( 9, 9) [000124] ---XG+----- * JTRUE void $407 +N010 ( 7, 7) [000422] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000116] ---XG+----- +--* IND long +N007 ( 4, 4) [000115] -----+-N--- | \--* ADD byref $343 +N001 ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000114] -----+-N--- | \--* ADD long $24b +N004 ( 2, 2) [000112] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 $285 +N009 ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + from BB16 + +BB16 becomes empty + +Removing unreachable BB18 + +removing useless STMT00022 ( 0x12A[E--] ... ??? ) +N011 ( 9, 9) [000141] ---XG+----- * JTRUE void $409 +N010 ( 7, 7) [000429] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000133] ---XG+----- +--* IND long +N007 ( 4, 4) [000132] -----+-N--- | \--* ADD byref $344 +N001 ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000131] -----+-N--- | \--* ADD long $24e +N004 ( 2, 2) [000129] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 $286 +N009 ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + from BB18 + +BB18 becomes empty + +Removing unreachable BB20 + +removing useless STMT00025 ( 0x158[E--] ... ??? ) +N011 ( 9, 9) [000158] ---XG+----- * JTRUE void $40b +N010 ( 7, 7) [000436] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000150] ---XG+----- +--* IND long +N007 ( 4, 4) [000149] -----+-N--- | \--* ADD byref $345 +N001 ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000148] -----+-N--- | \--* ADD long $251 +N004 ( 2, 2) [000146] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 $287 +N009 ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + from BB20 + +BB20 becomes empty + +Removing unreachable BB22 + +removing useless STMT00028 ( 0x186[E--] ... ??? ) +N011 ( 9, 9) [000175] ---XG+----- * JTRUE void $40d +N010 ( 7, 7) [000443] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000167] ---XG+----- +--* IND long +N007 ( 4, 4) [000166] -----+-N--- | \--* ADD byref $346 +N001 ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000165] -----+-N--- | \--* ADD long $254 +N004 ( 2, 2) [000163] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 $288 +N009 ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + from BB22 + +BB22 becomes empty + +Removing unreachable BB24 + +removing useless STMT00031 ( 0x1B4[E--] ... ??? ) +N011 ( 9, 9) [000192] ---XG+----- * JTRUE void $40f +N010 ( 7, 7) [000450] J--XG+-N--- \--* NE int +N008 ( 5, 5) [000184] ---XG+----- +--* IND long +N007 ( 4, 4) [000183] -----+-N--- | \--* ADD byref $347 +N001 ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N006 ( 3, 3) [000182] -----+-N--- | \--* ADD long $257 +N004 ( 2, 2) [000180] -----+-N--- | +--* LSH long $242 +N002 ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 $282 +N005 ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 $289 +N009 ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + from BB24 + +BB24 becomes empty + +Removing unreachable BB26 + +removing useless STMT00032 ( 0x1E2[E--] ... 0x1E6 ) +N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 d:3 $VN.Void +N003 ( 3, 3) [000196] -----+----- \--* ADD long $25a +N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 u:2 (last use) $300 +N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 $283 + from BB26 + +removing useless STMT00007 ( 0x073[E--] ... 0x076 ) +N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 d:3 $VN.Void +N003 ( 3, 3) [000058] -----+----- \--* ADD int $183 +N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 u:2 (last use) $2c0 +N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 $46 + from BB26 + +removing useless STMT00010 ( 0x078[E--] ... ??? ) +N009 ( 9, 8) [000073] ---XG+----- * JTRUE void $401 +N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int +N006 ( 5, 4) [000065] ---XG+----- +--* IND long +N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref $340 +N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long $242 +N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 u:2 $300 +N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + from BB26 + +BB26 becomes empty + +Removing unreachable BB63 + +removing useless STMT00039 ( 0x0C8[E--] ... 0x0CD ) +N004 ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:7 $VN.Void +N003 ( 3, 3) [000237] -----+----- \--* ADD int $448 +N001 ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 u:11 (last use) $447 +N002 ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 $43 + from BB63 + +BB63 becomes empty + +Removing unreachable BB64 + +removing useless STMT00038 ( 0x0F6[E--] ... 0x0FB ) +N004 ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:6 $VN.Void +N003 ( 3, 3) [000231] -----+----- \--* ADD int $446 +N001 ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 u:10 (last use) $445 +N002 ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 $4e + from BB64 + +BB64 becomes empty + +Removing unreachable BB65 + +removing useless STMT00037 ( 0x124[E--] ... 0x129 ) +N004 ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:5 $VN.Void +N003 ( 3, 3) [000225] -----+----- \--* ADD int $444 +N001 ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 u:9 (last use) $443 +N002 ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 $4d + from BB65 + +BB65 becomes empty + +Removing unreachable BB19 + +removing useless STMT00036 ( 0x152[E--] ... 0x157 ) +N004 ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:4 $VN.Void +N003 ( 3, 3) [000219] -----+----- \--* ADD int $442 +N001 ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 $48 + from BB19 + +BB19 becomes empty + +Removing unreachable BB21 + +removing useless STMT00035 ( 0x180[E--] ... 0x185 ) +N004 ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:3 $VN.Void +N003 ( 3, 3) [000213] -----+----- \--* ADD int $441 +N001 ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 $4c + from BB21 + +BB21 becomes empty + +Removing unreachable BB23 + +removing useless STMT00034 ( 0x1AE[E--] ... 0x1B3 ) +N004 ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:2 $VN.Void +N003 ( 3, 3) [000207] -----+----- \--* ADD int $440 +N001 ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 $4b + from BB23 + +BB23 becomes empty + +Removing unreachable BB25 + +removing useless STMT00033 ( 0x1DC[E--] ... 0x1E1 ) +N004 ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:1 $VN.Void +N003 ( 3, 3) [000201] -----+----- \--* ADD int $1bf +N001 ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be +N002 ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 $4a + from BB25 + +BB25 becomes empty +fgRemoveBlock BB12, unreachable=true +fgRemoveBlock BB14, unreachable=true +fgRemoveBlock BB16, unreachable=true +fgRemoveBlock BB18, unreachable=true +fgRemoveBlock BB20, unreachable=true +fgRemoveBlock BB22, unreachable=true +fgRemoveBlock BB24, unreachable=true +fgRemoveBlock BB26, unreachable=true +fgRemoveBlock BB63, unreachable=true +fgRemoveBlock BB64, unreachable=true +fgRemoveBlock BB65, unreachable=true +fgRemoveBlock BB19, unreachable=true +fgRemoveBlock BB21, unreachable=true +fgRemoveBlock BB23, unreachable=true +fgRemoveBlock BB25, unreachable=true + +*************** Finishing PHASE Remove unreachable blocks +Trees after Remove unreachable blocks + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i +BB62 [0089] 1 BB66 0.50 [09D..0A0)-> BB58(1) (always) i +BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i bwd +BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i bwd +BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall +BB58 [0085] 1 BB62 0.50 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000002] J----+-N--- \--* GE int $180 +N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 $40 + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void +N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref $1c0 +N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref $1c1 + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) +N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000033] J----+-N--- \--* GE int $181 +N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 + +------------ BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} + +***** BB09 [0008] +STMT00102 ( ??? ... ??? ) +N004 ( 0, 0) [000562] DA--------- * STORE_LCL_VAR int V02 arg2 d:4 $VN.Void +N003 ( 0, 0) [000561] ----------- \--* PHI int $2c1 +N001 ( 0, 0) [000571] ----------- pred BB28 +--* PHI_ARG int V02 arg2 u:3 $183 +N002 ( 0, 0) [000565] ----------- pred BB09 \--* PHI_ARG int V02 arg2 u:1 $100 + +***** BB09 [0008] +STMT00097 ( ??? ... ??? ) +N004 ( 0, 0) [000552] DA--------- * STORE_LCL_VAR long V04 loc1 d:4 $VN.Void +N003 ( 0, 0) [000551] ----------- \--* PHI long $301 +N001 ( 0, 0) [000572] ----------- pred BB28 +--* PHI_ARG long V04 loc1 u:3 $25a +N002 ( 0, 0) [000566] ----------- pred BB09 \--* PHI_ARG long V04 loc1 u:1 $241 + +***** BB09 [0008] +STMT00096 ( ??? ... ??? ) +N004 ( 0, 0) [000550] DA--------- * STORE_LCL_VAR int V02 arg2 d:6 $VN.Void +N003 ( 0, 0) [000549] ----------- \--* PHI int $2c2 +N001 ( 0, 0) [000584] ----------- pred BB37 +--* PHI_ARG int V02 arg2 u:5 $1a6 +N002 ( 0, 0) [000581] ----------- pred BB69 \--* PHI_ARG int V02 arg2 u:4 $2c1 + +***** BB09 [0008] +STMT00095 ( ??? ... ??? ) +N004 ( 0, 0) [000548] DA--------- * STORE_LCL_VAR long V04 loc1 d:6 $VN.Void +N003 ( 0, 0) [000547] ----------- \--* PHI long $302 +N001 ( 0, 0) [000585] ----------- pred BB37 +--* PHI_ARG long V04 loc1 u:5 $267 +N002 ( 0, 0) [000582] ----------- pred BB69 \--* PHI_ARG long V04 loc1 u:4 $301 + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) +N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void +N004 ( 4, 5) [000050] -----+----- \--* ADD long $241 +N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int $240 +N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 $100 +N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 $280 + +***** BB09 [0008] +STMT00089 ( 0x2E5[E--] ... ??? ) +N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void +N003 ( 3, 3) [000532] J------N--- \--* LE int $1b7 +N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 +N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 + +------------ BB62 [0089] [09D..0A0) -> BB58(1) (always), preds={BB66} succs={BB58} + +***** BB62 [0089] +STMT00093 ( ??? ... ??? ) +N005 ( 0, 0) [000544] DA--------- * STORE_LCL_VAR long V04 loc1 d:12 $VN.Void +N004 ( 0, 0) [000543] ----------- \--* PHI long $307 +N001 ( 0, 0) [000591] ----------- pred BB61 +--* PHI_ARG long V04 loc1 u:7 $303 +N002 ( 0, 0) [000583] ----------- pred BB29 +--* PHI_ARG long V04 loc1 u:4 $301 +N003 ( 0, 0) [000580] ----------- pred BB62 \--* PHI_ARG long V04 loc1 u:2 $300 + +***** BB62 [0089] +STMT00040 ( 0x09D[E--] ... 0x09F ) +N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void +N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) $449 + +------------ BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) +N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void +N003 ( 3, 3) [000272] -----+----- \--* ADD long $26b +N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) $303 +N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 $280 + +***** BB40 [0039] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) +N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000249] J----+-N--- \--* GT int $1bd +N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 $1b8 +N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 $40 + +------------ BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} + +***** BB66 [0093] +STMT00094 ( ??? ... ??? ) +N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 $VN.Void +N003 ( 0, 0) [000545] ----------- \--* PHI int $2c3 +N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 +N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 $2c2 + +***** BB66 [0093] +STMT00092 ( ??? ... ??? ) +N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 $VN.Void +N003 ( 0, 0) [000541] ----------- \--* PHI long $303 +N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 +N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 $302 + +***** BB66 [0093] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) +N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void +N003 ( 3, 3) [000253] -----+----- \--* ADD int $1b8 +N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) $2c3 +N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 $43 + +***** BB66 [0093] +STMT00046 ( 0x2B8[E--] ... ??? ) +N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 +N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000260] ---XG+----- +--* IND long +N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref $34c +N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long $268 +N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 $303 +N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} + +***** BB42 [0041] +STMT00088 ( ??? ... ??? ) +N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void +N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 $43 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) +N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void +N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) $80 +N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) $c0 +N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) $100 + +------------ BB58 [0085] [???..???) (return), preds={BB62} succs={} + +***** BB58 [0085] +STMT00091 ( ??? ... ??? ) +N010 ( 0, 0) [000540] DA--------- * STORE_LCL_VAR int V34 tmp29 d:9 $VN.Void +N009 ( 0, 0) [000539] ----------- \--* PHI int $2c4 +N001 ( 0, 0) [000597] ----------- pred BB11 +--* PHI_ARG int V34 tmp29 u:8 $449 +N002 ( 0, 0) [000596] ----------- pred BB13 +--* PHI_ARG int V34 tmp29 u:7 $448 +N003 ( 0, 0) [000595] ----------- pred BB15 +--* PHI_ARG int V34 tmp29 u:6 $446 +N004 ( 0, 0) [000594] ----------- pred BB17 +--* PHI_ARG int V34 tmp29 u:5 $444 +N005 ( 0, 0) [000576] ----------- pred BB19 +--* PHI_ARG int V34 tmp29 u:4 $442 +N006 ( 0, 0) [000575] ----------- pred BB21 +--* PHI_ARG int V34 tmp29 u:3 $441 +N007 ( 0, 0) [000574] ----------- pred BB23 +--* PHI_ARG int V34 tmp29 u:2 $440 +N008 ( 0, 0) [000573] ----------- pred BB25 \--* PHI_ARG int V34 tmp29 u:1 $1bf + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) +N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void +N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) $2c4 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] +Removing PHI functions + +*************** Starting PHASE Stress gtSplitTree + +*************** Finishing PHASE Stress gtSplitTree [no changes] + +*************** Starting PHASE Remove empty finally 3 +No EH in this method, nothing to remove. + +*************** Finishing PHASE Remove empty finally 3 [no changes] + +*************** Starting PHASE Remove empty try 3 + +*************** In fgRemoveEmptyTry() +No EH in this method, nothing to remove. + +*************** Finishing PHASE Remove empty try 3 [no changes] + +*************** Starting PHASE Remove empty try-catch-fault 3 + +*************** In fgRemoveEmptyTryCatchOrTryFault() +No EH in this method, nothing to remove. + +*************** Finishing PHASE Remove empty try-catch-fault 3 [no changes] + +*************** Starting PHASE Create EH funclets + +*************** Finishing PHASE Create EH funclets [no changes] + +*************** Starting PHASE Expand casts + +*************** Finishing PHASE Expand casts [no changes] + +*************** Starting PHASE Expand runtime lookups + +*************** Finishing PHASE Expand runtime lookups [no changes] + +*************** Starting PHASE Expand static init +Nothing to expand. + +*************** Finishing PHASE Expand static init [no changes] + +*************** Starting PHASE Expand TLS access +Nothing to expand. + +*************** Finishing PHASE Expand TLS access [no changes] + +*************** Starting PHASE Expand stack array allocation + +*************** Finishing PHASE Expand stack array allocation [no changes] + +*************** Starting PHASE Insert GC Polls + +*************** Finishing PHASE Insert GC Polls [no changes] + +*************** Starting PHASE Recognize Switch + +*************** Finishing PHASE Recognize Switch [no changes] + +*************** Starting PHASE Optimize bools +*************** In optOptimizeBools() + +optimized 0 BBJ_COND cases in 1 passes + +*************** Finishing PHASE Optimize bools +Trees after Optimize bools + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i +BB62 [0089] 1 BB66 0.50 [09D..0A0)-> BB58(1) (always) i +BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i bwd +BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i bwd +BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall +BB58 [0085] 1 BB62 0.50 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000002] J----+-N--- \--* GE int $180 +N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 $40 + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void +N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref $1c0 +N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref $1c1 + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) +N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000033] J----+-N--- \--* GE int $181 +N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 + +------------ BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) +N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void +N004 ( 4, 5) [000050] -----+----- \--* ADD long $241 +N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int $240 +N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 $100 +N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 $280 + +***** BB09 [0008] +STMT00089 ( 0x2E5[E--] ... ??? ) +N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void +N003 ( 3, 3) [000532] J------N--- \--* LE int $1b7 +N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 +N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 + +------------ BB62 [0089] [09D..0A0) -> BB58(1) (always), preds={BB66} succs={BB58} + +***** BB62 [0089] +STMT00040 ( 0x09D[E--] ... 0x09F ) +N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void +N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) $449 + +------------ BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) +N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void +N003 ( 3, 3) [000272] -----+----- \--* ADD long $26b +N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) $303 +N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 $280 + +***** BB40 [0039] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) +N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000249] J----+-N--- \--* GT int $1bd +N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 $1b8 +N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 $40 + +------------ BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} + +***** BB66 [0093] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) +N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void +N003 ( 3, 3) [000253] -----+----- \--* ADD int $1b8 +N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) $2c3 +N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 $43 + +***** BB66 [0093] +STMT00046 ( 0x2B8[E--] ... ??? ) +N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 +N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000260] ---XG+----- +--* IND long +N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref $34c +N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long $268 +N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 $303 +N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} + +***** BB42 [0041] +STMT00088 ( ??? ... ??? ) +N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void +N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 $43 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) +N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void +N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) $80 +N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) $c0 +N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) $100 + +------------ BB58 [0085] [???..???) (return), preds={BB62} succs={} + +***** BB58 [0085] +STMT00087 ( ??? ... ??? ) +N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void +N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) $2c4 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE If conversion + +*************** Finishing PHASE If conversion [no changes] + +*************** Starting PHASE Optimize pre-layout + +*************** In fgUpdateFlowGraph() +Before updating the flow graph: + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i +BB62 [0089] 1 BB66 0.50 [09D..0A0)-> BB58(1) (always) i +BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i bwd +BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i bwd +BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall +BB58 [0085] 1 BB62 0.50 [???..???) (return) internal +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + +Compacting BB58 into BB62: +*************** In fgDebugCheckBBlist + +After updating the flow graph: + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i +BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i +BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i bwd +BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i bwd +BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Exception Handling table is empty +*************** In fgDebugCheckBBlist + +*************** In fgExpandRarelyRunBlocks() + +*************** Finishing PHASE Optimize pre-layout +Trees after Optimize pre-layout + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i +BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i +BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i +BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i bwd +BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i bwd +BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} + +***** BB01 [0000] +STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000002] J----+-N--- \--* GE int $180 +N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 $40 + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} + +***** BB52 [0051] +STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void +N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref $1c0 +N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref $1c1 + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} + +***** BB57 [0057] +STMT00003 ( 0x05D[E--] ... 0x063 ) +N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000033] J----+-N--- \--* GE int $181 +N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 + +------------ BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} + +***** BB09 [0008] +STMT00005 ( 0x068[E--] ... 0x06D ) +N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void +N004 ( 4, 5) [000050] -----+----- \--* ADD long $241 +N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int $240 +N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 $100 +N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 $280 + +***** BB09 [0008] +STMT00089 ( 0x2E5[E--] ... ??? ) +N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void +N003 ( 3, 3) [000532] J------N--- \--* LE int $1b7 +N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 +N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 + +------------ BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} + +***** BB62 [0089] +STMT00040 ( 0x09D[E--] ... 0x09F ) +N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void +N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) $449 + +***** BB62 [0089] +STMT00087 ( ??? ... ??? ) +N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void +N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) $2c4 + +------------ BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} + +***** BB40 [0039] +STMT00047 ( 0x2E0[E--] ... 0x2E4 ) +N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void +N003 ( 3, 3) [000272] -----+----- \--* ADD long $26b +N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) $303 +N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 $280 + +***** BB40 [0039] +STMT00042 ( 0x2E5[E--] ... 0x2E7 ) +N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void +N003 ( 3, 3) [000249] J----+-N--- \--* GT int $1bd +N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 $1b8 +N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 $40 + +------------ BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} + +***** BB66 [0093] +STMT00043 ( 0x2B3[E--] ... 0x2B6 ) +N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void +N003 ( 3, 3) [000253] -----+----- \--* ADD int $1b8 +N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) $2c3 +N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 $43 + +***** BB66 [0093] +STMT00046 ( 0x2B8[E--] ... ??? ) +N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 +N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int +N006 ( 5, 4) [000260] ---XG+----- +--* IND long +N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref $34c +N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 +N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long $268 +N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 $303 +N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 $282 +N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} + +***** BB42 [0041] +STMT00088 ( ??? ... ??? ) +N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void +N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 $43 + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + +***** BB43 [0042] +STMT00004 ( 0x31B[E--] ... 0x323 ) +N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void +N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) $80 +N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) $c0 +N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) $100 + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Repair profile pre-layout +No PGO data. Skipping profile repair. + +*************** Finishing PHASE Repair profile pre-layout [no changes] + +*************** Starting PHASE Rationalize IR + +*************** Finishing PHASE Rationalize IR +Trees after Rationalize IR + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i LIR +BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR +BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR +BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd +BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd +BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} + [000600] ----------- IL_OFFSET void INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N001 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000001] -----+----- t1 = CNS_INT int 0 $40 + /--* t0 int + +--* t1 int +N003 ( 3, 3) [000002] J----+-N--- t2 = * GE int $180 + /--* t2 int +N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} + [000601] ----------- IL_OFFSET void INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N001 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref $1c0 +N002 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref $1c1 + /--* t497 ref arg0 rcx + +--* t498 ref arg1 rdx +N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} + [000602] ----------- IL_OFFSET void INLRT @ 0x05D[E--] +N001 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000032] -----+----- t32 = CNS_INT int 2 vector element count $42 + /--* t31 int + +--* t32 int +N003 ( 3, 3) [000033] J----+-N--- t33 = * GE int $181 + /--* t33 int +N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void + +------------ BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} + [000603] ----------- IL_OFFSET void INLRT @ 0x068[E--] +N001 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 $100 + /--* t46 int +N002 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int $240 +N003 ( 1, 1) [000049] -----+----- t49 = CNS_INT long -1 $280 + /--* t47 long + +--* t49 long +N004 ( 4, 5) [000050] -----+----- t50 = * ADD long $241 + /--* t50 long +N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void + [000604] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] +N001 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 $2c2 +N002 ( 1, 1) [000534] ----------- t534 = CNS_INT int 0 $40 + /--* t533 int + +--* t534 int +N003 ( 3, 3) [000532] J------N--- t532 = * LE int $1b7 + /--* t532 int +N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void + +------------ BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} + [000605] ----------- IL_OFFSET void INLRT @ 0x09D[E--] +N001 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 (last use) $449 + /--* t240 int +N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void +N001 ( 1, 1) [000491] -----+-N--- t491 = LCL_VAR int V34 tmp29 u:9 (last use) $2c4 + /--* t491 int +N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void + +------------ BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} + [000606] ----------- IL_OFFSET void INLRT @ 0x2E0[E--] +N001 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 (last use) $303 +N002 ( 1, 1) [000271] -----+----- t271 = CNS_INT long -1 $280 + /--* t269 long + +--* t271 long +N003 ( 3, 3) [000272] -----+----- t272 = * ADD long $26b + /--* t272 long +N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void + [000607] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] +N001 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 $1b8 +N002 ( 1, 1) [000248] -----+----- t248 = CNS_INT int 0 $40 + /--* t247 int + +--* t248 int +N003 ( 3, 3) [000249] J----+-N--- t249 = * GT int $1bd + /--* t249 int +N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void + +------------ BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} + [000608] ----------- IL_OFFSET void INLRT @ 0x2B3[E--] +N001 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 (last use) $2c3 +N002 ( 1, 1) [000252] -----+----- t252 = CNS_INT int -1 $43 + /--* t251 int + +--* t252 int +N003 ( 3, 3) [000253] -----+----- t253 = * ADD int $1b8 + /--* t253 int +N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void + [000609] ----------- IL_OFFSET void INLRT @ 0x2B8[E--] +N001 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 $80 +N002 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 $303 +N003 ( 1, 1) [000257] -----+----- t257 = CNS_INT long 3 $282 + /--* t256 long + +--* t257 long +N004 ( 2, 2) [000258] -----+-N--- t258 = * LSH long $268 + /--* t255 byref + +--* t258 long +N005 ( 3, 3) [000259] -----+-N--- t259 = * ADD byref $34c + /--* t259 byref +N006 ( 5, 4) [000260] ---XG+----- t260 = * IND long +N007 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 $c0 + /--* t260 long + +--* t261 long +N008 ( 7, 6) [000485] J--XG+-N--- t485 = * EQ int + /--* t485 int +N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} +N001 ( 1, 1) [000277] -----+----- t277 = CNS_INT int -1 $43 + /--* t277 int +N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + [000610] ----------- IL_OFFSET void INLRT @ 0x31B[E--] +N001 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 (last use) $80 +N002 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 (last use) $c0 +N003 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 (last use) $100 + /--* t41 byref arg0 rcx + +--* t42 long arg1 rdx + +--* t43 int arg2 r8 +N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE GS Cookie +No GS security needed + +*************** Finishing PHASE GS Cookie [no changes] + +*************** Starting PHASE Lowering nodeinfo +0 parameter register to local mappings +Lowering JTRUE: +N001 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 $40 + /--* t0 int + +--* t1 int +N003 ( 3, 3) [000002] J----+-N--- t2 = * GE int $180 + /--* t2 int +N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void + +Lowering condition: +N001 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 $40 + /--* t0 int + +--* t1 int +N003 ( 3, 3) [000002] J----+-N--- t2 = * GE int $180 + +Lowering JTRUE Result: +N001 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 $40 + /--* t0 int + +--* t1 int +N003 ( 3, 3) [000002] -----+-N--- * CMP void +N004 ( 5, 5) [000384] -----+----- JCC void cond=SGE + +lowering call (before): +N001 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref $1c0 +N002 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref $1c1 + /--* t497 ref arg0 rcx + +--* t498 ref arg1 rdx +N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void + +Args: +====== + +Late args: +====== +Lowering arg: +N001 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref $1c0 +Passed in [00..08) reg rcx +N001 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref $1c0 + /--* t497 ref + [000611] ----------- t611 = * PUTARG_REG ref REG rcx +Lowering arg: +N002 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref $1c1 +Passed in [00..08) reg rdx +N002 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref $1c1 + /--* t498 ref + [000612] ----------- t612 = * PUTARG_REG ref REG rdx +Bumping outgoing arg space size from 0 to 32 for [000387] +lowering call (after): +N001 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref $1c0 + /--* t497 ref + [000611] ----------- t611 = * PUTARG_REG ref REG rcx +N002 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref $1c1 + /--* t498 ref + [000612] ----------- t612 = * PUTARG_REG ref REG rdx + /--* t611 ref arg0 rcx + +--* t612 ref arg1 rdx +N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void + +Lowering JTRUE: +N001 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count $42 + /--* t31 int + +--* t32 int +N003 ( 3, 3) [000033] J----+-N--- t33 = * GE int $181 + /--* t33 int +N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void + +Lowering condition: +N001 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count $42 + /--* t31 int + +--* t32 int +N003 ( 3, 3) [000033] J----+-N--- t33 = * GE int $181 + +Lowering JTRUE Result: +N001 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count $42 + /--* t31 int + +--* t32 int +N003 ( 3, 3) [000033] -----+-N--- * CMP void +N004 ( 5, 5) [000034] -----+----- JCC void cond=SGE + +lowering store lcl var/field (before): +N001 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 $100 + /--* t46 int +N002 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int $240 +N003 ( 1, 1) [000049] -c---+----- t49 = CNS_INT long -1 $280 + /--* t47 long + +--* t49 long +N004 ( 4, 5) [000050] -----+----- t50 = * ADD long $241 + /--* t50 long +N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void + +lowering store lcl var/field (after): +N001 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 $100 + /--* t46 int +N002 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int $240 +N003 ( 1, 1) [000049] -c---+----- t49 = CNS_INT long -1 $280 + /--* t47 long + +--* t49 long +N004 ( 4, 5) [000050] -----+----- t50 = * ADD long $241 + /--* t50 long +N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void + +Lowering JTRUE: +N001 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 $2c2 +N002 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 $40 + /--* t533 int + +--* t534 int +N003 ( 3, 3) [000532] J------N--- t532 = * LE int $1b7 + /--* t532 int +N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void + +Lowering condition: +N001 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 $2c2 +N002 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 $40 + /--* t533 int + +--* t534 int +N003 ( 3, 3) [000532] J------N--- t532 = * LE int $1b7 + +Lowering JTRUE Result: +N001 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 $2c2 +N002 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 $40 + /--* t533 int + +--* t534 int +N003 ( 3, 3) [000532] -------N--- * CMP void +N004 ( 5, 5) [000531] ----------- JCC void cond=SLE + +lowering store lcl var/field (before): +N001 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 (last use) $449 + /--* t240 int +N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void + +lowering store lcl var/field (after): +N001 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 (last use) $449 + /--* t240 int +N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void + +lowering return node +N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void +============ +lowering store lcl var/field (before): +N001 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 (last use) $303 +N002 ( 1, 1) [000271] -c---+----- t271 = CNS_INT long -1 $280 + /--* t269 long + +--* t271 long +N003 ( 3, 3) [000272] -----+----- t272 = * ADD long $26b + /--* t272 long +N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void + +lowering store lcl var/field (after): +N001 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 (last use) $303 +N002 ( 1, 1) [000271] -c---+----- t271 = CNS_INT long -1 $280 + /--* t269 long + +--* t271 long +N003 ( 3, 3) [000272] -----+----- t272 = * ADD long $26b + /--* t272 long +N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void + +Lowering JTRUE: +N001 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 $1b8 +N002 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 $40 + /--* t247 int + +--* t248 int +N003 ( 3, 3) [000249] J----+-N--- t249 = * GT int $1bd + /--* t249 int +N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void + +Lowering condition: +N001 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 $1b8 +N002 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 $40 + /--* t247 int + +--* t248 int +N003 ( 3, 3) [000249] J----+-N--- t249 = * GT int $1bd + +Lowering JTRUE Result: +N001 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 $1b8 +N002 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 $40 + /--* t247 int + +--* t248 int +N003 ( 3, 3) [000249] -----+-N--- * CMP void +N004 ( 5, 5) [000250] -----+----- JCC void cond=SGT + +lowering store lcl var/field (before): +N001 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 (last use) $2c3 +N002 ( 1, 1) [000252] -c---+----- t252 = CNS_INT int -1 $43 + /--* t251 int + +--* t252 int +N003 ( 3, 3) [000253] -----+----- t253 = * ADD int $1b8 + /--* t253 int +N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void + +lowering store lcl var/field (after): +N001 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 (last use) $2c3 +N002 ( 1, 1) [000252] -c---+----- t252 = CNS_INT int -1 $43 + /--* t251 int + +--* t252 int +N003 ( 3, 3) [000253] -----+----- t253 = * ADD int $1b8 + /--* t253 int +N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void + +Addressing mode: + Base + N001 ( 1, 1) [000255] -----+----- * LCL_VAR byref V00 arg0 u:1 $80 + + Index * 8 + 0 + N002 ( 1, 1) [000256] -----+----- * LCL_VAR long V04 loc1 u:7 $303 +Removing unused node: + N004 ( 2, 2) [000258] -----+-N--- * LSH long $268 +Removing unused node: + N003 ( 1, 1) [000257] -c---+----- * CNS_INT long 3 $282 +New addressing mode node: + N005 ( 3, 3) [000259] -----+----- * LEA(b+(i*8)+0) byref + +Lowering JTRUE: +N001 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 $80 +N002 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 $303 + /--* t255 byref + +--* t256 long +N005 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref + /--* t259 byref +N006 ( 5, 4) [000260] -c-XG+----- t260 = * IND long +N007 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 $c0 + /--* t260 long + +--* t261 long +N008 ( 7, 6) [000485] J--XG+-N--- t485 = * EQ int + /--* t485 int +N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 + +Lowering condition: +N001 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 $80 +N002 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 $303 + /--* t255 byref + +--* t256 long +N005 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref + /--* t259 byref +N006 ( 5, 4) [000260] -c-XG+----- t260 = * IND long +N007 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 $c0 + /--* t260 long + +--* t261 long +N008 ( 7, 6) [000485] J--XG+-N--- t485 = * EQ int + +Lowering JTRUE Result: +N001 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 $80 +N002 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 $303 + /--* t255 byref + +--* t256 long +N005 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref + /--* t259 byref +N006 ( 5, 4) [000260] -c-XG+----- t260 = * IND long +N007 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 $c0 + /--* t260 long + +--* t261 long +N008 ( 7, 6) [000485] ---XG+-N--- * CMP void +N009 ( 9, 8) [000268] ---XG+----- JCC void cond=UEQ + +lowering return node +N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void +============ +lowering call (before): +N001 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 (last use) $80 +N002 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 (last use) $c0 +N003 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 (last use) $100 + /--* t41 byref arg0 rcx + +--* t42 long arg1 rdx + +--* t43 int arg2 r8 +N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void + +Args: +====== + +Late args: +====== +Lowering arg: +N001 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 (last use) $80 +Passed in [00..08) reg rcx +N001 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 (last use) $80 + /--* t41 byref + [000613] ----------- t613 = * PUTARG_REG byref REG rcx +Lowering arg: +N002 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 (last use) $c0 +Passed in [00..08) reg rdx +N002 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 (last use) $c0 + /--* t42 long + [000614] ----------- t614 = * PUTARG_REG long REG rdx +Lowering arg: +N003 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 (last use) $100 +Passed in [00..04) reg r8 +N003 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 (last use) $100 + /--* t43 int + [000615] ----------- t615 = * PUTARG_REG int REG r8 +lowering call (after): +N001 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 (last use) $80 + /--* t41 byref + [000613] ----------- t613 = * PUTARG_REG byref REG rcx +N002 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 (last use) $c0 + /--* t42 long + [000614] ----------- t614 = * PUTARG_REG long REG rdx +N003 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 (last use) $100 + /--* t43 int + [000615] ----------- t615 = * PUTARG_REG int REG r8 + /--* t613 byref arg0 rcx + +--* t614 long arg1 rdx + +--* t615 int arg2 r8 +N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void + +Lower has completed modifying nodes. + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i LIR +BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR +BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR +BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd +BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd +BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} + [000600] ----------- IL_OFFSET void INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N001 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 $40 + /--* t0 int + +--* t1 int +N003 ( 3, 3) [000002] -----+-N--- * CMP void +N004 ( 5, 5) [000384] -----+----- JCC void cond=SGE + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} + [000601] ----------- IL_OFFSET void INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N001 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref $1c0 + /--* t497 ref + [000611] ----------- t611 = * PUTARG_REG ref REG rcx +N002 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref $1c1 + /--* t498 ref + [000612] ----------- t612 = * PUTARG_REG ref REG rdx + /--* t611 ref arg0 rcx + +--* t612 ref arg1 rdx +N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} + [000602] ----------- IL_OFFSET void INLRT @ 0x05D[E--] +N001 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count $42 + /--* t31 int + +--* t32 int +N003 ( 3, 3) [000033] -----+-N--- * CMP void +N004 ( 5, 5) [000034] -----+----- JCC void cond=SGE + +------------ BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} + [000603] ----------- IL_OFFSET void INLRT @ 0x068[E--] +N001 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 $100 + /--* t46 int +N002 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int $240 +N003 ( 1, 1) [000049] -c---+----- t49 = CNS_INT long -1 $280 + /--* t47 long + +--* t49 long +N004 ( 4, 5) [000050] -----+----- t50 = * ADD long $241 + /--* t50 long +N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void + [000604] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] +N001 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 $2c2 +N002 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 $40 + /--* t533 int + +--* t534 int +N003 ( 3, 3) [000532] -------N--- * CMP void +N004 ( 5, 5) [000531] ----------- JCC void cond=SLE + +------------ BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} + [000605] ----------- IL_OFFSET void INLRT @ 0x09D[E--] +N001 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 (last use) $449 + /--* t240 int +N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void +N001 ( 1, 1) [000491] -----+-N--- t491 = LCL_VAR int V34 tmp29 u:9 (last use) $2c4 + /--* t491 int +N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void + +------------ BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} + [000606] ----------- IL_OFFSET void INLRT @ 0x2E0[E--] +N001 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 (last use) $303 +N002 ( 1, 1) [000271] -c---+----- t271 = CNS_INT long -1 $280 + /--* t269 long + +--* t271 long +N003 ( 3, 3) [000272] -----+----- t272 = * ADD long $26b + /--* t272 long +N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void + [000607] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] +N001 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 $1b8 +N002 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 $40 + /--* t247 int + +--* t248 int +N003 ( 3, 3) [000249] -----+-N--- * CMP void +N004 ( 5, 5) [000250] -----+----- JCC void cond=SGT + +------------ BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} + [000608] ----------- IL_OFFSET void INLRT @ 0x2B3[E--] +N001 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 (last use) $2c3 +N002 ( 1, 1) [000252] -c---+----- t252 = CNS_INT int -1 $43 + /--* t251 int + +--* t252 int +N003 ( 3, 3) [000253] -----+----- t253 = * ADD int $1b8 + /--* t253 int +N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void + [000609] ----------- IL_OFFSET void INLRT @ 0x2B8[E--] +N001 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 $80 +N002 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 $303 + /--* t255 byref + +--* t256 long +N005 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref + /--* t259 byref +N006 ( 5, 4) [000260] -c-XG+----- t260 = * IND long +N007 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 $c0 + /--* t260 long + +--* t261 long +N008 ( 7, 6) [000485] ---XG+-N--- * CMP void +N009 ( 9, 8) [000268] ---XG+----- JCC void cond=UEQ + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} +N001 ( 1, 1) [000277] -----+----- t277 = CNS_INT int -1 $43 + /--* t277 int +N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + [000610] ----------- IL_OFFSET void INLRT @ 0x31B[E--] +N001 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 (last use) $80 + /--* t41 byref + [000613] ----------- t613 = * PUTARG_REG byref REG rcx +N002 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 (last use) $c0 + /--* t42 long + [000614] ----------- t614 = * PUTARG_REG long REG rdx +N003 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 (last use) $100 + /--* t43 int + [000615] ----------- t615 = * PUTARG_REG int REG r8 + /--* t613 byref arg0 rcx + +--* t614 long arg1 rdx + +--* t615 int arg2 r8 +N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void + +------------------------------------------------------------------------------------------------------------------- + +*** lvaComputeRefCounts *** + +*** lvaComputePreciseRefCounts -- explicit counts *** +New refCnts for V02: refCnt = 1, refCntWtd = 1 +New refCnts for V02: refCnt = 2, refCntWtd = 2 +New refCnts for V02: refCnt = 3, refCntWtd = 2.75 +New refCnts for V04: refCnt = 1, refCntWtd = 0.75 +New refCnts for V02: refCnt = 4, refCntWtd = 3.50 +New refCnts for V04: refCnt = 2, refCntWtd = 1.25 +New refCnts for V34: refCnt = 1, refCntWtd = 1 +New refCnts for V34: refCnt = 2, refCntWtd = 2 +New refCnts for V04: refCnt = 3, refCntWtd = 5.25 +New refCnts for V04: refCnt = 4, refCntWtd = 9.25 +New refCnts for V02: refCnt = 5, refCntWtd = 7.50 +New refCnts for V02: refCnt = 6, refCntWtd = 11.50 +New refCnts for V02: refCnt = 7, refCntWtd = 15.50 +New refCnts for V00: refCnt = 1, refCntWtd = 4 +New refCnts for V04: refCnt = 5, refCntWtd = 13.25 +New refCnts for V01: refCnt = 1, refCntWtd = 4 +New refCnts for V00: refCnt = 2, refCntWtd = 4.50 +New refCnts for V01: refCnt = 2, refCntWtd = 4.50 +New refCnts for V02: refCnt = 8, refCntWtd = 16 + +*** lvaComputePreciseRefCounts -- implicit counts *** +New refCnts for V00: refCnt = 3, refCntWtd = 5.50 +New refCnts for V00: refCnt = 4, refCntWtd = 6.50 +New refCnts for V01: refCnt = 3, refCntWtd = 5.50 +New refCnts for V01: refCnt = 4, refCntWtd = 6.50 +New refCnts for V02: refCnt = 9, refCntWtd = 17 +New refCnts for V02: refCnt = 10, refCntWtd = 18 +*************** In Liveness::Run() +; Initial local variable assignments +; +; V00 arg0 byref single-def +; V01 arg1 long single-def +; V02 arg2 int +; V03 loc0 ubyte +; V04 loc1 long +; V05 OutArgs struct <0> do-not-enreg[XS] addr-exposed "OutgoingArgSpace" +; V06 tmp1 ubyte "Inlining Arg" +; V07 tmp2 ubyte "Inlining Arg" +; V08 tmp3 long "Inlining Arg" +; V09 tmp4 ubyte "Inlining Arg" +; V10 tmp5 long "Inlining Arg" +; V11 tmp6 ubyte "Inlining Arg" +; V12 tmp7 long "Inlining Arg" +; V13 tmp8 ubyte "Inlining Arg" +; V14 tmp9 long "Inlining Arg" +; V15 tmp10 ubyte "Inlining Arg" +; V16 tmp11 long "Inlining Arg" +; V17 tmp12 ubyte "Inlining Arg" +; V18 tmp13 long "Inlining Arg" +; V19 tmp14 ubyte "Inlining Arg" +; V20 tmp15 long "Inlining Arg" +; V21 tmp16 ubyte "Inlining Arg" +; V22 tmp17 long "Inlining Arg" +; V23 tmp18 ubyte "Inlining Arg" +; V24 tmp19 long "Inlining Arg" +; V25 tmp20 ubyte "Inlining Arg" +; V26 tmp21 long "Inlining Arg" +; V27 tmp22 ubyte "Inlining Arg" +; V28 tmp23 long "Inlining Arg" +; V29 tmp24 ubyte "Inlining Arg" +; V30 tmp25 long "Inlining Arg" +; V31 tmp26 ubyte "Inlining Arg" +; V32 tmp27 long "Inlining Arg" +; V33 tmp28 ubyte "Inlining Arg" +; V34 tmp29 int "Single return block return value" +In Liveness::Init + +Local V05 should not be enregistered because: struct size does not match reg size +Tracked variable (5 out of 35) table: +V02 arg2 [ int]: refCnt = 10, refCntWtd = 18 +V04 loc1 [ long]: refCnt = 5, refCntWtd = 13.25 +V00 arg0 [ byref]: refCnt = 4, refCntWtd = 6.50 +V01 arg1 [ long]: refCnt = 4, refCntWtd = 6.50 +V34 tmp29 [ int]: refCnt = 2, refCntWtd = 2 + +*************** In Liveness::PerBlockLocalVarLiveness() +BB01 USE(1)={V02} + DEF(0)={ } + +BB52 USE(0)={} + DEF(0)={} + +BB57 USE(1)={V02} + DEF(0)={ } + +BB09 USE(1)={V02 } + DEF(1)={ V04} + +BB62 USE(1)={V04 } + DEF(1)={ V34} + +BB40 USE(2)={V02 V04} + DEF(1)={ V04} + +BB66 USE(4)={V02 V04 V00 V01} + DEF(1)={V02 } + +BB42 USE(0)={} + DEF(0)={} + +BB43 USE(3)={V02 V00 V01} + DEF(0)={ } + +*************** IngInterBlockLocalVarLiveness() + +BB liveness after DoLiveVarAnalysis(): + +BB01 IN (3)={V02 V00 V01} + OUT(3)={V02 V00 V01} + +BB52 IN (3)={V02 V00 V01} + OUT(3)={V02 V00 V01} + +BB57 IN (3)={V02 V00 V01} + OUT(3)={V02 V00 V01} + +BB09 IN (3)={V02 V00 V01} + OUT(4)={V02 V04 V00 V01} + +BB62 IN (1)={V04} + OUT(0)={ } + +BB40 IN (4)={V02 V04 V00 V01} + OUT(4)={V02 V04 V00 V01} + +BB66 IN (4)={V02 V04 V00 V01} + OUT(4)={V02 V04 V00 V01} + +BB42 IN (0)={} + OUT(0)={} + +BB43 IN (3)={V02 V00 V01} + OUT(0)={ } + + +*************** In fgUpdateFlowGraph() +Before updating the flow graph: + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i LIR +BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR +BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR +BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd +BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd +BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** In fgDebugCheckBBlist + +*** lvaComputeRefCounts *** + +*** lvaComputePreciseRefCounts -- explicit counts *** +New refCnts for V02: refCnt = 1, refCntWtd = 1 +New refCnts for V02: refCnt = 2, refCntWtd = 2 +New refCnts for V02: refCnt = 3, refCntWtd = 2.75 +New refCnts for V04: refCnt = 1, refCntWtd = 0.75 +New refCnts for V02: refCnt = 4, refCntWtd = 3.50 +New refCnts for V04: refCnt = 2, refCntWtd = 1.25 +New refCnts for V34: refCnt = 1, refCntWtd = 1 +New refCnts for V34: refCnt = 2, refCntWtd = 2 +New refCnts for V04: refCnt = 3, refCntWtd = 5.25 +New refCnts for V04: refCnt = 4, refCntWtd = 9.25 +New refCnts for V02: refCnt = 5, refCntWtd = 7.50 +New refCnts for V02: refCnt = 6, refCntWtd = 11.50 +New refCnts for V02: refCnt = 7, refCntWtd = 15.50 +New refCnts for V00: refCnt = 1, refCntWtd = 4 +New refCnts for V04: refCnt = 5, refCntWtd = 13.25 +New refCnts for V01: refCnt = 1, refCntWtd = 4 +New refCnts for V00: refCnt = 2, refCntWtd = 4.50 +New refCnts for V01: refCnt = 2, refCntWtd = 4.50 +New refCnts for V02: refCnt = 8, refCntWtd = 16 + +*** lvaComputePreciseRefCounts -- implicit counts *** +New refCnts for V00: refCnt = 3, refCntWtd = 5.50 +New refCnts for V00: refCnt = 4, refCntWtd = 6.50 +New refCnts for V01: refCnt = 3, refCntWtd = 5.50 +New refCnts for V01: refCnt = 4, refCntWtd = 6.50 +New refCnts for V02: refCnt = 9, refCntWtd = 17 +New refCnts for V02: refCnt = 10, refCntWtd = 18 + +*************** Finishing PHASE Lowering nodeinfo +Trees after Lowering nodeinfo + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i LIR +BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR +BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR +BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd +BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd +BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} + [000600] ----------- IL_OFFSET void INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N001 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 $40 + /--* t0 int + +--* t1 int +N003 ( 3, 3) [000002] -----+-N--- * CMP void +N004 ( 5, 5) [000384] -----+----- JCC void cond=SGE + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} + [000601] ----------- IL_OFFSET void INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] +N001 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref $1c0 + /--* t497 ref + [000611] ----------- t611 = * PUTARG_REG ref REG rcx +N002 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref $1c1 + /--* t498 ref + [000612] ----------- t612 = * PUTARG_REG ref REG rdx + /--* t611 ref arg0 rcx + +--* t612 ref arg1 rdx +N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} + [000602] ----------- IL_OFFSET void INLRT @ 0x05D[E--] +N001 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 $100 +N002 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count $42 + /--* t31 int + +--* t32 int +N003 ( 3, 3) [000033] -----+-N--- * CMP void +N004 ( 5, 5) [000034] -----+----- JCC void cond=SGE + +------------ BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} + [000603] ----------- IL_OFFSET void INLRT @ 0x068[E--] +N001 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 $100 + /--* t46 int +N002 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int $240 +N003 ( 1, 1) [000049] -c---+----- t49 = CNS_INT long -1 $280 + /--* t47 long + +--* t49 long +N004 ( 4, 5) [000050] -----+----- t50 = * ADD long $241 + /--* t50 long +N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void + [000604] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] +N001 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 $2c2 +N002 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 $40 + /--* t533 int + +--* t534 int +N003 ( 3, 3) [000532] -------N--- * CMP void +N004 ( 5, 5) [000531] ----------- JCC void cond=SLE + +------------ BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} + [000605] ----------- IL_OFFSET void INLRT @ 0x09D[E--] +N001 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 (last use) $449 + /--* t240 int +N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void +N001 ( 1, 1) [000491] -----+-N--- t491 = LCL_VAR int V34 tmp29 u:9 (last use) $2c4 + /--* t491 int +N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void + +------------ BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} + [000606] ----------- IL_OFFSET void INLRT @ 0x2E0[E--] +N001 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 (last use) $303 +N002 ( 1, 1) [000271] -c---+----- t271 = CNS_INT long -1 $280 + /--* t269 long + +--* t271 long +N003 ( 3, 3) [000272] -----+----- t272 = * ADD long $26b + /--* t272 long +N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void + [000607] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] +N001 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 $1b8 +N002 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 $40 + /--* t247 int + +--* t248 int +N003 ( 3, 3) [000249] -----+-N--- * CMP void +N004 ( 5, 5) [000250] -----+----- JCC void cond=SGT + +------------ BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} + [000608] ----------- IL_OFFSET void INLRT @ 0x2B3[E--] +N001 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 (last use) $2c3 +N002 ( 1, 1) [000252] -c---+----- t252 = CNS_INT int -1 $43 + /--* t251 int + +--* t252 int +N003 ( 3, 3) [000253] -----+----- t253 = * ADD int $1b8 + /--* t253 int +N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void + [000609] ----------- IL_OFFSET void INLRT @ 0x2B8[E--] +N001 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 $80 +N002 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 $303 + /--* t255 byref + +--* t256 long +N005 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref + /--* t259 byref +N006 ( 5, 4) [000260] -c-XG+----- t260 = * IND long +N007 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 $c0 + /--* t260 long + +--* t261 long +N008 ( 7, 6) [000485] ---XG+-N--- * CMP void +N009 ( 9, 8) [000268] ---XG+----- JCC void cond=UEQ + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} +N001 ( 1, 1) [000277] -----+----- t277 = CNS_INT int -1 $43 + /--* t277 int +N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} + [000610] ----------- IL_OFFSET void INLRT @ 0x31B[E--] +N001 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 (last use) $80 + /--* t41 byref + [000613] ----------- t613 = * PUTARG_REG byref REG rcx +N002 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 (last use) $c0 + /--* t42 long + [000614] ----------- t614 = * PUTARG_REG long REG rdx +N003 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 (last use) $100 + /--* t43 int + [000615] ----------- t615 = * PUTARG_REG int REG r8 + /--* t613 byref arg0 rcx + +--* t614 long arg1 rdx + +--* t615 int arg2 r8 +N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Calculate stack level slots + +*************** Finishing PHASE Calculate stack level slots [no changes] + +*************** Starting PHASE Linear scan register alloc +Clearing modified regs. + +buildIntervals ======== + +----------------- +LIVENESS: +----------------- +BB01 +use: {V02} +def: {} + in: {V00 V01 V02} +out: {V00 V01 V02} +BB52 +use: {} +def: {} + in: {V00 V01 V02} +out: {V00 V01 V02} +BB57 +use: {V02} +def: {} + in: {V00 V01 V02} +out: {V00 V01 V02} +BB09 +use: {V02} +def: {V04} + in: {V00 V01 V02} +out: {V00 V01 V02 V04} +BB62 +use: {V04} +def: {V34} + in: {V04} +out: {} +BB40 +use: {V02 V04} +def: {V04} + in: {V00 V01 V02 V04} +out: {V00 V01 V02 V04} +BB66 +use: {V00 V01 V02 V04} +def: {V02} + in: {V00 V01 V02 V04} +out: {V00 V01 V02 V04} +BB42 +use: {} +def: {} + in: {} +out: {} +BB43 +use: {V00 V01 V02} +def: {} + in: {V00 V01 V02} +out: {} +Interval 0: byref RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] + Interval 0: (V00) byref RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] +Interval 1: long RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] + Interval 1: (V01) long RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] +Interval 2: int RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] + Interval 2: (V02) int RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] +Interval 3: long RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] + Interval 3: (V04) long RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] +Interval 4: int RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] + Interval 4: (V34) int RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] + +FP callee save candidate vars: None + +floatVarCount = 0; hasLoops = true, singleExit = false +TUPLE STYLE DUMP BEFORE LSRA +Identifying loops in DFS tree with following reverse post order: +RPO -> BB [pre, post] +00 -> BB01[0, 8] +01 -> BB52[1, 7] +02 -> BB57[2, 6] +03 -> BB43[8, 5] +04 -> BB09[3, 4] +05 -> BB66[4, 3] +06 -> BB62[7, 2] +07 -> BB40[5, 1] +08 -> BB42[6, 0] + +BB40 -> BB66 is a backedge +BB66 is the header of a DFS loop with 1 back edges +Loop has 2 blocks +BB66 -> BB62 is an exit edge +BB40 -> BB42 is an exit edge +BB09 -> BB66 is an entry edge +Added loop L00 with header BB66 + +Found 1 loops + +*************** Natural loop graph +L00 header: BB66 + Members (2): [BB40..BB66] + Entry: BB09 -> BB66 + Exit: BB66 -> BB62; BB40 -> BB42 + Back: BB40 -> BB66 + +Start LSRA Block Sequence: +Current block: BB01 +Current block: BB52 +Current block: BB57 +Current block: BB43 +Current block: BB09 +Current block: BB66 +Current block: BB40 +Current block: BB62 +Current block: BB42 +Final LSRA Block Sequence: +BB01 ( 1 ) critical-out +BB52 ( 0.50) +BB57 ( 1 ) critical-in +BB43 ( 0.50) +BB09 ( 0.75) critical-out +BB66 ( 4 ) critical-in +BB40 ( 4 ) critical-out +BB62 ( 0.50) +BB42 ( 0.50) critical-in + +BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} +===== + N000. IL_OFFSET INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + N001. V02(t0) + N002. CNS_INT 0 + N003. CMP ; t0 + N004. JCC cond=SGE + +BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} +===== + N000. IL_OFFSET INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + N001. t497 = CNS_INT(h) + N000. t611 = PUTARG_REG; t497 + N002. t498 = CNS_INT(h) + N000. t612 = PUTARG_REG; t498 + N003. CALL ; t611,t612 + +BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} +===== + N000. IL_OFFSET INLRT @ 0x05D[E--] + N001. V02(t31) + N002. CNS_INT 2 vector element count + N003. CMP ; t31 + N004. JCC cond=SGE + +BB43 [0042] [2EB..324) (return), preds={BB57} succs={} +===== + N000. IL_OFFSET INLRT @ 0x31B[E--] + N001. V00(t41*) + N000. t613 = PUTARG_REG; t41* + N002. V01(t42*) + N000. t614 = PUTARG_REG; t42* + N003. V02(t43*) + N000. t615 = PUTARG_REG; t43* + N004. CALL ; t613,t614,t615 + +BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} +===== + N000. IL_OFFSET INLRT @ 0x068[E--] + N001. V02(t46) + N002. t47 = CAST ; t46 + N003. CNS_INT -1 + N004. t50 = ADD ; t47 + N005. V04(t51); t50 + N000. IL_OFFSET INLRT @ 0x2E5[E--] + N001. V02(t533) + N002. CNS_INT 0 + N003. CMP ; t533 + N004. JCC cond=SLE + +BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} +===== + N000. IL_OFFSET INLRT @ 0x2B3[E--] + N001. V02(t251*) + N002. CNS_INT -1 + N003. t253 = ADD ; t251* + N004. V02(t254); t253 + N000. IL_OFFSET INLRT @ 0x2B8[E--] + N001. V00(t255) + N002. V04(t256) + N005. t259 = LEA(b+(i*8)+0); t255,t256 + N006. t260 = IND ; t259 + N007. V01(t261) + N008. CMP ; t260,t261 + N009. JCC cond=UEQ + +BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} +===== + N000. IL_OFFSET INLRT @ 0x2E0[E--] + N001. V04(t269*) + N002. CNS_INT -1 + N003. t272 = ADD ; t269* + N004. V04(t273); t272 + N000. IL_OFFSET INLRT @ 0x2E5[E--] + N001. V02(t247) + N002. CNS_INT 0 + N003. CMP ; t247 + N004. JCC cond=SGT + +BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} +===== + N000. IL_OFFSET INLRT @ 0x09D[E--] + N001. V04(t240*) + N002. V34(t521); t240* + N001. V34(t491*) + N002. RETURN ; t491* + +BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} +===== + N001. t277 = CNS_INT -1 + N002. RETURN ; t277 + + + + +buildIntervals second part ======== +Arg V00 is live in reg rcx +Arg V01 is live in reg rdx +Arg V02 is live in reg r8 + BB00 regmask=[r8] minReg=1 fixed wt=100.00> + BB00 regmask=[rcx] minReg=1 fixed wt=100.00> + BB00 regmask=[rdx] minReg=1 fixed wt=100.00> + +NEW BLOCK BB01 + + +DefList: { } +N003 (???,???) [000600] ----------- * IL_OFFSET void INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA + +DefList: { } +N005 ( 1, 1) [000000] -----+----- * LCL_VAR int V02 arg2 u:1 NA REG NA $100 + +DefList: { } +N007 ( 1, 1) [000001] -c---+----- * CNS_INT int 0 REG NA $40 +Contained +DefList: { } +N009 ( 3, 3) [000002] -----+-N--- * CMP void REG NA + LCL_VAR BB01 regmask=[allInt] minReg=1 last wt=1800.00> + +DefList: { } +N011 ( 5, 5) [000384] -----+----- * JCC void cond=SGE REG NA + + + +CHECKING LAST USES for BB01, liveout={V00 V01 V02} +============================== +use: {V02} +def: {} + +NEW BLOCK BB52 + + +Setting BB01 as the predecessor for determining incoming variable registers of BB52 + + +DefList: { } +N015 (???,???) [000601] ----------- * IL_OFFSET void INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA + +DefList: { } +N017 ( 1, 4) [000497] H----+----- * CNS_INT(h) ref REG NA $1c0 +Interval 5: ref RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] + CNS_INT BB52 regmask=[allInt] minReg=1 wt=200.00> + +DefList: { N017.t497. CNS_INT } +N019 (???,???) [000611] ----------- * PUTARG_REG ref REG rcx + BB52 regmask=[rcx] minReg=1 wt=50.00> + BB52 regmask=[rcx] minReg=1 last fixed wt=50.00> +Interval 6: ref RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] + BB52 regmask=[rcx] minReg=1 wt=50.00> + PUTARG_REG BB52 regmask=[rcx] minReg=1 fixed wt=200.00> + +DefList: { N019.t611. PUTARG_REG } +N021 ( 1, 4) [000498] H----+----- * CNS_INT(h) ref REG NA $1c1 +Interval 7: ref RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] + CNS_INT BB52 regmask=[allInt] minReg=1 wt=200.00> + +DefList: { N019.t611. PUTARG_REG; N021.t498. CNS_INT } +N023 (???,???) [000612] ----------- * PUTARG_REG ref REG rdx + BB52 regmask=[rdx] minReg=1 wt=50.00> + BB52 regmask=[rdx] minReg=1 last fixed wt=50.00> +Interval 8: ref RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] + BB52 regmask=[rdx] minReg=1 wt=50.00> + PUTARG_REG BB52 regmask=[rdx] minReg=1 fixed wt=200.00> + +DefList: { N019.t611. PUTARG_REG; N023.t612. PUTARG_REG } +N025 ( 16, 15) [000387] --CXG+----- * CALL void REG NA $VN.Void + BB52 regmask=[rcx] minReg=1 wt=50.00> + BB52 regmask=[rcx] minReg=1 last fixed wt=50.00> + BB52 regmask=[rdx] minReg=1 wt=50.00> + BB52 regmask=[rdx] minReg=1 last fixed wt=50.00> + + + + +CHECKING LAST USES for BB52, liveout={V00 V01 V02} +============================== +use: {} +def: {} + +NEW BLOCK BB57 + + +Setting BB01 as the predecessor for determining incoming variable registers of BB57 + + +DefList: { } +N029 (???,???) [000602] ----------- * IL_OFFSET void INLRT @ 0x05D[E--] REG NA + +DefList: { } +N031 ( 1, 1) [000031] -----+----- * LCL_VAR int V02 arg2 u:1 NA REG NA $100 + +DefList: { } +N033 ( 1, 1) [000032] -c---+----- * CNS_INT int 2 vector element count REG NA $42 +Contained +DefList: { } +N035 ( 3, 3) [000033] -----+-N--- * CMP void REG NA + LCL_VAR BB57 regmask=[allInt] minReg=1 last wt=1800.00> + +DefList: { } +N037 ( 5, 5) [000034] -----+----- * JCC void cond=SGE REG NA + + + +CHECKING LAST USES for BB57, liveout={V00 V01 V02} +============================== +use: {V02} +def: {} + +NEW BLOCK BB43 + + +Setting BB57 as the predecessor for determining incoming variable registers of BB43 + + +DefList: { } +N041 (???,???) [000610] ----------- * IL_OFFSET void INLRT @ 0x31B[E--] REG NA + +DefList: { } +N043 ( 1, 1) [000041] -----+----- * LCL_VAR byref V00 arg0 u:1 NA (last use) REG NA $80 + +DefList: { } +N045 (???,???) [000613] ----------- * PUTARG_REG byref REG rcx + BB43 regmask=[rcx] minReg=1 wt=50.00> + LCL_VAR BB43 regmask=[rcx] minReg=1 last fixed wt=650.00> +Interval 9: byref RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] + BB43 regmask=[rcx] minReg=1 wt=50.00> + PUTARG_REG BB43 regmask=[rcx] minReg=1 fixed wt=200.00> + +DefList: { N045.t613. PUTARG_REG } +N047 ( 1, 1) [000042] -----+----- * LCL_VAR long V01 arg1 u:1 NA (last use) REG NA $c0 + +DefList: { N045.t613. PUTARG_REG } +N049 (???,???) [000614] ----------- * PUTARG_REG long REG rdx +Last use of V01 between PUTARG and CALL. Removing occupied arg regs from preferences: [rcx] + BB43 regmask=[rdx] minReg=1 wt=50.00> + LCL_VAR BB43 regmask=[rdx] minReg=1 last fixed wt=650.00> +Interval 10: long RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] + BB43 regmask=[rdx] minReg=1 wt=50.00> + PUTARG_REG BB43 regmask=[rdx] minReg=1 fixed wt=200.00> + +DefList: { N045.t613. PUTARG_REG; N049.t614. PUTARG_REG } +N051 ( 1, 1) [000043] -----+----- * LCL_VAR int V02 arg2 u:1 NA (last use) REG NA $100 + +DefList: { N045.t613. PUTARG_REG; N049.t614. PUTARG_REG } +N053 (???,???) [000615] ----------- * PUTARG_REG int REG r8 +Last use of V02 between PUTARG and CALL. Removing occupied arg regs from preferences: [rcx rdx] + BB43 regmask=[r8] minReg=1 wt=50.00> + LCL_VAR BB43 regmask=[r8] minReg=1 last fixed wt=1800.00> +Interval 11: int RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] + BB43 regmask=[r8] minReg=1 wt=50.00> + PUTARG_REG BB43 regmask=[r8] minReg=1 fixed wt=200.00> + +DefList: { N045.t613. PUTARG_REG; N049.t614. PUTARG_REG; N053.t615. PUTARG_REG } +N055 ( 17, 11) [000044] --CXG+----- * CALL void REG NA $VN.Void + BB43 regmask=[rcx] minReg=1 wt=50.00> + BB43 regmask=[rcx] minReg=1 last fixed wt=50.00> + BB43 regmask=[rdx] minReg=1 wt=50.00> + BB43 regmask=[rdx] minReg=1 last fixed wt=50.00> + BB43 regmask=[r8] minReg=1 wt=50.00> + BB43 regmask=[r8] minReg=1 last fixed wt=50.00> + + + + +CHECKING LAST USES for BB43, liveout={} +============================== +use: {V00 V01 V02} +def: {} + +NEW BLOCK BB09 + + +Setting BB57 as the predecessor for determining incoming variable registers of BB09 + + +DefList: { } +N059 (???,???) [000603] ----------- * IL_OFFSET void INLRT @ 0x068[E--] REG NA + +DefList: { } +N061 ( 1, 1) [000046] -----+----- * LCL_VAR int V02 arg2 u:1 NA REG NA $100 + +DefList: { } +N063 ( 2, 3) [000047] -----+----- * CAST long <- int REG NA $240 + LCL_VAR BB09 regmask=[allInt] minReg=1 last wt=1800.00> +Interval 12: long RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] + CAST BB09 regmask=[allInt] minReg=1 wt=300.00> + +DefList: { N063.t47. CAST } +N065 ( 1, 1) [000049] -c---+----- * CNS_INT long -1 REG NA $280 +Contained +DefList: { N063.t47. CAST } +N067 ( 4, 5) [000050] -----+----- * ADD long REG NA $241 + BB09 regmask=[allInt] minReg=1 last wt=75.00> +Interval 13: long RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] + ADD BB09 regmask=[allInt] minReg=1 wt=300.00> +Assigning related to + +DefList: { N067.t50. ADD } +N069 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 NA REG NA $VN.Void + BB09 regmask=[allInt] minReg=1 last wt=75.00> +Assigning related to + STORE_LCL_VAR BB09 regmask=[allInt] minReg=1 last wt=1325.00> + +DefList: { } +N071 (???,???) [000604] ----------- * IL_OFFSET void INLRT @ 0x2E5[E--] REG NA + +DefList: { } +N073 ( 1, 1) [000533] ----------- * LCL_VAR int V02 arg2 u:6 NA REG NA $2c2 + +DefList: { } +N075 ( 1, 1) [000534] -c--------- * CNS_INT int 0 REG NA $40 +Contained +DefList: { } +N077 ( 3, 3) [000532] -------N--- * CMP void REG NA + LCL_VAR BB09 regmask=[allInt] minReg=1 last wt=1800.00> + +DefList: { } +N079 ( 5, 5) [000531] ----------- * JCC void cond=SLE REG NA + + + +CHECKING LAST USES for BB09, liveout={V00 V01 V02 V04} +============================== +use: {V02} +def: {V04} + +NEW BLOCK BB66 + + +Setting BB09 as the predecessor for determining incoming variable registers of BB66 + + +DefList: { } +N083 (???,???) [000608] ----------- * IL_OFFSET void INLRT @ 0x2B3[E--] REG NA + +DefList: { } +N085 ( 1, 1) [000251] -----+----- * LCL_VAR int V02 arg2 u:7 NA (last use) REG NA $2c3 + +DefList: { } +N087 ( 1, 1) [000252] -c---+----- * CNS_INT int -1 REG NA $43 +Contained +DefList: { } +N089 ( 3, 3) [000253] -----+----- * ADD int REG NA $1b8 + LCL_VAR BB66 regmask=[allInt] minReg=1 last wt=1800.00> +Interval 14: int RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] + ADD BB66 regmask=[allInt] minReg=1 wt=1600.00> +Assigning related to + +DefList: { N089.t253. ADD } +N091 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 NA REG NA $VN.Void + BB66 regmask=[allInt] minReg=1 last wt=400.00> +Assigning related to + STORE_LCL_VAR BB66 regmask=[allInt] minReg=1 last wt=1800.00> + +DefList: { } +N093 (???,???) [000609] ----------- * IL_OFFSET void INLRT @ 0x2B8[E--] REG NA + +DefList: { } +N095 ( 1, 1) [000255] -----+----- * LCL_VAR byref V00 arg0 u:1 NA REG NA $80 + +DefList: { } +N097 ( 1, 1) [000256] -----+----- * LCL_VAR long V04 loc1 u:7 NA REG NA $303 + +DefList: { } +N099 ( 3, 3) [000259] -c---+----- * LEA(b+(i*8)+0) byref REG NA +Contained +DefList: { } +N101 ( 5, 4) [000260] -c-XG+----- * IND long REG NA +Contained +DefList: { } +N103 ( 1, 1) [000261] -----+----- * LCL_VAR long V01 arg1 u:1 NA REG NA $c0 + +DefList: { } +N105 ( 7, 6) [000485] ---XG+-N--- * CMP void REG NA + LCL_VAR BB66 regmask=[allInt] minReg=1 last wt=650.00> + LCL_VAR BB66 regmask=[allInt] minReg=1 last wt=1325.00> + LCL_VAR BB66 regmask=[allInt] minReg=1 last wt=650.00> + +DefList: { } +N107 ( 9, 8) [000268] ---XG+----- * JCC void cond=UEQ REG NA + + + +CHECKING LAST USES for BB66, liveout={V00 V01 V02 V04} +============================== +use: {V00 V01 V02 V04} +def: {V02} + +NEW BLOCK BB40 + + +Setting BB66 as the predecessor for determining incoming variable registers of BB40 + + +DefList: { } +N111 (???,???) [000606] ----------- * IL_OFFSET void INLRT @ 0x2E0[E--] REG NA + +DefList: { } +N113 ( 1, 1) [000269] -----+----- * LCL_VAR long V04 loc1 u:7 NA (last use) REG NA $303 + +DefList: { } +N115 ( 1, 1) [000271] -c---+----- * CNS_INT long -1 REG NA $280 +Contained +DefList: { } +N117 ( 3, 3) [000272] -----+----- * ADD long REG NA $26b + LCL_VAR BB40 regmask=[allInt] minReg=1 last wt=1325.00> +Interval 15: long RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] + ADD BB40 regmask=[allInt] minReg=1 wt=1600.00> +Assigning related to + +DefList: { N117.t272. ADD } +N119 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 NA REG NA $VN.Void + BB40 regmask=[allInt] minReg=1 last wt=400.00> +Assigning related to + STORE_LCL_VAR BB40 regmask=[allInt] minReg=1 last wt=1325.00> + +DefList: { } +N121 (???,???) [000607] ----------- * IL_OFFSET void INLRT @ 0x2E5[E--] REG NA + +DefList: { } +N123 ( 1, 1) [000247] -----+----- * LCL_VAR int V02 arg2 u:8 NA REG NA $1b8 + +DefList: { } +N125 ( 1, 1) [000248] -c---+----- * CNS_INT int 0 REG NA $40 +Contained +DefList: { } +N127 ( 3, 3) [000249] -----+-N--- * CMP void REG NA + LCL_VAR BB40 regmask=[allInt] minReg=1 last wt=1800.00> + +DefList: { } +N129 ( 5, 5) [000250] -----+----- * JCC void cond=SGT REG NA + +Exposed uses: + BB40 regmask=[allInt] minReg=1 wt=400.00> + BB40 regmask=[allInt] minReg=1 wt=400.00> + BB40 regmask=[allInt] minReg=1 wt=400.00> + + +CHECKING LAST USES for BB40, liveout={V00 V01 V02 V04} +============================== +use: {V02 V04} +def: {V04} + +NEW BLOCK BB62 + + +Setting BB66 as the predecessor for determining incoming variable registers of BB62 + + +DefList: { } +N133 (???,???) [000605] ----------- * IL_OFFSET void INLRT @ 0x09D[E--] REG NA + +DefList: { } +N135 ( 1, 1) [000240] -----+----- * LCL_VAR int V04 loc1 u:12 NA (last use) REG NA $449 + +DefList: { } +N137 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 NA REG NA $VN.Void + LCL_VAR BB62 regmask=[allInt] minReg=1 last wt=1325.00> + STORE_LCL_VAR BB62 regmask=[allInt] minReg=1 last wt=200.00> + +DefList: { } +N139 ( 1, 1) [000491] -----+-N--- * LCL_VAR int V34 tmp29 u:9 NA (last use) REG NA $2c4 + +DefList: { } +N141 ( 2, 2) [000492] -----+----- * RETURN int REG NA $VN.Void + BB62 regmask=[rax] minReg=1 wt=50.00> + LCL_VAR BB62 regmask=[rax] minReg=1 last fixed wt=200.00> + + + +CHECKING LAST USES for BB62, liveout={} +============================== +use: {V04} +def: {V34} + +NEW BLOCK BB42 + + +Setting BB40 as the predecessor for determining incoming variable registers of BB42 + + +DefList: { } +N145 ( 1, 1) [000277] -----+----- * CNS_INT int -1 REG NA $43 +Interval 16: int RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] + CNS_INT BB42 regmask=[allInt] minReg=1 wt=200.00> + +DefList: { N145.t277. CNS_INT } +N147 ( 2, 2) [000493] -----+----- * RETURN int REG NA $VN.Void + BB42 regmask=[rax] minReg=1 wt=50.00> + BB42 regmask=[rax] minReg=1 last fixed wt=50.00> + + + +CHECKING LAST USES for BB42, liveout={} +============================== +use: {} +def: {} + +Linear scan intervals BEFORE VALIDATING INTERVALS: +Interval 0: (V00) byref RefPositions {#1@0 #25@45 #56@105 #66@131} physReg:rcx Preferences=[rbx rbp rsi rdi r12-r15] Aversions=[rax rcx rdx r8-r11] +Interval 1: (V01) long RefPositions {#2@0 #29@49 #58@105 #67@131} physReg:rdx Preferences=[rbx rbp rsi rdi r12-r15] Aversions=[rax rcx rdx r8-r11] +Interval 2: (V02) int RefPositions {#0@0 #4@9 #22@35 #33@53 #44@63 #50@77 #52@89 #55@92 #64@127 #65@131} physReg:r8 Preferences=[rbx rbp rsi rdi r12-r15] Aversions=[rax rcx rdx r8-r11] RelatedInterval +Interval 3: (V04) long RefPositions {#49@70 #57@105 #60@117 #63@120 #69@137} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval +Interval 4: (V34) int RefPositions {#70@138 #72@141} physReg:NA Preferences=[rax] Aversions=[allMask] +Interval 5: ref (constant) RefPositions {#6@18 #8@19} physReg:NA Preferences=[rcx] Aversions=[allMask] +Interval 6: ref RefPositions {#10@20 #17@25} physReg:NA Preferences=[rcx] Aversions=[allMask] +Interval 7: ref (constant) RefPositions {#11@22 #13@23} physReg:NA Preferences=[rdx] Aversions=[allMask] +Interval 8: ref RefPositions {#15@24 #19@25} physReg:NA Preferences=[rdx] Aversions=[allMask] +Interval 9: byref RefPositions {#27@46 #37@55} physReg:NA Preferences=[rcx] Aversions=[allMask] +Interval 10: long RefPositions {#31@50 #39@55} physReg:NA Preferences=[rdx] Aversions=[allMask] +Interval 11: int RefPositions {#35@54 #41@55} physReg:NA Preferences=[r8] Aversions=[allMask] +Interval 12: long RefPositions {#45@64 #46@67} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval +Interval 13: long RefPositions {#47@68 #48@69} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval +Interval 14: int RefPositions {#53@90 #54@91} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval +Interval 15: long RefPositions {#61@118 #62@119} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval +Interval 16: int (constant) RefPositions {#74@146 #76@147} physReg:NA Preferences=[rax] Aversions=[allMask] + +------------ +REFPOSITIONS BEFORE VALIDATING INTERVALS: +------------ + BB00 regmask=[r8] minReg=1 fixed regOptional wt=100.00> + BB00 regmask=[rcx] minReg=1 fixed regOptional wt=100.00> + BB00 regmask=[rdx] minReg=1 fixed regOptional wt=100.00> + + LCL_VAR BB01 regmask=[allInt] minReg=1 regOptional wt=1800.00> + + CNS_INT BB52 regmask=[rcx] minReg=1 wt=200.00> + BB52 regmask=[rcx] minReg=1 wt=50.00> + BB52 regmask=[rcx] minReg=1 last fixed wt=50.00> + BB52 regmask=[rcx] minReg=1 wt=50.00> + PUTARG_REG BB52 regmask=[rcx] minReg=1 fixed wt=200.00> + CNS_INT BB52 regmask=[rdx] minReg=1 wt=200.00> + BB52 regmask=[rdx] minReg=1 wt=50.00> + BB52 regmask=[rdx] minReg=1 last fixed wt=50.00> + BB52 regmask=[rdx] minReg=1 wt=50.00> + PUTARG_REG BB52 regmask=[rdx] minReg=1 fixed wt=200.00> + BB52 regmask=[rcx] minReg=1 wt=50.00> + BB52 regmask=[rcx] minReg=1 last fixed wt=50.00> + BB52 regmask=[rdx] minReg=1 wt=50.00> + BB52 regmask=[rdx] minReg=1 last fixed wt=50.00> + + + LCL_VAR BB57 regmask=[allInt] minReg=1 regOptional wt=1800.00> + + BB43 regmask=[rcx] minReg=1 wt=50.00> + LCL_VAR BB43 regmask=[rcx] minReg=1 last fixed wt=650.00> + BB43 regmask=[rcx] minReg=1 wt=50.00> + PUTARG_REG BB43 regmask=[rcx] minReg=1 fixed wt=200.00> + BB43 regmask=[rdx] minReg=1 wt=50.00> + LCL_VAR BB43 regmask=[rdx] minReg=1 last fixed wt=650.00> + BB43 regmask=[rdx] minReg=1 wt=50.00> + PUTARG_REG BB43 regmask=[rdx] minReg=1 fixed wt=200.00> + BB43 regmask=[r8] minReg=1 wt=50.00> + LCL_VAR BB43 regmask=[r8] minReg=1 last fixed wt=1800.00> + BB43 regmask=[r8] minReg=1 wt=50.00> + PUTARG_REG BB43 regmask=[r8] minReg=1 fixed wt=200.00> + BB43 regmask=[rcx] minReg=1 wt=50.00> + BB43 regmask=[rcx] minReg=1 last fixed wt=50.00> + BB43 regmask=[rdx] minReg=1 wt=50.00> + BB43 regmask=[rdx] minReg=1 last fixed wt=50.00> + BB43 regmask=[r8] minReg=1 wt=50.00> + BB43 regmask=[r8] minReg=1 last fixed wt=50.00> + + + LCL_VAR BB09 regmask=[allInt] minReg=1 regOptional wt=1800.00> + CAST BB09 regmask=[allInt] minReg=1 wt=300.00> + BB09 regmask=[allInt] minReg=1 last wt=75.00> + ADD BB09 regmask=[allInt] minReg=1 wt=300.00> + BB09 regmask=[allInt] minReg=1 last wt=75.00> + STORE_LCL_VAR BB09 regmask=[allInt] minReg=1 wt=1325.00> + LCL_VAR BB09 regmask=[allInt] minReg=1 regOptional wt=1800.00> + + LCL_VAR BB66 regmask=[allInt] minReg=1 last wt=1800.00> + ADD BB66 regmask=[allInt] minReg=1 wt=1600.00> + BB66 regmask=[allInt] minReg=1 last wt=400.00> + STORE_LCL_VAR BB66 regmask=[allInt] minReg=1 wt=1800.00> + LCL_VAR BB66 regmask=[allInt] minReg=1 wt=650.00> + LCL_VAR BB66 regmask=[allInt] minReg=1 wt=1325.00> + LCL_VAR BB66 regmask=[allInt] minReg=1 wt=650.00> + + LCL_VAR BB40 regmask=[allInt] minReg=1 last wt=1325.00> + ADD BB40 regmask=[allInt] minReg=1 wt=1600.00> + BB40 regmask=[allInt] minReg=1 last wt=400.00> + STORE_LCL_VAR BB40 regmask=[allInt] minReg=1 wt=1325.00> + LCL_VAR BB40 regmask=[allInt] minReg=1 regOptional wt=1800.00> + BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> + BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> + BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> + + LCL_VAR BB62 regmask=[allInt] minReg=1 last wt=1325.00> + STORE_LCL_VAR BB62 regmask=[allInt] minReg=1 wt=200.00> + BB62 regmask=[rax] minReg=1 wt=50.00> + LCL_VAR BB62 regmask=[rax] minReg=1 last fixed wt=200.00> + + CNS_INT BB42 regmask=[rax] minReg=1 wt=200.00> + BB42 regmask=[rax] minReg=1 wt=50.00> + BB42 regmask=[rax] minReg=1 last fixed wt=50.00> + +------------ +REFPOSITIONS DURING VALIDATE INTERVALS (RefPositions per interval) +------------ + +----------------- + BB00 regmask=[r8] minReg=1 fixed regOptional wt=100.00> + LCL_VAR BB01 regmask=[allInt] minReg=1 regOptional wt=1800.00> + LCL_VAR BB57 regmask=[allInt] minReg=1 regOptional wt=1800.00> + LCL_VAR BB43 regmask=[r8] minReg=1 last fixed wt=1800.00> + LCL_VAR BB09 regmask=[allInt] minReg=1 regOptional wt=1800.00> + LCL_VAR BB09 regmask=[allInt] minReg=1 regOptional wt=1800.00> + LCL_VAR BB66 regmask=[allInt] minReg=1 last wt=1800.00> + STORE_LCL_VAR BB66 regmask=[allInt] minReg=1 wt=1800.00> + LCL_VAR BB40 regmask=[allInt] minReg=1 regOptional wt=1800.00> + BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> +----------------- + STORE_LCL_VAR BB09 regmask=[allInt] minReg=1 wt=1325.00> + LCL_VAR BB66 regmask=[allInt] minReg=1 wt=1325.00> + LCL_VAR BB40 regmask=[allInt] minReg=1 last wt=1325.00> + STORE_LCL_VAR BB40 regmask=[allInt] minReg=1 wt=1325.00> + LCL_VAR BB62 regmask=[allInt] minReg=1 last wt=1325.00> +----------------- + BB00 regmask=[rcx] minReg=1 fixed regOptional wt=100.00> + LCL_VAR BB43 regmask=[rcx] minReg=1 last fixed wt=650.00> + LCL_VAR BB66 regmask=[allInt] minReg=1 wt=650.00> + BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> +----------------- + BB00 regmask=[rdx] minReg=1 fixed regOptional wt=100.00> + LCL_VAR BB43 regmask=[rdx] minReg=1 last fixed wt=650.00> + LCL_VAR BB66 regmask=[allInt] minReg=1 wt=650.00> + BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> +----------------- + STORE_LCL_VAR BB62 regmask=[allInt] minReg=1 wt=200.00> + LCL_VAR BB62 regmask=[rax] minReg=1 last fixed wt=200.00> +TUPLE STYLE DUMP WITH REF POSITIONS +Incoming Parameters: V02 V00 V01 +BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} +===== + N003. IL_OFFSET INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + N005. V02(L2) + N007. CNS_INT 0 + N009. CMP + Use:(#4) + N011. JCC cond=SGE + +BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} +===== + N015. IL_OFFSET INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + N017. CNS_INT(h) + Def:(#6) + N019. PUTARG_REG + Use:(#8) Fixed:rcx(#7) * + Def:(#10) rcx + N021. CNS_INT(h) + Def:(#11) + N023. PUTARG_REG + Use:(#13) Fixed:rdx(#12) * + Def:(#15) rdx + N025. CALL + Use:(#17) Fixed:rcx(#16) * + Use:(#19) Fixed:rdx(#18) * + Kill: [rax rcx rdx r8-r11] + +BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} +===== + N029. IL_OFFSET INLRT @ 0x05D[E--] + N031. V02(L2) + N033. CNS_INT 2 vector element count + N035. CMP + Use:(#22) + N037. JCC cond=SGE + +BB43 [0042] [2EB..324) (return), preds={BB57} succs={} +===== + N041. IL_OFFSET INLRT @ 0x31B[E--] + N043. V00(L0) + N045. PUTARG_REG + Use:(#25) Fixed:rcx(#24) * + Def:(#27) rcx + N047. V01(L1) + N049. PUTARG_REG + Use:(#29) Fixed:rdx(#28) * + Def:(#31) rdx + N051. V02(L2) + N053. PUTARG_REG + Use:(#33) Fixed:r8(#32) * + Def:(#35) r8 + N055. CALL + Use:(#37) Fixed:rcx(#36) * + Use:(#39) Fixed:rdx(#38) * + Use:(#41) Fixed:r8(#40) * + Kill: [rax rcx rdx r8-r11] + +BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} +===== + N059. IL_OFFSET INLRT @ 0x068[E--] + N061. V02(L2) + N063. CAST + Use:(#44) + Def:(#45) Pref: + N065. CNS_INT -1 + N067. ADD + Use:(#46) * + Def:(#47) Pref: + N069. V04(L3) + Use:(#48) * + Def:(#49) Pref: + N071. IL_OFFSET INLRT @ 0x2E5[E--] + N073. V02(L2) + N075. CNS_INT 0 + N077. CMP + Use:(#50) + N079. JCC cond=SLE + +BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} +===== + N083. IL_OFFSET INLRT @ 0x2B3[E--] + N085. V02(L2) + N087. CNS_INT -1 + N089. ADD + Use:(#52) * + Def:(#53) Pref: + N091. V02(L2) + Use:(#54) * + Def:(#55) Pref: + N093. IL_OFFSET INLRT @ 0x2B8[E--] + N095. V00(L0) + N097. V04(L3) + N099. LEA(b+(i*8)+0) + N101. IND + N103. V01(L1) + N105. CMP + Use:(#56) + Use:(#57) + Use:(#58) + N107. JCC cond=UEQ + +BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} +===== + N111. IL_OFFSET INLRT @ 0x2E0[E--] + N113. V04(L3) + N115. CNS_INT -1 + N117. ADD + Use:(#60) * + Def:(#61) Pref: + N119. V04(L3) + Use:(#62) * + Def:(#63) Pref: + N121. IL_OFFSET INLRT @ 0x2E5[E--] + N123. V02(L2) + N125. CNS_INT 0 + N127. CMP + Use:(#64) + N129. JCC cond=SGT + + Exposed use of V02 at #65 + Exposed use of V00 at #66 + Exposed use of V01 at #67 +BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} +===== + N133. IL_OFFSET INLRT @ 0x09D[E--] + N135. V04(L3) + N137. V34(L4) + Use:(#69) * + Def:(#70) + N139. V34(L4) + N141. RETURN + Use:(#72) Fixed:rax(#71) * + +BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} +===== + N145. CNS_INT -1 + Def:(#74) + N147. RETURN + Use:(#76) Fixed:rax(#75) * + + + + +Linear scan intervals after buildIntervals: +Interval 0: (V00) byref RefPositions {#1@0 #25@45 #56@105 #66@131} physReg:rcx Preferences=[rbx rbp rsi rdi r12-r15] Aversions=[rax rcx rdx r8-r11] +Interval 1: (V01) long RefPositions {#2@0 #29@49 #58@105 #67@131} physReg:rdx Preferences=[rbx rbp rsi rdi r12-r15] Aversions=[rax rcx rdx r8-r11] +Interval 2: (V02) int RefPositions {#0@0 #4@9 #22@35 #33@53 #44@63 #50@77 #52@89 #55@92 #64@127 #65@131} physReg:r8 Preferences=[rbx rbp rsi rdi r12-r15] Aversions=[rax rcx rdx r8-r11] RelatedInterval +Interval 3: (V04) long RefPositions {#49@70 #57@105 #60@117 #63@120 #69@137} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval +Interval 4: (V34) int RefPositions {#70@138 #72@141} physReg:NA Preferences=[rax] Aversions=[allMask] +Interval 5: ref (constant) RefPositions {#6@18 #8@19} physReg:NA Preferences=[rcx] Aversions=[allMask] +Interval 6: ref RefPositions {#10@20 #17@25} physReg:NA Preferences=[rcx] Aversions=[allMask] +Interval 7: ref (constant) RefPositions {#11@22 #13@23} physReg:NA Preferences=[rdx] Aversions=[allMask] +Interval 8: ref RefPositions {#15@24 #19@25} physReg:NA Preferences=[rdx] Aversions=[allMask] +Interval 9: byref RefPositions {#27@46 #37@55} physReg:NA Preferences=[rcx] Aversions=[allMask] +Interval 10: long RefPositions {#31@50 #39@55} physReg:NA Preferences=[rdx] Aversions=[allMask] +Interval 11: int RefPositions {#35@54 #41@55} physReg:NA Preferences=[r8] Aversions=[allMask] +Interval 12: long RefPositions {#45@64 #46@67} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval +Interval 13: long RefPositions {#47@68 #48@69} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval +Interval 14: int RefPositions {#53@90 #54@91} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval +Interval 15: long RefPositions {#61@118 #62@119} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval +Interval 16: int (constant) RefPositions {#74@146 #76@147} physReg:NA Preferences=[rax] Aversions=[allMask] + +*************** In LinearScan::allocateRegisters() + +Linear scan intervals before allocateRegisters: +Interval 0: (V00) byref RefPositions {#1@0 #25@45 #56@105 #66@131} physReg:rcx Preferences=[rbx rbp rsi rdi r12-r15] Aversions=[rax rcx rdx r8-r11] +Interval 1: (V01) long RefPositions {#2@0 #29@49 #58@105 #67@131} physReg:rdx Preferences=[rbx rbp rsi rdi r12-r15] Aversions=[rax rcx rdx r8-r11] +Interval 2: (V02) int RefPositions {#0@0 #4@9 #22@35 #33@53 #44@63 #50@77 #52@89 #55@92 #64@127 #65@131} physReg:r8 Preferences=[rbx rbp rsi rdi r12-r15] Aversions=[rax rcx rdx r8-r11] RelatedInterval +Interval 3: (V04) long RefPositions {#49@70 #57@105 #60@117 #63@120 #69@137} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval +Interval 4: (V34) int RefPositions {#70@138 #72@141} physReg:NA Preferences=[rax] Aversions=[allMask] +Interval 5: ref (constant) RefPositions {#6@18 #8@19} physReg:NA Preferences=[rcx] Aversions=[allMask] +Interval 6: ref RefPositions {#10@20 #17@25} physReg:NA Preferences=[rcx] Aversions=[allMask] +Interval 7: ref (constant) RefPositions {#11@22 #13@23} physReg:NA Preferences=[rdx] Aversions=[allMask] +Interval 8: ref RefPositions {#15@24 #19@25} physReg:NA Preferences=[rdx] Aversions=[allMask] +Interval 9: byref RefPositions {#27@46 #37@55} physReg:NA Preferences=[rcx] Aversions=[allMask] +Interval 10: long RefPositions {#31@50 #39@55} physReg:NA Preferences=[rdx] Aversions=[allMask] +Interval 11: int RefPositions {#35@54 #41@55} physReg:NA Preferences=[r8] Aversions=[allMask] +Interval 12: long RefPositions {#45@64 #46@67} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval +Interval 13: long RefPositions {#47@68 #48@69} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval +Interval 14: int RefPositions {#53@90 #54@91} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval +Interval 15: long RefPositions {#61@118 #62@119} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval +Interval 16: int (constant) RefPositions {#74@146 #76@147} physReg:NA Preferences=[rax] Aversions=[allMask] + +------------ +REFPOSITIONS BEFORE ALLOCATION: +------------ + BB00 regmask=[r8] minReg=1 fixed regOptional wt=100.00> + BB00 regmask=[rcx] minReg=1 fixed regOptional wt=100.00> + BB00 regmask=[rdx] minReg=1 fixed regOptional wt=100.00> + + LCL_VAR BB01 regmask=[allInt] minReg=1 regOptional wt=1800.00> + + CNS_INT BB52 regmask=[rcx] minReg=1 wt=200.00> + BB52 regmask=[rcx] minReg=1 wt=50.00> + BB52 regmask=[rcx] minReg=1 last fixed wt=50.00> + BB52 regmask=[rcx] minReg=1 wt=50.00> + PUTARG_REG BB52 regmask=[rcx] minReg=1 fixed wt=200.00> + CNS_INT BB52 regmask=[rdx] minReg=1 wt=200.00> + BB52 regmask=[rdx] minReg=1 wt=50.00> + BB52 regmask=[rdx] minReg=1 last fixed wt=50.00> + BB52 regmask=[rdx] minReg=1 wt=50.00> + PUTARG_REG BB52 regmask=[rdx] minReg=1 fixed wt=200.00> + BB52 regmask=[rcx] minReg=1 wt=50.00> + BB52 regmask=[rcx] minReg=1 last fixed wt=50.00> + BB52 regmask=[rdx] minReg=1 wt=50.00> + BB52 regmask=[rdx] minReg=1 last fixed wt=50.00> + + + LCL_VAR BB57 regmask=[allInt] minReg=1 regOptional wt=1800.00> + + BB43 regmask=[rcx] minReg=1 wt=50.00> + LCL_VAR BB43 regmask=[rcx] minReg=1 last fixed wt=650.00> + BB43 regmask=[rcx] minReg=1 wt=50.00> + PUTARG_REG BB43 regmask=[rcx] minReg=1 fixed wt=200.00> + BB43 regmask=[rdx] minReg=1 wt=50.00> + LCL_VAR BB43 regmask=[rdx] minReg=1 last fixed wt=650.00> + BB43 regmask=[rdx] minReg=1 wt=50.00> + PUTARG_REG BB43 regmask=[rdx] minReg=1 fixed wt=200.00> + BB43 regmask=[r8] minReg=1 wt=50.00> + LCL_VAR BB43 regmask=[r8] minReg=1 last fixed wt=1800.00> + BB43 regmask=[r8] minReg=1 wt=50.00> + PUTARG_REG BB43 regmask=[r8] minReg=1 fixed wt=200.00> + BB43 regmask=[rcx] minReg=1 wt=50.00> + BB43 regmask=[rcx] minReg=1 last fixed wt=50.00> + BB43 regmask=[rdx] minReg=1 wt=50.00> + BB43 regmask=[rdx] minReg=1 last fixed wt=50.00> + BB43 regmask=[r8] minReg=1 wt=50.00> + BB43 regmask=[r8] minReg=1 last fixed wt=50.00> + + + LCL_VAR BB09 regmask=[allInt] minReg=1 regOptional wt=1800.00> + CAST BB09 regmask=[allInt] minReg=1 wt=300.00> + BB09 regmask=[allInt] minReg=1 last wt=75.00> + ADD BB09 regmask=[allInt] minReg=1 wt=300.00> + BB09 regmask=[allInt] minReg=1 last wt=75.00> + STORE_LCL_VAR BB09 regmask=[allInt] minReg=1 wt=1325.00> + LCL_VAR BB09 regmask=[allInt] minReg=1 regOptional wt=1800.00> + + LCL_VAR BB66 regmask=[allInt] minReg=1 last wt=1800.00> + ADD BB66 regmask=[allInt] minReg=1 wt=1600.00> + BB66 regmask=[allInt] minReg=1 last wt=400.00> + STORE_LCL_VAR BB66 regmask=[allInt] minReg=1 wt=1800.00> + LCL_VAR BB66 regmask=[allInt] minReg=1 wt=650.00> + LCL_VAR BB66 regmask=[allInt] minReg=1 wt=1325.00> + LCL_VAR BB66 regmask=[allInt] minReg=1 wt=650.00> + + LCL_VAR BB40 regmask=[allInt] minReg=1 last wt=1325.00> + ADD BB40 regmask=[allInt] minReg=1 wt=1600.00> + BB40 regmask=[allInt] minReg=1 last wt=400.00> + STORE_LCL_VAR BB40 regmask=[allInt] minReg=1 wt=1325.00> + LCL_VAR BB40 regmask=[allInt] minReg=1 regOptional wt=1800.00> + BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> + BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> + BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> + + LCL_VAR BB62 regmask=[allInt] minReg=1 last wt=1325.00> + STORE_LCL_VAR BB62 regmask=[allInt] minReg=1 wt=200.00> + BB62 regmask=[rax] minReg=1 wt=50.00> + LCL_VAR BB62 regmask=[rax] minReg=1 last fixed wt=200.00> + + CNS_INT BB42 regmask=[rax] minReg=1 wt=200.00> + BB42 regmask=[rax] minReg=1 wt=50.00> + BB42 regmask=[rax] minReg=1 last fixed wt=50.00> + +VAR REFPOSITIONS BEFORE ALLOCATION +--- V00 (Interval 0) + BB00 regmask=[rcx] minReg=1 fixed regOptional wt=100.00> + LCL_VAR BB43 regmask=[rcx] minReg=1 last fixed wt=650.00> + LCL_VAR BB66 regmask=[allInt] minReg=1 wt=650.00> + BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> +--- V01 (Interval 1) + BB00 regmask=[rdx] minReg=1 fixed regOptional wt=100.00> + LCL_VAR BB43 regmask=[rdx] minReg=1 last fixed wt=650.00> + LCL_VAR BB66 regmask=[allInt] minReg=1 wt=650.00> + BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> +--- V02 (Interval 2) + BB00 regmask=[r8] minReg=1 fixed regOptional wt=100.00> + LCL_VAR BB01 regmask=[allInt] minReg=1 regOptional wt=1800.00> + LCL_VAR BB57 regmask=[allInt] minReg=1 regOptional wt=1800.00> + LCL_VAR BB43 regmask=[r8] minReg=1 last fixed wt=1800.00> + LCL_VAR BB09 regmask=[allInt] minReg=1 regOptional wt=1800.00> + LCL_VAR BB09 regmask=[allInt] minReg=1 regOptional wt=1800.00> + LCL_VAR BB66 regmask=[allInt] minReg=1 last wt=1800.00> + STORE_LCL_VAR BB66 regmask=[allInt] minReg=1 wt=1800.00> + LCL_VAR BB40 regmask=[allInt] minReg=1 regOptional wt=1800.00> + BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> +--- V03 +--- V04 (Interval 3) + STORE_LCL_VAR BB09 regmask=[allInt] minReg=1 wt=1325.00> + LCL_VAR BB66 regmask=[allInt] minReg=1 wt=1325.00> + LCL_VAR BB40 regmask=[allInt] minReg=1 last wt=1325.00> + STORE_LCL_VAR BB40 regmask=[allInt] minReg=1 wt=1325.00> + LCL_VAR BB62 regmask=[allInt] minReg=1 last wt=1325.00> +--- V05 +--- V06 +--- V07 +--- V08 +--- V09 +--- V10 +--- V11 +--- V12 +--- V13 +--- V14 +--- V15 +--- V16 +--- V17 +--- V18 +--- V19 +--- V20 +--- V21 +--- V22 +--- V23 +--- V24 +--- V25 +--- V26 +--- V27 +--- V28 +--- V29 +--- V30 +--- V31 +--- V32 +--- V33 +--- V34 (Interval 4) + STORE_LCL_VAR BB62 regmask=[allInt] minReg=1 wt=200.00> + LCL_VAR BB62 regmask=[rax] minReg=1 last fixed wt=200.00> + + + +Allocating Registers +-------------------- +The following table has one or more rows for each RefPosition that is handled during allocation. +The columns are: (1) Loc: LSRA location, (2) RP#: RefPosition number, (3) Name, (4) Type (e.g. Def, Use, +Fixd, Parm, DDef (Dummy Def), ExpU (Exposed Use), Kill) followed by a '*' if it is a last use, and a 'D' +if it is delayRegFree, (5) Action taken during allocation. Some actions include (a) Alloc a new register, +(b) Keep an existing register, (c) Spill a register, (d) ReLod (Reload) a register. If an ALL-CAPS name +such as COVRS is displayed, it is a score name from lsra_score.h, with a trailing '(A)' indicating alloc, +'(C)' indicating copy, and '(R)' indicating re-use. See dumpLsraAllocationEvent() for details. +The subsequent columns show the Interval occupying each register, if any, followed by 'a' if it is +active, 'p' if it is a large vector that has been partially spilled, and 'i' if it is inactive. +Columns are only printed up to the last modified register, which may increase during allocation, +in which case additional columns will appear. Registers which are not marked modified have ---- in +their column. + +-------------------------------------------+----+----+----+----+----+----+----+----+----+ +TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ + | |V00a|V01a| | | | |V02a| | + 0.#0 V02 Parm ORDER(A) rbx | |V00a|V01a|V02a| | | | | | + 0.#1 V00 Parm ORDER(A) rsi | | |V01a|V02a| |V00a| | | | + 0.#2 V01 Parm ORDER(A) rdi | | | |V02a| |V00a|V01a| | | + 1.#3 BB1 PredBB0 | | | |V02a| |V00a|V01a| | | +[000002] 9.#4 V02 Use Keep rbx | | | |V02a| |V00a|V01a| | | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ +TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ + 13.#5 BB52 PredBB1 | | | |V02a| |V00a|V01a| | | +[000497] 18.#6 C5 Def Alloc rcx | |C5 a| |V02a| |V00a|V01a| | | +[000611] 19.#7 rcx Fixd Keep rcx | |C5 a| |V02a| |V00a|V01a| | | + 19.#8 C5 Use * Keep rcx | |C5 a| |V02a| |V00a|V01a| | | + 20.#9 rcx Fixd Keep rcx | | | |V02a| |V00a|V01a| | | + 20.#10 I6 Def Alloc rcx | |I6 a| |V02a| |V00a|V01a| | | +[000498] 22.#11 C7 Def Alloc rdx | |I6 a|C7 a|V02a| |V00a|V01a| | | +[000612] 23.#12 rdx Fixd Keep rdx | |I6 a|C7 a|V02a| |V00a|V01a| | | + 23.#13 C7 Use * Keep rdx | |I6 a|C7 a|V02a| |V00a|V01a| | | + 24.#14 rdx Fixd Keep rdx | |I6 a| |V02a| |V00a|V01a| | | + 24.#15 I8 Def Alloc rdx | |I6 a|I8 a|V02a| |V00a|V01a| | | +[000387] 25.#16 rcx Fixd Keep rcx | |I6 a|I8 a|V02a| |V00a|V01a| | | + 25.#17 I6 Use * Keep rcx | |I6 a|I8 a|V02a| |V00a|V01a| | | + 25.#18 rdx Fixd Keep rdx | |I6 a|I8 a|V02a| |V00a|V01a| | | + 25.#19 I8 Use * Keep rdx | |I6 a|I8 a|V02a| |V00a|V01a| | | + 26.#20 Kill None [rax rcx rdx r8-r11] + | | | |V02a| |V00a|V01a| | | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ +TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ + 27.#21 BB57 PredBB1 | | | |V02a| |V00a|V01a| | | +[000033] 35.#22 V02 Use Keep rbx | | | |V02a| |V00a|V01a| | | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ +TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ + 39.#23 BB43 PredBB57 | | | |V02a| |V00a|V01a| | | +[000613] 45.#24 rcx Fixd Keep rcx | | | |V02a| |V00a|V01a| | | + 45.#25 V00 Use * Copy rcx | |V00a| |V02a| |V00a|V01a| | | + 46.#26 rcx Fixd Keep rcx | |V00i| |V02a| |V00i|V01a| | | + 46.#27 I9 Def Alloc rcx | |I9 a| |V02a| |V00i|V01a| | | +[000614] 49.#28 rdx Fixd Keep rdx | |I9 a| |V02a| |V00i|V01a| | | + 49.#29 V01 Use * Copy rdx | |I9 a|V01a|V02a| |V00i|V01a| | | + 50.#30 rdx Fixd Keep rdx | |I9 a|V01i|V02a| |V00i|V01i| | | + 50.#31 I10 Def Alloc rdx | |I9 a|I10a|V02a| |V00i|V01i| | | +[000615] 53.#32 r8 Fixd Keep r8 | |I9 a|I10a|V02a| |V00i|V01i| | | + 53.#33 V02 Use * Copy r8 | |I9 a|I10a|V02a| |V00i|V01i|V02a| | + 54.#34 r8 Fixd Keep r8 | |I9 a|I10a|V02i| |V00i|V01i|V02i| | + 54.#35 I11 Def Alloc r8 | |I9 a|I10a|V02i| |V00i|V01i|I11a| | +[000044] 55.#36 rcx Fixd Keep rcx | |I9 a|I10a|V02i| |V00i|V01i|I11a| | + 55.#37 I9 Use * Keep rcx | |I9 a|I10a|V02i| |V00i|V01i|I11a| | + 55.#38 rdx Fixd Keep rdx | |I9 a|I10a|V02i| |V00i|V01i|I11a| | + 55.#39 I10 Use * Keep rdx | |I9 a|I10a|V02i| |V00i|V01i|I11a| | + 55.#40 r8 Fixd Keep r8 | |I9 a|I10a|V02i| |V00i|V01i|I11a| | + 55.#41 I11 Use * Keep r8 | |I9 a|I10a|V02i| |V00i|V01i|I11a| | + 56.#42 Kill None [rax rcx rdx r8-r11] + | | | |V02i| |V00i|V01i| | | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ +TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ + 57.#43 BB9 PredBB57 | | | |V02a| |V00a|V01a| | | +[000047] 63.#44 V02 Use Keep rbx | | | |V02a| |V00a|V01a| | | + 64.#45 I12 Def BSFIT(A) rax |I12a| | |V02a| |V00a|V01a| | | +[000050] 67.#46 I12 Use * Keep rax |I12a| | |V02a| |V00a|V01a| | | + 68.#47 I13 Def COVRS(A) rax |I13a| | |V02a| |V00a|V01a| | | +[000051] 69.#48 I13 Use * Keep rax |I13a| | |V02a| |V00a|V01a| | | + 70.#49 V04 Def COVRS(A) rax |V04a| | |V02a| |V00a|V01a| | | +[000532] 77.#50 V02 Use Keep rbx |V04a| | |V02a| |V00a|V01a| | | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ +TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ + 81.#51 BB66 PredBB9 |V04a| | |V02a| |V00a|V01a| | | +[000253] 89.#52 V02 Use * Keep rbx |V04a| | |V02i| |V00a|V01a| | | + 90.#53 I14 Def COVRS(A) rbx |V04a| | |I14a| |V00a|V01a| | | +[000254] 91.#54 I14 Use * Keep rbx |V04a| | |I14a| |V00a|V01a| | | + Restr rbx |V04a| | |V02i| |V00a|V01a| | | + 92.#55 V02 Def THISA(A) rbx |V04a| | |V02a| |V00a|V01a| | | +[000485] 105.#56 V00 Use Keep rsi |V04a| | |V02a| |V00a|V01a| | | + 105.#57 V04 Use Keep rax |V04a| | |V02a| |V00a|V01a| | | + 105.#58 V01 Use Keep rdi |V04a| | |V02a| |V00a|V01a| | | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ +TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ + 109.#59 BB40 PredBB66 |V04a| | |V02a| |V00a|V01a| | | +[000272] 117.#60 V04 Use * Keep rax |V04i| | |V02a| |V00a|V01a| | | + 118.#61 I15 Def COVRS(A) rax |I15a| | |V02a| |V00a|V01a| | | +[000273] 119.#62 I15 Use * Keep rax |I15a| | |V02a| |V00a|V01a| | | + Restr rax |V04i| | |V02a| |V00a|V01a| | | + 120.#63 V04 Def THISA(A) rax |V04a| | |V02a| |V00a|V01a| | | +[000249] 127.#64 V02 Use Keep rbx |V04a| | |V02a| |V00a|V01a| | | +[000250] 131.#65 V02 ExpU Keep NA |V04a| | |V02a| |V00a|V01a| | | + 131.#66 V00 ExpU Keep NA |V04a| | |V02a| |V00a|V01a| | | + 131.#67 V01 ExpU Keep NA |V04a| | |V02a| |V00a|V01a| | | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ +TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ + 131.#68 BB62 PredBB66 |V04a| | | | | | | | | +[000521] 137.#69 V04 Use * Keep rax |V04a| | | | | | | | | + 138.#70 V34 Def COVRS(A) rax |V34a| | | | | | | | | +[000492] 141.#71 rax Fixd Keep rax |V34a| | | | | | | | | + 141.#72 V34 Use * Keep rax |V34a| | | | | | | | | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ +TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ + 143.#73 BB42 PredBB40 | | | | | | | | | | +[000277] 146.#74 C16 Def Alloc rax |C16a| | | | | | | | | +[000493] 147.#75 rax Fixd Keep rax |C16a| | | | | | | | | + 147.#76 C16 Use * Keep rax |C16i| | | | | | | | | + +------------ +REFPOSITIONS AFTER ALLOCATION: +------------ + BB00 regmask=[rbx] minReg=1 regOptional wt=100.00> + BB00 regmask=[rsi] minReg=1 regOptional wt=100.00> + BB00 regmask=[rdi] minReg=1 regOptional wt=100.00> + + LCL_VAR BB01 regmask=[rbx] minReg=1 regOptional wt=1800.00> + + CNS_INT BB52 regmask=[rcx] minReg=1 wt=200.00> + BB52 regmask=[rcx] minReg=1 wt=50.00> + BB52 regmask=[rcx] minReg=1 last fixed wt=50.00> + BB52 regmask=[rcx] minReg=1 wt=50.00> + PUTARG_REG BB52 regmask=[rcx] minReg=1 fixed wt=200.00> + CNS_INT BB52 regmask=[rdx] minReg=1 wt=200.00> + BB52 regmask=[rdx] minReg=1 wt=50.00> + BB52 regmask=[rdx] minReg=1 last fixed wt=50.00> + BB52 regmask=[rdx] minReg=1 wt=50.00> + PUTARG_REG BB52 regmask=[rdx] minReg=1 fixed wt=200.00> + BB52 regmask=[rcx] minReg=1 wt=50.00> + BB52 regmask=[rcx] minReg=1 last fixed wt=50.00> + BB52 regmask=[rdx] minReg=1 wt=50.00> + BB52 regmask=[rdx] minReg=1 last fixed wt=50.00> + + + LCL_VAR BB57 regmask=[rbx] minReg=1 regOptional wt=1800.00> + + BB43 regmask=[rcx] minReg=1 wt=50.00> + LCL_VAR BB43 regmask=[rcx] minReg=1 last copy fixed wt=650.00> + BB43 regmask=[rcx] minReg=1 wt=50.00> + PUTARG_REG BB43 regmask=[rcx] minReg=1 fixed wt=200.00> + BB43 regmask=[rdx] minReg=1 wt=50.00> + LCL_VAR BB43 regmask=[rdx] minReg=1 last copy fixed wt=650.00> + BB43 regmask=[rdx] minReg=1 wt=50.00> + PUTARG_REG BB43 regmask=[rdx] minReg=1 fixed wt=200.00> + BB43 regmask=[r8] minReg=1 wt=50.00> + LCL_VAR BB43 regmask=[r8] minReg=1 last copy fixed wt=1800.00> + BB43 regmask=[r8] minReg=1 wt=50.00> + PUTARG_REG BB43 regmask=[r8] minReg=1 fixed wt=200.00> + BB43 regmask=[rcx] minReg=1 wt=50.00> + BB43 regmask=[rcx] minReg=1 last fixed wt=50.00> + BB43 regmask=[rdx] minReg=1 wt=50.00> + BB43 regmask=[rdx] minReg=1 last fixed wt=50.00> + BB43 regmask=[r8] minReg=1 wt=50.00> + BB43 regmask=[r8] minReg=1 last fixed wt=50.00> + + + LCL_VAR BB09 regmask=[rbx] minReg=1 regOptional wt=1800.00> + CAST BB09 regmask=[rax] minReg=1 wt=300.00> + BB09 regmask=[rax] minReg=1 last wt=75.00> + ADD BB09 regmask=[rax] minReg=1 wt=300.00> + BB09 regmask=[rax] minReg=1 last wt=75.00> + STORE_LCL_VAR BB09 regmask=[rax] minReg=1 wt=1325.00> + LCL_VAR BB09 regmask=[rbx] minReg=1 regOptional wt=1800.00> + + LCL_VAR BB66 regmask=[rbx] minReg=1 last wt=1800.00> + ADD BB66 regmask=[rbx] minReg=1 wt=1600.00> + BB66 regmask=[rbx] minReg=1 last wt=400.00> + STORE_LCL_VAR BB66 regmask=[rbx] minReg=1 wt=1800.00> + LCL_VAR BB66 regmask=[rsi] minReg=1 wt=650.00> + LCL_VAR BB66 regmask=[rax] minReg=1 wt=1325.00> + LCL_VAR BB66 regmask=[rdi] minReg=1 wt=650.00> + + LCL_VAR BB40 regmask=[rax] minReg=1 last wt=1325.00> + ADD BB40 regmask=[rax] minReg=1 wt=1600.00> + BB40 regmask=[rax] minReg=1 last wt=400.00> + STORE_LCL_VAR BB40 regmask=[rax] minReg=1 wt=1325.00> + LCL_VAR BB40 regmask=[rbx] minReg=1 regOptional wt=1800.00> + BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> + BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> + BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> + + LCL_VAR BB62 regmask=[rax] minReg=1 last wt=1325.00> + STORE_LCL_VAR BB62 regmask=[rax] minReg=1 wt=200.00> + BB62 regmask=[rax] minReg=1 wt=50.00> + LCL_VAR BB62 regmask=[rax] minReg=1 last fixed wt=200.00> + + CNS_INT BB42 regmask=[rax] minReg=1 wt=200.00> + BB42 regmask=[rax] minReg=1 wt=50.00> + BB42 regmask=[rax] minReg=1 last fixed wt=50.00> + +VAR REFPOSITIONS AFTER ALLOCATION +--- V00 (Interval 0) + BB00 regmask=[rsi] minReg=1 regOptional wt=100.00> + LCL_VAR BB43 regmask=[rcx] minReg=1 last copy fixed wt=650.00> + LCL_VAR BB66 regmask=[rsi] minReg=1 wt=650.00> + BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> +--- V01 (Interval 1) + BB00 regmask=[rdi] minReg=1 regOptional wt=100.00> + LCL_VAR BB43 regmask=[rdx] minReg=1 last copy fixed wt=650.00> + LCL_VAR BB66 regmask=[rdi] minReg=1 wt=650.00> + BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> +--- V02 (Interval 2) + BB00 regmask=[rbx] minReg=1 regOptional wt=100.00> + LCL_VAR BB01 regmask=[rbx] minReg=1 regOptional wt=1800.00> + LCL_VAR BB57 regmask=[rbx] minReg=1 regOptional wt=1800.00> + LCL_VAR BB43 regmask=[r8] minReg=1 last copy fixed wt=1800.00> + LCL_VAR BB09 regmask=[rbx] minReg=1 regOptional wt=1800.00> + LCL_VAR BB09 regmask=[rbx] minReg=1 regOptional wt=1800.00> + LCL_VAR BB66 regmask=[rbx] minReg=1 last wt=1800.00> + STORE_LCL_VAR BB66 regmask=[rbx] minReg=1 wt=1800.00> + LCL_VAR BB40 regmask=[rbx] minReg=1 regOptional wt=1800.00> + BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> +--- V03 +--- V04 (Interval 3) + STORE_LCL_VAR BB09 regmask=[rax] minReg=1 wt=1325.00> + LCL_VAR BB66 regmask=[rax] minReg=1 wt=1325.00> + LCL_VAR BB40 regmask=[rax] minReg=1 last wt=1325.00> + STORE_LCL_VAR BB40 regmask=[rax] minReg=1 wt=1325.00> + LCL_VAR BB62 regmask=[rax] minReg=1 last wt=1325.00> +--- V05 +--- V06 +--- V07 +--- V08 +--- V09 +--- V10 +--- V11 +--- V12 +--- V13 +--- V14 +--- V15 +--- V16 +--- V17 +--- V18 +--- V19 +--- V20 +--- V21 +--- V22 +--- V23 +--- V24 +--- V25 +--- V26 +--- V27 +--- V28 +--- V29 +--- V30 +--- V31 +--- V32 +--- V33 +--- V34 (Interval 4) + STORE_LCL_VAR BB62 regmask=[rax] minReg=1 wt=200.00> + LCL_VAR BB62 regmask=[rax] minReg=1 last fixed wt=200.00> + +Active intervals at end of allocation: + +----------------------- +RESOLVING BB BOUNDARIES +----------------------- +Resolution Candidates: {V00 V01 V02 V04} +Has Critical Edges + +Prior to Resolution + +BB01 +use: {V02} +def: {} + in: {V00 V01 V02} +out: {V00 V01 V02} +Var=Reg beg of BB01: V02=rbx V00=rsi V01=rdi +Var=Reg end of BB01: V02=rbx V00=rsi V01=rdi + +BB52 +use: {} +def: {} + in: {V00 V01 V02} +out: {V00 V01 V02} +Var=Reg beg of BB52: V02=rbx V00=rsi V01=rdi +Var=Reg end of BB52: V02=rbx V00=rsi V01=rdi + +BB57 +use: {V02} +def: {} + in: {V00 V01 V02} +out: {V00 V01 V02} +Var=Reg beg of BB57: V02=rbx V00=rsi V01=rdi +Var=Reg end of BB57: V02=rbx V00=rsi V01=rdi + +BB09 +use: {V02} +def: {V04} + in: {V00 V01 V02} +out: {V00 V01 V02 V04} +Var=Reg beg of BB09: V02=rbx V00=rsi V01=rdi +Var=Reg end of BB09: V02=rbx V04=rax V00=rsi V01=rdi + +BB62 +use: {V04} +def: {V34} + in: {V04} +out: {} +Var=Reg beg of BB62: V04=rax +Var=Reg end of BB62: none + +BB40 +use: {V02 V04} +def: {V04} + in: {V00 V01 V02 V04} +out: {V00 V01 V02 V04} +Var=Reg beg of BB40: V02=rbx V04=rax V00=rsi V01=rdi +Var=Reg end of BB40: V02=rbx V04=rax V00=rsi V01=rdi + +BB66 +use: {V00 V01 V02 V04} +def: {V02} + in: {V00 V01 V02 V04} +out: {V00 V01 V02 V04} +Var=Reg beg of BB66: V02=rbx V04=rax V00=rsi V01=rdi +Var=Reg end of BB66: V02=rbx V04=rax V00=rsi V01=rdi + +BB42 +use: {} +def: {} + in: {} +out: {} +Var=Reg beg of BB42: none +Var=Reg end of BB42: none + +BB43 +use: {V00 V01 V02} +def: {} + in: {V00 V01 V02} +out: {} +Var=Reg beg of BB43: V02=rbx V00=rsi V01=rdi +Var=Reg end of BB43: none + + +RESOLVING EDGES + Set V00 argument initial register to rsi + Set V01 argument initial register to rdi + Set V02 argument initial register to rbx +Trees after linear scan register allocator (LSRA) + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i LIR +BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR +BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR +BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd +BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd +BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} +N003 (???,???) [000600] ----------- IL_OFFSET void INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA +N005 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 +N007 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 REG NA $40 + /--* t0 int + +--* t1 int +N009 ( 3, 3) [000002] -----+-N--- * CMP void REG NA +N011 ( 5, 5) [000384] -----+----- JCC void cond=SGE REG NA + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} +N015 (???,???) [000601] ----------- IL_OFFSET void INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA +N017 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref REG rcx $1c0 + /--* t497 ref +N019 (???,???) [000611] ----------- t611 = * PUTARG_REG ref REG rcx +N021 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref REG rdx $1c1 + /--* t498 ref +N023 (???,???) [000612] ----------- t612 = * PUTARG_REG ref REG rdx + /--* t611 ref arg0 rcx + +--* t612 ref arg1 rdx +N025 ( 16, 15) [000387] --CXG+----- * CALL void REG NA $VN.Void + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} +N029 (???,???) [000602] ----------- IL_OFFSET void INLRT @ 0x05D[E--] REG NA +N031 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 +N033 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count REG NA $42 + /--* t31 int + +--* t32 int +N035 ( 3, 3) [000033] -----+-N--- * CMP void REG NA +N037 ( 5, 5) [000034] -----+----- JCC void cond=SGE REG NA + +------------ BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} +N059 (???,???) [000603] ----------- IL_OFFSET void INLRT @ 0x068[E--] REG NA +N061 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 + /--* t46 int +N063 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int REG rax $240 +N065 ( 1, 1) [000049] -c---+----- t49 = CNS_INT long -1 REG NA $280 + /--* t47 long + +--* t49 long +N067 ( 4, 5) [000050] -----+----- t50 = * ADD long REG rax $241 + /--* t50 long +N069 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 rax REG rax $VN.Void +N071 (???,???) [000604] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA +N073 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 rbx REG rbx $2c2 +N075 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 REG NA $40 + /--* t533 int + +--* t534 int +N077 ( 3, 3) [000532] -------N--- * CMP void REG NA +N079 ( 5, 5) [000531] ----------- JCC void cond=SLE REG NA + +------------ BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} +N133 (???,???) [000605] ----------- IL_OFFSET void INLRT @ 0x09D[E--] REG NA +N135 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 rax (last use) REG rax $449 + /--* t240 int +N137 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 rax REG rax $VN.Void +N139 ( 1, 1) [000491] -----+-N--- t491 = LCL_VAR int V34 tmp29 u:9 rax (last use) REG rax $2c4 + /--* t491 int +N141 ( 2, 2) [000492] -----+----- * RETURN int REG NA $VN.Void + +------------ BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} +N111 (???,???) [000606] ----------- IL_OFFSET void INLRT @ 0x2E0[E--] REG NA +N113 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 rax (last use) REG rax $303 +N115 ( 1, 1) [000271] -c---+----- t271 = CNS_INT long -1 REG NA $280 + /--* t269 long + +--* t271 long +N117 ( 3, 3) [000272] -----+----- t272 = * ADD long REG rax $26b + /--* t272 long +N119 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 rax REG rax $VN.Void +N121 (???,???) [000607] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA +N123 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 rbx REG rbx $1b8 +N125 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 REG NA $40 + /--* t247 int + +--* t248 int +N127 ( 3, 3) [000249] -----+-N--- * CMP void REG NA +N129 ( 5, 5) [000250] -----+----- JCC void cond=SGT REG NA + +------------ BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} +N083 (???,???) [000608] ----------- IL_OFFSET void INLRT @ 0x2B3[E--] REG NA +N085 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 rbx (last use) REG rbx $2c3 +N087 ( 1, 1) [000252] -c---+----- t252 = CNS_INT int -1 REG NA $43 + /--* t251 int + +--* t252 int +N089 ( 3, 3) [000253] -----+----- t253 = * ADD int REG rbx $1b8 + /--* t253 int +N091 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 rbx REG rbx $VN.Void +N093 (???,???) [000609] ----------- IL_OFFSET void INLRT @ 0x2B8[E--] REG NA +N095 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 rsi REG rsi $80 +N097 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 rax REG rax $303 + /--* t255 byref + +--* t256 long +N099 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref REG NA + /--* t259 byref +N101 ( 5, 4) [000260] -c-XG+----- t260 = * IND long REG NA +N103 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 rdi REG rdi $c0 + /--* t260 long + +--* t261 long +N105 ( 7, 6) [000485] ---XG+-N--- * CMP void REG NA +N107 ( 9, 8) [000268] ---XG+----- JCC void cond=UEQ REG NA + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} +N145 ( 1, 1) [000277] -----+----- t277 = CNS_INT int -1 REG rax $43 + /--* t277 int +N147 ( 2, 2) [000493] -----+----- * RETURN int REG NA $VN.Void + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} +N041 (???,???) [000610] ----------- IL_OFFSET void INLRT @ 0x31B[E--] REG NA +N043 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 rsi (last use) REG rsi $80 + /--* t41 byref +N045 (???,???) [000613] ----------- t613 = * PUTARG_REG byref REG rcx +N047 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 rdi (last use) REG rdi $c0 + /--* t42 long +N049 (???,???) [000614] ----------- t614 = * PUTARG_REG long REG rdx +N051 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 rbx (last use) REG rbx $100 + /--* t43 int +N053 (???,???) [000615] ----------- t615 = * PUTARG_REG int REG r8 + /--* t613 byref arg0 rcx + +--* t614 long arg1 rdx + +--* t615 int arg2 r8 +N055 ( 17, 11) [000044] --CXG+----- * CALL void REG NA $VN.Void + +------------------------------------------------------------------------------------------------------------------- + +Final allocation +-------------------------------------------+----+----+----+----+----+----+----+----+----+ +TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ + 0.#0 V02 Parm Alloc rbx | | | |V02a| | | | | | + 0.#1 V00 Parm Alloc rsi | | | |V02a| |V00a| | | | + 0.#2 V01 Parm Alloc rdi | | | |V02a| |V00a|V01a| | | + 1.#3 BB1 PredBB0 | | | |V02a| |V00a|V01a| | | +[000002] 9.#4 V02 Use Keep rbx | | | |V02a| |V00a|V01a| | | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ +TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ + 13.#5 BB52 PredBB1 | | | |V02a| |V00a|V01a| | | +[000497] 18.#6 C5 Def Alloc rcx | |C5 a| |V02a| |V00a|V01a| | | +[000611] 19.#7 rcx Fixd Keep rcx | |C5 a| |V02a| |V00a|V01a| | | + 19.#8 C5 Use * Keep rcx | |C5 i| |V02a| |V00a|V01a| | | + 20.#9 rcx Fixd Keep rcx | | | |V02a| |V00a|V01a| | | + 20.#10 I6 Def Alloc rcx | |I6 a| |V02a| |V00a|V01a| | | +[000498] 22.#11 C7 Def Alloc rdx | |I6 a|C7 a|V02a| |V00a|V01a| | | +[000612] 23.#12 rdx Fixd Keep rdx | |I6 a|C7 a|V02a| |V00a|V01a| | | + 23.#13 C7 Use * Keep rdx | |I6 a|C7 i|V02a| |V00a|V01a| | | + 24.#14 rdx Fixd Keep rdx | |I6 a| |V02a| |V00a|V01a| | | + 24.#15 I8 Def Alloc rdx | |I6 a|I8 a|V02a| |V00a|V01a| | | +[000387] 25.#16 rcx Fixd Keep rcx | |I6 a|I8 a|V02a| |V00a|V01a| | | + 25.#17 I6 Use * Keep rcx | |I6 i|I8 a|V02a| |V00a|V01a| | | + 25.#18 rdx Fixd Keep rdx | | |I8 a|V02a| |V00a|V01a| | | + 25.#19 I8 Use * Keep rdx | | |I8 i|V02a| |V00a|V01a| | | + 26.#20 Kill None [rax rcx rdx r8-r11] + | | | |V02a| |V00a|V01a| | | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ +TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ + 27.#21 BB57 PredBB1 | | | |V02a| |V00a|V01a| | | +[000033] 35.#22 V02 Use Keep rbx | | | |V02a| |V00a|V01a| | | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ +TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ + 39.#23 BB43 PredBB57 | | | |V02a| |V00a|V01a| | | +[000613] 45.#24 rcx Fixd Keep rcx | | | |V02a| |V00a|V01a| | | + 45.#25 V00 Use * Copy rcx | |V00i| |V02a| |V00i|V01a| | | + 46.#26 rcx Fixd Keep rcx | | | |V02a| | |V01a| | | + 46.#27 I9 Def Alloc rcx | |I9 a| |V02a| | |V01a| | | +[000614] 49.#28 rdx Fixd Keep rdx | |I9 a| |V02a| | |V01a| | | + 49.#29 V01 Use * Copy rdx | |I9 a|V01i|V02a| | |V01i| | | + 50.#30 rdx Fixd Keep rdx | |I9 a| |V02a| | | | | | + 50.#31 I10 Def Alloc rdx | |I9 a|I10a|V02a| | | | | | +[000615] 53.#32 r8 Fixd Keep r8 | |I9 a|I10a|V02a| | | | | | + 53.#33 V02 Use * Copy r8 | |I9 a|I10a|V02i| | | |V02i| | + 54.#34 r8 Fixd Keep r8 | |I9 a|I10a| | | | | | | + 54.#35 I11 Def Alloc r8 | |I9 a|I10a| | | | |I11a| | +[000044] 55.#36 rcx Fixd Keep rcx | |I9 a|I10a| | | | |I11a| | + 55.#37 I9 Use * Keep rcx | |I9 i|I10a| | | | |I11a| | + 55.#38 rdx Fixd Keep rdx | | |I10a| | | | |I11a| | + 55.#39 I10 Use * Keep rdx | | |I10i| | | | |I11a| | + 55.#40 r8 Fixd Keep r8 | | | | | | | |I11a| | + 55.#41 I11 Use * Keep r8 | | | | | | | |I11i| | + 56.#42 Kill None [rax rcx rdx r8-r11] + | | | | | | | | | | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ +TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ + 57.#43 BB9 PredBB57 | | | |V02a| |V00a|V01a| | | +[000047] 63.#44 V02 Use Keep rbx | | | |V02a| |V00a|V01a| | | + 64.#45 I12 Def Alloc rax |I12a| | |V02a| |V00a|V01a| | | +[000050] 67.#46 I12 Use * Keep rax |I12i| | |V02a| |V00a|V01a| | | + 68.#47 I13 Def Alloc rax |I13a| | |V02a| |V00a|V01a| | | +[000051] 69.#48 I13 Use * Keep rax |I13i| | |V02a| |V00a|V01a| | | + 70.#49 V04 Def Alloc rax |V04a| | |V02a| |V00a|V01a| | | +[000532] 77.#50 V02 Use Keep rbx |V04a| | |V02a| |V00a|V01a| | | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ +TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ + 81.#51 BB66 PredBB9 |V04a| | |V02a| |V00a|V01a| | | +[000253] 89.#52 V02 Use * Keep rbx |V04a| | |V02i| |V00a|V01a| | | + 90.#53 I14 Def Alloc rbx |V04a| | |I14a| |V00a|V01a| | | +[000254] 91.#54 I14 Use * Keep rbx |V04a| | |I14i| |V00a|V01a| | | + 92.#55 V02 Def Alloc rbx |V04a| | |V02a| |V00a|V01a| | | +[000485] 105.#56 V00 Use Keep rsi |V04a| | |V02a| |V00a|V01a| | | + 105.#57 V04 Use Keep rax |V04a| | |V02a| |V00a|V01a| | | + 105.#58 V01 Use Keep rdi |V04a| | |V02a| |V00a|V01a| | | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ +TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ + 109.#59 BB40 PredBB66 |V04a| | |V02a| |V00a|V01a| | | +[000272] 117.#60 V04 Use * Keep rax |V04i| | |V02a| |V00a|V01a| | | + 118.#61 I15 Def Alloc rax |I15a| | |V02a| |V00a|V01a| | | +[000273] 119.#62 I15 Use * Keep rax |I15i| | |V02a| |V00a|V01a| | | + 120.#63 V04 Def Alloc rax |V04a| | |V02a| |V00a|V01a| | | +[000249] 127.#64 V02 Use Keep rbx |V04a| | |V02a| |V00a|V01a| | | +[000250] 131.#65 V02 ExpU |V04a| | |V02a| |V00a|V01a| | | + 131.#66 V00 ExpU |V04a| | |V02a| |V00a|V01a| | | + 131.#67 V01 ExpU |V04a| | |V02a| |V00a|V01a| | | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ +TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ + 131.#68 BB62 PredBB66 |V04a| | | | | | | | | +[000521] 137.#69 V04 Use * Keep rax |V04i| | | | | | | | | + 138.#70 V34 Def Alloc rax |V34a| | | | | | | | | +[000492] 141.#71 rax Fixd Keep rax |V34a| | | | | | | | | + 141.#72 V34 Use * Keep rax |V34i| | | | | | | | | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ +TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | +-------------------------------------------+----+----+----+----+----+----+----+----+----+ + 143.#73 BB42 PredBB40 | | | | | | | | | | +[000277] 146.#74 C16 Def Alloc rax |C16a| | | | | | | | | +[000493] 147.#75 rax Fixd Keep rax |C16a| | | | | | | | | + 147.#76 C16 Use * Keep rax |C16i| | | | | | | | | + +Recording the maximum number of concurrent spills: + +---------- +LSRA Stats +---------- +Register selection order: ABCDEFGHIJKLMNOPQ +Total Tracked Vars: 5 +Total Reg Cand Vars: 5 +Total number of Intervals: 16 +Total number of RefPositions: 76 +Total Number of spill temps created: 0 +.......... +BB00 [ 100.00]: REG_ORDER = 3 +BB09 [ 75.00]: COVERS = 2, BEST_FIT = 1 +BB62 [ 50.00]: COVERS = 1 +BB40 [ 400.00]: COVERS = 1 +BB66 [ 400.00]: COVERS = 1 +.......... +Total SpillCount : 0 Weighted: 0.000000 +Total CopyReg : 0 Weighted: 0.000000 +Total ResolutionMovs : 0 Weighted: 0.000000 +Total SplitEdges : 0 Weighted: 0.000000 +.......... +Total COVERS [# 4] : 5 Weighted: 1000.000000 +Total BEST_FIT [#11] : 1 Weighted: 75.000000 +Total REG_ORDER [#13] : 3 Weighted: 300.000000 + +TUPLE STYLE DUMP WITH REGISTER ASSIGNMENTS +Incoming Parameters: V02(r8=>rbx) V00(rcx=>rsi) V01(rdx=>rdi) +BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} +===== + N003. IL_OFFSET INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + N005. V02(rbx) + N007. CNS_INT 0 + N009. CMP ; rbx + N011. JCC cond=SGE +Var=Reg end of BB01: V02=rbx V00=rsi V01=rdi + +BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} +===== +Predecessor for variable locations: BB01 +Var=Reg beg of BB52: V02=rbx V00=rsi V01=rdi + N015. IL_OFFSET INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] + N017. rcx = CNS_INT(h) + N019. rcx = PUTARG_REG; rcx + N021. rdx = CNS_INT(h) + N023. rdx = PUTARG_REG; rdx + N025. CALL ; rcx,rdx +Var=Reg end of BB52: V02=rbx V00=rsi V01=rdi + +BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} +===== +Predecessor for variable locations: BB01 +Var=Reg beg of BB57: V02=rbx V00=rsi V01=rdi + N029. IL_OFFSET INLRT @ 0x05D[E--] + N031. V02(rbx) + N033. CNS_INT 2 vector element count + N035. CMP ; rbx + N037. JCC cond=SGE +Var=Reg end of BB57: V02=rbx V00=rsi V01=rdi + +BB43 [0042] [2EB..324) (return), preds={BB57} succs={} +===== +Predecessor for variable locations: BB57 +Var=Reg beg of BB43: V02=rbx V00=rsi V01=rdi + N041. IL_OFFSET INLRT @ 0x31B[E--] + N043. V00(rsi*) + N045. rcx = PUTARG_REG; rsi* + N047. V01(rdi*) + N049. rdx = PUTARG_REG; rdi* + N051. V02(rbx*) + N053. r8 = PUTARG_REG; rbx* + N055. CALL ; rcx,rdx,r8 +Var=Reg end of BB43: none + +BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} +===== +Predecessor for variable locations: BB57 +Var=Reg beg of BB09: V02=rbx V00=rsi V01=rdi + N059. IL_OFFSET INLRT @ 0x068[E--] + N061. V02(rbx) + N063. rax = CAST ; rbx + N065. CNS_INT -1 + N067. rax = ADD ; rax +* N069. V04(rax); rax + N071. IL_OFFSET INLRT @ 0x2E5[E--] + N073. V02(rbx) + N075. CNS_INT 0 + N077. CMP ; rbx + N079. JCC cond=SLE +Var=Reg end of BB09: V02=rbx V04=rax V00=rsi V01=rdi + +BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} +===== +Predecessor for variable locations: BB09 +Var=Reg beg of BB66: V02=rbx V04=rax V00=rsi V01=rdi + N083. IL_OFFSET INLRT @ 0x2B3[E--] + N085. V02(rbx*) + N087. CNS_INT -1 + N089. rbx = ADD ; rbx* +* N091. V02(rbx); rbx + N093. IL_OFFSET INLRT @ 0x2B8[E--] + N095. V00(rsi) + N097. V04(rax) + N099. STK = LEA(b+(i*8)+0); rsi,rax + N101. STK = IND ; STK + N103. V01(rdi) + N105. CMP ; STK,rdi + N107. JCC cond=UEQ +Var=Reg end of BB66: V02=rbx V04=rax V00=rsi V01=rdi + +BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} +===== +Predecessor for variable locations: BB66 +Var=Reg beg of BB40: V02=rbx V04=rax V00=rsi V01=rdi + N111. IL_OFFSET INLRT @ 0x2E0[E--] + N113. V04(rax*) + N115. CNS_INT -1 + N117. rax = ADD ; rax* +* N119. V04(rax); rax + N121. IL_OFFSET INLRT @ 0x2E5[E--] + N123. V02(rbx) + N125. CNS_INT 0 + N127. CMP ; rbx + N129. JCC cond=SGT +Var=Reg end of BB40: V02=rbx V04=rax V00=rsi V01=rdi + +BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} +===== +Predecessor for variable locations: BB66 +Var=Reg beg of BB62: V04=rax + N133. IL_OFFSET INLRT @ 0x09D[E--] + N135. V04(rax*) +* N137. V34(rax); rax* + N139. V34(rax*) + N141. RETURN ; rax* +Var=Reg end of BB62: none + +BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} +===== +Predecessor for variable locations: BB40 +Var=Reg beg of BB42: none + N145. rax = CNS_INT -1 + N147. RETURN ; rax +Var=Reg end of BB42: none + + + + +*************** Finishing PHASE Linear scan register alloc +Trees after Linear scan register alloc + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i LIR +BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR +BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR +BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd +BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd +BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} +N003 (???,???) [000600] ----------- IL_OFFSET void INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA +N005 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 +N007 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 REG NA $40 + /--* t0 int + +--* t1 int +N009 ( 3, 3) [000002] -----+-N--- * CMP void REG NA +N011 ( 5, 5) [000384] -----+----- JCC void cond=SGE REG NA + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} +N015 (???,???) [000601] ----------- IL_OFFSET void INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA +N017 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref REG rcx $1c0 + /--* t497 ref +N019 (???,???) [000611] ----------- t611 = * PUTARG_REG ref REG rcx +N021 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref REG rdx $1c1 + /--* t498 ref +N023 (???,???) [000612] ----------- t612 = * PUTARG_REG ref REG rdx + /--* t611 ref arg0 rcx + +--* t612 ref arg1 rdx +N025 ( 16, 15) [000387] --CXG+----- * CALL void REG NA $VN.Void + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} +N029 (???,???) [000602] ----------- IL_OFFSET void INLRT @ 0x05D[E--] REG NA +N031 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 +N033 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count REG NA $42 + /--* t31 int + +--* t32 int +N035 ( 3, 3) [000033] -----+-N--- * CMP void REG NA +N037 ( 5, 5) [000034] -----+----- JCC void cond=SGE REG NA + +------------ BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} +N059 (???,???) [000603] ----------- IL_OFFSET void INLRT @ 0x068[E--] REG NA +N061 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 + /--* t46 int +N063 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int REG rax $240 +N065 ( 1, 1) [000049] -c---+----- t49 = CNS_INT long -1 REG NA $280 + /--* t47 long + +--* t49 long +N067 ( 4, 5) [000050] -----+----- t50 = * ADD long REG rax $241 + /--* t50 long +N069 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 rax REG rax $VN.Void +N071 (???,???) [000604] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA +N073 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 rbx REG rbx $2c2 +N075 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 REG NA $40 + /--* t533 int + +--* t534 int +N077 ( 3, 3) [000532] -------N--- * CMP void REG NA +N079 ( 5, 5) [000531] ----------- JCC void cond=SLE REG NA + +------------ BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} +N133 (???,???) [000605] ----------- IL_OFFSET void INLRT @ 0x09D[E--] REG NA +N135 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 rax (last use) REG rax $449 + /--* t240 int +N137 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 rax REG rax $VN.Void +N139 ( 1, 1) [000491] -----+-N--- t491 = LCL_VAR int V34 tmp29 u:9 rax (last use) REG rax $2c4 + /--* t491 int +N141 ( 2, 2) [000492] -----+----- * RETURN int REG NA $VN.Void + +------------ BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} +N111 (???,???) [000606] ----------- IL_OFFSET void INLRT @ 0x2E0[E--] REG NA +N113 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 rax (last use) REG rax $303 +N115 ( 1, 1) [000271] -c---+----- t271 = CNS_INT long -1 REG NA $280 + /--* t269 long + +--* t271 long +N117 ( 3, 3) [000272] -----+----- t272 = * ADD long REG rax $26b + /--* t272 long +N119 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 rax REG rax $VN.Void +N121 (???,???) [000607] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA +N123 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 rbx REG rbx $1b8 +N125 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 REG NA $40 + /--* t247 int + +--* t248 int +N127 ( 3, 3) [000249] -----+-N--- * CMP void REG NA +N129 ( 5, 5) [000250] -----+----- JCC void cond=SGT REG NA + +------------ BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} +N083 (???,???) [000608] ----------- IL_OFFSET void INLRT @ 0x2B3[E--] REG NA +N085 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 rbx (last use) REG rbx $2c3 +N087 ( 1, 1) [000252] -c---+----- t252 = CNS_INT int -1 REG NA $43 + /--* t251 int + +--* t252 int +N089 ( 3, 3) [000253] -----+----- t253 = * ADD int REG rbx $1b8 + /--* t253 int +N091 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 rbx REG rbx $VN.Void +N093 (???,???) [000609] ----------- IL_OFFSET void INLRT @ 0x2B8[E--] REG NA +N095 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 rsi REG rsi $80 +N097 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 rax REG rax $303 + /--* t255 byref + +--* t256 long +N099 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref REG NA + /--* t259 byref +N101 ( 5, 4) [000260] -c-XG+----- t260 = * IND long REG NA +N103 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 rdi REG rdi $c0 + /--* t260 long + +--* t261 long +N105 ( 7, 6) [000485] ---XG+-N--- * CMP void REG NA +N107 ( 9, 8) [000268] ---XG+----- JCC void cond=UEQ REG NA + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} +N145 ( 1, 1) [000277] -----+----- t277 = CNS_INT int -1 REG rax $43 + /--* t277 int +N147 ( 2, 2) [000493] -----+----- * RETURN int REG NA $VN.Void + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} +N041 (???,???) [000610] ----------- IL_OFFSET void INLRT @ 0x31B[E--] REG NA +N043 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 rsi (last use) REG rsi $80 + /--* t41 byref +N045 (???,???) [000613] ----------- t613 = * PUTARG_REG byref REG rcx +N047 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 rdi (last use) REG rdi $c0 + /--* t42 long +N049 (???,???) [000614] ----------- t614 = * PUTARG_REG long REG rdx +N051 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 rbx (last use) REG rbx $100 + /--* t43 int +N053 (???,???) [000615] ----------- t615 = * PUTARG_REG int REG r8 + /--* t613 byref arg0 rcx + +--* t614 long arg1 rdx + +--* t615 int arg2 r8 +N055 ( 17, 11) [000044] --CXG+----- * CALL void REG NA $VN.Void + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Optimize layout +*************** In fgSearchImprovedLayout() + +Initial BasicBlocks +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i LIR +BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR +BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR +BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd +BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd +BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +Compacting hot jumps +Creating fallthrough along BB40 -> BB42 +Initial layout cost: 687.500000 +Running greedy 3-opt pass. +No changes made. +Reordering block list + +*************** Finishing PHASE Optimize layout +Trees after Optimize layout + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i LIR +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall +BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR +BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd +BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd +BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR +BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} +N003 (???,???) [000600] ----------- IL_OFFSET void INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA +N005 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 +N007 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 REG NA $40 + /--* t0 int + +--* t1 int +N009 ( 3, 3) [000002] -----+-N--- * CMP void REG NA +N011 ( 5, 5) [000384] -----+----- JCC void cond=SGE REG NA + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} +N015 (???,???) [000601] ----------- IL_OFFSET void INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA +N017 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref REG rcx $1c0 + /--* t497 ref +N019 (???,???) [000611] ----------- t611 = * PUTARG_REG ref REG rcx +N021 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref REG rdx $1c1 + /--* t498 ref +N023 (???,???) [000612] ----------- t612 = * PUTARG_REG ref REG rdx + /--* t611 ref arg0 rcx + +--* t612 ref arg1 rdx +N025 ( 16, 15) [000387] --CXG+----- * CALL void REG NA $VN.Void + +------------ BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} +N029 (???,???) [000602] ----------- IL_OFFSET void INLRT @ 0x05D[E--] REG NA +N031 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 +N033 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count REG NA $42 + /--* t31 int + +--* t32 int +N035 ( 3, 3) [000033] -----+-N--- * CMP void REG NA +N037 ( 5, 5) [000034] -----+----- JCC void cond=SGE REG NA + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} +N041 (???,???) [000610] ----------- IL_OFFSET void INLRT @ 0x31B[E--] REG NA +N043 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 rsi (last use) REG rsi $80 + /--* t41 byref +N045 (???,???) [000613] ----------- t613 = * PUTARG_REG byref REG rcx +N047 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 rdi (last use) REG rdi $c0 + /--* t42 long +N049 (???,???) [000614] ----------- t614 = * PUTARG_REG long REG rdx +N051 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 rbx (last use) REG rbx $100 + /--* t43 int +N053 (???,???) [000615] ----------- t615 = * PUTARG_REG int REG r8 + /--* t613 byref arg0 rcx + +--* t614 long arg1 rdx + +--* t615 int arg2 r8 +N055 ( 17, 11) [000044] --CXG+----- * CALL void REG NA $VN.Void + +------------ BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} +N059 (???,???) [000603] ----------- IL_OFFSET void INLRT @ 0x068[E--] REG NA +N061 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 + /--* t46 int +N063 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int REG rax $240 +N065 ( 1, 1) [000049] -c---+----- t49 = CNS_INT long -1 REG NA $280 + /--* t47 long + +--* t49 long +N067 ( 4, 5) [000050] -----+----- t50 = * ADD long REG rax $241 + /--* t50 long +N069 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 rax REG rax $VN.Void +N071 (???,???) [000604] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA +N073 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 rbx REG rbx $2c2 +N075 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 REG NA $40 + /--* t533 int + +--* t534 int +N077 ( 3, 3) [000532] -------N--- * CMP void REG NA +N079 ( 5, 5) [000531] ----------- JCC void cond=SLE REG NA + +------------ BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} +N083 (???,???) [000608] ----------- IL_OFFSET void INLRT @ 0x2B3[E--] REG NA +N085 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 rbx (last use) REG rbx $2c3 +N087 ( 1, 1) [000252] -c---+----- t252 = CNS_INT int -1 REG NA $43 + /--* t251 int + +--* t252 int +N089 ( 3, 3) [000253] -----+----- t253 = * ADD int REG rbx $1b8 + /--* t253 int +N091 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 rbx REG rbx $VN.Void +N093 (???,???) [000609] ----------- IL_OFFSET void INLRT @ 0x2B8[E--] REG NA +N095 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 rsi REG rsi $80 +N097 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 rax REG rax $303 + /--* t255 byref + +--* t256 long +N099 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref REG NA + /--* t259 byref +N101 ( 5, 4) [000260] -c-XG+----- t260 = * IND long REG NA +N103 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 rdi REG rdi $c0 + /--* t260 long + +--* t261 long +N105 ( 7, 6) [000485] ---XG+-N--- * CMP void REG NA +N107 ( 9, 8) [000268] ---XG+----- JCC void cond=UEQ REG NA + +------------ BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} +N111 (???,???) [000606] ----------- IL_OFFSET void INLRT @ 0x2E0[E--] REG NA +N113 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 rax (last use) REG rax $303 +N115 ( 1, 1) [000271] -c---+----- t271 = CNS_INT long -1 REG NA $280 + /--* t269 long + +--* t271 long +N117 ( 3, 3) [000272] -----+----- t272 = * ADD long REG rax $26b + /--* t272 long +N119 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 rax REG rax $VN.Void +N121 (???,???) [000607] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA +N123 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 rbx REG rbx $1b8 +N125 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 REG NA $40 + /--* t247 int + +--* t248 int +N127 ( 3, 3) [000249] -----+-N--- * CMP void REG NA +N129 ( 5, 5) [000250] -----+----- JCC void cond=SGT REG NA + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} +N145 ( 1, 1) [000277] -----+----- t277 = CNS_INT int -1 REG rax $43 + /--* t277 int +N147 ( 2, 2) [000493] -----+----- * RETURN int REG NA $VN.Void + +------------ BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} +N133 (???,???) [000605] ----------- IL_OFFSET void INLRT @ 0x09D[E--] REG NA +N135 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 rax (last use) REG rax $449 + /--* t240 int +N137 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 rax REG rax $VN.Void +N139 ( 1, 1) [000491] -----+-N--- t491 = LCL_VAR int V34 tmp29 u:9 rax (last use) REG rax $2c4 + /--* t491 int +N141 ( 2, 2) [000492] -----+----- * RETURN int REG NA $VN.Void + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Optimize post-layout + +*************** Finishing PHASE Optimize post-layout +Trees after Optimize post-layout + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB09(0.5),BB43(0.5) ( cond ) i LIR +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall +BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR +BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd +BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd +BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR +BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} +N003 (???,???) [000600] ----------- IL_OFFSET void INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA +N005 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 +N007 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 REG NA $40 + /--* t0 int + +--* t1 int +N009 ( 3, 3) [000002] -----+-N--- * CMP void REG NA +N011 ( 5, 5) [000384] -----+----- JCC void cond=SGE REG NA + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} +N015 (???,???) [000601] ----------- IL_OFFSET void INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA +N017 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref REG rcx $1c0 + /--* t497 ref +N019 (???,???) [000611] ----------- t611 = * PUTARG_REG ref REG rcx +N021 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref REG rdx $1c1 + /--* t498 ref +N023 (???,???) [000612] ----------- t612 = * PUTARG_REG ref REG rdx + /--* t611 ref arg0 rcx + +--* t612 ref arg1 rdx +N025 ( 16, 15) [000387] --CXG+----- * CALL void REG NA $VN.Void + +------------ BB57 [0057] [04B..068) -> BB09(0.5),BB43(0.5) (cond), preds={BB01,BB52} succs={BB43,BB09} +N029 (???,???) [000602] ----------- IL_OFFSET void INLRT @ 0x05D[E--] REG NA +N031 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 +N033 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count REG NA $42 + /--* t31 int + +--* t32 int +N035 ( 3, 3) [000033] -----+-N--- * CMP void REG NA +N037 ( 5, 5) [000034] -----+----- JCC void cond=SLT REG NA + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} +N041 (???,???) [000610] ----------- IL_OFFSET void INLRT @ 0x31B[E--] REG NA +N043 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 rsi (last use) REG rsi $80 + /--* t41 byref +N045 (???,???) [000613] ----------- t613 = * PUTARG_REG byref REG rcx +N047 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 rdi (last use) REG rdi $c0 + /--* t42 long +N049 (???,???) [000614] ----------- t614 = * PUTARG_REG long REG rdx +N051 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 rbx (last use) REG rbx $100 + /--* t43 int +N053 (???,???) [000615] ----------- t615 = * PUTARG_REG int REG r8 + /--* t613 byref arg0 rcx + +--* t614 long arg1 rdx + +--* t615 int arg2 r8 +N055 ( 17, 11) [000044] --CXG+----- * CALL void REG NA $VN.Void + +------------ BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} +N059 (???,???) [000603] ----------- IL_OFFSET void INLRT @ 0x068[E--] REG NA +N061 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 + /--* t46 int +N063 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int REG rax $240 +N065 ( 1, 1) [000049] -c---+----- t49 = CNS_INT long -1 REG NA $280 + /--* t47 long + +--* t49 long +N067 ( 4, 5) [000050] -----+----- t50 = * ADD long REG rax $241 + /--* t50 long +N069 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 rax REG rax $VN.Void +N071 (???,???) [000604] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA +N073 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 rbx REG rbx $2c2 +N075 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 REG NA $40 + /--* t533 int + +--* t534 int +N077 ( 3, 3) [000532] -------N--- * CMP void REG NA +N079 ( 5, 5) [000531] ----------- JCC void cond=SLE REG NA + +------------ BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} +N083 (???,???) [000608] ----------- IL_OFFSET void INLRT @ 0x2B3[E--] REG NA +N085 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 rbx (last use) REG rbx $2c3 +N087 ( 1, 1) [000252] -c---+----- t252 = CNS_INT int -1 REG NA $43 + /--* t251 int + +--* t252 int +N089 ( 3, 3) [000253] -----+----- t253 = * ADD int REG rbx $1b8 + /--* t253 int +N091 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 rbx REG rbx $VN.Void +N093 (???,???) [000609] ----------- IL_OFFSET void INLRT @ 0x2B8[E--] REG NA +N095 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 rsi REG rsi $80 +N097 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 rax REG rax $303 + /--* t255 byref + +--* t256 long +N099 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref REG NA + /--* t259 byref +N101 ( 5, 4) [000260] -c-XG+----- t260 = * IND long REG NA +N103 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 rdi REG rdi $c0 + /--* t260 long + +--* t261 long +N105 ( 7, 6) [000485] ---XG+-N--- * CMP void REG NA +N107 ( 9, 8) [000268] ---XG+----- JCC void cond=UEQ REG NA + +------------ BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} +N111 (???,???) [000606] ----------- IL_OFFSET void INLRT @ 0x2E0[E--] REG NA +N113 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 rax (last use) REG rax $303 +N115 ( 1, 1) [000271] -c---+----- t271 = CNS_INT long -1 REG NA $280 + /--* t269 long + +--* t271 long +N117 ( 3, 3) [000272] -----+----- t272 = * ADD long REG rax $26b + /--* t272 long +N119 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 rax REG rax $VN.Void +N121 (???,???) [000607] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA +N123 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 rbx REG rbx $1b8 +N125 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 REG NA $40 + /--* t247 int + +--* t248 int +N127 ( 3, 3) [000249] -----+-N--- * CMP void REG NA +N129 ( 5, 5) [000250] -----+----- JCC void cond=SGT REG NA + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} +N145 ( 1, 1) [000277] -----+----- t277 = CNS_INT int -1 REG rax $43 + /--* t277 int +N147 ( 2, 2) [000493] -----+----- * RETURN int REG NA $VN.Void + +------------ BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} +N133 (???,???) [000605] ----------- IL_OFFSET void INLRT @ 0x09D[E--] REG NA +N135 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 rax (last use) REG rax $449 + /--* t240 int +N137 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 rax REG rax $VN.Void +N139 ( 1, 1) [000491] -----+-N--- t491 = LCL_VAR int V34 tmp29 u:9 rax (last use) REG rax $2c4 + /--* t491 int +N141 ( 2, 2) [000492] -----+----- * RETURN int REG NA $VN.Void + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] + +*************** Starting PHASE Determine first cold block +No procedure splitting will be done for this method + +*************** Finishing PHASE Determine first cold block [no changes] + +*************** Starting PHASE Place 'align' instructions +*************** In placeLoopAlignInstructions() +Identifying loops in DFS tree with following reverse post order: +RPO -> BB [pre, post] +00 -> BB01[0, 8] +01 -> BB52[1, 7] +02 -> BB57[2, 6] +03 -> BB09[4, 5] +04 -> BB66[5, 4] +05 -> BB62[8, 3] +06 -> BB40[6, 2] +07 -> BB42[7, 1] +08 -> BB43[3, 0] + +BB40 -> BB66 is a backedge +BB66 is the header of a DFS loop with 1 back edges +Loop has 2 blocks +BB66 -> BB62 is an exit edge +BB40 -> BB42 is an exit edge +BB09 -> BB66 is an entry edge +Added loop L00 with header BB66 + +Found 1 loops + +*************** Natural loop graph +L00 header: BB66 + Members (2): [BB66..BB40] + Entry: BB09 -> BB66 + Exit: BB66 -> BB62; BB40 -> BB42 + Back: BB40 -> BB66 + +Aligning L00 that starts at BB66, weight=400 >= 300. +Marking BB09 before the loop with BBF_HAS_ALIGN for loop at BB66 +Found 1 candidates for loop alignment + +*************** Finishing PHASE Place 'align' instructions +Trees after Place 'align' instructions + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB09(0.5),BB43(0.5) ( cond ) i LIR +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall +BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR has-align +BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd align +BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd +BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR +BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +------------ BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} +N003 (???,???) [000600] ----------- IL_OFFSET void INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA +N005 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 +N007 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 REG NA $40 + /--* t0 int + +--* t1 int +N009 ( 3, 3) [000002] -----+-N--- * CMP void REG NA +N011 ( 5, 5) [000384] -----+----- JCC void cond=SGE REG NA + +------------ BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} +N015 (???,???) [000601] ----------- IL_OFFSET void INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA +N017 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref REG rcx $1c0 + /--* t497 ref +N019 (???,???) [000611] ----------- t611 = * PUTARG_REG ref REG rcx +N021 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref REG rdx $1c1 + /--* t498 ref +N023 (???,???) [000612] ----------- t612 = * PUTARG_REG ref REG rdx + /--* t611 ref arg0 rcx + +--* t612 ref arg1 rdx +N025 ( 16, 15) [000387] --CXG+----- * CALL void REG NA $VN.Void + +------------ BB57 [0057] [04B..068) -> BB09(0.5),BB43(0.5) (cond), preds={BB01,BB52} succs={BB43,BB09} +N029 (???,???) [000602] ----------- IL_OFFSET void INLRT @ 0x05D[E--] REG NA +N031 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 +N033 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count REG NA $42 + /--* t31 int + +--* t32 int +N035 ( 3, 3) [000033] -----+-N--- * CMP void REG NA +N037 ( 5, 5) [000034] -----+----- JCC void cond=SLT REG NA + +------------ BB43 [0042] [2EB..324) (return), preds={BB57} succs={} +N041 (???,???) [000610] ----------- IL_OFFSET void INLRT @ 0x31B[E--] REG NA +N043 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 rsi (last use) REG rsi $80 + /--* t41 byref +N045 (???,???) [000613] ----------- t613 = * PUTARG_REG byref REG rcx +N047 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 rdi (last use) REG rdi $c0 + /--* t42 long +N049 (???,???) [000614] ----------- t614 = * PUTARG_REG long REG rdx +N051 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 rbx (last use) REG rbx $100 + /--* t43 int +N053 (???,???) [000615] ----------- t615 = * PUTARG_REG int REG r8 + /--* t613 byref arg0 rcx + +--* t614 long arg1 rdx + +--* t615 int arg2 r8 +N055 ( 17, 11) [000044] --CXG+----- * CALL void REG NA $VN.Void + +------------ BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} +N059 (???,???) [000603] ----------- IL_OFFSET void INLRT @ 0x068[E--] REG NA +N061 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 + /--* t46 int +N063 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int REG rax $240 +N065 ( 1, 1) [000049] -c---+----- t49 = CNS_INT long -1 REG NA $280 + /--* t47 long + +--* t49 long +N067 ( 4, 5) [000050] -----+----- t50 = * ADD long REG rax $241 + /--* t50 long +N069 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 rax REG rax $VN.Void +N071 (???,???) [000604] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA +N073 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 rbx REG rbx $2c2 +N075 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 REG NA $40 + /--* t533 int + +--* t534 int +N077 ( 3, 3) [000532] -------N--- * CMP void REG NA +N079 ( 5, 5) [000531] ----------- JCC void cond=SLE REG NA + +------------ BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} +N083 (???,???) [000608] ----------- IL_OFFSET void INLRT @ 0x2B3[E--] REG NA +N085 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 rbx (last use) REG rbx $2c3 +N087 ( 1, 1) [000252] -c---+----- t252 = CNS_INT int -1 REG NA $43 + /--* t251 int + +--* t252 int +N089 ( 3, 3) [000253] -----+----- t253 = * ADD int REG rbx $1b8 + /--* t253 int +N091 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 rbx REG rbx $VN.Void +N093 (???,???) [000609] ----------- IL_OFFSET void INLRT @ 0x2B8[E--] REG NA +N095 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 rsi REG rsi $80 +N097 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 rax REG rax $303 + /--* t255 byref + +--* t256 long +N099 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref REG NA + /--* t259 byref +N101 ( 5, 4) [000260] -c-XG+----- t260 = * IND long REG NA +N103 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 rdi REG rdi $c0 + /--* t260 long + +--* t261 long +N105 ( 7, 6) [000485] ---XG+-N--- * CMP void REG NA +N107 ( 9, 8) [000268] ---XG+----- JCC void cond=UEQ REG NA + +------------ BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} +N111 (???,???) [000606] ----------- IL_OFFSET void INLRT @ 0x2E0[E--] REG NA +N113 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 rax (last use) REG rax $303 +N115 ( 1, 1) [000271] -c---+----- t271 = CNS_INT long -1 REG NA $280 + /--* t269 long + +--* t271 long +N117 ( 3, 3) [000272] -----+----- t272 = * ADD long REG rax $26b + /--* t272 long +N119 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 rax REG rax $VN.Void +N121 (???,???) [000607] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA +N123 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 rbx REG rbx $1b8 +N125 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 REG NA $40 + /--* t247 int + +--* t248 int +N127 ( 3, 3) [000249] -----+-N--- * CMP void REG NA +N129 ( 5, 5) [000250] -----+----- JCC void cond=SGT REG NA + +------------ BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} +N145 ( 1, 1) [000277] -----+----- t277 = CNS_INT int -1 REG rax $43 + /--* t277 int +N147 ( 2, 2) [000493] -----+----- * RETURN int REG NA $VN.Void + +------------ BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} +N133 (???,???) [000605] ----------- IL_OFFSET void INLRT @ 0x09D[E--] REG NA +N135 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 rax (last use) REG rax $449 + /--* t240 int +N137 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 rax REG rax $VN.Void +N139 ( 1, 1) [000491] -----+-N--- t491 = LCL_VAR int V34 tmp29 u:9 rax (last use) REG rax $2c4 + /--* t491 int +N141 ( 2, 2) [000492] -----+----- * RETURN int REG NA $VN.Void + +------------------------------------------------------------------------------------------------------------------- +*************** In fgDebugCheckBBlist +[deferred prior check failed -- skipping this check] +*************** In genGenerateCode() + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB09(0.5),BB43(0.5) ( cond ) i LIR +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall +BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR has-align +BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd align +BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd +BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR +BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +*************** Starting PHASE Generate code +*************** In fgDebugCheckBBlist +Finalizing stack frame +Recording Var Locations at start of BB01 + V02(rbx) V00(rsi) V01(rdi) +Modified regs: [rax rcx rdx rbx rsi rdi r8-r11] +Callee-saved registers pushed: 3 [rbx rsi rdi] +*************** In lvaAssignFrameOffsets(FINAL_FRAME_LAYOUT) +Set V00 to offset 0 +Set V01 to offset 8 +Set V02 to offset 16 +Assign V05 OutArgs, size=32, stkOffs=-0x40 +--- delta bump 8 for RA +--- delta bump 56 for RSP frame +--- virtual stack offset to actual stack offset delta is 64 +-- V00 was 0, now 64 +-- V01 was 8, now 72 +-- V02 was 16, now 80 +-- V05 was -64, now 0 +; Final local variable assignments +; +; V00 arg0 [V00,T02] ( 4, 6.50) byref -> rsi single-def +; V01 arg1 [V01,T03] ( 4, 6.50) long -> rdi single-def +; V02 arg2 [V02,T00] ( 10, 18 ) int -> rbx +;* V03 loc0 [V03 ] ( 0, 0 ) ubyte -> zero-ref +; V04 loc1 [V04,T01] ( 5, 13.25) long -> rax +; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" +;* V06 tmp1 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V07 tmp2 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V08 tmp3 [V08 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V09 tmp4 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V10 tmp5 [V10 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V11 tmp6 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V12 tmp7 [V12 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V13 tmp8 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V14 tmp9 [V14 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V15 tmp10 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V16 tmp11 [V16 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V17 tmp12 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V18 tmp13 [V18 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V19 tmp14 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V20 tmp15 [V20 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V21 tmp16 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V22 tmp17 [V22 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V23 tmp18 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V24 tmp19 [V24 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V25 tmp20 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V26 tmp21 [V26 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V27 tmp22 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V28 tmp23 [V28 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V29 tmp24 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V30 tmp25 [V30 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V31 tmp26 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V32 tmp27 [V32 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V33 tmp28 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +; V34 tmp29 [V34,T04] ( 2, 2 ) int -> rax "Single return block return value" +; +; Lcl frame size = 32 +Created: + G_M48046_IG02: ; offs=0x000000, size=0x0000, bbWeight=1, gcrefRegs=0000 {} +Mark labels for codegen + BB01 : first block + BB57 : branch target + BB09 : branch target + BB42 : branch target + BB62 : branch target + BB66 : branch target +*************** After genMarkLabelsForCodegen() + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- +BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR label +BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe +BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB09(0.5),BB43(0.5) ( cond ) i LIR label +BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall +BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR label has-align +BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR label bwd align +BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd +BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR label +BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR label +--------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +=============== Generating code for main function + +=============== Generating BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} flags=0x00000000.00000411: i LIR label +BB01 IN (3)={V02 V00 V01} + OUT(3)={V02 V00 V01} + +Recording Var Locations at start of BB01 + V02(rbx) V00(rsi) V01(rdi) +Change life 0000000000000000 {} -> 000000000000000D {V00 V01 V02} + V02 in reg rbx is becoming live [------] + Live regs: 0000000000000000 {} + {rbx} => 0000000000000008 {rbx} +Debug: New V02 debug range: first + V00 in reg rsi is becoming live [------] + Live regs: 0000000000000008 {rbx} + {rsi} => 0000000000000048 {rbx rsi} +Debug: New V00 debug range: first + V01 in reg rdi is becoming live [------] + Live regs: 0000000000000048 {rbx rsi} + {rdi} => 00000000000000C8 {rbx rsi rdi} +Debug: New V01 debug range: first + Live regs: (unchanged) 00000000000000C8 {rbx rsi rdi} + GC regs: (unchanged) 0000 {} + Byref regs: (unchanged) 0040 {rsi} + + L_M48046_BB01: +Label: G_M48046_IG02, GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi} + +Scope info: begin block BB01, IL range [000..001) +Added IP mapping: 0x0000 STACK_EMPTY (G_M48046_IG02,ins#0,ofs#0) label +Generating: N003 (???,???) [000600] ----------- IL_OFFSET void INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA +Generating: N005 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 +Generating: N007 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 REG NA $40 + /--* t0 int + +--* t1 int +Generating: N009 ( 3, 3) [000002] -----+-N--- * CMP void REG NA +Mapped BB01 to G_M48046_IG02 +IN0001: test ebx, ebx +Generating: N011 ( 5, 5) [000384] -----+----- JCC void cond=SGE REG NA +IN0002: jge L_M48046_BB57 + +Variable Live Range History Dump for BB01 +V00 arg0: rsi [(G_M48046_IG02,ins#0,ofs#0), ...] +V01 arg1: rdi [(G_M48046_IG02,ins#0,ofs#0), ...] +V02 arg2: rbx [(G_M48046_IG02,ins#0,ofs#0), ...] + +=============== Generating BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} flags=0x00000000.00204011: i LIR hascall gcsafe +BB52 IN (3)={V02 V00 V01} + OUT(3)={V02 V00 V01} + +Recording Var Locations at start of BB52 + V02(rbx) V00(rsi) V01(rdi) +Liveness not changing: 000000000000000D {V00 V01 V02} + Live regs: 0000000000000000 {} + {rbx rsi rdi} => 00000000000000C8 {rbx rsi rdi} + GC regs: (unchanged) 0000 {} + Byref regs: 0000 {} => 0040 {rsi} + + L_M48046_BB52: +Adding label due to BB weight difference: BBJ_COND BB01 with weight 100 different from BB52 with weight 50 +Saved: + G_M48046_IG02: ; offs=0x000000, size=0x0008, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB01 [0000], byref +Created: + G_M48046_IG03: ; offs=0x000008, size=0x0000, bbWeight=0.50, gcrefRegs=0000 {} +Label: G_M48046_IG03, GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi} + +Scope info: begin block BB52, IL range [000..04C) +genIPmappingAdd: ignoring duplicate IL offset 0x0 +Generating: N015 (???,???) [000601] ----------- IL_OFFSET void INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA +Generating: N017 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref REG rcx $1c0 +Mapped BB52 to G_M48046_IG03 +IN0003: lea rcx, gword ptr [(reloc 0x4000000000443870)] + GC regs: 0000 {} => 0002 {rcx} + /--* t497 ref +Generating: N019 (???,???) [000611] ----------- t611 = * PUTARG_REG ref REG rcx + GC regs: 0002 {rcx} => 0000 {} + GC regs: 0000 {} => 0002 {rcx} +Generating: N021 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref REG rdx $1c1 +IN0004: lea rdx, gword ptr [(reloc 0x40000000004207c0)] + GC regs: 0002 {rcx} => 0006 {rcx rdx} + /--* t498 ref +Generating: N023 (???,???) [000612] ----------- t612 = * PUTARG_REG ref REG rdx + GC regs: 0006 {rcx rdx} => 0002 {rcx} + GC regs: 0002 {rcx} => 0006 {rcx rdx} + /--* t611 ref arg0 rcx + +--* t612 ref arg1 rdx +Generating: N025 ( 16, 15) [000387] --CXG+----- * CALL void REG NA $VN.Void + GC regs: 0006 {rcx rdx} => 0004 {rdx} + GC regs: 0004 {rdx} => 0000 {} + Call: GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi} +IN0005: call + +Variable Live Range History Dump for BB52 +V00 arg0: rsi [(G_M48046_IG02,ins#0,ofs#0), ...] +V01 arg1: rdi [(G_M48046_IG02,ins#0,ofs#0), ...] +V02 arg2: rbx [(G_M48046_IG02,ins#0,ofs#0), ...] + +=============== Generating BB57 [0057] [04B..068) -> BB09(0.5),BB43(0.5) (cond), preds={BB01,BB52} succs={BB43,BB09} flags=0x00000000.00000411: i LIR label +BB57 IN (3)={V02 V00 V01} + OUT(3)={V02 V00 V01} + +Recording Var Locations at start of BB57 + V02(rbx) V00(rsi) V01(rdi) +Liveness not changing: 000000000000000D {V00 V01 V02} + Live regs: 0000000000000000 {} + {rbx rsi rdi} => 00000000000000C8 {rbx rsi rdi} + GC regs: (unchanged) 0000 {} + Byref regs: 0000 {} => 0040 {rsi} + + L_M48046_BB57: +Saved: + G_M48046_IG03: ; offs=0x000008, size=0x0013, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB52 [0051], byref +Created: + G_M48046_IG04: ; offs=0x00001B, size=0x0000, bbWeight=1, gcrefRegs=0000 {} +Label: G_M48046_IG04, GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi} + +Scope info: begin block BB57, IL range [04B..068) +Added IP mapping: 0x005D STACK_EMPTY (G_M48046_IG04,ins#0,ofs#0) label +Generating: N029 (???,???) [000602] ----------- IL_OFFSET void INLRT @ 0x05D[E--] REG NA +Generating: N031 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 +Generating: N033 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count REG NA $42 + /--* t31 int + +--* t32 int +Generating: N035 ( 3, 3) [000033] -----+-N--- * CMP void REG NA +Mapped BB57 to G_M48046_IG04 +IN0006: cmp ebx, 2 +Generating: N037 ( 5, 5) [000034] -----+----- JCC void cond=SLT REG NA +IN0007: jl L_M48046_BB09 + +Variable Live Range History Dump for BB57 +V00 arg0: rsi [(G_M48046_IG02,ins#0,ofs#0), ...] +V01 arg1: rdi [(G_M48046_IG02,ins#0,ofs#0), ...] +V02 arg2: rbx [(G_M48046_IG02,ins#0,ofs#0), ...] + +=============== Generating BB43 [0042] [2EB..324) (return), preds={BB57} succs={} flags=0x00000000.00202011: i LIR jmp hascall +BB43 IN (3)={V02 V00 V01} + OUT(0)={ } + +Recording Var Locations at start of BB43 + V02(rbx) V00(rsi) V01(rdi) +Liveness not changing: 000000000000000D {V00 V01 V02} + Live regs: 0000000000000000 {} + {rbx rsi rdi} => 00000000000000C8 {rbx rsi rdi} + GC regs: (unchanged) 0000 {} + Byref regs: 0000 {} => 0040 {rsi} + + L_M48046_BB43: +Adding label due to BB weight difference: BBJ_COND BB57 with weight 100 different from BB43 with weight 50 +Saved: + G_M48046_IG04: ; offs=0x00001B, size=0x0009, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB57 [0057], byref +Created: + G_M48046_IG05: ; offs=0x000024, size=0x0000, bbWeight=0.50, gcrefRegs=0000 {} +Label: G_M48046_IG05, GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi} + +Scope info: begin block BB43, IL range [2EB..324) +Added IP mapping: 0x031B STACK_EMPTY (G_M48046_IG05,ins#0,ofs#0) label +Generating: N041 (???,???) [000610] ----------- IL_OFFSET void INLRT @ 0x31B[E--] REG NA +Generating: N043 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 rsi (last use) REG rsi $80 + /--* t41 byref +Generating: N045 (???,???) [000613] ----------- t613 = * PUTARG_REG byref REG rcx + V00 in reg rsi is becoming dead [000041] + Live regs: 00000000000000C8 {rbx rsi rdi} - {rsi} => 0000000000000088 {rbx rdi} +Debug: Closing V00 debug range. + Live vars after [000041]: {V00 V01 V02} -{V00} => {V01 V02} + Byref regs: 0040 {rsi} => 0000 {} +Mapped BB43 to G_M48046_IG05 +IN0008: mov rcx, rsi + Byref regs: 0000 {} => 0002 {rcx} +Generating: N047 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 rdi (last use) REG rdi $c0 + /--* t42 long +Generating: N049 (???,???) [000614] ----------- t614 = * PUTARG_REG long REG rdx + V01 in reg rdi is becoming dead [000042] + Live regs: 0000000000000088 {rbx rdi} - {rdi} => 0000000000000008 {rbx} +Debug: Closing V01 debug range. + Live vars after [000042]: {V01 V02} -{V01} => {V02} +IN0009: mov rdx, rdi +Generating: N051 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 rbx (last use) REG rbx $100 + /--* t43 int +Generating: N053 (???,???) [000615] ----------- t615 = * PUTARG_REG int REG r8 + V02 in reg rbx is becoming dead [000043] + Live regs: 0000000000000008 {rbx} - {rbx} => 0000000000000000 {} +Debug: Closing V02 debug range. + Live vars after [000043]: {V02} -{V02} => {} +IN000a: mov r8d, ebx + /--* t613 byref arg0 rcx + +--* t614 long arg1 rdx + +--* t615 int arg2 r8 +Generating: N055 ( 17, 11) [000044] --CXG+----- * CALL void REG NA $VN.Void + Byref regs: 0002 {rcx} => 0000 {} + Byref regs: 0000 {} => 0002 {rcx} +Added IP mapping: EPILOG (G_M48046_IG05,ins#3,ofs#9) label +Reserving epilog IG for block BB43 +Saved: + G_M48046_IG05: ; offs=0x000024, size=0x0009, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB43 [0042], byref +Created: + G_M48046_IG06: ; offs=0x00002D, size=0x0000, bbWeight=0.50, gcrefRegs=0000 {} +Created: + G_M48046_IG07: ; offs=0x00012D, size=0x0000, bbWeight=0.50, gcrefRegs=0000 {}, epilog +*************** After placeholder IG creation +G_M48046_IG01: ; func=00, offs=0x000000, size=0x0000, bbWeight=1, gcrefRegs=0000 {} <-- Prolog IG +G_M48046_IG02: ; offs=0x000000, size=0x0008, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB01 [0000], byref +G_M48046_IG03: ; offs=0x000008, size=0x0013, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB52 [0051], byref +G_M48046_IG04: ; offs=0x00001B, size=0x0009, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB57 [0057], byref +G_M48046_IG05: ; offs=0x000024, size=0x0009, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB43 [0042], byref +G_M48046_IG06: ; epilog placeholder, next placeholder=, BB43 [0042], epilog, extend <-- First placeholder <-- Last placeholder + ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0040 {rsi} + ; InitGCVars=0000000000000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0040 {rsi} +G_M48046_IG07: ; offs=0x00012D, size=0x0000, bbWeight=0.50, gcrefRegs=0000 {} <-- Current IG + +Variable Live Range History Dump for BB43 +V00 arg0: rsi [(G_M48046_IG02,ins#0,ofs#0), (G_M48046_IG05,ins#0,ofs#0)] +V01 arg1: rdi [(G_M48046_IG02,ins#0,ofs#0), (G_M48046_IG05,ins#1,ofs#3)] +V02 arg2: rbx [(G_M48046_IG02,ins#0,ofs#0), (G_M48046_IG05,ins#2,ofs#6)] + +=============== Generating BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} flags=0x00000000.00001411: i LIR label has-align +BB09 IN (3)={V02 V00 V01} + OUT(4)={V02 V04 V00 V01} + +Recording Var Locations at start of BB09 + V02(rbx) V00(rsi) V01(rdi) +Change life 0000000000000000 {} -> 000000000000000D {V00 V01 V02} + V02 in reg rbx is becoming live [------] + Live regs: 0000000000000000 {} + {rbx} => 0000000000000008 {rbx} +Debug: New V02 debug range: new var or location + V00 in reg rsi is becoming live [------] + Live regs: 0000000000000008 {rbx} + {rsi} => 0000000000000048 {rbx rsi} +Debug: New V00 debug range: new var or location + V01 in reg rdi is becoming live [------] + Live regs: 0000000000000048 {rbx rsi} + {rdi} => 00000000000000C8 {rbx rsi rdi} +Debug: New V01 debug range: new var or location + Live regs: (unchanged) 00000000000000C8 {rbx rsi rdi} + GC regs: (unchanged) 0000 {} + Byref regs: (unchanged) 0040 {rsi} + + L_M48046_BB09: +Label: G_M48046_IG07, GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi} + +Scope info: begin block BB09, IL range [068..1F5) +Added IP mapping: 0x0068 STACK_EMPTY (G_M48046_IG07,ins#0,ofs#0) label +Generating: N059 (???,???) [000603] ----------- IL_OFFSET void INLRT @ 0x068[E--] REG NA +Generating: N061 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 + /--* t46 int +Generating: N063 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int REG rax $240 +Mapped BB09 to G_M48046_IG07 +IN000b: movsxd rax, ebx +Generating: N065 ( 1, 1) [000049] -c---+----- t49 = CNS_INT long -1 REG NA $280 + /--* t47 long + +--* t49 long +Generating: N067 ( 4, 5) [000050] -----+----- t50 = * ADD long REG rax $241 +IN000c: dec rax + /--* t50 long +Generating: N069 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 rax REG rax $VN.Void + V04 in reg rax is becoming live [000051] + Live regs: 00000000000000C8 {rbx rsi rdi} + {rax} => 00000000000000C9 {rax rbx rsi rdi} +Debug: New V04 debug range: first + Live vars after [000051]: {V00 V01 V02} +{V04} => {V00 V01 V02 V04} +Added IP mapping: 0x02E5 STACK_EMPTY (G_M48046_IG07,ins#2,ofs#6) +Generating: N071 (???,???) [000604] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA +Generating: N073 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 rbx REG rbx $2c2 +Generating: N075 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 REG NA $40 + /--* t533 int + +--* t534 int +Generating: N077 ( 3, 3) [000532] -------N--- * CMP void REG NA +IN000d: test ebx, ebx +Generating: N079 ( 5, 5) [000531] ----------- JCC void cond=SLE REG NA +IN000e: jle L_M48046_BB42 +ALIGN: loop block BB66 needing alignment has not been generated yet; not marking IG back edge. +IN000f: align [15 bytes] +Adding 'align' instruction of 15 bytes in G_M48046_IG07. +Mapping 'align' instruction in IG07 to target IG07 +Saved: + G_M48046_IG07: ; offs=0x00012D, size=0x001D, bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB09 [0008], gcvars, byref, align +Created: + G_M48046_IG08: ; offs=0x00014A, size=0x0000, bbWeight=0.75, gcrefRegs=0000 {} + +Variable Live Range History Dump for BB09 +V00 arg0: rsi [(G_M48046_IG07,ins#0,ofs#0), ...] +V01 arg1: rdi [(G_M48046_IG07,ins#0,ofs#0), ...] +V02 arg2: rbx [(G_M48046_IG07,ins#0,ofs#0), ...] +V04 loc1: rax [(G_M48046_IG07,ins#2,ofs#6), ...] + +=============== Generating BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} flags=0x00000000.00800c11: i LIR label bwd align +BB66 IN (4)={V02 V04 V00 V01} + OUT(4)={V02 V04 V00 V01} + +Recording Var Locations at start of BB66 + V02(rbx) V04(rax) V00(rsi) V01(rdi) +Liveness not changing: 000000000000000F {V00 V01 V02 V04} + Live regs: 0000000000000000 {} + {rax rbx rsi rdi} => 00000000000000C9 {rax rbx rsi rdi} + GC regs: (unchanged) 0000 {} + Byref regs: 0000 {} => 0040 {rsi} + + L_M48046_BB66: +Adding label due to BB weight difference: BBJ_COND BB09 with weight 75 different from BB66 with weight 400 +Label: G_M48046_IG08, GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi} + +Scope info: begin block BB66, IL range [2B3..2DD) +Added IP mapping: 0x02B3 STACK_EMPTY (G_M48046_IG08,ins#0,ofs#0) label +Generating: N083 (???,???) [000608] ----------- IL_OFFSET void INLRT @ 0x2B3[E--] REG NA +Generating: N085 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 rbx (last use) REG rbx $2c3 +Generating: N087 ( 1, 1) [000252] -c---+----- t252 = CNS_INT int -1 REG NA $43 + /--* t251 int + +--* t252 int +Generating: N089 ( 3, 3) [000253] -----+----- t253 = * ADD int REG rbx $1b8 + V02 in reg rbx is becoming dead [000251] + Live regs: 00000000000000C9 {rax rbx rsi rdi} - {rbx} => 00000000000000C1 {rax rsi rdi} +Debug: Closing V02 debug range. + Live vars after [000251]: {V00 V01 V02 V04} -{V02} => {V00 V01 V04} +Mapped BB66 to G_M48046_IG08 +IN0010: dec ebx + /--* t253 int +Generating: N091 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 rbx REG rbx $VN.Void + V02 in reg rbx is becoming live [000254] + Live regs: 00000000000000C1 {rax rsi rdi} + {rbx} => 00000000000000C9 {rax rbx rsi rdi} +Debug: Extending V02 debug range... + Live vars after [000254]: {V00 V01 V04} +{V02} => {V00 V01 V02 V04} +Added IP mapping: 0x02B8 STACK_EMPTY (G_M48046_IG08,ins#1,ofs#2) +Generating: N093 (???,???) [000609] ----------- IL_OFFSET void INLRT @ 0x2B8[E--] REG NA +Generating: N095 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 rsi REG rsi $80 +Generating: N097 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 rax REG rax $303 + /--* t255 byref + +--* t256 long +Generating: N099 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref REG NA + /--* t259 byref +Generating: N101 ( 5, 4) [000260] -c-XG+----- t260 = * IND long REG NA +Generating: N103 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 rdi REG rdi $c0 + /--* t260 long + +--* t261 long +Generating: N105 ( 7, 6) [000485] ---XG+-N--- * CMP void REG NA +IN0011: cmp qword ptr [rsi+8*rax], rdi +Generating: N107 ( 9, 8) [000268] ---XG+----- JCC void cond=UEQ REG NA +IN0012: je L_M48046_BB62 + +Variable Live Range History Dump for BB66 +V00 arg0: rsi [(G_M48046_IG07,ins#0,ofs#0), ...] +V01 arg1: rdi [(G_M48046_IG07,ins#0,ofs#0), ...] +V02 arg2: rbx [(G_M48046_IG07,ins#0,ofs#0), ...] +V04 loc1: rax [(G_M48046_IG07,ins#2,ofs#6), ...] + +=============== Generating BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} flags=0x00000000.00800011: i LIR bwd +BB40 IN (4)={V02 V04 V00 V01} + OUT(4)={V02 V04 V00 V01} + +Recording Var Locations at start of BB40 + V02(rbx) V04(rax) V00(rsi) V01(rdi) +Liveness not changing: 000000000000000F {V00 V01 V02 V04} + Live regs: 0000000000000000 {} + {rax rbx rsi rdi} => 00000000000000C9 {rax rbx rsi rdi} + GC regs: (unchanged) 0000 {} + Byref regs: 0000 {} => 0040 {rsi} + + L_M48046_BB40: + +Scope info: begin block BB40, IL range [2E0..2E9) +Added IP mapping: 0x02E0 STACK_EMPTY (G_M48046_IG08,ins#3,ofs#12) label +Generating: N111 (???,???) [000606] ----------- IL_OFFSET void INLRT @ 0x2E0[E--] REG NA +Generating: N113 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 rax (last use) REG rax $303 +Generating: N115 ( 1, 1) [000271] -c---+----- t271 = CNS_INT long -1 REG NA $280 + /--* t269 long + +--* t271 long +Generating: N117 ( 3, 3) [000272] -----+----- t272 = * ADD long REG rax $26b + V04 in reg rax is becoming dead [000269] + Live regs: 00000000000000C9 {rax rbx rsi rdi} - {rax} => 00000000000000C8 {rbx rsi rdi} +Debug: Closing V04 debug range. + Live vars after [000269]: {V00 V01 V02 V04} -{V04} => {V00 V01 V02} +Mapped BB40 to G_M48046_IG08 +IN0013: dec rax + /--* t272 long +Generating: N119 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 rax REG rax $VN.Void + V04 in reg rax is becoming live [000273] + Live regs: 00000000000000C8 {rbx rsi rdi} + {rax} => 00000000000000C9 {rax rbx rsi rdi} +Debug: Extending V04 debug range... + Live vars after [000273]: {V00 V01 V02} +{V04} => {V00 V01 V02 V04} +Added IP mapping: 0x02E5 STACK_EMPTY (G_M48046_IG08,ins#4,ofs#15) +Generating: N121 (???,???) [000607] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA +Generating: N123 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 rbx REG rbx $1b8 +Generating: N125 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 REG NA $40 + /--* t247 int + +--* t248 int +Generating: N127 ( 3, 3) [000249] -----+-N--- * CMP void REG NA +IN0014: test ebx, ebx +Generating: N129 ( 5, 5) [000250] -----+----- JCC void cond=SGT REG NA +IN0015: jg SHORT L_M48046_BB66 +** IG08 jumps back to IG08 forming a loop. +Mark BB42 as label: alignment end-of-loop + +Variable Live Range History Dump for BB40 +V00 arg0: rsi [(G_M48046_IG07,ins#0,ofs#0), ...] +V01 arg1: rdi [(G_M48046_IG07,ins#0,ofs#0), ...] +V02 arg2: rbx [(G_M48046_IG07,ins#0,ofs#0), ...] +V04 loc1: rax [(G_M48046_IG07,ins#2,ofs#6), ...] + +=============== Generating BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} flags=0x00000000.00000411: i LIR label +BB42 IN (0)={} + OUT(0)={} + +Recording Var Locations at start of BB42 + + +Change life 000000000000000F {V00 V01 V02 V04} -> 0000000000000000 {} + V02 in reg rbx is becoming dead [------] + Live regs: (unchanged) 0000000000000000 {} +Debug: Closing V02 debug range. + V04 in reg rax is becoming dead [------] + Live regs: (unchanged) 0000000000000000 {} +Debug: Closing V04 debug range. + V00 in reg rsi is becoming dead [------] + Live regs: (unchanged) 0000000000000000 {} +Debug: Closing V00 debug range. + V01 in reg rdi is becoming dead [------] + Live regs: (unchanged) 0000000000000000 {} +Debug: Closing V01 debug range. + Live regs: (unchanged) 0000000000000000 {} + GC regs: (unchanged) 0000 {} + Byref regs: (unchanged) 0000 {} + + L_M48046_BB42: +Adding label due to BB weight difference: BBJ_COND BB40 with weight 400 different from BB42 with weight 50 +Saved: + G_M48046_IG08: ; offs=0x00014A, size=0x0013, bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, loop=IG08, BB66 [0093], BB40 [0039], byref +Created: + G_M48046_IG09: ; offs=0x00015D, size=0x0000, bbWeight=0.50, gcrefRegs=0000 {} +Label: G_M48046_IG09, GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {} + +Scope info: begin block BB42, IL range [2E9..2EB) +Generating: N145 ( 1, 1) [000277] -----+----- t277 = CNS_INT int -1 REG rax $43 +Mapped BB42 to G_M48046_IG09 +IN0016: mov eax, -1 + /--* t277 int +Generating: N147 ( 2, 2) [000493] -----+----- * RETURN int REG NA $VN.Void +Added IP mapping: EPILOG (G_M48046_IG09,ins#1,ofs#5) label +Reserving epilog IG for block BB42 +Saved: + G_M48046_IG09: ; offs=0x00015D, size=0x0005, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB42 [0041], byref +Created: + G_M48046_IG10: ; offs=0x000162, size=0x0000, bbWeight=0.50, gcrefRegs=0000 {} +Created: + G_M48046_IG11: ; offs=0x000262, size=0x0000, bbWeight=0.50, gcrefRegs=0000 {}, epilog +*************** After placeholder IG creation +G_M48046_IG01: ; func=00, offs=0x000000, size=0x0000, bbWeight=1, gcrefRegs=0000 {} <-- Prolog IG +G_M48046_IG02: ; offs=0x000000, size=0x0008, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB01 [0000], byref +G_M48046_IG03: ; offs=0x000008, size=0x0013, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB52 [0051], byref +G_M48046_IG04: ; offs=0x00001B, size=0x0009, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB57 [0057], byref +G_M48046_IG05: ; offs=0x000024, size=0x0009, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB43 [0042], byref +G_M48046_IG06: ; epilog placeholder, next placeholder=IG10 , BB43 [0042], epilog, extend <-- First placeholder + ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0040 {rsi} + ; InitGCVars=0000000000000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0040 {rsi} +G_M48046_IG07: ; offs=0x00012D, size=0x001D, bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB09 [0008], gcvars, byref, align +G_M48046_IG08: ; offs=0x00014A, size=0x0013, bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, loop=IG08, BB66 [0093], BB40 [0039], byref +G_M48046_IG09: ; offs=0x00015D, size=0x0005, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB42 [0041], byref +G_M48046_IG10: ; epilog placeholder, next placeholder=, BB42 [0041], epilog, extend <-- Last placeholder + ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0040 {rsi} + ; InitGCVars=0000000000000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0000 {} +G_M48046_IG11: ; offs=0x000262, size=0x0000, bbWeight=0.50, gcrefRegs=0000 {} <-- Current IG + +Variable Live Range History Dump for BB42 +V00 arg0: rsi [(G_M48046_IG07,ins#0,ofs#0), (G_M48046_IG08,ins#6,ofs#19)] +V01 arg1: rdi [(G_M48046_IG07,ins#0,ofs#0), (G_M48046_IG08,ins#6,ofs#19)] +V02 arg2: rbx [(G_M48046_IG07,ins#0,ofs#0), (G_M48046_IG08,ins#6,ofs#19)] +V04 loc1: rax [(G_M48046_IG07,ins#2,ofs#6), (G_M48046_IG08,ins#6,ofs#19)] + +=============== Generating BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} flags=0x00000000.00000411: i LIR label +BB62 IN (1)={V04} + OUT(0)={ } + +Recording Var Locations at start of BB62 + V04(rax) +Change life 0000000000000000 {} -> 0000000000000002 {V04} + V04 in reg rax is becoming live [------] + Live regs: 0000000000000000 {} + {rax} => 0000000000000001 {rax} +Debug: New V04 debug range: new var or location + Live regs: (unchanged) 0000000000000001 {rax} + GC regs: (unchanged) 0000 {} + Byref regs: (unchanged) 0000 {} + + L_M48046_BB62: +Label: G_M48046_IG11, GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {} + +Scope info: begin block BB62, IL range [09D..0A0) +Added IP mapping: 0x009D STACK_EMPTY (G_M48046_IG11,ins#0,ofs#0) label +Generating: N133 (???,???) [000605] ----------- IL_OFFSET void INLRT @ 0x09D[E--] REG NA +Generating: N135 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 rax (last use) REG rax $449 + /--* t240 int +Generating: N137 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 rax REG rax $VN.Void + V04 in reg rax is becoming dead [000240] + Live regs: 0000000000000001 {rax} - {rax} => 0000000000000000 {} +Debug: Closing V04 debug range. + Live vars after [000240]: {V04} -{V04} => {} + V34 in reg rax is becoming live [000521] + Live regs: 0000000000000000 {} + {rax} => 0000000000000001 {rax} + Live vars after [000521]: {} +{V34} => {V34} +Generating: N139 ( 1, 1) [000491] -----+-N--- t491 = LCL_VAR int V34 tmp29 u:9 rax (last use) REG rax $2c4 + /--* t491 int +Generating: N141 ( 2, 2) [000492] -----+----- * RETURN int REG NA $VN.Void + V34 in reg rax is becoming dead [000491] + Live regs: 0000000000000001 {rax} - {rax} => 0000000000000000 {} + Live vars after [000491]: {V34} -{V34} => {} +Added IP mapping: EPILOG (G_M48046_IG11,ins#0,ofs#0) label +Reserving epilog IG for block BB62 +*************** After placeholder IG creation +G_M48046_IG01: ; func=00, offs=0x000000, size=0x0000, bbWeight=1, gcrefRegs=0000 {} <-- Prolog IG +G_M48046_IG02: ; offs=0x000000, size=0x0008, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB01 [0000], byref +G_M48046_IG03: ; offs=0x000008, size=0x0013, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB52 [0051], byref +G_M48046_IG04: ; offs=0x00001B, size=0x0009, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB57 [0057], byref +G_M48046_IG05: ; offs=0x000024, size=0x0009, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB43 [0042], byref +G_M48046_IG06: ; epilog placeholder, next placeholder=IG10 , BB43 [0042], epilog, extend <-- First placeholder + ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0040 {rsi} + ; InitGCVars=0000000000000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0040 {rsi} +G_M48046_IG07: ; offs=0x00012D, size=0x001D, bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB09 [0008], gcvars, byref, align +G_M48046_IG08: ; offs=0x00014A, size=0x0013, bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, loop=IG08, BB66 [0093], BB40 [0039], byref +G_M48046_IG09: ; offs=0x00015D, size=0x0005, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB42 [0041], byref +G_M48046_IG10: ; epilog placeholder, next placeholder=IG11 , BB42 [0041], epilog, extend + ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0040 {rsi} + ; InitGCVars=0000000000000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0000 {} +G_M48046_IG11: ; epilog placeholder, next placeholder=, BB62 [0089], epilog <-- Last placeholder + ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0040 {rsi} + ; InitGCVars=0000000000000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0000 {} + +Variable Live Range History Dump for BB62 +V04 loc1: rax [(G_M48046_IG11,ins#0,ofs#0), (G_M48046_IG11,ins#0,ofs#0)] +Liveness not changing: 0000000000000000 {} + +# compCycleEstimate = 77, compSizeEstimate = 72 System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int +; Final local variable assignments +; +; V00 arg0 [V00,T02] ( 4, 6.50) byref -> rsi single-def +; V01 arg1 [V01,T03] ( 4, 6.50) long -> rdi single-def +; V02 arg2 [V02,T00] ( 10, 18 ) int -> rbx +;* V03 loc0 [V03 ] ( 0, 0 ) ubyte -> zero-ref +; V04 loc1 [V04,T01] ( 5, 13.25) long -> rax +; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" +;* V06 tmp1 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V07 tmp2 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V08 tmp3 [V08 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V09 tmp4 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V10 tmp5 [V10 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V11 tmp6 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V12 tmp7 [V12 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V13 tmp8 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V14 tmp9 [V14 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V15 tmp10 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V16 tmp11 [V16 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V17 tmp12 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V18 tmp13 [V18 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V19 tmp14 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V20 tmp15 [V20 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V21 tmp16 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V22 tmp17 [V22 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V23 tmp18 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V24 tmp19 [V24 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V25 tmp20 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V26 tmp21 [V26 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V27 tmp22 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V28 tmp23 [V28 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V29 tmp24 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V30 tmp25 [V30 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V31 tmp26 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V32 tmp27 [V32 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V33 tmp28 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +; V34 tmp29 [V34,T04] ( 2, 2 ) int -> rax "Single return block return value" +; +; Lcl frame size = 32 +*************** Before prolog / epilog generation +G_M48046_IG01: ; func=00, offs=0x000000, size=0x0000, bbWeight=1, gcrefRegs=0000 {} <-- Prolog IG +G_M48046_IG02: ; offs=0x000000, size=0x0008, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB01 [0000], byref +G_M48046_IG03: ; offs=0x000008, size=0x0013, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB52 [0051], byref +G_M48046_IG04: ; offs=0x00001B, size=0x0009, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB57 [0057], byref +G_M48046_IG05: ; offs=0x000024, size=0x0009, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB43 [0042], byref +G_M48046_IG06: ; epilog placeholder, next placeholder=IG10 , BB43 [0042], epilog, extend <-- First placeholder + ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0040 {rsi} + ; InitGCVars=0000000000000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0040 {rsi} +G_M48046_IG07: ; offs=0x00012D, size=0x001D, bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB09 [0008], gcvars, byref, align +G_M48046_IG08: ; offs=0x00014A, size=0x0013, bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, loop=IG08, BB66 [0093], BB40 [0039], byref +G_M48046_IG09: ; offs=0x00015D, size=0x0005, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB42 [0041], byref +G_M48046_IG10: ; epilog placeholder, next placeholder=IG11 , BB42 [0041], epilog, extend + ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0040 {rsi} + ; InitGCVars=0000000000000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0000 {} +G_M48046_IG11: ; epilog placeholder, next placeholder=, BB62 [0089], epilog <-- Last placeholder + ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0040 {rsi} + ; InitGCVars=0000000000000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0000 {} +Recording Var Locations at start of BB01 + V02(rbx) V00(rsi) V01(rdi) +*************** In genFnProlog() +Added IP mapping to front: PROLOG (G_M48046_IG01,ins#0,ofs#0) label + +__prolog: +Debug: New V00 debug range: first +Debug: New V01 debug range: first +Debug: New V02 debug range: first +IN0017: push rdi +IN0018: push rsi +IN0019: push rbx +IN001a: sub rsp, 32 +*************** In genHomeRegisterParams() +6 registers in register parameter interference graph + rcx + rsi + <- rcx + rdx + rdi + <- rdx + r8 + rbx + <- r8 +IN001b: mov rsi, rcx +IN001c: mov rdi, rdx +IN001d: mov ebx, r8d +*************** In genEnregisterIncomingStackArgs() +Debug: Closing V00 debug range. +Debug: Closing V01 debug range. +Debug: Closing V02 debug range. + +Saved: + G_M48046_IG01: ; offs=0x000000, size=0x0010, bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc +*************** In genFnEpilog() + +__epilog: +gcVarPtrSetCur=0000000000000000 {}, gcRegGCrefSetCur=0000 {}, gcRegByrefSetCur=0040 {rsi} +IN001e: add rsp, 32 +IN001f: pop rbx +IN0020: pop rsi +IN0021: pop rdi + Call: GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi} +IN0022: jmp +Saved: + G_M48046_IG06: ; offs=0x00002D, size=0x000C, bbWeight=0.50, epilog, nogc, extend +*************** In genFnEpilog() + +__epilog: +gcVarPtrSetCur=0000000000000000 {}, gcRegGCrefSetCur=0000 {}, gcRegByrefSetCur=0000 {} +IN0023: add rsp, 32 +IN0024: pop rbx +IN0025: pop rsi +IN0026: pop rdi +IN0027: ret +Saved: + G_M48046_IG10: ; offs=0x000162, size=0x0008, bbWeight=0.50, epilog, nogc, extend +*************** In genFnEpilog() + +__epilog: +gcVarPtrSetCur=0000000000000000 {}, gcRegGCrefSetCur=0000 {}, gcRegByrefSetCur=0000 {} +IN0028: add rsp, 32 +IN0029: pop rbx +IN002a: pop rsi +IN002b: pop rdi +IN002c: ret +Saved: + G_M48046_IG11: ; offs=0x000262, size=0x0008, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc +0 prologs, 3 epilogs, 0 funclet prologs, 0 funclet epilogs +*************** After prolog / epilog generation +G_M48046_IG01: ; func=00, offs=0x000000, size=0x0010, bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG +G_M48046_IG02: ; offs=0x000010, size=0x0008, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB01 [0000], byref +G_M48046_IG03: ; offs=0x000018, size=0x0013, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB52 [0051], byref +G_M48046_IG04: ; offs=0x00002B, size=0x0009, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB57 [0057], byref +G_M48046_IG05: ; offs=0x000034, size=0x0009, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB43 [0042], byref +G_M48046_IG06: ; offs=0x00003D, size=0x000C, bbWeight=0.50, epilog, nogc, extend +G_M48046_IG07: ; offs=0x000049, size=0x001D, bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB09 [0008], gcvars, byref, align +G_M48046_IG08: ; offs=0x000066, size=0x0013, bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, loop=IG08, BB66 [0093], BB40 [0039], byref +G_M48046_IG09: ; offs=0x000079, size=0x0005, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB42 [0041], byref +G_M48046_IG10: ; offs=0x00007E, size=0x0008, bbWeight=0.50, epilog, nogc, extend +G_M48046_IG11: ; offs=0x000086, size=0x0008, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc +*************** In emitJumpDistBind() +Emitter Jump List: +IG02 IN0002 jge[6] -> IG04 +IG04 IN0007 jl[6] -> IG07 +IG07 IN000e jle[6] -> IG09 +IG08 IN0012 je[6] -> IG11 +IG08 IN0015 jg[2] -> IG08 (short) + total jump count: 5 +Binding: IN0002: 000000 jge L_M48046_BB57 +Binding L_M48046_BB57 to G_M48046_IG04 +Estimate of fwd jump [5C7592E4/002]: 0012 -> 002B = 0017 +Shrinking jump [5C7592E4/002] +Adjusted offset of BB03 from 0018 to 0014 +Adjusted offset of BB04 from 002B to 0027 +Binding: IN0007: 000000 jl L_M48046_BB09 +Binding L_M48046_BB09 to G_M48046_IG07 +Estimate of fwd jump [5C75999C/007]: 002A -> 0045 = 0019 +Shrinking jump [5C75999C/007] +Adjusted offset of BB05 from 0034 to 002C +Adjusted offset of BB06 from 003D to 0035 +Adjusted offset of BB07 from 0049 to 0041 +Binding: IN000e: 000000 jle L_M48046_BB42 +Binding L_M48046_BB42 to G_M48046_IG09 +Estimate of fwd jump [5C75A1F4/014]: 0049 -> 0071 = 0026 +Shrinking jump [5C75A1F4/014] +Adjusted offset of BB08 from 0066 to 005A +Binding: IN0012: 000000 je L_M48046_BB62 +Binding L_M48046_BB62 to G_M48046_IG11 +Estimate of fwd jump [5C75AA5C/018]: 0060 -> 007A = 0018 +Shrinking jump [5C75AA5C/018] +Binding: IN0015: 000000 jg SHORT L_M48046_BB66 +Binding L_M48046_BB66 to G_M48046_IG08 +Estimate of bwd jump [5C75AAB4/021]: 0067 -> 005A = 000F +Shrinking jump [5C75AAB4/021] +Adjusted offset of BB09 from 0079 to 0069 +Adjusted offset of BB10 from 007E to 006E +Adjusted offset of BB11 from 0086 to 0076 +Total shrinkage = 16, min extra jump size = 4294967295 +*************** In emitLoopAlignAdjustments() +compJitAlignLoopAdaptive = true +compJitAlignLoopBoundary = 32 +compJitAlignLoopMinBlockWeight = 3 +compJitAlignLoopForJcc = false +compJitAlignLoopMaxCodeSize = 96 +compJitAlignPaddingLimit = 15 + Adjusting 'align' instruction in IG07 that is targeted for IG08 +*************** In getLoopSize() for G_M48046_IG08 + G_M48046_IG08 has 15 bytes. -- Found the back edge. +loopSize of G_M48046_IG08 = 15 bytes. +;; Skip alignment: 'Loop at G_M48046_IG08 is aligned to fit in 1 blocks of 16 chunks.' +;; Calculated padding to add 0 bytes to align G_M48046_IG08 at 16B boundary. +Adjusted alignment for G_M48046_IG08 from 15 to 0. +Adjusted size of G_M48046_IG07 from 25 to 10. +Adjusted offset of G_M48046_IG08 from 005A to 004B +Adjusted offset of G_M48046_IG09 from 0069 to 005A +Adjusted offset of G_M48046_IG10 from 006E to 005F +Adjusted offset of G_M48046_IG11 from 0076 to 0067 + +*************** Finishing PHASE Generate code + +*************** Starting PHASE Emit code + +Hot code size = 0x6F bytes +Cold code size = 0x0 bytes +reserveUnwindInfo(isFunclet=false, isColdCode=false, unwindSize=0xc) +*************** In emitEndCodeGen() +Converting emitMaxStackDepth from bytes (0) to elements (0) + +*************************************************************************** +Instructions as they come out of the scheduler + + +G_M48046_IG01: ; offs=0x000000, size=0x0010, bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG +IN0017: 000000 push rdi +IN0018: 000001 push rsi +IN0019: 000002 push rbx +IN001a: 000003 sub rsp, 32 +IN001b: 000007 mov rsi, rcx + ; byrRegs +[rsi] +IN001c: 00000A mov rdi, rdx +IN001d: 00000D mov ebx, r8d + ;; size=16 bbWeight=1 PerfScore 4.00 +G_M48046_IG02: ; offs=0x000010, size=0x0004, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB01 [0000], byref, isz +IN0001: 000010 test ebx, ebx +IN0002: 000012 jge SHORT G_M48046_IG04 + ;; size=4 bbWeight=1 PerfScore 1.25 +G_M48046_IG03: ; offs=0x000014, size=0x0013, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB52 [0051], byref +recordRelocation: 000002125A7446D7 (rw: 000002125A7446D7) => 4000000000443870, type 2 (RELOC_DISP32), delta 0 +IN0003: 000014 lea rcx, gword ptr [(reloc 0x4000000000443870)] + ; gcrRegs +[rcx] +recordRelocation: 000002125A7446DE (rw: 000002125A7446DE) => 40000000004207C0, type 2 (RELOC_DISP32), delta 0 +IN0004: 00001B lea rdx, gword ptr [(reloc 0x40000000004207c0)] + ; gcrRegs +[rdx] +recordRelocation: 000002125A7446E3 (rw: 000002125A7446E3) => 40000000004205B0, type 2 (CorInfoReloc::RELATIVE32), delta 0 +IN0005: 000022 call + ; gcrRegs -[rcx rdx] + ; gcr arg pop 0 + ;; size=19 bbWeight=0.50 PerfScore 1.00 +G_M48046_IG04: ; offs=0x000027, size=0x0005, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB57 [0057], byref, isz +IN0006: 000027 cmp ebx, 2 +IN0007: 00002A jl SHORT G_M48046_IG07 + ;; size=5 bbWeight=1 PerfScore 1.25 +G_M48046_IG05: ; offs=0x00002C, size=0x0009, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB43 [0042], byref +IN0008: 00002C mov rcx, rsi + ; byrRegs +[rcx] +IN0009: 00002F mov rdx, rdi +IN000a: 000032 mov r8d, ebx + ;; size=9 bbWeight=0.50 PerfScore 0.38 +G_M48046_IG06: ; offs=0x000035, size=0x000C, bbWeight=0.50, epilog, nogc, extend +IN001e: 000035 add rsp, 32 +IN001f: 000039 pop rbx +IN0020: 00003A pop rsi +IN0021: 00003B pop rdi +recordRelocation: 000002125A7446FD (rw: 000002125A7446FD) => 4000000000444000, type 2 (CorInfoReloc::RELATIVE32), delta 0 +IN0022: 00003C jmp + ;; size=12 bbWeight=0.50 PerfScore 1.88 +G_M48046_IG07: ; offs=0x000041, size=0x000A, bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB09 [0008], gcvars, byref, isz + ; byrRegs -[rcx] +IN000b: 000041 movsxd rax, ebx +IN000c: 000044 dec rax +IN000d: 000047 test ebx, ebx +IN000e: 000049 jle SHORT G_M48046_IG09 +IN000f: 00004B align [0 bytes for IG08] + ;; size=10 bbWeight=0.75 PerfScore 1.31 +G_M48046_IG08: ; offs=0x00004B, size=0x000F, bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, loop=IG08, BB66 [0093], BB40 [0039], byref, isz +IN0010: 00004B dec ebx +IN0011: 00004D cmp qword ptr [rsi+8*rax], rdi +IN0012: 000051 je SHORT G_M48046_IG11 +IN0013: 000053 dec rax +IN0014: 000056 test ebx, ebx +IN0015: 000058 jg SHORT G_M48046_IG08 + ;; size=15 bbWeight=4 PerfScore 19.00 +G_M48046_IG09: ; offs=0x00005A, size=0x0005, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB42 [0041], byref + ; byrRegs -[rsi] +IN0016: 00005A mov eax, -1 + ;; size=5 bbWeight=0.50 PerfScore 0.12 +G_M48046_IG10: ; offs=0x00005F, size=0x0008, bbWeight=0.50, epilog, nogc, extend +IN0023: 00005F add rsp, 32 +IN0024: 000063 pop rbx +IN0025: 000064 pop rsi +IN0026: 000065 pop rdi +IN0027: 000066 ret + ;; size=8 bbWeight=0.50 PerfScore 1.38 +G_M48046_IG11: ; offs=0x000067, size=0x0008, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc +IN0028: 000067 add rsp, 32 +IN0029: 00006B pop rbx +IN002a: 00006C pop rsi +IN002b: 00006D pop rdi +IN002c: 00006E ret + ;; size=8 bbWeight=0.50 PerfScore 1.38 + +Allocated method code size = 111 , actual size = 111, unused size = 0 + +; Total bytes of code 111, prolog size 16, PerfScore 32.94, instruction count 44, allocated bytes for code 111 (MethodHash=aa464451) for method System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int (FullOpts) +; ============================================================ + +*************** After end code gen, before unwindEmit() +G_M48046_IG01: ; func=00, offs=0x000000, size=0x0010, bbWeight=1, PerfScore 4.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG + +IN0017: 000000 push rdi +IN0018: 000001 push rsi +IN0019: 000002 push rbx +IN001a: 000003 sub rsp, 32 +IN001b: 000007 mov rsi, rcx +IN001c: 00000A mov rdi, rdx +IN001d: 00000D mov ebx, r8d + +G_M48046_IG02: ; offs=0x000010, size=0x0004, bbWeight=1, PerfScore 1.25, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB01 [0000], byref, isz + +IN0001: 000010 test ebx, ebx +IN0002: 000012 jge SHORT G_M48046_IG04 + +G_M48046_IG03: ; offs=0x000014, size=0x0013, bbWeight=0.50, PerfScore 1.00, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB52 [0051], byref + +IN0003: 000014 lea rcx, gword ptr [(reloc 0x4000000000443870)] +IN0004: 00001B lea rdx, gword ptr [(reloc 0x40000000004207c0)] +IN0005: 000022 call + +G_M48046_IG04: ; offs=0x000027, size=0x0005, bbWeight=1, PerfScore 1.25, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB57 [0057], byref, isz + +IN0006: 000027 cmp ebx, 2 +IN0007: 00002A jl SHORT G_M48046_IG07 + +G_M48046_IG05: ; offs=0x00002C, size=0x0009, bbWeight=0.50, PerfScore 0.38, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB43 [0042], byref + +IN0008: 00002C mov rcx, rsi +IN0009: 00002F mov rdx, rdi +IN000a: 000032 mov r8d, ebx + +G_M48046_IG06: ; offs=0x000035, size=0x000C, bbWeight=0.50, PerfScore 1.88, epilog, nogc, extend + +IN001e: 000035 add rsp, 32 +IN001f: 000039 pop rbx +IN0020: 00003A pop rsi +IN0021: 00003B pop rdi +IN0022: 00003C jmp + +G_M48046_IG07: ; offs=0x000041, size=0x000A, bbWeight=0.75, PerfScore 1.31, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB09 [0008], gcvars, byref, isz + +IN000b: 000041 movsxd rax, ebx +IN000c: 000044 dec rax +IN000d: 000047 test ebx, ebx +IN000e: 000049 jle SHORT G_M48046_IG09 +IN000f: 00004B align [0 bytes for IG08] + +G_M48046_IG08: ; offs=0x00004B, size=0x000F, bbWeight=4, PerfScore 19.00, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, loop=IG08, BB66 [0093], BB40 [0039], byref, isz + +IN0010: 00004B dec ebx +IN0011: 00004D cmp qword ptr [rsi+8*rax], rdi +IN0012: 000051 je SHORT G_M48046_IG11 +IN0013: 000053 dec rax +IN0014: 000056 test ebx, ebx +IN0015: 000058 jg SHORT G_M48046_IG08 + +G_M48046_IG09: ; offs=0x00005A, size=0x0005, bbWeight=0.50, PerfScore 0.12, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB42 [0041], byref + +IN0016: 00005A mov eax, -1 + +G_M48046_IG10: ; offs=0x00005F, size=0x0008, bbWeight=0.50, PerfScore 1.38, epilog, nogc, extend + +IN0023: 00005F add rsp, 32 +IN0024: 000063 pop rbx +IN0025: 000064 pop rsi +IN0026: 000065 pop rdi +IN0027: 000066 ret + +G_M48046_IG11: ; offs=0x000067, size=0x0008, bbWeight=0.50, PerfScore 1.38, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc + +IN0028: 000067 add rsp, 32 +IN0029: 00006B pop rbx +IN002a: 00006C pop rsi +IN002b: 00006D pop rdi +IN002c: 00006E ret + + +*************** Finishing PHASE Emit code + +*************** Starting PHASE Emit GC+EH tables +Unwind Info: + >> Start offset : 0x000000 (not in unwind data) + >> End offset : 0x00006f (not in unwind data) + Version : 1 + Flags : 0x00 + SizeOfProlog : 0x07 + CountOfUnwindCodes: 4 + FrameRegister : none (0) + FrameOffset : N/A (no FrameRegister) (Value=0) + UnwindCodes : + CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 + CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) + CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) + CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7) +allocUnwindInfo(pHotCode=0x000002125A7446C0, pColdCode=0x0000000000000000, startOffset=0x0, endOffset=0x6f, unwindSize=0xc, pUnwindBlock=0x000002125C748AFC, funKind=0 (main function)) +*************** In genIPmappingGen() +IP mapping count : 14 +IL offs PROLOG : 0x00000000 ( STACK_EMPTY ) +IL offs 0x0000 : 0x00000010 ( STACK_EMPTY ) +IL offs 0x005D : 0x00000027 ( STACK_EMPTY ) +IL offs 0x031B : 0x0000002C ( STACK_EMPTY ) +IL offs EPILOG : 0x00000035 ( STACK_EMPTY ) +IL offs 0x0068 : 0x00000041 ( STACK_EMPTY ) +IL offs 0x02E5 : 0x00000047 ( STACK_EMPTY ) +IL offs 0x02B3 : 0x0000004B ( STACK_EMPTY ) +IL offs 0x02B8 : 0x0000004D ( STACK_EMPTY ) +IL offs 0x02E0 : 0x00000053 ( STACK_EMPTY ) +IL offs 0x02E5 : 0x00000056 ( STACK_EMPTY ) +IL offs EPILOG : 0x0000005F ( STACK_EMPTY ) +IL offs 0x009D : 0x00000067 ( STACK_EMPTY ) +IL offs EPILOG : 0x00000067 ( STACK_EMPTY ) + +*************** In genSetScopeInfo() +VarLocInfo count is 11 +; Variable debug info: 10 live ranges, 4 vars for method System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int +(V00 arg0) : From 00000000h to 00000010h, in rcx +(V00 arg0) : From 00000010h to 0000002Ch, in rsi +(V00 arg0) : From 00000041h to 0000005Ah, in rsi +(V01 arg1) : From 00000000h to 00000010h, in rdx +(V01 arg1) : From 00000010h to 0000002Fh, in rdi +(V01 arg1) : From 00000041h to 0000005Ah, in rdi +(V02 arg2) : From 00000000h to 00000010h, in r8 +(V02 arg2) : From 00000010h to 00000032h, in rbx +(V02 arg2) : From 00000041h to 0000005Ah, in rbx +(V04 loc1) : From 00000047h to 0000005Ah, in rax +*************** In gcInfoBlockHdrSave() +Set code length to 111. +Set Outgoing stack arg area size to 32. +Register slot id for reg rsi (byref) = 0. +Register slot id for reg rcx = 1. +Register slot id for reg rdx = 2. +Register slot id for reg rcx (byref) = 3. +Set state of slot 0 at instr offset 0xa to Live. +Set state of slot 1 at instr offset 0x1b to Live. +Set state of slot 2 at instr offset 0x22 to Live. +Set state of slot 1 at instr offset 0x27 to Dead. +Set state of slot 2 at instr offset 0x27 to Dead. +Set state of slot 3 at instr offset 0x2f to Live. +Set state of slot 3 at instr offset 0x41 to Dead. +Set state of slot 0 at instr offset 0x5a to Dead. +Defining interruptible range: [0x10, 0x39). +Defining interruptible range: [0x41, 0x63). + +*************** Finishing PHASE Emit GC+EH tables +Method code size: 111 + +Allocations for System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int (MethodHash=aa464451) +count: 6252, size: 585021, max = 7576 +allocateMemory: 655360, nraUsed: 592896 + +Alloc'd bytes by kind: + kind | size | pct + ---------------------+------------+-------- + ABI | 160 | 0.03% + AssertionProp | 7676 | 1.31% + ASTNode | 92592 | 15.83% + InstDesc | 7116 | 1.22% + ImpStack | 1728 | 0.30% + BasicBlock | 28464 | 4.87% + CallArgs | 4480 | 0.77% + FlowEdge | 3880 | 0.66% + DepthFirstSearch | 31016 | 5.30% + Loops | 3832 | 0.66% + TreeStatementList | 0 | 0.00% + SiScope | 0 | 0.00% + DominatorMemory | 5544 | 0.95% + Lower | 0 | 0.00% + LSRA | 18756 | 3.21% + LSRA_Interval | 1632 | 0.28% + LSRA_RefPosition | 6160 | 1.05% + Reachability | 440 | 0.08% + RedundantBranch | 0 | 0.00% + SSA | 4608 | 0.79% + ValueNumber | 33684 | 5.76% + LvaTable | 7796 | 1.33% + UnwindInfo | 0 | 0.00% + hashBv | 128 | 0.02% + bitset | 9600 | 1.64% + FixedBitVect | 696 | 0.12% + Generic | 1390 | 0.24% + LocalAddressVisitor | 904 | 0.15% + FieldSeqStore | 0 | 0.00% + MemorySsaMap | 40 | 0.01% + MemoryPhiArg | 32 | 0.01% + CSE | 4304 | 0.74% + GC | 2784 | 0.48% + CorTailCallInfo | 0 | 0.00% + Inlining | 23760 | 4.06% + ArrayStack | 2176 | 0.37% + DebugInfo | 872 | 0.15% + DebugOnly | 263798 | 45.09% + Codegen | 2976 | 0.51% + LoopOpt | 592 | 0.10% + LoopClone | 96 | 0.02% + LoopUnroll | 0 | 0.00% + LoopHoist | 592 | 0.10% + LoopIVOpts | 800 | 0.14% + Unknown | 1869 | 0.32% + RangeCheck | 0 | 0.00% + CopyProp | 2464 | 0.42% + Promotion | 3720 | 0.64% + SideEffects | 0 | 0.00% + ObjectAllocator | 0 | 0.00% + VariableLiveRanges | 1632 | 0.28% + ClassLayout | 144 | 0.02% + TailMergeThrows | 0 | 0.00% + EarlyProp | 0 | 0.00% + ZeroInit | 88 | 0.02% + Pgo | 0 | 0.00% + MaskConversionOpt | 0 | 0.00% + TryRegionClone | 0 | 0.00% + Async | 0 | 0.00% + RangeCheckCloning | 0 | 0.00% + WasmSccTransform | 0 | 0.00% + WasmCfgLowering | 0 | 0.00% + WasmEH | 0 | 0.00% + +Final metrics: +ActualCodeBytes : 111 +AllocatedHotCodeBytes : 111 +AllocatedColdCodeBytes : 0 +ReadOnlyDataBytes : 0 +GCInfoBytes : 22 +EHClauseCount : 0 +PhysicallyPromotedFields : 0 +LoopsFoundDuringOpts : 2 +LoopsInverted : 2 +LoopsCloned : 0 +LoopsUnrolled : 0 +LoopAlignmentCandidates : 1 +LoopsAligned : 0 +LoopsIVWidened : 0 +WidenedIVs : 0 +UnusedIVsRemoved : 0 +LoopsMadeDownwardsCounted : 0 +LoopsStrengthReduced : 0 +VarsInSsa : 5 +HoistedExpressions : 0 +RedundantBranchesEliminated : 1 +JumpThreadingsPerformed : 0 +CseCount : 0 +BasicBlocksAtCodegen : 9 +PerfScore : 32.937500 +BytesAllocated : 592896 +ImporterBranchFold : 7 +ImporterSwitchFold : 0 +DevirtualizedCall : 0 +DevirtualizedCallUnboxedEntry : 0 +DevirtualizedCallRemovedBox : 0 +GDV : 0 +ClassGDV : 0 +MethodGDV : 0 +MultiGuessGDV : 0 +ChainedGDV : 0 +EnumeratorGDV : 0 +InlinerBranchFold : 0 +InlineAttempt : 30 +InlineCount : 30 +ProfileConsistentBeforeInline : 0 +ProfileConsistentAfterInline : 0 +ProfileConsistentBeforeMorph : 0 +ProfileConsistentAfterMorph : 0 +ProfileSynthesizedBlendedOrRepaired : 0 +ProfileInconsistentInitially : 0 +ProfileInconsistentResetLeave : 0 +ProfileInconsistentImporterBranchFold : 0 +ProfileInconsistentImporterSwitchFold : 0 +ProfileInconsistentChainedGDV : 0 +ProfileInconsistentScratchBB : 0 +ProfileInconsistentInlinerBranchFold : 0 +ProfileInconsistentInlineeScale : 0 +ProfileInconsistentInlinee : 0 +ProfileInconsistentNoReturnInlinee : 0 +ProfileInconsistentMayThrowInlinee : 0 +NewRefClassHelperCalls : 0 +StackAllocatedRefClasses : 0 +NewBoxedValueClassHelperCalls : 0 +StackAllocatedBoxedValueClasses : 0 +NewArrayHelperCalls : 0 +StackAllocatedArrays : 0 +LocalAssertionCount : 0 +LocalAssertionOverflow : 0 +MorphTrackedLocals : 19 +MorphLocals : 35 +EnumeratorGDVProvisionalNoEscape : 0 +EnumeratorGDVCanCloneToEnsureNoEscape : 0 + +****** DONE compiling System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int +Using default JIT: C:\prj\runtime-main2\artifacts\bin\coreclr\windows.x64.Checked\clrjit.dll +Using jit(C:\prj\runtime-main2\artifacts\bin\coreclr\windows.x64.Checked\clrjit.dll) with input (C:\prj\runtime-main2\artifacts\spmi\mch\33ed917f-a197-4abd-83af-db9fa8186898.windows.x64\smoke_tests.nativeaot.windows.x64.checked.mch) + indexCount=1 (26213) +Jit startup took 3.518400ms +Loaded 1 Jitted 1 FailedCompile 0 Excluded 0 Missing 0 +Total time: 651.257300ms diff --git a/src/libraries/System.Net.Primitives/src/System/Net/IPAddress.cs b/src/libraries/System.Net.Primitives/src/System/Net/IPAddress.cs index f50aac7cf907e5..e093852350f318 100644 --- a/src/libraries/System.Net.Primitives/src/System/Net/IPAddress.cs +++ b/src/libraries/System.Net.Primitives/src/System/Net/IPAddress.cs @@ -378,7 +378,8 @@ private void WriteIPv6Bytes(Span destination) [MethodImpl(MethodImplOptions.AggressiveInlining)] private void WriteIPv4Bytes(Span destination) { - BinaryPrimitives.WriteUInt32LittleEndian(destination, PrivateAddress); + uint address = PrivateAddress; + MemoryMarshal.Write(destination, in address); } /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro128StarStarImpl.cs b/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro128StarStarImpl.cs index 2cf96949575952..e97e1fd5be1993 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro128StarStarImpl.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro128StarStarImpl.cs @@ -1,7 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System.Buffers.Binary; using System.Diagnostics; using System.Numerics; using System.Runtime.CompilerServices; @@ -183,7 +182,7 @@ public override unsafe void NextBytes(Span buffer) while (buffer.Length >= sizeof(uint)) { - BinaryPrimitives.WriteUInt32LittleEndian(buffer, BitOperations.RotateLeft(s1 * 5, 7) * 9); + MemoryMarshal.Write(buffer, BitOperations.RotateLeft(s1 * 5, 7) * 9); // Update PRNG state. uint t = s1 << 9; diff --git a/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro256StarStarImpl.cs b/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro256StarStarImpl.cs index d7e781684e7c85..05866f417b4d80 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro256StarStarImpl.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Random.Xoshiro256StarStarImpl.cs @@ -1,7 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System.Buffers.Binary; using System.Diagnostics; using System.Numerics; using System.Runtime.CompilerServices; @@ -140,7 +139,7 @@ public override unsafe void NextBytes(Span buffer) while (buffer.Length >= sizeof(ulong)) { - BinaryPrimitives.WriteUInt64LittleEndian(buffer, BitOperations.RotateLeft(s1 * 5, 7) * 9); + MemoryMarshal.Write(buffer, BitOperations.RotateLeft(s1 * 5, 7) * 9); // Update PRNG state. ulong t = s1 << 17; diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.MetadataDb.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.MetadataDb.cs index ac01acc0fb5de0..a6dbe1afbfb826 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.MetadataDb.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.MetadataDb.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Buffers; -using System.Buffers.Binary; using System.Diagnostics; using System.Runtime.InteropServices; using System.Threading; @@ -270,7 +269,7 @@ internal void SetLength(int index, int length) AssertValidIndex(index); Debug.Assert(length >= 0); Span destination = _data.AsSpan(index + SizeOrLengthOffset); - BinaryPrimitives.WriteInt32LittleEndian(destination, length); + MemoryMarshal.Write(destination, in length); } internal void SetNumberOfRows(int index, int numberOfRows) @@ -279,11 +278,11 @@ internal void SetNumberOfRows(int index, int numberOfRows) Debug.Assert(numberOfRows >= 1 && numberOfRows <= 0x0FFFFFFF); Span dataPos = _data.AsSpan(index + NumberOfRowsOffset); - int current = BinaryPrimitives.ReadInt32LittleEndian(dataPos); + int current = MemoryMarshal.Read(dataPos); // Persist the most significant nybble int value = (current & unchecked((int)0xF0000000)) | numberOfRows; - BinaryPrimitives.WriteInt32LittleEndian(dataPos, value); + MemoryMarshal.Write(dataPos, in value); } internal void SetHasComplexChildren(int index) @@ -292,10 +291,10 @@ internal void SetHasComplexChildren(int index) // The HasComplexChildren bit is the most significant bit of "SizeOrLength" Span dataPos = _data.AsSpan(index + SizeOrLengthOffset); - int current = BinaryPrimitives.ReadInt32LittleEndian(dataPos); + int current = MemoryMarshal.Read(dataPos); int value = current | unchecked((int)0x80000000); - BinaryPrimitives.WriteInt32LittleEndian(dataPos, value); + MemoryMarshal.Write(dataPos, in value); } internal int FindIndexOfFirstUnsetSizeOrLength(JsonTokenType lookupType) @@ -332,7 +331,7 @@ internal DbRow Get(int index) internal JsonTokenType GetJsonTokenType(int index) { AssertValidIndex(index); - uint union = BinaryPrimitives.ReadUInt32LittleEndian(_data.AsSpan(index + NumberOfRowsOffset)); + uint union = MemoryMarshal.Read(_data.AsSpan(index + NumberOfRowsOffset)); return (JsonTokenType)(union >> 28); } From b7640bc0a0ba2eac1570f7a5f80d87f3a1664aa5 Mon Sep 17 00:00:00 2001 From: EgorBo Date: Fri, 24 Apr 2026 22:14:29 +0200 Subject: [PATCH 6/7] Remove accidentally committed dump.txt Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- dump.txt | 36454 ----------------------------------------------------- 1 file changed, 36454 deletions(-) delete mode 100644 dump.txt diff --git a/dump.txt b/dump.txt deleted file mode 100644 index 27547a00cfe073..00000000000000 --- a/dump.txt +++ /dev/null @@ -1,36454 +0,0 @@ -****** START compiling System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int (MethodHash=aa464451) -Generating code for Windows x64 -OPTIONS: compCodeOpt = BLENDED_CODE -OPTIONS: compDbgCode = false -OPTIONS: compDbgInfo = true -OPTIONS: compDbgEnC = false -OPTIONS: compProcedureSplitting = false -OPTIONS: compProcedureSplittingEH = false -OPTIONS: Jit invoked for AOT -IL to import: -IL_0000 04 ldarg.2 -IL_0001 16 ldc.i4.0 -IL_0002 fe 04 clt -IL_0004 16 ldc.i4.0 -IL_0005 fe 01 ceq -IL_0007 72 9f a8 00 70 ldstr 0x7000A89F -IL_000c 28 81 5c 00 06 call 0x6005C81 -IL_0011 03 ldarg.1 -IL_0012 8c 31 04 00 1b box 0x1B000431 -IL_0017 75 6f 00 00 02 isinst 0x200006F -IL_001c 2d 27 brtrue.s 39 (IL_0045) -IL_001e 03 ldarg.1 -IL_001f 8c 31 04 00 1b box 0x1B000431 -IL_0024 75 c8 00 00 02 isinst 0x20000C8 -IL_0029 2d 1a brtrue.s 26 (IL_0045) -IL_002b 03 ldarg.1 -IL_002c 8c 31 04 00 1b box 0x1B000431 -IL_0031 75 c9 00 00 02 isinst 0x20000C9 -IL_0036 2d 0d brtrue.s 13 (IL_0045) -IL_0038 03 ldarg.1 -IL_0039 8c 31 04 00 1b box 0x1B000431 -IL_003e 75 ca 00 00 02 isinst 0x20000CA -IL_0043 2c 04 brfalse.s 4 (IL_0049) -IL_0045 17 ldc.i4.1 -IL_0046 0a stloc.0 -IL_0047 2b 02 br.s 2 (IL_004b) -IL_0049 16 ldc.i4.0 -IL_004a 0a stloc.0 -IL_004b 06 ldloc.0 -IL_004c 72 d9 a8 00 70 ldstr 0x7000A8D9 -IL_0051 28 81 5c 00 06 call 0x6005C81 -IL_0056 28 65 64 00 06 call 0x6006465 -IL_005b 2c 0b brfalse.s 11 (IL_0068) -IL_005d 04 ldarg.2 -IL_005e 28 05 0f 00 0a call 0xA000F05 -IL_0063 3c 83 02 00 00 bge 643 (IL_02eb) -IL_0068 04 ldarg.2 -IL_0069 d3 conv.i -IL_006a 17 ldc.i4.1 -IL_006b d3 conv.i -IL_006c 59 sub -IL_006d 0b stloc.1 -IL_006e 38 74 01 00 00 br 372 (IL_01e7) -IL_0073 04 ldarg.2 -IL_0074 1e ldc.i4.8 -IL_0075 59 sub -IL_0076 10 02 starg.s 0x2 -IL_0078 02 ldarg.0 -IL_0079 07 ldloc.1 -IL_007a 28 7a 04 00 2b call 0x2B00047A -IL_007f 71 31 04 00 1b ldobj 0x1B000431 -IL_0084 03 ldarg.1 -IL_0085 fe 16 31 04 00 1b constrained. 0x1B000431 -IL_008b 28 fb 0c 00 0a call 0xA000CFB -IL_0090 fe 16 47 04 00 1b constrained. 0x1B000447 -IL_0096 28 0e 0f 00 0a call 0xA000F0E -IL_009b 2c 03 brfalse.s 3 (IL_00a0) -IL_009d 07 ldloc.1 -IL_009e 69 conv.i4 -IL_009f 2a ret -IL_00a0 02 ldarg.0 -IL_00a1 07 ldloc.1 -IL_00a2 17 ldc.i4.1 -IL_00a3 d3 conv.i -IL_00a4 59 sub -IL_00a5 28 7a 04 00 2b call 0x2B00047A -IL_00aa 71 31 04 00 1b ldobj 0x1B000431 -IL_00af 03 ldarg.1 -IL_00b0 fe 16 31 04 00 1b constrained. 0x1B000431 -IL_00b6 28 fb 0c 00 0a call 0xA000CFB -IL_00bb fe 16 47 04 00 1b constrained. 0x1B000447 -IL_00c1 28 0e 0f 00 0a call 0xA000F0E -IL_00c6 2c 06 brfalse.s 6 (IL_00ce) -IL_00c8 07 ldloc.1 -IL_00c9 17 ldc.i4.1 -IL_00ca d3 conv.i -IL_00cb 59 sub -IL_00cc 69 conv.i4 -IL_00cd 2a ret -IL_00ce 02 ldarg.0 -IL_00cf 07 ldloc.1 -IL_00d0 18 ldc.i4.2 -IL_00d1 d3 conv.i -IL_00d2 59 sub -IL_00d3 28 7a 04 00 2b call 0x2B00047A -IL_00d8 71 31 04 00 1b ldobj 0x1B000431 -IL_00dd 03 ldarg.1 -IL_00de fe 16 31 04 00 1b constrained. 0x1B000431 -IL_00e4 28 fb 0c 00 0a call 0xA000CFB -IL_00e9 fe 16 47 04 00 1b constrained. 0x1B000447 -IL_00ef 28 0e 0f 00 0a call 0xA000F0E -IL_00f4 2c 06 brfalse.s 6 (IL_00fc) -IL_00f6 07 ldloc.1 -IL_00f7 18 ldc.i4.2 -IL_00f8 d3 conv.i -IL_00f9 59 sub -IL_00fa 69 conv.i4 -IL_00fb 2a ret -IL_00fc 02 ldarg.0 -IL_00fd 07 ldloc.1 -IL_00fe 19 ldc.i4.3 -IL_00ff d3 conv.i -IL_0100 59 sub -IL_0101 28 7a 04 00 2b call 0x2B00047A -IL_0106 71 31 04 00 1b ldobj 0x1B000431 -IL_010b 03 ldarg.1 -IL_010c fe 16 31 04 00 1b constrained. 0x1B000431 -IL_0112 28 fb 0c 00 0a call 0xA000CFB -IL_0117 fe 16 47 04 00 1b constrained. 0x1B000447 -IL_011d 28 0e 0f 00 0a call 0xA000F0E -IL_0122 2c 06 brfalse.s 6 (IL_012a) -IL_0124 07 ldloc.1 -IL_0125 19 ldc.i4.3 -IL_0126 d3 conv.i -IL_0127 59 sub -IL_0128 69 conv.i4 -IL_0129 2a ret -IL_012a 02 ldarg.0 -IL_012b 07 ldloc.1 -IL_012c 1a ldc.i4.4 -IL_012d d3 conv.i -IL_012e 59 sub -IL_012f 28 7a 04 00 2b call 0x2B00047A -IL_0134 71 31 04 00 1b ldobj 0x1B000431 -IL_0139 03 ldarg.1 -IL_013a fe 16 31 04 00 1b constrained. 0x1B000431 -IL_0140 28 fb 0c 00 0a call 0xA000CFB -IL_0145 fe 16 47 04 00 1b constrained. 0x1B000447 -IL_014b 28 0e 0f 00 0a call 0xA000F0E -IL_0150 2c 06 brfalse.s 6 (IL_0158) -IL_0152 07 ldloc.1 -IL_0153 1a ldc.i4.4 -IL_0154 d3 conv.i -IL_0155 59 sub -IL_0156 69 conv.i4 -IL_0157 2a ret -IL_0158 02 ldarg.0 -IL_0159 07 ldloc.1 -IL_015a 1b ldc.i4.5 -IL_015b d3 conv.i -IL_015c 59 sub -IL_015d 28 7a 04 00 2b call 0x2B00047A -IL_0162 71 31 04 00 1b ldobj 0x1B000431 -IL_0167 03 ldarg.1 -IL_0168 fe 16 31 04 00 1b constrained. 0x1B000431 -IL_016e 28 fb 0c 00 0a call 0xA000CFB -IL_0173 fe 16 47 04 00 1b constrained. 0x1B000447 -IL_0179 28 0e 0f 00 0a call 0xA000F0E -IL_017e 2c 06 brfalse.s 6 (IL_0186) -IL_0180 07 ldloc.1 -IL_0181 1b ldc.i4.5 -IL_0182 d3 conv.i -IL_0183 59 sub -IL_0184 69 conv.i4 -IL_0185 2a ret -IL_0186 02 ldarg.0 -IL_0187 07 ldloc.1 -IL_0188 1c ldc.i4.6 -IL_0189 d3 conv.i -IL_018a 59 sub -IL_018b 28 7a 04 00 2b call 0x2B00047A -IL_0190 71 31 04 00 1b ldobj 0x1B000431 -IL_0195 03 ldarg.1 -IL_0196 fe 16 31 04 00 1b constrained. 0x1B000431 -IL_019c 28 fb 0c 00 0a call 0xA000CFB -IL_01a1 fe 16 47 04 00 1b constrained. 0x1B000447 -IL_01a7 28 0e 0f 00 0a call 0xA000F0E -IL_01ac 2c 06 brfalse.s 6 (IL_01b4) -IL_01ae 07 ldloc.1 -IL_01af 1c ldc.i4.6 -IL_01b0 d3 conv.i -IL_01b1 59 sub -IL_01b2 69 conv.i4 -IL_01b3 2a ret -IL_01b4 02 ldarg.0 -IL_01b5 07 ldloc.1 -IL_01b6 1d ldc.i4.7 -IL_01b7 d3 conv.i -IL_01b8 59 sub -IL_01b9 28 7a 04 00 2b call 0x2B00047A -IL_01be 71 31 04 00 1b ldobj 0x1B000431 -IL_01c3 03 ldarg.1 -IL_01c4 fe 16 31 04 00 1b constrained. 0x1B000431 -IL_01ca 28 fb 0c 00 0a call 0xA000CFB -IL_01cf fe 16 47 04 00 1b constrained. 0x1B000447 -IL_01d5 28 0e 0f 00 0a call 0xA000F0E -IL_01da 2c 06 brfalse.s 6 (IL_01e2) -IL_01dc 07 ldloc.1 -IL_01dd 1d ldc.i4.7 -IL_01de d3 conv.i -IL_01df 59 sub -IL_01e0 69 conv.i4 -IL_01e1 2a ret -IL_01e2 07 ldloc.1 -IL_01e3 1e ldc.i4.8 -IL_01e4 d3 conv.i -IL_01e5 59 sub -IL_01e6 0b stloc.1 -IL_01e7 04 ldarg.2 -IL_01e8 1e ldc.i4.8 -IL_01e9 3c 85 fe ff ff bge -379 (IL_0073) -IL_01ee 04 ldarg.2 -IL_01ef 1a ldc.i4.4 -IL_01f0 3f f0 00 00 00 blt 240 (IL_02e5) -IL_01f5 04 ldarg.2 -IL_01f6 1a ldc.i4.4 -IL_01f7 59 sub -IL_01f8 10 02 starg.s 0x2 -IL_01fa 02 ldarg.0 -IL_01fb 07 ldloc.1 -IL_01fc 28 7a 04 00 2b call 0x2B00047A -IL_0201 71 31 04 00 1b ldobj 0x1B000431 -IL_0206 03 ldarg.1 -IL_0207 fe 16 31 04 00 1b constrained. 0x1B000431 -IL_020d 28 fb 0c 00 0a call 0xA000CFB -IL_0212 fe 16 47 04 00 1b constrained. 0x1B000447 -IL_0218 28 0e 0f 00 0a call 0xA000F0E -IL_021d 2c 03 brfalse.s 3 (IL_0222) -IL_021f 07 ldloc.1 -IL_0220 69 conv.i4 -IL_0221 2a ret -IL_0222 02 ldarg.0 -IL_0223 07 ldloc.1 -IL_0224 17 ldc.i4.1 -IL_0225 d3 conv.i -IL_0226 59 sub -IL_0227 28 7a 04 00 2b call 0x2B00047A -IL_022c 71 31 04 00 1b ldobj 0x1B000431 -IL_0231 03 ldarg.1 -IL_0232 fe 16 31 04 00 1b constrained. 0x1B000431 -IL_0238 28 fb 0c 00 0a call 0xA000CFB -IL_023d fe 16 47 04 00 1b constrained. 0x1B000447 -IL_0243 28 0e 0f 00 0a call 0xA000F0E -IL_0248 2c 06 brfalse.s 6 (IL_0250) -IL_024a 07 ldloc.1 -IL_024b 17 ldc.i4.1 -IL_024c d3 conv.i -IL_024d 59 sub -IL_024e 69 conv.i4 -IL_024f 2a ret -IL_0250 02 ldarg.0 -IL_0251 07 ldloc.1 -IL_0252 18 ldc.i4.2 -IL_0253 d3 conv.i -IL_0254 59 sub -IL_0255 28 7a 04 00 2b call 0x2B00047A -IL_025a 71 31 04 00 1b ldobj 0x1B000431 -IL_025f 03 ldarg.1 -IL_0260 fe 16 31 04 00 1b constrained. 0x1B000431 -IL_0266 28 fb 0c 00 0a call 0xA000CFB -IL_026b fe 16 47 04 00 1b constrained. 0x1B000447 -IL_0271 28 0e 0f 00 0a call 0xA000F0E -IL_0276 2c 06 brfalse.s 6 (IL_027e) -IL_0278 07 ldloc.1 -IL_0279 18 ldc.i4.2 -IL_027a d3 conv.i -IL_027b 59 sub -IL_027c 69 conv.i4 -IL_027d 2a ret -IL_027e 02 ldarg.0 -IL_027f 07 ldloc.1 -IL_0280 19 ldc.i4.3 -IL_0281 d3 conv.i -IL_0282 59 sub -IL_0283 28 7a 04 00 2b call 0x2B00047A -IL_0288 71 31 04 00 1b ldobj 0x1B000431 -IL_028d 03 ldarg.1 -IL_028e fe 16 31 04 00 1b constrained. 0x1B000431 -IL_0294 28 fb 0c 00 0a call 0xA000CFB -IL_0299 fe 16 47 04 00 1b constrained. 0x1B000447 -IL_029f 28 0e 0f 00 0a call 0xA000F0E -IL_02a4 2c 06 brfalse.s 6 (IL_02ac) -IL_02a6 07 ldloc.1 -IL_02a7 19 ldc.i4.3 -IL_02a8 d3 conv.i -IL_02a9 59 sub -IL_02aa 69 conv.i4 -IL_02ab 2a ret -IL_02ac 07 ldloc.1 -IL_02ad 1a ldc.i4.4 -IL_02ae d3 conv.i -IL_02af 59 sub -IL_02b0 0b stloc.1 -IL_02b1 2b 32 br.s 50 (IL_02e5) -IL_02b3 04 ldarg.2 -IL_02b4 17 ldc.i4.1 -IL_02b5 59 sub -IL_02b6 10 02 starg.s 0x2 -IL_02b8 02 ldarg.0 -IL_02b9 07 ldloc.1 -IL_02ba 28 7a 04 00 2b call 0x2B00047A -IL_02bf 71 31 04 00 1b ldobj 0x1B000431 -IL_02c4 03 ldarg.1 -IL_02c5 fe 16 31 04 00 1b constrained. 0x1B000431 -IL_02cb 28 fb 0c 00 0a call 0xA000CFB -IL_02d0 fe 16 47 04 00 1b constrained. 0x1B000447 -IL_02d6 28 0e 0f 00 0a call 0xA000F0E -IL_02db 2c 03 brfalse.s 3 (IL_02e0) -IL_02dd 07 ldloc.1 -IL_02de 69 conv.i4 -IL_02df 2a ret -IL_02e0 07 ldloc.1 -IL_02e1 17 ldc.i4.1 -IL_02e2 d3 conv.i -IL_02e3 59 sub -IL_02e4 0b stloc.1 -IL_02e5 04 ldarg.2 -IL_02e6 16 ldc.i4.0 -IL_02e7 30 ca bgt.s -54 (IL_02b3) -IL_02e9 15 ldc.i4.m1 -IL_02ea 2a ret -IL_02eb 28 71 68 00 06 call 0x6006871 -IL_02f0 2c 11 brfalse.s 17 (IL_0303) -IL_02f2 04 ldarg.2 -IL_02f3 28 06 0f 00 0a call 0xA000F06 -IL_02f8 32 09 blt.s 9 (IL_0303) -IL_02fa 02 ldarg.0 -IL_02fb 03 ldarg.1 -IL_02fc 04 ldarg.2 -IL_02fd 28 ab 04 00 2b call 0x2B0004AB -IL_0302 2a ret -IL_0303 28 80 66 00 06 call 0x6006680 -IL_0308 2c 11 brfalse.s 17 (IL_031b) -IL_030a 04 ldarg.2 -IL_030b 28 07 0f 00 0a call 0xA000F07 -IL_0310 32 09 blt.s 9 (IL_031b) -IL_0312 02 ldarg.0 -IL_0313 03 ldarg.1 -IL_0314 04 ldarg.2 -IL_0315 28 ac 04 00 2b call 0x2B0004AC -IL_031a 2a ret -IL_031b 02 ldarg.0 -IL_031c 03 ldarg.1 -IL_031d 04 ldarg.2 -IL_031e 28 ad 04 00 2b call 0x2B0004AD -IL_0323 2a ret -1 return registers for return type int - [00..04) reg rax -Parameter V00 ABI info: [00..08) reg rcx -Parameter V01 ABI info: [00..08) reg rdx -Parameter V02 ABI info: [00..04) reg r8 - -lvaGrabTemp returning 5 (V05 tmp0) (a long lifetime temp) called for OutgoingArgSpace. - -Local V05 should not be enregistered because: it is address exposed -; Initial local variable assignments -; -; V00 arg0 byref -; V01 arg1 long -; V02 arg2 int -; V03 loc0 ubyte -; V04 loc1 long -; V05 OutArgs struct <0> do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -*************** In compInitDebuggingInfo() for System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int -getVars() returned cVars = 0, extendOthers = true -info.compVarScopesCount = 5 - VarNum LVNum Name Beg End - 0: 00h 00h V00 arg0 000h 324h - 1: 01h 01h V01 arg1 000h 324h - 2: 02h 02h V02 arg2 000h 324h - 3: 03h 03h V03 loc0 000h 324h - 4: 04h 04h V04 loc1 000h 324h -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -Callee has no profile -Callee IL size 804 exceeds maxCodeSize 128 -*************** In fgFindBasicBlocks() for System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int -Callee has untrusted profile -Callee IL size 804 exceeds maxCodeSize 128 -Named Intrinsic System.Runtime.Intrinsics.Vector128.get_IsHardwareAccelerated: Notify VM instruction set (Vector128) must be supported. -Notify VM instruction set (X86Base) must be supported. -Recognized -Named Intrinsic System.Runtime.Intrinsics.Vector128`1.get_Count: Recognized -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized -Named Intrinsic System.Runtime.Intrinsics.Vector512.get_IsHardwareAccelerated: Notify VM instruction set (Vector512) must not be supported. -Unsupported - return falseNamed Intrinsic System.Runtime.Intrinsics.Vector512`1.get_Count: Unsupported - throw PlatformNotSupportedExceptionNamed Intrinsic System.Runtime.Intrinsics.Vector256.get_IsHardwareAccelerated: Notify VM instruction set (Vector256) must not be supported. -Unsupported - return falseNamed Intrinsic System.Runtime.Intrinsics.Vector256`1.get_Count: Unsupported - throw PlatformNotSupportedExceptionJump targets: - IL_0045 - IL_0049 - IL_004b - IL_0068 - IL_0073 - IL_00a0 - IL_00ce - IL_00fc - IL_012a - IL_0158 - IL_0186 - IL_01b4 - IL_01e2 - IL_01e7 - IL_0222 - IL_0250 - IL_027e - IL_02ac - IL_02b3 - IL_02e0 - IL_02e5 - IL_02eb - IL_0303 - IL_031b -New Basic Block BB01 [0000] created. -BB01 [0000] [000..01E) -New Basic Block BB02 [0001] created. -BB02 [0001] [01E..02B) -New Basic Block BB03 [0002] created. -BB03 [0002] [02B..038) -New Basic Block BB04 [0003] created. -BB04 [0003] [038..045) -New Basic Block BB05 [0004] created. -BB05 [0004] [045..049) -New Basic Block BB06 [0005] created. -BB06 [0005] [049..04B) -New Basic Block BB07 [0006] created. -BB07 [0006] [04B..05D) -New Basic Block BB08 [0007] created. -BB08 [0007] [05D..068) -New Basic Block BB09 [0008] created. -BB09 [0008] [068..073) -New Basic Block BB10 [0009] created. -BB10 [0009] [073..09D) -New Basic Block BB11 [0010] created. -BB11 [0010] [09D..0A0) -New Basic Block BB12 [0011] created. -BB12 [0011] [0A0..0C8) -New Basic Block BB13 [0012] created. -BB13 [0012] [0C8..0CE) -New Basic Block BB14 [0013] created. -BB14 [0013] [0CE..0F6) -New Basic Block BB15 [0014] created. -BB15 [0014] [0F6..0FC) -New Basic Block BB16 [0015] created. -BB16 [0015] [0FC..124) -New Basic Block BB17 [0016] created. -BB17 [0016] [124..12A) -New Basic Block BB18 [0017] created. -BB18 [0017] [12A..152) -New Basic Block BB19 [0018] created. -BB19 [0018] [152..158) -New Basic Block BB20 [0019] created. -BB20 [0019] [158..180) -New Basic Block BB21 [0020] created. -BB21 [0020] [180..186) -New Basic Block BB22 [0021] created. -BB22 [0021] [186..1AE) -New Basic Block BB23 [0022] created. -BB23 [0022] [1AE..1B4) -New Basic Block BB24 [0023] created. -BB24 [0023] [1B4..1DC) -New Basic Block BB25 [0024] created. -BB25 [0024] [1DC..1E2) -New Basic Block BB26 [0025] created. -BB26 [0025] [1E2..1E7) -New Basic Block BB27 [0026] created. -BB27 [0026] [1E7..1EE) -New Basic Block BB28 [0027] created. -BB28 [0027] [1EE..1F5) -New Basic Block BB29 [0028] created. -BB29 [0028] [1F5..21F) -New Basic Block BB30 [0029] created. -BB30 [0029] [21F..222) -New Basic Block BB31 [0030] created. -BB31 [0030] [222..24A) -New Basic Block BB32 [0031] created. -BB32 [0031] [24A..250) -New Basic Block BB33 [0032] created. -BB33 [0032] [250..278) -New Basic Block BB34 [0033] created. -BB34 [0033] [278..27E) -New Basic Block BB35 [0034] created. -BB35 [0034] [27E..2A6) -New Basic Block BB36 [0035] created. -BB36 [0035] [2A6..2AC) -New Basic Block BB37 [0036] created. -BB37 [0036] [2AC..2B3) -New Basic Block BB38 [0037] created. -BB38 [0037] [2B3..2DD) -New Basic Block BB39 [0038] created. -BB39 [0038] [2DD..2E0) -New Basic Block BB40 [0039] created. -BB40 [0039] [2E0..2E5) -New Basic Block BB41 [0040] created. -BB41 [0040] [2E5..2E9) -New Basic Block BB42 [0041] created. -BB42 [0041] [2E9..2EB) -New Basic Block BB43 [0042] created. -BB43 [0042] [2EB..2F2) -New Basic Block BB44 [0043] created. -BB44 [0043] [2F2..2FA) -New Basic Block BB45 [0044] created. -BB45 [0044] [2FA..303) -New Basic Block BB46 [0045] created. -BB46 [0045] [303..30A) -New Basic Block BB47 [0046] created. -BB47 [0046] [30A..312) -New Basic Block BB48 [0047] created. -BB48 [0047] [312..31B) -New Basic Block BB49 [0048] created. -BB49 [0048] [31B..324) -setting likelihood of BB01 -> BB05 to 0.5 -setting likelihood of BB01 -> BB02 to 0.5 -setting likelihood of BB02 -> BB05 to 0.5 -setting likelihood of BB02 -> BB03 to 0.5 -setting likelihood of BB03 -> BB05 to 0.5 -setting likelihood of BB03 -> BB04 to 0.5 -setting likelihood of BB04 -> BB06 to 0.5 -setting likelihood of BB04 -> BB05 to 0.5 -setting likelihood of BB05 -> BB07 to 1 -setting likelihood of BB06 -> BB07 to 1 -setting likelihood of BB07 -> BB09 to 0.5 -setting likelihood of BB07 -> BB08 to 0.5 -setting likelihood of BB08 -> BB43 to 0.5 -setting likelihood of BB08 -> BB09 to 0.5 -setting likelihood of BB09 -> BB27 to 1 -setting likelihood of BB10 -> BB12 to 0.5 -setting likelihood of BB10 -> BB11 to 0.5 -setting likelihood of BB12 -> BB14 to 0.5 -setting likelihood of BB12 -> BB13 to 0.5 -setting likelihood of BB14 -> BB16 to 0.5 -setting likelihood of BB14 -> BB15 to 0.5 -setting likelihood of BB16 -> BB18 to 0.5 -setting likelihood of BB16 -> BB17 to 0.5 -setting likelihood of BB18 -> BB20 to 0.5 -setting likelihood of BB18 -> BB19 to 0.5 -setting likelihood of BB20 -> BB22 to 0.5 -setting likelihood of BB20 -> BB21 to 0.5 -setting likelihood of BB22 -> BB24 to 0.5 -setting likelihood of BB22 -> BB23 to 0.5 -setting likelihood of BB24 -> BB26 to 0.5 -setting likelihood of BB24 -> BB25 to 0.5 -setting likelihood of BB26 -> BB27 to 1 -setting likelihood of BB27 -> BB10 to 0.5 -setting likelihood of BB27 -> BB28 to 0.5 -setting likelihood of BB28 -> BB41 to 0.5 -setting likelihood of BB28 -> BB29 to 0.5 -setting likelihood of BB29 -> BB31 to 0.5 -setting likelihood of BB29 -> BB30 to 0.5 -setting likelihood of BB31 -> BB33 to 0.5 -setting likelihood of BB31 -> BB32 to 0.5 -setting likelihood of BB33 -> BB35 to 0.5 -setting likelihood of BB33 -> BB34 to 0.5 -setting likelihood of BB35 -> BB37 to 0.5 -setting likelihood of BB35 -> BB36 to 0.5 -setting likelihood of BB37 -> BB41 to 1 -setting likelihood of BB38 -> BB40 to 0.5 -setting likelihood of BB38 -> BB39 to 0.5 -setting likelihood of BB40 -> BB41 to 1 -setting likelihood of BB41 -> BB38 to 0.5 -setting likelihood of BB41 -> BB42 to 0.5 -setting likelihood of BB43 -> BB46 to 0.5 -setting likelihood of BB43 -> BB44 to 0.5 -setting likelihood of BB44 -> BB46 to 0.5 -setting likelihood of BB44 -> BB45 to 0.5 -setting likelihood of BB46 -> BB49 to 0.5 -setting likelihood of BB46 -> BB47 to 0.5 -setting likelihood of BB47 -> BB49 to 0.5 -setting likelihood of BB47 -> BB48 to 0.5 -INLINER: during 'prejit' result 'failed this callee' reason 'too many il bytes' for 'n/a' calling 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - -INLINER: Marking System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int as NOINLINE (observation too many il bytes) -INLINER: during 'prejit' result 'failed this callee' reason 'too many il bytes' -IL Code Size,Instr 804, 306, Basic Block count 49, Local Variable Num,Ref count 6, 89 for method System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int -OPTIONS: opts.MinOpts() == false -Basic block list for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..01E)-> BB05(0.5),BB02(0.5) ( cond ) -BB02 [0001] 1 BB01 1 [01E..02B)-> BB05(0.5),BB03(0.5) ( cond ) -BB03 [0002] 1 BB02 1 [02B..038)-> BB05(0.5),BB04(0.5) ( cond ) -BB04 [0003] 1 BB03 1 [038..045)-> BB06(0.5),BB05(0.5) ( cond ) -BB05 [0004] 4 BB01,BB02,BB03,BB04 1 [045..049)-> BB07(1) (always) -BB06 [0005] 1 BB04 1 [049..04B)-> BB07(1) (always) -BB07 [0006] 2 BB05,BB06 1 [04B..05D)-> BB09(0.5),BB08(0.5) ( cond ) -BB08 [0007] 1 BB07 1 [05D..068)-> BB43(0.5),BB09(0.5) ( cond ) -BB09 [0008] 2 BB07,BB08 1 [068..073)-> BB27(1) (always) -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) bwd bwd-target -BB11 [0010] 1 BB10 1 [09D..0A0) (return) -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) bwd -BB13 [0012] 1 BB12 1 [0C8..0CE) (return) -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) bwd -BB15 [0014] 1 BB14 1 [0F6..0FC) (return) -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) bwd -BB17 [0016] 1 BB16 1 [124..12A) (return) -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) bwd -BB19 [0018] 1 BB18 1 [152..158) (return) -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) bwd -BB21 [0020] 1 BB20 1 [180..186) (return) -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) bwd -BB23 [0022] 1 BB22 1 [1AE..1B4) (return) -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) bwd -BB25 [0024] 1 BB24 1 [1DC..1E2) (return) -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB31(0.5),BB30(0.5) ( cond ) -BB30 [0029] 1 BB29 1 [21F..222) (return) -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) -BB32 [0031] 1 BB31 1 [24A..250) (return) -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) -BB34 [0033] 1 BB33 1 [278..27E) (return) -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) -BB36 [0035] 1 BB35 1 [2A6..2AC) (return) -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB40(0.5),BB39(0.5) ( cond ) bwd bwd-target -BB39 [0038] 1 BB38 1 [2DD..2E0) (return) -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB) (return) -BB43 [0042] 1 BB08 1 [2EB..2F2)-> BB46(0.5),BB44(0.5) ( cond ) -BB44 [0043] 1 BB43 1 [2F2..2FA)-> BB46(0.5),BB45(0.5) ( cond ) -BB45 [0044] 1 BB44 1 [2FA..303) (return) -BB46 [0045] 2 BB43,BB44 1 [303..30A)-> BB49(0.5),BB47(0.5) ( cond ) -BB47 [0046] 1 BB46 1 [30A..312)-> BB49(0.5),BB48(0.5) ( cond ) -BB48 [0047] 1 BB47 1 [312..31B) (return) -BB49 [0048] 2 BB46,BB47 1 [31B..324) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Starting PHASE Pre-import - -*************** Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..01E)-> BB05(0.5),BB02(0.5) ( cond ) -BB02 [0001] 1 BB01 1 [01E..02B)-> BB05(0.5),BB03(0.5) ( cond ) -BB03 [0002] 1 BB02 1 [02B..038)-> BB05(0.5),BB04(0.5) ( cond ) -BB04 [0003] 1 BB03 1 [038..045)-> BB06(0.5),BB05(0.5) ( cond ) -BB05 [0004] 4 BB01,BB02,BB03,BB04 1 [045..049)-> BB07(1) (always) -BB06 [0005] 1 BB04 1 [049..04B)-> BB07(1) (always) -BB07 [0006] 2 BB05,BB06 1 [04B..05D)-> BB09(0.5),BB08(0.5) ( cond ) -BB08 [0007] 1 BB07 1 [05D..068)-> BB43(0.5),BB09(0.5) ( cond ) -BB09 [0008] 2 BB07,BB08 1 [068..073)-> BB27(1) (always) -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) bwd bwd-target -BB11 [0010] 1 BB10 1 [09D..0A0) (return) -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) bwd -BB13 [0012] 1 BB12 1 [0C8..0CE) (return) -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) bwd -BB15 [0014] 1 BB14 1 [0F6..0FC) (return) -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) bwd -BB17 [0016] 1 BB16 1 [124..12A) (return) -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) bwd -BB19 [0018] 1 BB18 1 [152..158) (return) -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) bwd -BB21 [0020] 1 BB20 1 [180..186) (return) -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) bwd -BB23 [0022] 1 BB22 1 [1AE..1B4) (return) -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) bwd -BB25 [0024] 1 BB24 1 [1DC..1E2) (return) -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB31(0.5),BB30(0.5) ( cond ) -BB30 [0029] 1 BB29 1 [21F..222) (return) -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) -BB32 [0031] 1 BB31 1 [24A..250) (return) -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) -BB34 [0033] 1 BB33 1 [278..27E) (return) -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) -BB36 [0035] 1 BB35 1 [2A6..2AC) (return) -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB40(0.5),BB39(0.5) ( cond ) bwd bwd-target -BB39 [0038] 1 BB38 1 [2DD..2E0) (return) -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB) (return) -BB43 [0042] 1 BB08 1 [2EB..2F2)-> BB46(0.5),BB44(0.5) ( cond ) -BB44 [0043] 1 BB43 1 [2F2..2FA)-> BB46(0.5),BB45(0.5) ( cond ) -BB45 [0044] 1 BB44 1 [2FA..303) (return) -BB46 [0045] 2 BB43,BB44 1 [303..30A)-> BB49(0.5),BB47(0.5) ( cond ) -BB47 [0046] 1 BB46 1 [30A..312)-> BB49(0.5),BB48(0.5) ( cond ) -BB48 [0047] 1 BB47 1 [312..31B) (return) -BB49 [0048] 2 BB46,BB47 1 [31B..324) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..01E) -> BB05(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB05} - ------------- BB02 [0001] [01E..02B) -> BB05(0.5),BB03(0.5) (cond), preds={BB01} succs={BB03,BB05} - ------------- BB03 [0002] [02B..038) -> BB05(0.5),BB04(0.5) (cond), preds={BB02} succs={BB04,BB05} - ------------- BB04 [0003] [038..045) -> BB06(0.5),BB05(0.5) (cond), preds={BB03} succs={BB05,BB06} - ------------- BB05 [0004] [045..049) -> BB07(1) (always), preds={BB01,BB02,BB03,BB04} succs={BB07} - ------------- BB06 [0005] [049..04B) -> BB07(1) (always), preds={BB04} succs={BB07} - ------------- BB07 [0006] [04B..05D) -> BB09(0.5),BB08(0.5) (cond), preds={BB05,BB06} succs={BB08,BB09} - ------------- BB08 [0007] [05D..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB07} succs={BB09,BB43} - ------------- BB09 [0008] [068..073) -> BB27(1) (always), preds={BB07,BB08} succs={BB27} - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} - ------------- BB11 [0010] [09D..0A0) (return), preds={BB10} succs={} - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} - ------------- BB13 [0012] [0C8..0CE) (return), preds={BB12} succs={} - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} - ------------- BB15 [0014] [0F6..0FC) (return), preds={BB14} succs={} - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} - ------------- BB17 [0016] [124..12A) (return), preds={BB16} succs={} - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - ------------- BB19 [0018] [152..158) (return), preds={BB18} succs={} - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - ------------- BB21 [0020] [180..186) (return), preds={BB20} succs={} - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - ------------- BB23 [0022] [1AE..1B4) (return), preds={BB22} succs={} - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - ------------- BB25 [0024] [1DC..1E2) (return), preds={BB24} succs={} - ------------- BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} - ------------- BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} - ------------- BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} - ------------- BB29 [0028] [1F5..21F) -> BB31(0.5),BB30(0.5) (cond), preds={BB28} succs={BB30,BB31} - ------------- BB30 [0029] [21F..222) (return), preds={BB29} succs={} - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - ------------- BB32 [0031] [24A..250) (return), preds={BB31} succs={} - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - ------------- BB34 [0033] [278..27E) (return), preds={BB33} succs={} - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - ------------- BB36 [0035] [2A6..2AC) (return), preds={BB35} succs={} - ------------- BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} - ------------- BB38 [0037] [2B3..2DD) -> BB40(0.5),BB39(0.5) (cond), preds={BB41} succs={BB39,BB40} - ------------- BB39 [0038] [2DD..2E0) (return), preds={BB38} succs={} - ------------- BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} - ------------- BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} - ------------- BB43 [0042] [2EB..2F2) -> BB46(0.5),BB44(0.5) (cond), preds={BB08} succs={BB44,BB46} - ------------- BB44 [0043] [2F2..2FA) -> BB46(0.5),BB45(0.5) (cond), preds={BB43} succs={BB45,BB46} - ------------- BB45 [0044] [2FA..303) (return), preds={BB44} succs={} - ------------- BB46 [0045] [303..30A) -> BB49(0.5),BB47(0.5) (cond), preds={BB43,BB44} succs={BB47,BB49} - ------------- BB47 [0046] [30A..312) -> BB49(0.5),BB48(0.5) (cond), preds={BB46} succs={BB48,BB49} - ------------- BB48 [0047] [312..31B) (return), preds={BB47} succs={} - ------------- BB49 [0048] [31B..324) (return), preds={BB46,BB47} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Starting PHASE Profile incorporation -BBOPT not set - -*************** Finishing PHASE Profile incorporation [no changes] - -*************** Starting PHASE Canonicalize entry - -*************** Finishing PHASE Canonicalize entry [no changes] - -*************** Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 0 (0x000) ldarg.2 - [ 1] 1 (0x001) ldc.i4.0 0 - [ 2] 2 (0x002) clt - [ 1] 4 (0x004) ldc.i4.0 0 - [ 2] 5 (0x005) ceq - [ 1] 7 (0x007) ldstr 7000A89F - [ 2] 12 (0x00c) call 06005C81 -In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 - -CheckCanInline: fetching method info for inline candidate Assert -- context 4000000000420549 -Class context: System.Diagnostics.Debug -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Diagnostics.Debug:Assert(bool,System.String)' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00000 ( 0x000[E--] ... ??? ) - [000006] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String) (exactContextHandle=0x4000000000420549) - [000004] ----------- arg0 +--* EQ int - [000002] ----------- | +--* LT int - [000000] ----------- | | +--* LCL_VAR int V02 arg2 - [000001] ----------- | | \--* CNS_INT int 0 - [000003] ----------- | \--* CNS_INT int 0 - [000005] ----------- arg1 \--* CNS_STR ref - - [ 0] 17 (0x011) ldarg.1 - [ 1] 18 (0x012) box 1B000431 - Importing BOX; ISINST; as null - - [ 1] 28 (0x01c) brtrue.s -Folding operator with constant nodes into a constant: - [000010] ----------- * NE int - [000008] ----------- +--* CNS_INT ref null - [000009] ----------- \--* CNS_INT ref null -Bashed to int constant: - [000010] ----------- * CNS_INT int 0 - -The conditional jump becomes an unconditional jump to BB02 -setting likelihood of BB01 -> BB02 from 0.5 to 1 - -impImportBlockPending for BB02 - -Importing BB02 (PC=030) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 30 (0x01e) ldarg.1 - [ 1] 31 (0x01f) box 1B000431 - Importing BOX; ISINST; as null - - [ 1] 41 (0x029) brtrue.s -Folding operator with constant nodes into a constant: - [000014] ----------- * NE int - [000012] ----------- +--* CNS_INT ref null - [000013] ----------- \--* CNS_INT ref null -Bashed to int constant: - [000014] ----------- * CNS_INT int 0 - -The conditional jump becomes an unconditional jump to BB03 -setting likelihood of BB02 -> BB03 from 0.5 to 1 - -impImportBlockPending for BB03 - -Importing BB03 (PC=043) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 43 (0x02b) ldarg.1 - [ 1] 44 (0x02c) box 1B000431 - Importing BOX; ISINST; as null - - [ 1] 54 (0x036) brtrue.s -Folding operator with constant nodes into a constant: - [000018] ----------- * NE int - [000016] ----------- +--* CNS_INT ref null - [000017] ----------- \--* CNS_INT ref null -Bashed to int constant: - [000018] ----------- * CNS_INT int 0 - -The conditional jump becomes an unconditional jump to BB04 -setting likelihood of BB03 -> BB04 from 0.5 to 1 - -impImportBlockPending for BB04 - -Importing BB04 (PC=056) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 56 (0x038) ldarg.1 - [ 1] 57 (0x039) box 1B000431 - Importing BOX; ISINST; BR_TRUE/FALSE as constant - - [ 1] 67 (0x043) brfalse.s -Folding operator with constant nodes into a constant: - [000022] ----------- * EQ int - [000020] ----------- +--* CNS_INT int 1 - [000021] ----------- \--* CNS_INT int 0 -Bashed to int constant: - [000022] ----------- * CNS_INT int 0 - -The conditional jump becomes an unconditional jump to BB05 -setting likelihood of BB04 -> BB05 from 0.5 to 1 - -impImportBlockPending for BB05 - -Importing BB05 (PC=069) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 69 (0x045) ldc.i4.1 1 - [ 1] 70 (0x046) stloc.0 - -STMT00001 ( 0x045[E--] ... ??? ) - [000024] DA--------- * STORE_LCL_VAR int V03 loc0 - [000023] ----------- \--* CNS_INT int 1 - - [ 0] 71 (0x047) br.s -impImportBlockPending for BB07 - -Importing BB07 (PC=075) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 75 (0x04b) ldloc.0 - [ 1] 76 (0x04c) ldstr 7000A8D9 - [ 2] 81 (0x051) call 06005C81 -In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 - -CheckCanInline: fetching method info for inline candidate Assert -- context 4000000000420549 -Class context: System.Diagnostics.Debug -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Diagnostics.Debug:Assert(bool,System.String)' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00002 ( 0x04B[E--] ... ??? ) - [000027] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String) (exactContextHandle=0x4000000000420549) - [000025] ----------- arg0 +--* LCL_VAR int V03 loc0 - [000026] ----------- arg1 \--* CNS_STR ref - - [ 0] 86 (0x056) call 06006465 -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 -Named Intrinsic System.Runtime.Intrinsics.Vector128.get_IsHardwareAccelerated: Recognized - - [ 1] 91 (0x05b) brfalse.s -Folding operator with constant nodes into a constant: - [000030] ----------- * EQ int - [000028] ----------- +--* CNS_INT int 1 - [000029] ----------- \--* CNS_INT int 0 -Bashed to int constant: - [000030] ----------- * CNS_INT int 0 - -The conditional jump becomes an unconditional jump to BB08 -setting likelihood of BB07 -> BB08 from 0.5 to 1 - -impImportBlockPending for BB08 - -Importing BB08 (PC=093) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 93 (0x05d) ldarg.2 - [ 1] 94 (0x05e) call 0A000F05 -In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0 -Named Intrinsic System.Runtime.Intrinsics.Vector128`1.get_Count: Recognized - - [ 2] 99 (0x063) bge - -STMT00003 ( 0x05D[E--] ... ??? ) - [000034] ----------- * JTRUE void - [000033] ----------- \--* GE int - [000031] ----------- +--* LCL_VAR int V02 arg2 - [000032] ----------- \--* CNS_INT int 2 vector element count - -impImportBlockPending for BB09 - -impImportBlockPending for BB43 - -Importing BB43 (PC=747) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 747 (0x2eb) call 06006871 -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 -Named Intrinsic System.Runtime.Intrinsics.Vector512.get_IsHardwareAccelerated: Unsupported - return false - [ 1] 752 (0x2f0) brfalse.s -Folding operator with constant nodes into a constant: - [000037] ----------- * EQ int - [000035] ----------- +--* CNS_INT int 0 - [000036] ----------- \--* CNS_INT int 0 -Bashed to int constant: - [000037] ----------- * CNS_INT int 1 - -The conditional jump becomes an unconditional jump to BB46 -setting likelihood of BB43 -> BB46 from 0.5 to 1 - -impImportBlockPending for BB46 - -Importing BB46 (PC=771) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 771 (0x303) call 06006680 -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 -Named Intrinsic System.Runtime.Intrinsics.Vector256.get_IsHardwareAccelerated: Unsupported - return false - [ 1] 776 (0x308) brfalse.s -Folding operator with constant nodes into a constant: - [000040] ----------- * EQ int - [000038] ----------- +--* CNS_INT int 0 - [000039] ----------- \--* CNS_INT int 0 -Bashed to int constant: - [000040] ----------- * CNS_INT int 1 - -The conditional jump becomes an unconditional jump to BB49 -setting likelihood of BB46 -> BB49 from 0.5 to 1 - -impImportBlockPending for BB49 - -Importing BB49 (PC=795) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 795 (0x31b) ldarg.0 - [ 1] 796 (0x31c) ldarg.1 - [ 2] 797 (0x31d) ldarg.2 - [ 3] 798 (0x31e) call 2B0004AD - (Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT) -In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0 - -GTF_CALL_M_IMPLICIT_TAILCALL set for call [000044] - -CheckCanInline: fetching method info for inline candidate -- context 4000000000443E98 -Method context: -INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'too many il bytes' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling '' - -INLINER: Marking as NOINLINE (observation too many il bytes) -INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'too many il bytes' - - [ 1] 803 (0x323) ret - -STMT00004 ( 0x31B[E--] ... ??? ) - [000045] --C-G------ * RETURN int - [000044] --C-G------ \--* CALL int - [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 - [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 - [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 - -Importing BB09 (PC=104) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 104 (0x068) ldarg.2 - [ 1] 105 (0x069) conv.i - [ 1] 106 (0x06a) ldc.i4.1 1 - [ 2] 107 (0x06b) conv.i -Folding long operator with constant nodes into a constant: - [000049] ----------- * CAST long <- int - [000048] ----------- \--* CNS_INT int 1 -Bashed to long constant: - [000049] ----------- * CNS_INT long 1 - - [ 2] 108 (0x06c) sub - [ 1] 109 (0x06d) stloc.1 - -STMT00005 ( 0x068[E--] ... ??? ) - [000051] DA--------- * STORE_LCL_VAR long V04 loc1 - [000050] ----------- \--* SUB long - [000047] ----------- +--* CAST long <- int - [000046] ----------- | \--* LCL_VAR int V02 arg2 - [000049] ----------- \--* CNS_INT long 1 - - [ 0] 110 (0x06e) br -impImportBlockPending for BB27 - -Importing BB27 (PC=487) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 487 (0x1e7) ldarg.2 - [ 1] 488 (0x1e8) ldc.i4.8 8 - [ 2] 489 (0x1e9) bge - -STMT00006 ( 0x1E7[E--] ... ??? ) - [000055] ----------- * JTRUE void - [000054] ----------- \--* GE int - [000052] ----------- +--* LCL_VAR int V02 arg2 - [000053] ----------- \--* CNS_INT int 8 - -impImportBlockPending for BB28 - -impImportBlockPending for BB10 - -Importing BB10 (PC=115) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 115 (0x073) ldarg.2 - [ 1] 116 (0x074) ldc.i4.8 8 - [ 2] 117 (0x075) sub - [ 1] 118 (0x076) starg.s 2 - -STMT00007 ( 0x073[E--] ... ??? ) - [000059] DA--------- * STORE_LCL_VAR int V02 arg2 - [000058] ----------- \--* SUB int - [000056] ----------- +--* LCL_VAR int V02 arg2 - [000057] ----------- \--* CNS_INT int 8 - - [ 0] 120 (0x078) ldarg.0 - [ 1] 121 (0x079) ldloc.1 - [ 2] 122 (0x07a) call 2B00047A -In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized - - [ 1] 127 (0x07f) ldobj 1B000431 - [ 1] 132 (0x084) ldarg.1 - [ 2] 133 (0x085) constrained. (1B000431) call 0A000CFB -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 -Class context: System.Int64 -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00008 ( 0x078[E--] ... ??? ) - [000067] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000065] ---XG------ arg0 +--* IND long - [000064] ----------- | \--* ADD byref - [000060] ----------- | +--* LCL_VAR byref V00 arg0 - [000063] ----------- | \--* MUL long - [000061] ----------- | +--* LCL_VAR long V04 loc1 - [000062] ----------- | \--* CNS_INT long 8 - [000066] ----------- arg1 \--* LCL_VAR long V01 arg1 - - [ 1] 144 (0x090) constrained. (1B000447) call 0A000F0E -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 -Class context: System.SpanHelpers+DontNegate`1[long] -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00009 ( 0x078[E--] ... ??? ) - [000069] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000068] --C-------- arg0 \--* RET_EXPR int (for [000067]) - - [ 1] 155 (0x09b) brfalse.s - -STMT00010 ( 0x078[E--] ... ??? ) - [000073] --C-------- * JTRUE void - [000072] --C-------- \--* EQ int - [000070] --C-------- +--* RET_EXPR int (for [000069]) - [000071] ----------- \--* CNS_INT int 0 - -impImportBlockPending for BB11 - -impImportBlockPending for BB12 - -Importing BB12 (PC=160) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 160 (0x0a0) ldarg.0 - [ 1] 161 (0x0a1) ldloc.1 - [ 2] 162 (0x0a2) ldc.i4.1 1 - [ 3] 163 (0x0a3) conv.i -Folding long operator with constant nodes into a constant: - [000077] ----------- * CAST long <- int - [000076] ----------- \--* CNS_INT int 1 -Bashed to long constant: - [000077] ----------- * CNS_INT long 1 - - [ 3] 164 (0x0a4) sub - [ 2] 165 (0x0a5) call 2B00047A -In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized - - [ 1] 170 (0x0aa) ldobj 1B000431 - [ 1] 175 (0x0af) ldarg.1 - [ 2] 176 (0x0b0) constrained. (1B000431) call 0A000CFB -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 -Class context: System.Int64 -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00011 ( 0x0A0[E--] ... ??? ) - [000084] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000082] ---XG------ arg0 +--* IND long - [000081] ----------- | \--* ADD byref - [000074] ----------- | +--* LCL_VAR byref V00 arg0 - [000080] ----------- | \--* MUL long - [000078] ----------- | +--* SUB long - [000075] ----------- | | +--* LCL_VAR long V04 loc1 - [000077] ----------- | | \--* CNS_INT long 1 - [000079] ----------- | \--* CNS_INT long 8 - [000083] ----------- arg1 \--* LCL_VAR long V01 arg1 - - [ 1] 187 (0x0bb) constrained. (1B000447) call 0A000F0E -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 -Class context: System.SpanHelpers+DontNegate`1[long] -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00012 ( 0x0A0[E--] ... ??? ) - [000086] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000085] --C-------- arg0 \--* RET_EXPR int (for [000084]) - - [ 1] 198 (0x0c6) brfalse.s - -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] --C-------- * JTRUE void - [000089] --C-------- \--* EQ int - [000087] --C-------- +--* RET_EXPR int (for [000086]) - [000088] ----------- \--* CNS_INT int 0 - -impImportBlockPending for BB13 - -impImportBlockPending for BB14 - -Importing BB14 (PC=206) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 206 (0x0ce) ldarg.0 - [ 1] 207 (0x0cf) ldloc.1 - [ 2] 208 (0x0d0) ldc.i4.2 2 - [ 3] 209 (0x0d1) conv.i -Folding long operator with constant nodes into a constant: - [000094] ----------- * CAST long <- int - [000093] ----------- \--* CNS_INT int 2 -Bashed to long constant: - [000094] ----------- * CNS_INT long 2 - - [ 3] 210 (0x0d2) sub - [ 2] 211 (0x0d3) call 2B00047A -In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized - - [ 1] 216 (0x0d8) ldobj 1B000431 - [ 1] 221 (0x0dd) ldarg.1 - [ 2] 222 (0x0de) constrained. (1B000431) call 0A000CFB -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 -Class context: System.Int64 -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00014 ( 0x0CE[E--] ... ??? ) - [000101] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000099] ---XG------ arg0 +--* IND long - [000098] ----------- | \--* ADD byref - [000091] ----------- | +--* LCL_VAR byref V00 arg0 - [000097] ----------- | \--* MUL long - [000095] ----------- | +--* SUB long - [000092] ----------- | | +--* LCL_VAR long V04 loc1 - [000094] ----------- | | \--* CNS_INT long 2 - [000096] ----------- | \--* CNS_INT long 8 - [000100] ----------- arg1 \--* LCL_VAR long V01 arg1 - - [ 1] 233 (0x0e9) constrained. (1B000447) call 0A000F0E -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 -Class context: System.SpanHelpers+DontNegate`1[long] -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00015 ( 0x0CE[E--] ... ??? ) - [000103] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000102] --C-------- arg0 \--* RET_EXPR int (for [000101]) - - [ 1] 244 (0x0f4) brfalse.s - -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] --C-------- * JTRUE void - [000106] --C-------- \--* EQ int - [000104] --C-------- +--* RET_EXPR int (for [000103]) - [000105] ----------- \--* CNS_INT int 0 - -impImportBlockPending for BB15 - -impImportBlockPending for BB16 - -Importing BB16 (PC=252) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 252 (0x0fc) ldarg.0 - [ 1] 253 (0x0fd) ldloc.1 - [ 2] 254 (0x0fe) ldc.i4.3 3 - [ 3] 255 (0x0ff) conv.i -Folding long operator with constant nodes into a constant: - [000111] ----------- * CAST long <- int - [000110] ----------- \--* CNS_INT int 3 -Bashed to long constant: - [000111] ----------- * CNS_INT long 3 - - [ 3] 256 (0x100) sub - [ 2] 257 (0x101) call 2B00047A -In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized - - [ 1] 262 (0x106) ldobj 1B000431 - [ 1] 267 (0x10b) ldarg.1 - [ 2] 268 (0x10c) constrained. (1B000431) call 0A000CFB -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 -Class context: System.Int64 -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00017 ( 0x0FC[E--] ... ??? ) - [000118] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000116] ---XG------ arg0 +--* IND long - [000115] ----------- | \--* ADD byref - [000108] ----------- | +--* LCL_VAR byref V00 arg0 - [000114] ----------- | \--* MUL long - [000112] ----------- | +--* SUB long - [000109] ----------- | | +--* LCL_VAR long V04 loc1 - [000111] ----------- | | \--* CNS_INT long 3 - [000113] ----------- | \--* CNS_INT long 8 - [000117] ----------- arg1 \--* LCL_VAR long V01 arg1 - - [ 1] 279 (0x117) constrained. (1B000447) call 0A000F0E -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 -Class context: System.SpanHelpers+DontNegate`1[long] -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00018 ( 0x0FC[E--] ... ??? ) - [000120] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000119] --C-------- arg0 \--* RET_EXPR int (for [000118]) - - [ 1] 290 (0x122) brfalse.s - -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] --C-------- * JTRUE void - [000123] --C-------- \--* EQ int - [000121] --C-------- +--* RET_EXPR int (for [000120]) - [000122] ----------- \--* CNS_INT int 0 - -impImportBlockPending for BB17 - -impImportBlockPending for BB18 - -Importing BB18 (PC=298) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 298 (0x12a) ldarg.0 - [ 1] 299 (0x12b) ldloc.1 - [ 2] 300 (0x12c) ldc.i4.4 4 - [ 3] 301 (0x12d) conv.i -Folding long operator with constant nodes into a constant: - [000128] ----------- * CAST long <- int - [000127] ----------- \--* CNS_INT int 4 -Bashed to long constant: - [000128] ----------- * CNS_INT long 4 - - [ 3] 302 (0x12e) sub - [ 2] 303 (0x12f) call 2B00047A -In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized - - [ 1] 308 (0x134) ldobj 1B000431 - [ 1] 313 (0x139) ldarg.1 - [ 2] 314 (0x13a) constrained. (1B000431) call 0A000CFB -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 -Class context: System.Int64 -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00020 ( 0x12A[E--] ... ??? ) - [000135] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000133] ---XG------ arg0 +--* IND long - [000132] ----------- | \--* ADD byref - [000125] ----------- | +--* LCL_VAR byref V00 arg0 - [000131] ----------- | \--* MUL long - [000129] ----------- | +--* SUB long - [000126] ----------- | | +--* LCL_VAR long V04 loc1 - [000128] ----------- | | \--* CNS_INT long 4 - [000130] ----------- | \--* CNS_INT long 8 - [000134] ----------- arg1 \--* LCL_VAR long V01 arg1 - - [ 1] 325 (0x145) constrained. (1B000447) call 0A000F0E -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 -Class context: System.SpanHelpers+DontNegate`1[long] -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00021 ( 0x12A[E--] ... ??? ) - [000137] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000136] --C-------- arg0 \--* RET_EXPR int (for [000135]) - - [ 1] 336 (0x150) brfalse.s - -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] --C-------- * JTRUE void - [000140] --C-------- \--* EQ int - [000138] --C-------- +--* RET_EXPR int (for [000137]) - [000139] ----------- \--* CNS_INT int 0 - -impImportBlockPending for BB19 - -impImportBlockPending for BB20 - -Importing BB20 (PC=344) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 344 (0x158) ldarg.0 - [ 1] 345 (0x159) ldloc.1 - [ 2] 346 (0x15a) ldc.i4.5 5 - [ 3] 347 (0x15b) conv.i -Folding long operator with constant nodes into a constant: - [000145] ----------- * CAST long <- int - [000144] ----------- \--* CNS_INT int 5 -Bashed to long constant: - [000145] ----------- * CNS_INT long 5 - - [ 3] 348 (0x15c) sub - [ 2] 349 (0x15d) call 2B00047A -In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized - - [ 1] 354 (0x162) ldobj 1B000431 - [ 1] 359 (0x167) ldarg.1 - [ 2] 360 (0x168) constrained. (1B000431) call 0A000CFB -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 -Class context: System.Int64 -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00023 ( 0x158[E--] ... ??? ) - [000152] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000150] ---XG------ arg0 +--* IND long - [000149] ----------- | \--* ADD byref - [000142] ----------- | +--* LCL_VAR byref V00 arg0 - [000148] ----------- | \--* MUL long - [000146] ----------- | +--* SUB long - [000143] ----------- | | +--* LCL_VAR long V04 loc1 - [000145] ----------- | | \--* CNS_INT long 5 - [000147] ----------- | \--* CNS_INT long 8 - [000151] ----------- arg1 \--* LCL_VAR long V01 arg1 - - [ 1] 371 (0x173) constrained. (1B000447) call 0A000F0E -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 -Class context: System.SpanHelpers+DontNegate`1[long] -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00024 ( 0x158[E--] ... ??? ) - [000154] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000153] --C-------- arg0 \--* RET_EXPR int (for [000152]) - - [ 1] 382 (0x17e) brfalse.s - -STMT00025 ( 0x158[E--] ... ??? ) - [000158] --C-------- * JTRUE void - [000157] --C-------- \--* EQ int - [000155] --C-------- +--* RET_EXPR int (for [000154]) - [000156] ----------- \--* CNS_INT int 0 - -impImportBlockPending for BB21 - -impImportBlockPending for BB22 - -Importing BB22 (PC=390) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 390 (0x186) ldarg.0 - [ 1] 391 (0x187) ldloc.1 - [ 2] 392 (0x188) ldc.i4.6 6 - [ 3] 393 (0x189) conv.i -Folding long operator with constant nodes into a constant: - [000162] ----------- * CAST long <- int - [000161] ----------- \--* CNS_INT int 6 -Bashed to long constant: - [000162] ----------- * CNS_INT long 6 - - [ 3] 394 (0x18a) sub - [ 2] 395 (0x18b) call 2B00047A -In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized - - [ 1] 400 (0x190) ldobj 1B000431 - [ 1] 405 (0x195) ldarg.1 - [ 2] 406 (0x196) constrained. (1B000431) call 0A000CFB -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 -Class context: System.Int64 -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00026 ( 0x186[E--] ... ??? ) - [000169] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000167] ---XG------ arg0 +--* IND long - [000166] ----------- | \--* ADD byref - [000159] ----------- | +--* LCL_VAR byref V00 arg0 - [000165] ----------- | \--* MUL long - [000163] ----------- | +--* SUB long - [000160] ----------- | | +--* LCL_VAR long V04 loc1 - [000162] ----------- | | \--* CNS_INT long 6 - [000164] ----------- | \--* CNS_INT long 8 - [000168] ----------- arg1 \--* LCL_VAR long V01 arg1 - - [ 1] 417 (0x1a1) constrained. (1B000447) call 0A000F0E -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 -Class context: System.SpanHelpers+DontNegate`1[long] -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00027 ( 0x186[E--] ... ??? ) - [000171] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000170] --C-------- arg0 \--* RET_EXPR int (for [000169]) - - [ 1] 428 (0x1ac) brfalse.s - -STMT00028 ( 0x186[E--] ... ??? ) - [000175] --C-------- * JTRUE void - [000174] --C-------- \--* EQ int - [000172] --C-------- +--* RET_EXPR int (for [000171]) - [000173] ----------- \--* CNS_INT int 0 - -impImportBlockPending for BB23 - -impImportBlockPending for BB24 - -Importing BB24 (PC=436) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 436 (0x1b4) ldarg.0 - [ 1] 437 (0x1b5) ldloc.1 - [ 2] 438 (0x1b6) ldc.i4.7 7 - [ 3] 439 (0x1b7) conv.i -Folding long operator with constant nodes into a constant: - [000179] ----------- * CAST long <- int - [000178] ----------- \--* CNS_INT int 7 -Bashed to long constant: - [000179] ----------- * CNS_INT long 7 - - [ 3] 440 (0x1b8) sub - [ 2] 441 (0x1b9) call 2B00047A -In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized - - [ 1] 446 (0x1be) ldobj 1B000431 - [ 1] 451 (0x1c3) ldarg.1 - [ 2] 452 (0x1c4) constrained. (1B000431) call 0A000CFB -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 -Class context: System.Int64 -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00029 ( 0x1B4[E--] ... ??? ) - [000186] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000184] ---XG------ arg0 +--* IND long - [000183] ----------- | \--* ADD byref - [000176] ----------- | +--* LCL_VAR byref V00 arg0 - [000182] ----------- | \--* MUL long - [000180] ----------- | +--* SUB long - [000177] ----------- | | +--* LCL_VAR long V04 loc1 - [000179] ----------- | | \--* CNS_INT long 7 - [000181] ----------- | \--* CNS_INT long 8 - [000185] ----------- arg1 \--* LCL_VAR long V01 arg1 - - [ 1] 463 (0x1cf) constrained. (1B000447) call 0A000F0E -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 -Class context: System.SpanHelpers+DontNegate`1[long] -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00030 ( 0x1B4[E--] ... ??? ) - [000188] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000187] --C-------- arg0 \--* RET_EXPR int (for [000186]) - - [ 1] 474 (0x1da) brfalse.s - -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] --C-------- * JTRUE void - [000191] --C-------- \--* EQ int - [000189] --C-------- +--* RET_EXPR int (for [000188]) - [000190] ----------- \--* CNS_INT int 0 - -impImportBlockPending for BB25 - -impImportBlockPending for BB26 - -Importing BB26 (PC=482) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 482 (0x1e2) ldloc.1 - [ 1] 483 (0x1e3) ldc.i4.8 8 - [ 2] 484 (0x1e4) conv.i -Folding long operator with constant nodes into a constant: - [000195] ----------- * CAST long <- int - [000194] ----------- \--* CNS_INT int 8 -Bashed to long constant: - [000195] ----------- * CNS_INT long 8 - - [ 2] 485 (0x1e5) sub - [ 1] 486 (0x1e6) stloc.1 - -STMT00032 ( 0x1E2[E--] ... ??? ) - [000197] DA--------- * STORE_LCL_VAR long V04 loc1 - [000196] ----------- \--* SUB long - [000193] ----------- +--* LCL_VAR long V04 loc1 - [000195] ----------- \--* CNS_INT long 8 - -impImportBlockPending for BB27 - -Importing BB25 (PC=476) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 476 (0x1dc) ldloc.1 - [ 1] 477 (0x1dd) ldc.i4.7 7 - [ 2] 478 (0x1de) conv.i -Folding long operator with constant nodes into a constant: - [000200] ----------- * CAST long <- int - [000199] ----------- \--* CNS_INT int 7 -Bashed to long constant: - [000200] ----------- * CNS_INT long 7 - - [ 2] 479 (0x1df) sub - [ 1] 480 (0x1e0) conv.i4 - [ 1] 481 (0x1e1) ret - -STMT00033 ( 0x1DC[E--] ... ??? ) - [000203] ----------- * RETURN int - [000202] ----------- \--* CAST int <- long - [000201] ----------- \--* SUB long - [000198] ----------- +--* LCL_VAR long V04 loc1 - [000200] ----------- \--* CNS_INT long 7 - -Importing BB23 (PC=430) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 430 (0x1ae) ldloc.1 - [ 1] 431 (0x1af) ldc.i4.6 6 - [ 2] 432 (0x1b0) conv.i -Folding long operator with constant nodes into a constant: - [000206] ----------- * CAST long <- int - [000205] ----------- \--* CNS_INT int 6 -Bashed to long constant: - [000206] ----------- * CNS_INT long 6 - - [ 2] 433 (0x1b1) sub - [ 1] 434 (0x1b2) conv.i4 - [ 1] 435 (0x1b3) ret - -STMT00034 ( 0x1AE[E--] ... ??? ) - [000209] ----------- * RETURN int - [000208] ----------- \--* CAST int <- long - [000207] ----------- \--* SUB long - [000204] ----------- +--* LCL_VAR long V04 loc1 - [000206] ----------- \--* CNS_INT long 6 - -Importing BB21 (PC=384) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 384 (0x180) ldloc.1 - [ 1] 385 (0x181) ldc.i4.5 5 - [ 2] 386 (0x182) conv.i -Folding long operator with constant nodes into a constant: - [000212] ----------- * CAST long <- int - [000211] ----------- \--* CNS_INT int 5 -Bashed to long constant: - [000212] ----------- * CNS_INT long 5 - - [ 2] 387 (0x183) sub - [ 1] 388 (0x184) conv.i4 - [ 1] 389 (0x185) ret - -STMT00035 ( 0x180[E--] ... ??? ) - [000215] ----------- * RETURN int - [000214] ----------- \--* CAST int <- long - [000213] ----------- \--* SUB long - [000210] ----------- +--* LCL_VAR long V04 loc1 - [000212] ----------- \--* CNS_INT long 5 - -Importing BB19 (PC=338) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 338 (0x152) ldloc.1 - [ 1] 339 (0x153) ldc.i4.4 4 - [ 2] 340 (0x154) conv.i -Folding long operator with constant nodes into a constant: - [000218] ----------- * CAST long <- int - [000217] ----------- \--* CNS_INT int 4 -Bashed to long constant: - [000218] ----------- * CNS_INT long 4 - - [ 2] 341 (0x155) sub - [ 1] 342 (0x156) conv.i4 - [ 1] 343 (0x157) ret - -STMT00036 ( 0x152[E--] ... ??? ) - [000221] ----------- * RETURN int - [000220] ----------- \--* CAST int <- long - [000219] ----------- \--* SUB long - [000216] ----------- +--* LCL_VAR long V04 loc1 - [000218] ----------- \--* CNS_INT long 4 - -Importing BB17 (PC=292) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 292 (0x124) ldloc.1 - [ 1] 293 (0x125) ldc.i4.3 3 - [ 2] 294 (0x126) conv.i -Folding long operator with constant nodes into a constant: - [000224] ----------- * CAST long <- int - [000223] ----------- \--* CNS_INT int 3 -Bashed to long constant: - [000224] ----------- * CNS_INT long 3 - - [ 2] 295 (0x127) sub - [ 1] 296 (0x128) conv.i4 - [ 1] 297 (0x129) ret - -STMT00037 ( 0x124[E--] ... ??? ) - [000227] ----------- * RETURN int - [000226] ----------- \--* CAST int <- long - [000225] ----------- \--* SUB long - [000222] ----------- +--* LCL_VAR long V04 loc1 - [000224] ----------- \--* CNS_INT long 3 - -Importing BB15 (PC=246) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 246 (0x0f6) ldloc.1 - [ 1] 247 (0x0f7) ldc.i4.2 2 - [ 2] 248 (0x0f8) conv.i -Folding long operator with constant nodes into a constant: - [000230] ----------- * CAST long <- int - [000229] ----------- \--* CNS_INT int 2 -Bashed to long constant: - [000230] ----------- * CNS_INT long 2 - - [ 2] 249 (0x0f9) sub - [ 1] 250 (0x0fa) conv.i4 - [ 1] 251 (0x0fb) ret - -STMT00038 ( 0x0F6[E--] ... ??? ) - [000233] ----------- * RETURN int - [000232] ----------- \--* CAST int <- long - [000231] ----------- \--* SUB long - [000228] ----------- +--* LCL_VAR long V04 loc1 - [000230] ----------- \--* CNS_INT long 2 - -Importing BB13 (PC=200) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 200 (0x0c8) ldloc.1 - [ 1] 201 (0x0c9) ldc.i4.1 1 - [ 2] 202 (0x0ca) conv.i -Folding long operator with constant nodes into a constant: - [000236] ----------- * CAST long <- int - [000235] ----------- \--* CNS_INT int 1 -Bashed to long constant: - [000236] ----------- * CNS_INT long 1 - - [ 2] 203 (0x0cb) sub - [ 1] 204 (0x0cc) conv.i4 - [ 1] 205 (0x0cd) ret - -STMT00039 ( 0x0C8[E--] ... ??? ) - [000239] ----------- * RETURN int - [000238] ----------- \--* CAST int <- long - [000237] ----------- \--* SUB long - [000234] ----------- +--* LCL_VAR long V04 loc1 - [000236] ----------- \--* CNS_INT long 1 - -Importing BB11 (PC=157) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 157 (0x09d) ldloc.1 - [ 1] 158 (0x09e) conv.i4 - [ 1] 159 (0x09f) ret - -STMT00040 ( 0x09D[E--] ... ??? ) - [000242] ----------- * RETURN int - [000241] ----------- \--* CAST int <- long - [000240] ----------- \--* LCL_VAR long V04 loc1 - -Importing BB28 (PC=494) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 494 (0x1ee) ldarg.2 - [ 1] 495 (0x1ef) ldc.i4.4 4 - [ 2] 496 (0x1f0) blt - -STMT00041 ( 0x1EE[E--] ... ??? ) - [000246] ----------- * JTRUE void - [000245] ----------- \--* LT int - [000243] ----------- +--* LCL_VAR int V02 arg2 - [000244] ----------- \--* CNS_INT int 4 - -impImportBlockPending for BB29 - -impImportBlockPending for BB41 - -Importing BB41 (PC=741) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 741 (0x2e5) ldarg.2 - [ 1] 742 (0x2e6) ldc.i4.0 0 - [ 2] 743 (0x2e7) bgt.s - -STMT00042 ( 0x2E5[E--] ... ??? ) - [000250] ----------- * JTRUE void - [000249] ----------- \--* GT int - [000247] ----------- +--* LCL_VAR int V02 arg2 - [000248] ----------- \--* CNS_INT int 0 - -impImportBlockPending for BB42 - -impImportBlockPending for BB38 - -Importing BB38 (PC=691) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 691 (0x2b3) ldarg.2 - [ 1] 692 (0x2b4) ldc.i4.1 1 - [ 2] 693 (0x2b5) sub - [ 1] 694 (0x2b6) starg.s 2 - -STMT00043 ( 0x2B3[E--] ... ??? ) - [000254] DA--------- * STORE_LCL_VAR int V02 arg2 - [000253] ----------- \--* SUB int - [000251] ----------- +--* LCL_VAR int V02 arg2 - [000252] ----------- \--* CNS_INT int 1 - - [ 0] 696 (0x2b8) ldarg.0 - [ 1] 697 (0x2b9) ldloc.1 - [ 2] 698 (0x2ba) call 2B00047A -In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized - - [ 1] 703 (0x2bf) ldobj 1B000431 - [ 1] 708 (0x2c4) ldarg.1 - [ 2] 709 (0x2c5) constrained. (1B000431) call 0A000CFB -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 -Class context: System.Int64 -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00044 ( 0x2B8[E--] ... ??? ) - [000262] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000260] ---XG------ arg0 +--* IND long - [000259] ----------- | \--* ADD byref - [000255] ----------- | +--* LCL_VAR byref V00 arg0 - [000258] ----------- | \--* MUL long - [000256] ----------- | +--* LCL_VAR long V04 loc1 - [000257] ----------- | \--* CNS_INT long 8 - [000261] ----------- arg1 \--* LCL_VAR long V01 arg1 - - [ 1] 720 (0x2d0) constrained. (1B000447) call 0A000F0E -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 -Class context: System.SpanHelpers+DontNegate`1[long] -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00045 ( 0x2B8[E--] ... ??? ) - [000264] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000263] --C-------- arg0 \--* RET_EXPR int (for [000262]) - - [ 1] 731 (0x2db) brfalse.s - -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] --C-------- * JTRUE void - [000267] --C-------- \--* EQ int - [000265] --C-------- +--* RET_EXPR int (for [000264]) - [000266] ----------- \--* CNS_INT int 0 - -impImportBlockPending for BB39 - -impImportBlockPending for BB40 - -Importing BB40 (PC=736) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 736 (0x2e0) ldloc.1 - [ 1] 737 (0x2e1) ldc.i4.1 1 - [ 2] 738 (0x2e2) conv.i -Folding long operator with constant nodes into a constant: - [000271] ----------- * CAST long <- int - [000270] ----------- \--* CNS_INT int 1 -Bashed to long constant: - [000271] ----------- * CNS_INT long 1 - - [ 2] 739 (0x2e3) sub - [ 1] 740 (0x2e4) stloc.1 - -STMT00047 ( 0x2E0[E--] ... ??? ) - [000273] DA--------- * STORE_LCL_VAR long V04 loc1 - [000272] ----------- \--* SUB long - [000269] ----------- +--* LCL_VAR long V04 loc1 - [000271] ----------- \--* CNS_INT long 1 - -impImportBlockPending for BB41 - -Importing BB39 (PC=733) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 733 (0x2dd) ldloc.1 - [ 1] 734 (0x2de) conv.i4 - [ 1] 735 (0x2df) ret - -STMT00048 ( 0x2DD[E--] ... ??? ) - [000276] ----------- * RETURN int - [000275] ----------- \--* CAST int <- long - [000274] ----------- \--* LCL_VAR long V04 loc1 - -Importing BB42 (PC=745) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 745 (0x2e9) ldc.i4.m1 -1 - [ 1] 746 (0x2ea) ret - -STMT00049 ( 0x2E9[E--] ... ??? ) - [000278] ----------- * RETURN int - [000277] ----------- \--* CNS_INT int -1 - -Importing BB29 (PC=501) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 501 (0x1f5) ldarg.2 - [ 1] 502 (0x1f6) ldc.i4.4 4 - [ 2] 503 (0x1f7) sub - [ 1] 504 (0x1f8) starg.s 2 - -STMT00050 ( 0x1F5[E--] ... ??? ) - [000282] DA--------- * STORE_LCL_VAR int V02 arg2 - [000281] ----------- \--* SUB int - [000279] ----------- +--* LCL_VAR int V02 arg2 - [000280] ----------- \--* CNS_INT int 4 - - [ 0] 506 (0x1fa) ldarg.0 - [ 1] 507 (0x1fb) ldloc.1 - [ 2] 508 (0x1fc) call 2B00047A -In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized - - [ 1] 513 (0x201) ldobj 1B000431 - [ 1] 518 (0x206) ldarg.1 - [ 2] 519 (0x207) constrained. (1B000431) call 0A000CFB -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 -Class context: System.Int64 -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00051 ( 0x1FA[E--] ... ??? ) - [000290] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000288] ---XG------ arg0 +--* IND long - [000287] ----------- | \--* ADD byref - [000283] ----------- | +--* LCL_VAR byref V00 arg0 - [000286] ----------- | \--* MUL long - [000284] ----------- | +--* LCL_VAR long V04 loc1 - [000285] ----------- | \--* CNS_INT long 8 - [000289] ----------- arg1 \--* LCL_VAR long V01 arg1 - - [ 1] 530 (0x212) constrained. (1B000447) call 0A000F0E -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 -Class context: System.SpanHelpers+DontNegate`1[long] -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00052 ( 0x1FA[E--] ... ??? ) - [000292] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000291] --C-------- arg0 \--* RET_EXPR int (for [000290]) - - [ 1] 541 (0x21d) brfalse.s - -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] --C-------- * JTRUE void - [000295] --C-------- \--* EQ int - [000293] --C-------- +--* RET_EXPR int (for [000292]) - [000294] ----------- \--* CNS_INT int 0 - -impImportBlockPending for BB30 - -impImportBlockPending for BB31 - -Importing BB31 (PC=546) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 546 (0x222) ldarg.0 - [ 1] 547 (0x223) ldloc.1 - [ 2] 548 (0x224) ldc.i4.1 1 - [ 3] 549 (0x225) conv.i -Folding long operator with constant nodes into a constant: - [000300] ----------- * CAST long <- int - [000299] ----------- \--* CNS_INT int 1 -Bashed to long constant: - [000300] ----------- * CNS_INT long 1 - - [ 3] 550 (0x226) sub - [ 2] 551 (0x227) call 2B00047A -In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized - - [ 1] 556 (0x22c) ldobj 1B000431 - [ 1] 561 (0x231) ldarg.1 - [ 2] 562 (0x232) constrained. (1B000431) call 0A000CFB -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 -Class context: System.Int64 -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00054 ( 0x222[E--] ... ??? ) - [000307] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000305] ---XG------ arg0 +--* IND long - [000304] ----------- | \--* ADD byref - [000297] ----------- | +--* LCL_VAR byref V00 arg0 - [000303] ----------- | \--* MUL long - [000301] ----------- | +--* SUB long - [000298] ----------- | | +--* LCL_VAR long V04 loc1 - [000300] ----------- | | \--* CNS_INT long 1 - [000302] ----------- | \--* CNS_INT long 8 - [000306] ----------- arg1 \--* LCL_VAR long V01 arg1 - - [ 1] 573 (0x23d) constrained. (1B000447) call 0A000F0E -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 -Class context: System.SpanHelpers+DontNegate`1[long] -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00055 ( 0x222[E--] ... ??? ) - [000309] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000308] --C-------- arg0 \--* RET_EXPR int (for [000307]) - - [ 1] 584 (0x248) brfalse.s - -STMT00056 ( 0x222[E--] ... ??? ) - [000313] --C-------- * JTRUE void - [000312] --C-------- \--* EQ int - [000310] --C-------- +--* RET_EXPR int (for [000309]) - [000311] ----------- \--* CNS_INT int 0 - -impImportBlockPending for BB32 - -impImportBlockPending for BB33 - -Importing BB33 (PC=592) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 592 (0x250) ldarg.0 - [ 1] 593 (0x251) ldloc.1 - [ 2] 594 (0x252) ldc.i4.2 2 - [ 3] 595 (0x253) conv.i -Folding long operator with constant nodes into a constant: - [000317] ----------- * CAST long <- int - [000316] ----------- \--* CNS_INT int 2 -Bashed to long constant: - [000317] ----------- * CNS_INT long 2 - - [ 3] 596 (0x254) sub - [ 2] 597 (0x255) call 2B00047A -In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized - - [ 1] 602 (0x25a) ldobj 1B000431 - [ 1] 607 (0x25f) ldarg.1 - [ 2] 608 (0x260) constrained. (1B000431) call 0A000CFB -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 -Class context: System.Int64 -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00057 ( 0x250[E--] ... ??? ) - [000324] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000322] ---XG------ arg0 +--* IND long - [000321] ----------- | \--* ADD byref - [000314] ----------- | +--* LCL_VAR byref V00 arg0 - [000320] ----------- | \--* MUL long - [000318] ----------- | +--* SUB long - [000315] ----------- | | +--* LCL_VAR long V04 loc1 - [000317] ----------- | | \--* CNS_INT long 2 - [000319] ----------- | \--* CNS_INT long 8 - [000323] ----------- arg1 \--* LCL_VAR long V01 arg1 - - [ 1] 619 (0x26b) constrained. (1B000447) call 0A000F0E -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 -Class context: System.SpanHelpers+DontNegate`1[long] -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00058 ( 0x250[E--] ... ??? ) - [000326] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000325] --C-------- arg0 \--* RET_EXPR int (for [000324]) - - [ 1] 630 (0x276) brfalse.s - -STMT00059 ( 0x250[E--] ... ??? ) - [000330] --C-------- * JTRUE void - [000329] --C-------- \--* EQ int - [000327] --C-------- +--* RET_EXPR int (for [000326]) - [000328] ----------- \--* CNS_INT int 0 - -impImportBlockPending for BB34 - -impImportBlockPending for BB35 - -Importing BB35 (PC=638) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 638 (0x27e) ldarg.0 - [ 1] 639 (0x27f) ldloc.1 - [ 2] 640 (0x280) ldc.i4.3 3 - [ 3] 641 (0x281) conv.i -Folding long operator with constant nodes into a constant: - [000334] ----------- * CAST long <- int - [000333] ----------- \--* CNS_INT int 3 -Bashed to long constant: - [000334] ----------- * CNS_INT long 3 - - [ 3] 642 (0x282) sub - [ 2] 643 (0x283) call 2B00047A -In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 -Named Intrinsic System.Runtime.CompilerServices.Unsafe.Add: Recognized - - [ 1] 648 (0x288) ldobj 1B000431 - [ 1] 653 (0x28d) ldarg.1 - [ 2] 654 (0x28e) constrained. (1B000431) call 0A000CFB -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate System.Numerics.IEqualityOperators.op_Equality -- context 40000000004219B1 -Class context: System.Int64 -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00060 ( 0x27E[E--] ... ??? ) - [000341] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000339] ---XG------ arg0 +--* IND long - [000338] ----------- | \--* ADD byref - [000331] ----------- | +--* LCL_VAR byref V00 arg0 - [000337] ----------- | \--* MUL long - [000335] ----------- | +--* SUB long - [000332] ----------- | | +--* LCL_VAR long V04 loc1 - [000334] ----------- | | \--* CNS_INT long 3 - [000336] ----------- | \--* CNS_INT long 8 - [000340] ----------- arg1 \--* LCL_VAR long V01 arg1 - - [ 1] 665 (0x299) constrained. (1B000447) call 0A000F0E -In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 - -CheckCanInline: fetching method info for inline candidate NegateIfNeeded -- context 400000000042CEE9 -Class context: System.SpanHelpers+DontNegate`1[long] -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00061 ( 0x27E[E--] ... ??? ) - [000343] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000342] --C-------- arg0 \--* RET_EXPR int (for [000341]) - - [ 1] 676 (0x2a4) brfalse.s - -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] --C-------- * JTRUE void - [000346] --C-------- \--* EQ int - [000344] --C-------- +--* RET_EXPR int (for [000343]) - [000345] ----------- \--* CNS_INT int 0 - -impImportBlockPending for BB36 - -impImportBlockPending for BB37 - -Importing BB37 (PC=684) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 684 (0x2ac) ldloc.1 - [ 1] 685 (0x2ad) ldc.i4.4 4 - [ 2] 686 (0x2ae) conv.i -Folding long operator with constant nodes into a constant: - [000350] ----------- * CAST long <- int - [000349] ----------- \--* CNS_INT int 4 -Bashed to long constant: - [000350] ----------- * CNS_INT long 4 - - [ 2] 687 (0x2af) sub - [ 1] 688 (0x2b0) stloc.1 - -STMT00063 ( 0x2AC[E--] ... ??? ) - [000352] DA--------- * STORE_LCL_VAR long V04 loc1 - [000351] ----------- \--* SUB long - [000348] ----------- +--* LCL_VAR long V04 loc1 - [000350] ----------- \--* CNS_INT long 4 - - [ 0] 689 (0x2b1) br.s -impImportBlockPending for BB41 - -Importing BB36 (PC=678) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 678 (0x2a6) ldloc.1 - [ 1] 679 (0x2a7) ldc.i4.3 3 - [ 2] 680 (0x2a8) conv.i -Folding long operator with constant nodes into a constant: - [000355] ----------- * CAST long <- int - [000354] ----------- \--* CNS_INT int 3 -Bashed to long constant: - [000355] ----------- * CNS_INT long 3 - - [ 2] 681 (0x2a9) sub - [ 1] 682 (0x2aa) conv.i4 - [ 1] 683 (0x2ab) ret - -STMT00064 ( 0x2A6[E--] ... ??? ) - [000358] ----------- * RETURN int - [000357] ----------- \--* CAST int <- long - [000356] ----------- \--* SUB long - [000353] ----------- +--* LCL_VAR long V04 loc1 - [000355] ----------- \--* CNS_INT long 3 - -Importing BB34 (PC=632) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 632 (0x278) ldloc.1 - [ 1] 633 (0x279) ldc.i4.2 2 - [ 2] 634 (0x27a) conv.i -Folding long operator with constant nodes into a constant: - [000361] ----------- * CAST long <- int - [000360] ----------- \--* CNS_INT int 2 -Bashed to long constant: - [000361] ----------- * CNS_INT long 2 - - [ 2] 635 (0x27b) sub - [ 1] 636 (0x27c) conv.i4 - [ 1] 637 (0x27d) ret - -STMT00065 ( 0x278[E--] ... ??? ) - [000364] ----------- * RETURN int - [000363] ----------- \--* CAST int <- long - [000362] ----------- \--* SUB long - [000359] ----------- +--* LCL_VAR long V04 loc1 - [000361] ----------- \--* CNS_INT long 2 - -Importing BB32 (PC=586) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 586 (0x24a) ldloc.1 - [ 1] 587 (0x24b) ldc.i4.1 1 - [ 2] 588 (0x24c) conv.i -Folding long operator with constant nodes into a constant: - [000367] ----------- * CAST long <- int - [000366] ----------- \--* CNS_INT int 1 -Bashed to long constant: - [000367] ----------- * CNS_INT long 1 - - [ 2] 589 (0x24d) sub - [ 1] 590 (0x24e) conv.i4 - [ 1] 591 (0x24f) ret - -STMT00066 ( 0x24A[E--] ... ??? ) - [000370] ----------- * RETURN int - [000369] ----------- \--* CAST int <- long - [000368] ----------- \--* SUB long - [000365] ----------- +--* LCL_VAR long V04 loc1 - [000367] ----------- \--* CNS_INT long 1 - -Importing BB30 (PC=543) of 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' - [ 0] 543 (0x21f) ldloc.1 - [ 1] 544 (0x220) conv.i4 - [ 1] 545 (0x221) ret - -STMT00067 ( 0x21F[E--] ... ??? ) - [000373] ----------- * RETURN int - [000372] ----------- \--* CAST int <- long - [000371] ----------- \--* LCL_VAR long V04 loc1 - -** Note: root method IL was partially imported -- imported 715 of 804 bytes of method IL - -*************** Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..01E)-> BB02(1) (always) i -BB02 [0001] 1 BB01 1 [01E..02B)-> BB03(1) (always) i -BB03 [0002] 1 BB02 1 [02B..038)-> BB04(1) (always) i -BB04 [0003] 1 BB03 1 [038..045)-> BB05(1) (always) i -BB05 [0004] 1 BB04 1 [045..049)-> BB07(1) (always) i -BB06 [0005] 0 1 [049..04B)-> BB07(1) (always) -BB07 [0006] 2 BB05,BB06 1 [04B..05D)-> BB08(1) (always) i -BB08 [0007] 1 BB07 1 [05D..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB08 1 [068..073)-> BB27(1) (always) i -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target -BB11 [0010] 1 BB10 1 [09D..0A0) (return) i -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd -BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd -BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd -BB17 [0016] 1 BB16 1 [124..12A) (return) i -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB19 [0018] 1 BB18 1 [152..158) (return) i -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB21 [0020] 1 BB20 1 [180..186) (return) i -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB31(0.5),BB30(0.5) ( cond ) i -BB30 [0029] 1 BB29 1 [21F..222) (return) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250) (return) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E) (return) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB40(0.5),BB39(0.5) ( cond ) i bwd bwd-target -BB39 [0038] 1 BB38 1 [2DD..2E0) (return) i -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i -BB43 [0042] 1 BB08 1 [2EB..2F2)-> BB46(1) (always) i -BB44 [0043] 0 1 [2F2..2FA)-> BB46(0.5),BB45(0.5) ( cond ) -BB45 [0044] 1 BB44 1 [2FA..303) (return) -BB46 [0045] 2 BB43,BB44 1 [303..30A)-> BB49(1) (always) i -BB47 [0046] 0 1 [30A..312)-> BB49(0.5),BB48(0.5) ( cond ) -BB48 [0047] 1 BB47 1 [312..31B) (return) -BB49 [0048] 2 BB46,BB47 1 [31B..324) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..01E) -> BB02(1) (always), preds={} succs={BB02} - -***** BB01 [0000] -STMT00000 ( 0x000[E--] ... 0x01C ) - [000006] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String) (exactContextHandle=0x4000000000420549) - [000004] ----------- arg0 +--* EQ int - [000002] ----------- | +--* LT int - [000000] ----------- | | +--* LCL_VAR int V02 arg2 - [000001] ----------- | | \--* CNS_INT int 0 - [000003] ----------- | \--* CNS_INT int 0 - [000005] ----------- arg1 \--* CNS_STR ref - ------------- BB02 [0001] [01E..02B) -> BB03(1) (always), preds={BB01} succs={BB03} - ------------- BB03 [0002] [02B..038) -> BB04(1) (always), preds={BB02} succs={BB04} - ------------- BB04 [0003] [038..045) -> BB05(1) (always), preds={BB03} succs={BB05} - ------------- BB05 [0004] [045..049) -> BB07(1) (always), preds={BB04} succs={BB07} - -***** BB05 [0004] -STMT00001 ( 0x045[E--] ... 0x046 ) - [000024] DA--------- * STORE_LCL_VAR int V03 loc0 - [000023] ----------- \--* CNS_INT int 1 - ------------- BB06 [0005] [049..04B) -> BB07(1) (always), preds={} succs={BB07} - ------------- BB07 [0006] [04B..05D) -> BB08(1) (always), preds={BB05,BB06} succs={BB08} - -***** BB07 [0006] -STMT00002 ( 0x04B[E--] ... 0x05B ) - [000027] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String) (exactContextHandle=0x4000000000420549) - [000025] ----------- arg0 +--* LCL_VAR int V03 loc0 - [000026] ----------- arg1 \--* CNS_STR ref - ------------- BB08 [0007] [05D..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB07} succs={BB09,BB43} - -***** BB08 [0007] -STMT00003 ( 0x05D[E--] ... 0x063 ) - [000034] ----------- * JTRUE void - [000033] ----------- \--* GE int - [000031] ----------- +--* LCL_VAR int V02 arg2 - [000032] ----------- \--* CNS_INT int 2 vector element count - ------------- BB09 [0008] [068..073) -> BB27(1) (always), preds={BB08} succs={BB27} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) - [000051] DA--------- * STORE_LCL_VAR long V04 loc1 - [000050] ----------- \--* SUB long - [000047] ----------- +--* CAST long <- int - [000046] ----------- | \--* LCL_VAR int V02 arg2 - [000049] ----------- \--* CNS_INT long 1 - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) - [000059] DA--------- * STORE_LCL_VAR int V02 arg2 - [000058] ----------- \--* SUB int - [000056] ----------- +--* LCL_VAR int V02 arg2 - [000057] ----------- \--* CNS_INT int 8 - -***** BB10 [0009] -STMT00008 ( 0x078[E--] ... 0x09B ) - [000067] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000065] ---XG------ arg0 +--* IND long - [000064] ----------- | \--* ADD byref - [000060] ----------- | +--* LCL_VAR byref V00 arg0 - [000063] ----------- | \--* MUL long - [000061] ----------- | +--* LCL_VAR long V04 loc1 - [000062] ----------- | \--* CNS_INT long 8 - [000066] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB10 [0009] -STMT00009 ( 0x078[E--] ... ??? ) - [000069] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000068] --C-------- arg0 \--* RET_EXPR int (for [000067]) - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) - [000073] --C-------- * JTRUE void - [000072] --C-------- \--* EQ int - [000070] --C-------- +--* RET_EXPR int (for [000069]) - [000071] ----------- \--* CNS_INT int 0 - ------------- BB11 [0010] [09D..0A0) (return), preds={BB10} succs={} - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) - [000242] ----------- * RETURN int - [000241] ----------- \--* CAST int <- long - [000240] ----------- \--* LCL_VAR long V04 loc1 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} - -***** BB12 [0011] -STMT00011 ( 0x0A0[E--] ... 0x0C6 ) - [000084] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000082] ---XG------ arg0 +--* IND long - [000081] ----------- | \--* ADD byref - [000074] ----------- | +--* LCL_VAR byref V00 arg0 - [000080] ----------- | \--* MUL long - [000078] ----------- | +--* SUB long - [000075] ----------- | | +--* LCL_VAR long V04 loc1 - [000077] ----------- | | \--* CNS_INT long 1 - [000079] ----------- | \--* CNS_INT long 8 - [000083] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB12 [0011] -STMT00012 ( 0x0A0[E--] ... ??? ) - [000086] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000085] --C-------- arg0 \--* RET_EXPR int (for [000084]) - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] --C-------- * JTRUE void - [000089] --C-------- \--* EQ int - [000087] --C-------- +--* RET_EXPR int (for [000086]) - [000088] ----------- \--* CNS_INT int 0 - ------------- BB13 [0012] [0C8..0CE) (return), preds={BB12} succs={} - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - [000239] ----------- * RETURN int - [000238] ----------- \--* CAST int <- long - [000237] ----------- \--* SUB long - [000234] ----------- +--* LCL_VAR long V04 loc1 - [000236] ----------- \--* CNS_INT long 1 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} - -***** BB14 [0013] -STMT00014 ( 0x0CE[E--] ... 0x0F4 ) - [000101] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000099] ---XG------ arg0 +--* IND long - [000098] ----------- | \--* ADD byref - [000091] ----------- | +--* LCL_VAR byref V00 arg0 - [000097] ----------- | \--* MUL long - [000095] ----------- | +--* SUB long - [000092] ----------- | | +--* LCL_VAR long V04 loc1 - [000094] ----------- | | \--* CNS_INT long 2 - [000096] ----------- | \--* CNS_INT long 8 - [000100] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB14 [0013] -STMT00015 ( 0x0CE[E--] ... ??? ) - [000103] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000102] --C-------- arg0 \--* RET_EXPR int (for [000101]) - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] --C-------- * JTRUE void - [000106] --C-------- \--* EQ int - [000104] --C-------- +--* RET_EXPR int (for [000103]) - [000105] ----------- \--* CNS_INT int 0 - ------------- BB15 [0014] [0F6..0FC) (return), preds={BB14} succs={} - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - [000233] ----------- * RETURN int - [000232] ----------- \--* CAST int <- long - [000231] ----------- \--* SUB long - [000228] ----------- +--* LCL_VAR long V04 loc1 - [000230] ----------- \--* CNS_INT long 2 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} - -***** BB16 [0015] -STMT00017 ( 0x0FC[E--] ... 0x122 ) - [000118] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000116] ---XG------ arg0 +--* IND long - [000115] ----------- | \--* ADD byref - [000108] ----------- | +--* LCL_VAR byref V00 arg0 - [000114] ----------- | \--* MUL long - [000112] ----------- | +--* SUB long - [000109] ----------- | | +--* LCL_VAR long V04 loc1 - [000111] ----------- | | \--* CNS_INT long 3 - [000113] ----------- | \--* CNS_INT long 8 - [000117] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB16 [0015] -STMT00018 ( 0x0FC[E--] ... ??? ) - [000120] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000119] --C-------- arg0 \--* RET_EXPR int (for [000118]) - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] --C-------- * JTRUE void - [000123] --C-------- \--* EQ int - [000121] --C-------- +--* RET_EXPR int (for [000120]) - [000122] ----------- \--* CNS_INT int 0 - ------------- BB17 [0016] [124..12A) (return), preds={BB16} succs={} - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) - [000227] ----------- * RETURN int - [000226] ----------- \--* CAST int <- long - [000225] ----------- \--* SUB long - [000222] ----------- +--* LCL_VAR long V04 loc1 - [000224] ----------- \--* CNS_INT long 3 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00020 ( 0x12A[E--] ... 0x150 ) - [000135] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000133] ---XG------ arg0 +--* IND long - [000132] ----------- | \--* ADD byref - [000125] ----------- | +--* LCL_VAR byref V00 arg0 - [000131] ----------- | \--* MUL long - [000129] ----------- | +--* SUB long - [000126] ----------- | | +--* LCL_VAR long V04 loc1 - [000128] ----------- | | \--* CNS_INT long 4 - [000130] ----------- | \--* CNS_INT long 8 - [000134] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB18 [0017] -STMT00021 ( 0x12A[E--] ... ??? ) - [000137] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000136] --C-------- arg0 \--* RET_EXPR int (for [000135]) - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] --C-------- * JTRUE void - [000140] --C-------- \--* EQ int - [000138] --C-------- +--* RET_EXPR int (for [000137]) - [000139] ----------- \--* CNS_INT int 0 - ------------- BB19 [0018] [152..158) (return), preds={BB18} succs={} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) - [000221] ----------- * RETURN int - [000220] ----------- \--* CAST int <- long - [000219] ----------- \--* SUB long - [000216] ----------- +--* LCL_VAR long V04 loc1 - [000218] ----------- \--* CNS_INT long 4 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00023 ( 0x158[E--] ... 0x17E ) - [000152] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000150] ---XG------ arg0 +--* IND long - [000149] ----------- | \--* ADD byref - [000142] ----------- | +--* LCL_VAR byref V00 arg0 - [000148] ----------- | \--* MUL long - [000146] ----------- | +--* SUB long - [000143] ----------- | | +--* LCL_VAR long V04 loc1 - [000145] ----------- | | \--* CNS_INT long 5 - [000147] ----------- | \--* CNS_INT long 8 - [000151] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB20 [0019] -STMT00024 ( 0x158[E--] ... ??? ) - [000154] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000153] --C-------- arg0 \--* RET_EXPR int (for [000152]) - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) - [000158] --C-------- * JTRUE void - [000157] --C-------- \--* EQ int - [000155] --C-------- +--* RET_EXPR int (for [000154]) - [000156] ----------- \--* CNS_INT int 0 - ------------- BB21 [0020] [180..186) (return), preds={BB20} succs={} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) - [000215] ----------- * RETURN int - [000214] ----------- \--* CAST int <- long - [000213] ----------- \--* SUB long - [000210] ----------- +--* LCL_VAR long V04 loc1 - [000212] ----------- \--* CNS_INT long 5 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00026 ( 0x186[E--] ... 0x1AC ) - [000169] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000167] ---XG------ arg0 +--* IND long - [000166] ----------- | \--* ADD byref - [000159] ----------- | +--* LCL_VAR byref V00 arg0 - [000165] ----------- | \--* MUL long - [000163] ----------- | +--* SUB long - [000160] ----------- | | +--* LCL_VAR long V04 loc1 - [000162] ----------- | | \--* CNS_INT long 6 - [000164] ----------- | \--* CNS_INT long 8 - [000168] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB22 [0021] -STMT00027 ( 0x186[E--] ... ??? ) - [000171] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000170] --C-------- arg0 \--* RET_EXPR int (for [000169]) - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) - [000175] --C-------- * JTRUE void - [000174] --C-------- \--* EQ int - [000172] --C-------- +--* RET_EXPR int (for [000171]) - [000173] ----------- \--* CNS_INT int 0 - ------------- BB23 [0022] [1AE..1B4) (return), preds={BB22} succs={} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) - [000209] ----------- * RETURN int - [000208] ----------- \--* CAST int <- long - [000207] ----------- \--* SUB long - [000204] ----------- +--* LCL_VAR long V04 loc1 - [000206] ----------- \--* CNS_INT long 6 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00029 ( 0x1B4[E--] ... 0x1DA ) - [000186] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000184] ---XG------ arg0 +--* IND long - [000183] ----------- | \--* ADD byref - [000176] ----------- | +--* LCL_VAR byref V00 arg0 - [000182] ----------- | \--* MUL long - [000180] ----------- | +--* SUB long - [000177] ----------- | | +--* LCL_VAR long V04 loc1 - [000179] ----------- | | \--* CNS_INT long 7 - [000181] ----------- | \--* CNS_INT long 8 - [000185] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB24 [0023] -STMT00030 ( 0x1B4[E--] ... ??? ) - [000188] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000187] --C-------- arg0 \--* RET_EXPR int (for [000186]) - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] --C-------- * JTRUE void - [000191] --C-------- \--* EQ int - [000189] --C-------- +--* RET_EXPR int (for [000188]) - [000190] ----------- \--* CNS_INT int 0 - ------------- BB25 [0024] [1DC..1E2) (return), preds={BB24} succs={} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) - [000203] ----------- * RETURN int - [000202] ----------- \--* CAST int <- long - [000201] ----------- \--* SUB long - [000198] ----------- +--* LCL_VAR long V04 loc1 - [000200] ----------- \--* CNS_INT long 7 - ------------- BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - [000197] DA--------- * STORE_LCL_VAR long V04 loc1 - [000196] ----------- \--* SUB long - [000193] ----------- +--* LCL_VAR long V04 loc1 - [000195] ----------- \--* CNS_INT long 8 - ------------- BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} - -***** BB27 [0026] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - [000055] ----------- * JTRUE void - [000054] ----------- \--* GE int - [000052] ----------- +--* LCL_VAR int V02 arg2 - [000053] ----------- \--* CNS_INT int 8 - ------------- BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} - -***** BB28 [0027] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) - [000246] ----------- * JTRUE void - [000245] ----------- \--* LT int - [000243] ----------- +--* LCL_VAR int V02 arg2 - [000244] ----------- \--* CNS_INT int 4 - ------------- BB29 [0028] [1F5..21F) -> BB31(0.5),BB30(0.5) (cond), preds={BB28} succs={BB30,BB31} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) - [000282] DA--------- * STORE_LCL_VAR int V02 arg2 - [000281] ----------- \--* SUB int - [000279] ----------- +--* LCL_VAR int V02 arg2 - [000280] ----------- \--* CNS_INT int 4 - -***** BB29 [0028] -STMT00051 ( 0x1FA[E--] ... 0x21D ) - [000290] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000288] ---XG------ arg0 +--* IND long - [000287] ----------- | \--* ADD byref - [000283] ----------- | +--* LCL_VAR byref V00 arg0 - [000286] ----------- | \--* MUL long - [000284] ----------- | +--* LCL_VAR long V04 loc1 - [000285] ----------- | \--* CNS_INT long 8 - [000289] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB29 [0028] -STMT00052 ( 0x1FA[E--] ... ??? ) - [000292] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000291] --C-------- arg0 \--* RET_EXPR int (for [000290]) - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] --C-------- * JTRUE void - [000295] --C-------- \--* EQ int - [000293] --C-------- +--* RET_EXPR int (for [000292]) - [000294] ----------- \--* CNS_INT int 0 - ------------- BB30 [0029] [21F..222) (return), preds={BB29} succs={} - -***** BB30 [0029] -STMT00067 ( 0x21F[E--] ... 0x221 ) - [000373] ----------- * RETURN int - [000372] ----------- \--* CAST int <- long - [000371] ----------- \--* LCL_VAR long V04 loc1 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00054 ( 0x222[E--] ... 0x248 ) - [000307] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000305] ---XG------ arg0 +--* IND long - [000304] ----------- | \--* ADD byref - [000297] ----------- | +--* LCL_VAR byref V00 arg0 - [000303] ----------- | \--* MUL long - [000301] ----------- | +--* SUB long - [000298] ----------- | | +--* LCL_VAR long V04 loc1 - [000300] ----------- | | \--* CNS_INT long 1 - [000302] ----------- | \--* CNS_INT long 8 - [000306] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB31 [0030] -STMT00055 ( 0x222[E--] ... ??? ) - [000309] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000308] --C-------- arg0 \--* RET_EXPR int (for [000307]) - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) - [000313] --C-------- * JTRUE void - [000312] --C-------- \--* EQ int - [000310] --C-------- +--* RET_EXPR int (for [000309]) - [000311] ----------- \--* CNS_INT int 0 - ------------- BB32 [0031] [24A..250) (return), preds={BB31} succs={} - -***** BB32 [0031] -STMT00066 ( 0x24A[E--] ... 0x24F ) - [000370] ----------- * RETURN int - [000369] ----------- \--* CAST int <- long - [000368] ----------- \--* SUB long - [000365] ----------- +--* LCL_VAR long V04 loc1 - [000367] ----------- \--* CNS_INT long 1 - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00057 ( 0x250[E--] ... 0x276 ) - [000324] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000322] ---XG------ arg0 +--* IND long - [000321] ----------- | \--* ADD byref - [000314] ----------- | +--* LCL_VAR byref V00 arg0 - [000320] ----------- | \--* MUL long - [000318] ----------- | +--* SUB long - [000315] ----------- | | +--* LCL_VAR long V04 loc1 - [000317] ----------- | | \--* CNS_INT long 2 - [000319] ----------- | \--* CNS_INT long 8 - [000323] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB33 [0032] -STMT00058 ( 0x250[E--] ... ??? ) - [000326] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000325] --C-------- arg0 \--* RET_EXPR int (for [000324]) - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) - [000330] --C-------- * JTRUE void - [000329] --C-------- \--* EQ int - [000327] --C-------- +--* RET_EXPR int (for [000326]) - [000328] ----------- \--* CNS_INT int 0 - ------------- BB34 [0033] [278..27E) (return), preds={BB33} succs={} - -***** BB34 [0033] -STMT00065 ( 0x278[E--] ... 0x27D ) - [000364] ----------- * RETURN int - [000363] ----------- \--* CAST int <- long - [000362] ----------- \--* SUB long - [000359] ----------- +--* LCL_VAR long V04 loc1 - [000361] ----------- \--* CNS_INT long 2 - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00060 ( 0x27E[E--] ... 0x2A4 ) - [000341] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000339] ---XG------ arg0 +--* IND long - [000338] ----------- | \--* ADD byref - [000331] ----------- | +--* LCL_VAR byref V00 arg0 - [000337] ----------- | \--* MUL long - [000335] ----------- | +--* SUB long - [000332] ----------- | | +--* LCL_VAR long V04 loc1 - [000334] ----------- | | \--* CNS_INT long 3 - [000336] ----------- | \--* CNS_INT long 8 - [000340] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB35 [0034] -STMT00061 ( 0x27E[E--] ... ??? ) - [000343] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000342] --C-------- arg0 \--* RET_EXPR int (for [000341]) - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] --C-------- * JTRUE void - [000346] --C-------- \--* EQ int - [000344] --C-------- +--* RET_EXPR int (for [000343]) - [000345] ----------- \--* CNS_INT int 0 - ------------- BB36 [0035] [2A6..2AC) (return), preds={BB35} succs={} - -***** BB36 [0035] -STMT00064 ( 0x2A6[E--] ... 0x2AB ) - [000358] ----------- * RETURN int - [000357] ----------- \--* CAST int <- long - [000356] ----------- \--* SUB long - [000353] ----------- +--* LCL_VAR long V04 loc1 - [000355] ----------- \--* CNS_INT long 3 - ------------- BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) - [000352] DA--------- * STORE_LCL_VAR long V04 loc1 - [000351] ----------- \--* SUB long - [000348] ----------- +--* LCL_VAR long V04 loc1 - [000350] ----------- \--* CNS_INT long 4 - ------------- BB38 [0037] [2B3..2DD) -> BB40(0.5),BB39(0.5) (cond), preds={BB41} succs={BB39,BB40} - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) - [000254] DA--------- * STORE_LCL_VAR int V02 arg2 - [000253] ----------- \--* SUB int - [000251] ----------- +--* LCL_VAR int V02 arg2 - [000252] ----------- \--* CNS_INT int 1 - -***** BB38 [0037] -STMT00044 ( 0x2B8[E--] ... 0x2DB ) - [000262] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000260] ---XG------ arg0 +--* IND long - [000259] ----------- | \--* ADD byref - [000255] ----------- | +--* LCL_VAR byref V00 arg0 - [000258] ----------- | \--* MUL long - [000256] ----------- | +--* LCL_VAR long V04 loc1 - [000257] ----------- | \--* CNS_INT long 8 - [000261] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB38 [0037] -STMT00045 ( 0x2B8[E--] ... ??? ) - [000264] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000263] --C-------- arg0 \--* RET_EXPR int (for [000262]) - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] --C-------- * JTRUE void - [000267] --C-------- \--* EQ int - [000265] --C-------- +--* RET_EXPR int (for [000264]) - [000266] ----------- \--* CNS_INT int 0 - ------------- BB39 [0038] [2DD..2E0) (return), preds={BB38} succs={} - -***** BB39 [0038] -STMT00048 ( 0x2DD[E--] ... 0x2DF ) - [000276] ----------- * RETURN int - [000275] ----------- \--* CAST int <- long - [000274] ----------- \--* LCL_VAR long V04 loc1 - ------------- BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - [000273] DA--------- * STORE_LCL_VAR long V04 loc1 - [000272] ----------- \--* SUB long - [000269] ----------- +--* LCL_VAR long V04 loc1 - [000271] ----------- \--* CNS_INT long 1 - ------------- BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} - -***** BB41 [0040] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - [000250] ----------- * JTRUE void - [000249] ----------- \--* GT int - [000247] ----------- +--* LCL_VAR int V02 arg2 - [000248] ----------- \--* CNS_INT int 0 - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} - -***** BB42 [0041] -STMT00049 ( 0x2E9[E--] ... 0x2EA ) - [000278] ----------- * RETURN int - [000277] ----------- \--* CNS_INT int -1 - ------------- BB43 [0042] [2EB..2F2) -> BB46(1) (always), preds={BB08} succs={BB46} - ------------- BB44 [0043] [2F2..2FA) -> BB46(0.5),BB45(0.5) (cond), preds={} succs={BB45,BB46} - ------------- BB45 [0044] [2FA..303) (return), preds={BB44} succs={} - ------------- BB46 [0045] [303..30A) -> BB49(1) (always), preds={BB43,BB44} succs={BB49} - ------------- BB47 [0046] [30A..312) -> BB49(0.5),BB48(0.5) (cond), preds={} succs={BB48,BB49} - ------------- BB48 [0047] [312..31B) (return), preds={BB47} succs={} - ------------- BB49 [0048] [31B..324) (return), preds={BB46,BB47} succs={} - -***** BB49 [0048] -STMT00004 ( 0x31B[E--] ... 0x323 ) - [000045] --C-G------ * RETURN int - [000044] --C-G------ \--* CALL int - [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 - [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 - [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Early QMARK expansion - -*************** Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..01E)-> BB02(1) (always) i -BB02 [0001] 1 BB01 1 [01E..02B)-> BB03(1) (always) i -BB03 [0002] 1 BB02 1 [02B..038)-> BB04(1) (always) i -BB04 [0003] 1 BB03 1 [038..045)-> BB05(1) (always) i -BB05 [0004] 1 BB04 1 [045..049)-> BB07(1) (always) i -BB06 [0005] 0 1 [049..04B)-> BB07(1) (always) -BB07 [0006] 2 BB05,BB06 1 [04B..05D)-> BB08(1) (always) i -BB08 [0007] 1 BB07 1 [05D..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB08 1 [068..073)-> BB27(1) (always) i -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target -BB11 [0010] 1 BB10 1 [09D..0A0) (return) i -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd -BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd -BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd -BB17 [0016] 1 BB16 1 [124..12A) (return) i -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB19 [0018] 1 BB18 1 [152..158) (return) i -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB21 [0020] 1 BB20 1 [180..186) (return) i -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB31(0.5),BB30(0.5) ( cond ) i -BB30 [0029] 1 BB29 1 [21F..222) (return) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250) (return) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E) (return) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB40(0.5),BB39(0.5) ( cond ) i bwd bwd-target -BB39 [0038] 1 BB38 1 [2DD..2E0) (return) i -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i -BB43 [0042] 1 BB08 1 [2EB..2F2)-> BB46(1) (always) i -BB44 [0043] 0 1 [2F2..2FA)-> BB46(0.5),BB45(0.5) ( cond ) -BB45 [0044] 1 BB44 1 [2FA..303) (return) -BB46 [0045] 2 BB43,BB44 1 [303..30A)-> BB49(1) (always) i -BB47 [0046] 0 1 [30A..312)-> BB49(0.5),BB48(0.5) ( cond ) -BB48 [0047] 1 BB47 1 [312..31B) (return) -BB49 [0048] 2 BB46,BB47 1 [31B..324) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..01E) -> BB02(1) (always), preds={} succs={BB02} - -***** BB01 [0000] -STMT00000 ( 0x000[E--] ... 0x01C ) - [000006] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String) (exactContextHandle=0x4000000000420549) - [000004] ----------- arg0 +--* EQ int - [000002] ----------- | +--* LT int - [000000] ----------- | | +--* LCL_VAR int V02 arg2 - [000001] ----------- | | \--* CNS_INT int 0 - [000003] ----------- | \--* CNS_INT int 0 - [000005] ----------- arg1 \--* CNS_STR ref - ------------- BB02 [0001] [01E..02B) -> BB03(1) (always), preds={BB01} succs={BB03} - ------------- BB03 [0002] [02B..038) -> BB04(1) (always), preds={BB02} succs={BB04} - ------------- BB04 [0003] [038..045) -> BB05(1) (always), preds={BB03} succs={BB05} - ------------- BB05 [0004] [045..049) -> BB07(1) (always), preds={BB04} succs={BB07} - -***** BB05 [0004] -STMT00001 ( 0x045[E--] ... 0x046 ) - [000024] DA--------- * STORE_LCL_VAR int V03 loc0 - [000023] ----------- \--* CNS_INT int 1 - ------------- BB06 [0005] [049..04B) -> BB07(1) (always), preds={} succs={BB07} - ------------- BB07 [0006] [04B..05D) -> BB08(1) (always), preds={BB05,BB06} succs={BB08} - -***** BB07 [0006] -STMT00002 ( 0x04B[E--] ... 0x05B ) - [000027] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String) (exactContextHandle=0x4000000000420549) - [000025] ----------- arg0 +--* LCL_VAR int V03 loc0 - [000026] ----------- arg1 \--* CNS_STR ref - ------------- BB08 [0007] [05D..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB07} succs={BB09,BB43} - -***** BB08 [0007] -STMT00003 ( 0x05D[E--] ... 0x063 ) - [000034] ----------- * JTRUE void - [000033] ----------- \--* GE int - [000031] ----------- +--* LCL_VAR int V02 arg2 - [000032] ----------- \--* CNS_INT int 2 vector element count - ------------- BB09 [0008] [068..073) -> BB27(1) (always), preds={BB08} succs={BB27} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) - [000051] DA--------- * STORE_LCL_VAR long V04 loc1 - [000050] ----------- \--* SUB long - [000047] ----------- +--* CAST long <- int - [000046] ----------- | \--* LCL_VAR int V02 arg2 - [000049] ----------- \--* CNS_INT long 1 - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) - [000059] DA--------- * STORE_LCL_VAR int V02 arg2 - [000058] ----------- \--* SUB int - [000056] ----------- +--* LCL_VAR int V02 arg2 - [000057] ----------- \--* CNS_INT int 8 - -***** BB10 [0009] -STMT00008 ( 0x078[E--] ... 0x09B ) - [000067] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000065] ---XG------ arg0 +--* IND long - [000064] ----------- | \--* ADD byref - [000060] ----------- | +--* LCL_VAR byref V00 arg0 - [000063] ----------- | \--* MUL long - [000061] ----------- | +--* LCL_VAR long V04 loc1 - [000062] ----------- | \--* CNS_INT long 8 - [000066] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB10 [0009] -STMT00009 ( 0x078[E--] ... ??? ) - [000069] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000068] --C-------- arg0 \--* RET_EXPR int (for [000067]) - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) - [000073] --C-------- * JTRUE void - [000072] --C-------- \--* EQ int - [000070] --C-------- +--* RET_EXPR int (for [000069]) - [000071] ----------- \--* CNS_INT int 0 - ------------- BB11 [0010] [09D..0A0) (return), preds={BB10} succs={} - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) - [000242] ----------- * RETURN int - [000241] ----------- \--* CAST int <- long - [000240] ----------- \--* LCL_VAR long V04 loc1 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} - -***** BB12 [0011] -STMT00011 ( 0x0A0[E--] ... 0x0C6 ) - [000084] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000082] ---XG------ arg0 +--* IND long - [000081] ----------- | \--* ADD byref - [000074] ----------- | +--* LCL_VAR byref V00 arg0 - [000080] ----------- | \--* MUL long - [000078] ----------- | +--* SUB long - [000075] ----------- | | +--* LCL_VAR long V04 loc1 - [000077] ----------- | | \--* CNS_INT long 1 - [000079] ----------- | \--* CNS_INT long 8 - [000083] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB12 [0011] -STMT00012 ( 0x0A0[E--] ... ??? ) - [000086] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000085] --C-------- arg0 \--* RET_EXPR int (for [000084]) - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] --C-------- * JTRUE void - [000089] --C-------- \--* EQ int - [000087] --C-------- +--* RET_EXPR int (for [000086]) - [000088] ----------- \--* CNS_INT int 0 - ------------- BB13 [0012] [0C8..0CE) (return), preds={BB12} succs={} - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - [000239] ----------- * RETURN int - [000238] ----------- \--* CAST int <- long - [000237] ----------- \--* SUB long - [000234] ----------- +--* LCL_VAR long V04 loc1 - [000236] ----------- \--* CNS_INT long 1 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} - -***** BB14 [0013] -STMT00014 ( 0x0CE[E--] ... 0x0F4 ) - [000101] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000099] ---XG------ arg0 +--* IND long - [000098] ----------- | \--* ADD byref - [000091] ----------- | +--* LCL_VAR byref V00 arg0 - [000097] ----------- | \--* MUL long - [000095] ----------- | +--* SUB long - [000092] ----------- | | +--* LCL_VAR long V04 loc1 - [000094] ----------- | | \--* CNS_INT long 2 - [000096] ----------- | \--* CNS_INT long 8 - [000100] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB14 [0013] -STMT00015 ( 0x0CE[E--] ... ??? ) - [000103] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000102] --C-------- arg0 \--* RET_EXPR int (for [000101]) - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] --C-------- * JTRUE void - [000106] --C-------- \--* EQ int - [000104] --C-------- +--* RET_EXPR int (for [000103]) - [000105] ----------- \--* CNS_INT int 0 - ------------- BB15 [0014] [0F6..0FC) (return), preds={BB14} succs={} - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - [000233] ----------- * RETURN int - [000232] ----------- \--* CAST int <- long - [000231] ----------- \--* SUB long - [000228] ----------- +--* LCL_VAR long V04 loc1 - [000230] ----------- \--* CNS_INT long 2 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} - -***** BB16 [0015] -STMT00017 ( 0x0FC[E--] ... 0x122 ) - [000118] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000116] ---XG------ arg0 +--* IND long - [000115] ----------- | \--* ADD byref - [000108] ----------- | +--* LCL_VAR byref V00 arg0 - [000114] ----------- | \--* MUL long - [000112] ----------- | +--* SUB long - [000109] ----------- | | +--* LCL_VAR long V04 loc1 - [000111] ----------- | | \--* CNS_INT long 3 - [000113] ----------- | \--* CNS_INT long 8 - [000117] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB16 [0015] -STMT00018 ( 0x0FC[E--] ... ??? ) - [000120] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000119] --C-------- arg0 \--* RET_EXPR int (for [000118]) - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] --C-------- * JTRUE void - [000123] --C-------- \--* EQ int - [000121] --C-------- +--* RET_EXPR int (for [000120]) - [000122] ----------- \--* CNS_INT int 0 - ------------- BB17 [0016] [124..12A) (return), preds={BB16} succs={} - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) - [000227] ----------- * RETURN int - [000226] ----------- \--* CAST int <- long - [000225] ----------- \--* SUB long - [000222] ----------- +--* LCL_VAR long V04 loc1 - [000224] ----------- \--* CNS_INT long 3 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00020 ( 0x12A[E--] ... 0x150 ) - [000135] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000133] ---XG------ arg0 +--* IND long - [000132] ----------- | \--* ADD byref - [000125] ----------- | +--* LCL_VAR byref V00 arg0 - [000131] ----------- | \--* MUL long - [000129] ----------- | +--* SUB long - [000126] ----------- | | +--* LCL_VAR long V04 loc1 - [000128] ----------- | | \--* CNS_INT long 4 - [000130] ----------- | \--* CNS_INT long 8 - [000134] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB18 [0017] -STMT00021 ( 0x12A[E--] ... ??? ) - [000137] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000136] --C-------- arg0 \--* RET_EXPR int (for [000135]) - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] --C-------- * JTRUE void - [000140] --C-------- \--* EQ int - [000138] --C-------- +--* RET_EXPR int (for [000137]) - [000139] ----------- \--* CNS_INT int 0 - ------------- BB19 [0018] [152..158) (return), preds={BB18} succs={} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) - [000221] ----------- * RETURN int - [000220] ----------- \--* CAST int <- long - [000219] ----------- \--* SUB long - [000216] ----------- +--* LCL_VAR long V04 loc1 - [000218] ----------- \--* CNS_INT long 4 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00023 ( 0x158[E--] ... 0x17E ) - [000152] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000150] ---XG------ arg0 +--* IND long - [000149] ----------- | \--* ADD byref - [000142] ----------- | +--* LCL_VAR byref V00 arg0 - [000148] ----------- | \--* MUL long - [000146] ----------- | +--* SUB long - [000143] ----------- | | +--* LCL_VAR long V04 loc1 - [000145] ----------- | | \--* CNS_INT long 5 - [000147] ----------- | \--* CNS_INT long 8 - [000151] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB20 [0019] -STMT00024 ( 0x158[E--] ... ??? ) - [000154] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000153] --C-------- arg0 \--* RET_EXPR int (for [000152]) - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) - [000158] --C-------- * JTRUE void - [000157] --C-------- \--* EQ int - [000155] --C-------- +--* RET_EXPR int (for [000154]) - [000156] ----------- \--* CNS_INT int 0 - ------------- BB21 [0020] [180..186) (return), preds={BB20} succs={} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) - [000215] ----------- * RETURN int - [000214] ----------- \--* CAST int <- long - [000213] ----------- \--* SUB long - [000210] ----------- +--* LCL_VAR long V04 loc1 - [000212] ----------- \--* CNS_INT long 5 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00026 ( 0x186[E--] ... 0x1AC ) - [000169] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000167] ---XG------ arg0 +--* IND long - [000166] ----------- | \--* ADD byref - [000159] ----------- | +--* LCL_VAR byref V00 arg0 - [000165] ----------- | \--* MUL long - [000163] ----------- | +--* SUB long - [000160] ----------- | | +--* LCL_VAR long V04 loc1 - [000162] ----------- | | \--* CNS_INT long 6 - [000164] ----------- | \--* CNS_INT long 8 - [000168] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB22 [0021] -STMT00027 ( 0x186[E--] ... ??? ) - [000171] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000170] --C-------- arg0 \--* RET_EXPR int (for [000169]) - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) - [000175] --C-------- * JTRUE void - [000174] --C-------- \--* EQ int - [000172] --C-------- +--* RET_EXPR int (for [000171]) - [000173] ----------- \--* CNS_INT int 0 - ------------- BB23 [0022] [1AE..1B4) (return), preds={BB22} succs={} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) - [000209] ----------- * RETURN int - [000208] ----------- \--* CAST int <- long - [000207] ----------- \--* SUB long - [000204] ----------- +--* LCL_VAR long V04 loc1 - [000206] ----------- \--* CNS_INT long 6 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00029 ( 0x1B4[E--] ... 0x1DA ) - [000186] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000184] ---XG------ arg0 +--* IND long - [000183] ----------- | \--* ADD byref - [000176] ----------- | +--* LCL_VAR byref V00 arg0 - [000182] ----------- | \--* MUL long - [000180] ----------- | +--* SUB long - [000177] ----------- | | +--* LCL_VAR long V04 loc1 - [000179] ----------- | | \--* CNS_INT long 7 - [000181] ----------- | \--* CNS_INT long 8 - [000185] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB24 [0023] -STMT00030 ( 0x1B4[E--] ... ??? ) - [000188] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000187] --C-------- arg0 \--* RET_EXPR int (for [000186]) - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] --C-------- * JTRUE void - [000191] --C-------- \--* EQ int - [000189] --C-------- +--* RET_EXPR int (for [000188]) - [000190] ----------- \--* CNS_INT int 0 - ------------- BB25 [0024] [1DC..1E2) (return), preds={BB24} succs={} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) - [000203] ----------- * RETURN int - [000202] ----------- \--* CAST int <- long - [000201] ----------- \--* SUB long - [000198] ----------- +--* LCL_VAR long V04 loc1 - [000200] ----------- \--* CNS_INT long 7 - ------------- BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - [000197] DA--------- * STORE_LCL_VAR long V04 loc1 - [000196] ----------- \--* SUB long - [000193] ----------- +--* LCL_VAR long V04 loc1 - [000195] ----------- \--* CNS_INT long 8 - ------------- BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} - -***** BB27 [0026] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - [000055] ----------- * JTRUE void - [000054] ----------- \--* GE int - [000052] ----------- +--* LCL_VAR int V02 arg2 - [000053] ----------- \--* CNS_INT int 8 - ------------- BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} - -***** BB28 [0027] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) - [000246] ----------- * JTRUE void - [000245] ----------- \--* LT int - [000243] ----------- +--* LCL_VAR int V02 arg2 - [000244] ----------- \--* CNS_INT int 4 - ------------- BB29 [0028] [1F5..21F) -> BB31(0.5),BB30(0.5) (cond), preds={BB28} succs={BB30,BB31} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) - [000282] DA--------- * STORE_LCL_VAR int V02 arg2 - [000281] ----------- \--* SUB int - [000279] ----------- +--* LCL_VAR int V02 arg2 - [000280] ----------- \--* CNS_INT int 4 - -***** BB29 [0028] -STMT00051 ( 0x1FA[E--] ... 0x21D ) - [000290] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000288] ---XG------ arg0 +--* IND long - [000287] ----------- | \--* ADD byref - [000283] ----------- | +--* LCL_VAR byref V00 arg0 - [000286] ----------- | \--* MUL long - [000284] ----------- | +--* LCL_VAR long V04 loc1 - [000285] ----------- | \--* CNS_INT long 8 - [000289] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB29 [0028] -STMT00052 ( 0x1FA[E--] ... ??? ) - [000292] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000291] --C-------- arg0 \--* RET_EXPR int (for [000290]) - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] --C-------- * JTRUE void - [000295] --C-------- \--* EQ int - [000293] --C-------- +--* RET_EXPR int (for [000292]) - [000294] ----------- \--* CNS_INT int 0 - ------------- BB30 [0029] [21F..222) (return), preds={BB29} succs={} - -***** BB30 [0029] -STMT00067 ( 0x21F[E--] ... 0x221 ) - [000373] ----------- * RETURN int - [000372] ----------- \--* CAST int <- long - [000371] ----------- \--* LCL_VAR long V04 loc1 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00054 ( 0x222[E--] ... 0x248 ) - [000307] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000305] ---XG------ arg0 +--* IND long - [000304] ----------- | \--* ADD byref - [000297] ----------- | +--* LCL_VAR byref V00 arg0 - [000303] ----------- | \--* MUL long - [000301] ----------- | +--* SUB long - [000298] ----------- | | +--* LCL_VAR long V04 loc1 - [000300] ----------- | | \--* CNS_INT long 1 - [000302] ----------- | \--* CNS_INT long 8 - [000306] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB31 [0030] -STMT00055 ( 0x222[E--] ... ??? ) - [000309] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000308] --C-------- arg0 \--* RET_EXPR int (for [000307]) - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) - [000313] --C-------- * JTRUE void - [000312] --C-------- \--* EQ int - [000310] --C-------- +--* RET_EXPR int (for [000309]) - [000311] ----------- \--* CNS_INT int 0 - ------------- BB32 [0031] [24A..250) (return), preds={BB31} succs={} - -***** BB32 [0031] -STMT00066 ( 0x24A[E--] ... 0x24F ) - [000370] ----------- * RETURN int - [000369] ----------- \--* CAST int <- long - [000368] ----------- \--* SUB long - [000365] ----------- +--* LCL_VAR long V04 loc1 - [000367] ----------- \--* CNS_INT long 1 - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00057 ( 0x250[E--] ... 0x276 ) - [000324] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000322] ---XG------ arg0 +--* IND long - [000321] ----------- | \--* ADD byref - [000314] ----------- | +--* LCL_VAR byref V00 arg0 - [000320] ----------- | \--* MUL long - [000318] ----------- | +--* SUB long - [000315] ----------- | | +--* LCL_VAR long V04 loc1 - [000317] ----------- | | \--* CNS_INT long 2 - [000319] ----------- | \--* CNS_INT long 8 - [000323] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB33 [0032] -STMT00058 ( 0x250[E--] ... ??? ) - [000326] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000325] --C-------- arg0 \--* RET_EXPR int (for [000324]) - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) - [000330] --C-------- * JTRUE void - [000329] --C-------- \--* EQ int - [000327] --C-------- +--* RET_EXPR int (for [000326]) - [000328] ----------- \--* CNS_INT int 0 - ------------- BB34 [0033] [278..27E) (return), preds={BB33} succs={} - -***** BB34 [0033] -STMT00065 ( 0x278[E--] ... 0x27D ) - [000364] ----------- * RETURN int - [000363] ----------- \--* CAST int <- long - [000362] ----------- \--* SUB long - [000359] ----------- +--* LCL_VAR long V04 loc1 - [000361] ----------- \--* CNS_INT long 2 - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00060 ( 0x27E[E--] ... 0x2A4 ) - [000341] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000339] ---XG------ arg0 +--* IND long - [000338] ----------- | \--* ADD byref - [000331] ----------- | +--* LCL_VAR byref V00 arg0 - [000337] ----------- | \--* MUL long - [000335] ----------- | +--* SUB long - [000332] ----------- | | +--* LCL_VAR long V04 loc1 - [000334] ----------- | | \--* CNS_INT long 3 - [000336] ----------- | \--* CNS_INT long 8 - [000340] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB35 [0034] -STMT00061 ( 0x27E[E--] ... ??? ) - [000343] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000342] --C-------- arg0 \--* RET_EXPR int (for [000341]) - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] --C-------- * JTRUE void - [000346] --C-------- \--* EQ int - [000344] --C-------- +--* RET_EXPR int (for [000343]) - [000345] ----------- \--* CNS_INT int 0 - ------------- BB36 [0035] [2A6..2AC) (return), preds={BB35} succs={} - -***** BB36 [0035] -STMT00064 ( 0x2A6[E--] ... 0x2AB ) - [000358] ----------- * RETURN int - [000357] ----------- \--* CAST int <- long - [000356] ----------- \--* SUB long - [000353] ----------- +--* LCL_VAR long V04 loc1 - [000355] ----------- \--* CNS_INT long 3 - ------------- BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) - [000352] DA--------- * STORE_LCL_VAR long V04 loc1 - [000351] ----------- \--* SUB long - [000348] ----------- +--* LCL_VAR long V04 loc1 - [000350] ----------- \--* CNS_INT long 4 - ------------- BB38 [0037] [2B3..2DD) -> BB40(0.5),BB39(0.5) (cond), preds={BB41} succs={BB39,BB40} - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) - [000254] DA--------- * STORE_LCL_VAR int V02 arg2 - [000253] ----------- \--* SUB int - [000251] ----------- +--* LCL_VAR int V02 arg2 - [000252] ----------- \--* CNS_INT int 1 - -***** BB38 [0037] -STMT00044 ( 0x2B8[E--] ... 0x2DB ) - [000262] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000260] ---XG------ arg0 +--* IND long - [000259] ----------- | \--* ADD byref - [000255] ----------- | +--* LCL_VAR byref V00 arg0 - [000258] ----------- | \--* MUL long - [000256] ----------- | +--* LCL_VAR long V04 loc1 - [000257] ----------- | \--* CNS_INT long 8 - [000261] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB38 [0037] -STMT00045 ( 0x2B8[E--] ... ??? ) - [000264] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000263] --C-------- arg0 \--* RET_EXPR int (for [000262]) - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] --C-------- * JTRUE void - [000267] --C-------- \--* EQ int - [000265] --C-------- +--* RET_EXPR int (for [000264]) - [000266] ----------- \--* CNS_INT int 0 - ------------- BB39 [0038] [2DD..2E0) (return), preds={BB38} succs={} - -***** BB39 [0038] -STMT00048 ( 0x2DD[E--] ... 0x2DF ) - [000276] ----------- * RETURN int - [000275] ----------- \--* CAST int <- long - [000274] ----------- \--* LCL_VAR long V04 loc1 - ------------- BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - [000273] DA--------- * STORE_LCL_VAR long V04 loc1 - [000272] ----------- \--* SUB long - [000269] ----------- +--* LCL_VAR long V04 loc1 - [000271] ----------- \--* CNS_INT long 1 - ------------- BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} - -***** BB41 [0040] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - [000250] ----------- * JTRUE void - [000249] ----------- \--* GT int - [000247] ----------- +--* LCL_VAR int V02 arg2 - [000248] ----------- \--* CNS_INT int 0 - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} - -***** BB42 [0041] -STMT00049 ( 0x2E9[E--] ... 0x2EA ) - [000278] ----------- * RETURN int - [000277] ----------- \--* CNS_INT int -1 - ------------- BB43 [0042] [2EB..2F2) -> BB46(1) (always), preds={BB08} succs={BB46} - ------------- BB44 [0043] [2F2..2FA) -> BB46(0.5),BB45(0.5) (cond), preds={} succs={BB45,BB46} - ------------- BB45 [0044] [2FA..303) (return), preds={BB44} succs={} - ------------- BB46 [0045] [303..30A) -> BB49(1) (always), preds={BB43,BB44} succs={BB49} - ------------- BB47 [0046] [30A..312) -> BB49(0.5),BB48(0.5) (cond), preds={} succs={BB48,BB49} - ------------- BB48 [0047] [312..31B) (return), preds={BB47} succs={} - ------------- BB49 [0048] [31B..324) (return), preds={BB46,BB47} succs={} - -***** BB49 [0048] -STMT00004 ( 0x31B[E--] ... 0x323 ) - [000045] --C-G------ * RETURN int - [000044] --C-G------ \--* CALL int - [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 - [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 - [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Finishing PHASE Expand patchpoints [no changes] - -*************** Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Finishing PHASE Indirect call transform [no changes] - -*************** Starting PHASE Post-import -BB06 was not imported, marking as removed (0) -BB44 was not imported, marking as removed (1) -BB45 was not imported, marking as removed (2) -BB47 was not imported, marking as removed (3) -BB48 was not imported, marking as removed (4) - -*************** Finishing PHASE Post-import -Trees after Post-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..01E)-> BB02(1) (always) i -BB02 [0001] 1 BB01 1 [01E..02B)-> BB03(1) (always) i -BB03 [0002] 1 BB02 1 [02B..038)-> BB04(1) (always) i -BB04 [0003] 1 BB03 1 [038..045)-> BB05(1) (always) i -BB05 [0004] 1 BB04 1 [045..049)-> BB07(1) (always) i -BB07 [0006] 1 BB05 1 [04B..05D)-> BB08(1) (always) i -BB08 [0007] 1 BB07 1 [05D..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB08 1 [068..073)-> BB27(1) (always) i -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target -BB11 [0010] 1 BB10 1 [09D..0A0) (return) i -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd -BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd -BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd -BB17 [0016] 1 BB16 1 [124..12A) (return) i -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB19 [0018] 1 BB18 1 [152..158) (return) i -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB21 [0020] 1 BB20 1 [180..186) (return) i -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB31(0.5),BB30(0.5) ( cond ) i -BB30 [0029] 1 BB29 1 [21F..222) (return) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250) (return) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E) (return) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB40(0.5),BB39(0.5) ( cond ) i bwd bwd-target -BB39 [0038] 1 BB38 1 [2DD..2E0) (return) i -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i -BB43 [0042] 1 BB08 1 [2EB..2F2)-> BB46(1) (always) i -BB46 [0045] 1 BB43 1 [303..30A)-> BB49(1) (always) i -BB49 [0048] 1 BB46 1 [31B..324) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..01E) -> BB02(1) (always), preds={} succs={BB02} - -***** BB01 [0000] -STMT00000 ( 0x000[E--] ... 0x01C ) - [000006] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String) (exactContextHandle=0x4000000000420549) - [000004] ----------- arg0 +--* EQ int - [000002] ----------- | +--* LT int - [000000] ----------- | | +--* LCL_VAR int V02 arg2 - [000001] ----------- | | \--* CNS_INT int 0 - [000003] ----------- | \--* CNS_INT int 0 - [000005] ----------- arg1 \--* CNS_STR ref - ------------- BB02 [0001] [01E..02B) -> BB03(1) (always), preds={BB01} succs={BB03} - ------------- BB03 [0002] [02B..038) -> BB04(1) (always), preds={BB02} succs={BB04} - ------------- BB04 [0003] [038..045) -> BB05(1) (always), preds={BB03} succs={BB05} - ------------- BB05 [0004] [045..049) -> BB07(1) (always), preds={BB04} succs={BB07} - -***** BB05 [0004] -STMT00001 ( 0x045[E--] ... 0x046 ) - [000024] DA--------- * STORE_LCL_VAR int V03 loc0 - [000023] ----------- \--* CNS_INT int 1 - ------------- BB07 [0006] [04B..05D) -> BB08(1) (always), preds={BB05} succs={BB08} - -***** BB07 [0006] -STMT00002 ( 0x04B[E--] ... 0x05B ) - [000027] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String) (exactContextHandle=0x4000000000420549) - [000025] ----------- arg0 +--* LCL_VAR int V03 loc0 - [000026] ----------- arg1 \--* CNS_STR ref - ------------- BB08 [0007] [05D..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB07} succs={BB09,BB43} - -***** BB08 [0007] -STMT00003 ( 0x05D[E--] ... 0x063 ) - [000034] ----------- * JTRUE void - [000033] ----------- \--* GE int - [000031] ----------- +--* LCL_VAR int V02 arg2 - [000032] ----------- \--* CNS_INT int 2 vector element count - ------------- BB09 [0008] [068..073) -> BB27(1) (always), preds={BB08} succs={BB27} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) - [000051] DA--------- * STORE_LCL_VAR long V04 loc1 - [000050] ----------- \--* SUB long - [000047] ----------- +--* CAST long <- int - [000046] ----------- | \--* LCL_VAR int V02 arg2 - [000049] ----------- \--* CNS_INT long 1 - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) - [000059] DA--------- * STORE_LCL_VAR int V02 arg2 - [000058] ----------- \--* SUB int - [000056] ----------- +--* LCL_VAR int V02 arg2 - [000057] ----------- \--* CNS_INT int 8 - -***** BB10 [0009] -STMT00008 ( 0x078[E--] ... 0x09B ) - [000067] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000065] ---XG------ arg0 +--* IND long - [000064] ----------- | \--* ADD byref - [000060] ----------- | +--* LCL_VAR byref V00 arg0 - [000063] ----------- | \--* MUL long - [000061] ----------- | +--* LCL_VAR long V04 loc1 - [000062] ----------- | \--* CNS_INT long 8 - [000066] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB10 [0009] -STMT00009 ( 0x078[E--] ... ??? ) - [000069] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000068] --C-------- arg0 \--* RET_EXPR int (for [000067]) - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) - [000073] --C-------- * JTRUE void - [000072] --C-------- \--* EQ int - [000070] --C-------- +--* RET_EXPR int (for [000069]) - [000071] ----------- \--* CNS_INT int 0 - ------------- BB11 [0010] [09D..0A0) (return), preds={BB10} succs={} - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) - [000242] ----------- * RETURN int - [000241] ----------- \--* CAST int <- long - [000240] ----------- \--* LCL_VAR long V04 loc1 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} - -***** BB12 [0011] -STMT00011 ( 0x0A0[E--] ... 0x0C6 ) - [000084] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000082] ---XG------ arg0 +--* IND long - [000081] ----------- | \--* ADD byref - [000074] ----------- | +--* LCL_VAR byref V00 arg0 - [000080] ----------- | \--* MUL long - [000078] ----------- | +--* SUB long - [000075] ----------- | | +--* LCL_VAR long V04 loc1 - [000077] ----------- | | \--* CNS_INT long 1 - [000079] ----------- | \--* CNS_INT long 8 - [000083] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB12 [0011] -STMT00012 ( 0x0A0[E--] ... ??? ) - [000086] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000085] --C-------- arg0 \--* RET_EXPR int (for [000084]) - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] --C-------- * JTRUE void - [000089] --C-------- \--* EQ int - [000087] --C-------- +--* RET_EXPR int (for [000086]) - [000088] ----------- \--* CNS_INT int 0 - ------------- BB13 [0012] [0C8..0CE) (return), preds={BB12} succs={} - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - [000239] ----------- * RETURN int - [000238] ----------- \--* CAST int <- long - [000237] ----------- \--* SUB long - [000234] ----------- +--* LCL_VAR long V04 loc1 - [000236] ----------- \--* CNS_INT long 1 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} - -***** BB14 [0013] -STMT00014 ( 0x0CE[E--] ... 0x0F4 ) - [000101] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000099] ---XG------ arg0 +--* IND long - [000098] ----------- | \--* ADD byref - [000091] ----------- | +--* LCL_VAR byref V00 arg0 - [000097] ----------- | \--* MUL long - [000095] ----------- | +--* SUB long - [000092] ----------- | | +--* LCL_VAR long V04 loc1 - [000094] ----------- | | \--* CNS_INT long 2 - [000096] ----------- | \--* CNS_INT long 8 - [000100] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB14 [0013] -STMT00015 ( 0x0CE[E--] ... ??? ) - [000103] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000102] --C-------- arg0 \--* RET_EXPR int (for [000101]) - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] --C-------- * JTRUE void - [000106] --C-------- \--* EQ int - [000104] --C-------- +--* RET_EXPR int (for [000103]) - [000105] ----------- \--* CNS_INT int 0 - ------------- BB15 [0014] [0F6..0FC) (return), preds={BB14} succs={} - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - [000233] ----------- * RETURN int - [000232] ----------- \--* CAST int <- long - [000231] ----------- \--* SUB long - [000228] ----------- +--* LCL_VAR long V04 loc1 - [000230] ----------- \--* CNS_INT long 2 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} - -***** BB16 [0015] -STMT00017 ( 0x0FC[E--] ... 0x122 ) - [000118] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000116] ---XG------ arg0 +--* IND long - [000115] ----------- | \--* ADD byref - [000108] ----------- | +--* LCL_VAR byref V00 arg0 - [000114] ----------- | \--* MUL long - [000112] ----------- | +--* SUB long - [000109] ----------- | | +--* LCL_VAR long V04 loc1 - [000111] ----------- | | \--* CNS_INT long 3 - [000113] ----------- | \--* CNS_INT long 8 - [000117] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB16 [0015] -STMT00018 ( 0x0FC[E--] ... ??? ) - [000120] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000119] --C-------- arg0 \--* RET_EXPR int (for [000118]) - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] --C-------- * JTRUE void - [000123] --C-------- \--* EQ int - [000121] --C-------- +--* RET_EXPR int (for [000120]) - [000122] ----------- \--* CNS_INT int 0 - ------------- BB17 [0016] [124..12A) (return), preds={BB16} succs={} - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) - [000227] ----------- * RETURN int - [000226] ----------- \--* CAST int <- long - [000225] ----------- \--* SUB long - [000222] ----------- +--* LCL_VAR long V04 loc1 - [000224] ----------- \--* CNS_INT long 3 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00020 ( 0x12A[E--] ... 0x150 ) - [000135] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000133] ---XG------ arg0 +--* IND long - [000132] ----------- | \--* ADD byref - [000125] ----------- | +--* LCL_VAR byref V00 arg0 - [000131] ----------- | \--* MUL long - [000129] ----------- | +--* SUB long - [000126] ----------- | | +--* LCL_VAR long V04 loc1 - [000128] ----------- | | \--* CNS_INT long 4 - [000130] ----------- | \--* CNS_INT long 8 - [000134] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB18 [0017] -STMT00021 ( 0x12A[E--] ... ??? ) - [000137] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000136] --C-------- arg0 \--* RET_EXPR int (for [000135]) - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] --C-------- * JTRUE void - [000140] --C-------- \--* EQ int - [000138] --C-------- +--* RET_EXPR int (for [000137]) - [000139] ----------- \--* CNS_INT int 0 - ------------- BB19 [0018] [152..158) (return), preds={BB18} succs={} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) - [000221] ----------- * RETURN int - [000220] ----------- \--* CAST int <- long - [000219] ----------- \--* SUB long - [000216] ----------- +--* LCL_VAR long V04 loc1 - [000218] ----------- \--* CNS_INT long 4 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00023 ( 0x158[E--] ... 0x17E ) - [000152] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000150] ---XG------ arg0 +--* IND long - [000149] ----------- | \--* ADD byref - [000142] ----------- | +--* LCL_VAR byref V00 arg0 - [000148] ----------- | \--* MUL long - [000146] ----------- | +--* SUB long - [000143] ----------- | | +--* LCL_VAR long V04 loc1 - [000145] ----------- | | \--* CNS_INT long 5 - [000147] ----------- | \--* CNS_INT long 8 - [000151] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB20 [0019] -STMT00024 ( 0x158[E--] ... ??? ) - [000154] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000153] --C-------- arg0 \--* RET_EXPR int (for [000152]) - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) - [000158] --C-------- * JTRUE void - [000157] --C-------- \--* EQ int - [000155] --C-------- +--* RET_EXPR int (for [000154]) - [000156] ----------- \--* CNS_INT int 0 - ------------- BB21 [0020] [180..186) (return), preds={BB20} succs={} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) - [000215] ----------- * RETURN int - [000214] ----------- \--* CAST int <- long - [000213] ----------- \--* SUB long - [000210] ----------- +--* LCL_VAR long V04 loc1 - [000212] ----------- \--* CNS_INT long 5 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00026 ( 0x186[E--] ... 0x1AC ) - [000169] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000167] ---XG------ arg0 +--* IND long - [000166] ----------- | \--* ADD byref - [000159] ----------- | +--* LCL_VAR byref V00 arg0 - [000165] ----------- | \--* MUL long - [000163] ----------- | +--* SUB long - [000160] ----------- | | +--* LCL_VAR long V04 loc1 - [000162] ----------- | | \--* CNS_INT long 6 - [000164] ----------- | \--* CNS_INT long 8 - [000168] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB22 [0021] -STMT00027 ( 0x186[E--] ... ??? ) - [000171] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000170] --C-------- arg0 \--* RET_EXPR int (for [000169]) - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) - [000175] --C-------- * JTRUE void - [000174] --C-------- \--* EQ int - [000172] --C-------- +--* RET_EXPR int (for [000171]) - [000173] ----------- \--* CNS_INT int 0 - ------------- BB23 [0022] [1AE..1B4) (return), preds={BB22} succs={} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) - [000209] ----------- * RETURN int - [000208] ----------- \--* CAST int <- long - [000207] ----------- \--* SUB long - [000204] ----------- +--* LCL_VAR long V04 loc1 - [000206] ----------- \--* CNS_INT long 6 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00029 ( 0x1B4[E--] ... 0x1DA ) - [000186] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000184] ---XG------ arg0 +--* IND long - [000183] ----------- | \--* ADD byref - [000176] ----------- | +--* LCL_VAR byref V00 arg0 - [000182] ----------- | \--* MUL long - [000180] ----------- | +--* SUB long - [000177] ----------- | | +--* LCL_VAR long V04 loc1 - [000179] ----------- | | \--* CNS_INT long 7 - [000181] ----------- | \--* CNS_INT long 8 - [000185] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB24 [0023] -STMT00030 ( 0x1B4[E--] ... ??? ) - [000188] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000187] --C-------- arg0 \--* RET_EXPR int (for [000186]) - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] --C-------- * JTRUE void - [000191] --C-------- \--* EQ int - [000189] --C-------- +--* RET_EXPR int (for [000188]) - [000190] ----------- \--* CNS_INT int 0 - ------------- BB25 [0024] [1DC..1E2) (return), preds={BB24} succs={} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) - [000203] ----------- * RETURN int - [000202] ----------- \--* CAST int <- long - [000201] ----------- \--* SUB long - [000198] ----------- +--* LCL_VAR long V04 loc1 - [000200] ----------- \--* CNS_INT long 7 - ------------- BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - [000197] DA--------- * STORE_LCL_VAR long V04 loc1 - [000196] ----------- \--* SUB long - [000193] ----------- +--* LCL_VAR long V04 loc1 - [000195] ----------- \--* CNS_INT long 8 - ------------- BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} - -***** BB27 [0026] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - [000055] ----------- * JTRUE void - [000054] ----------- \--* GE int - [000052] ----------- +--* LCL_VAR int V02 arg2 - [000053] ----------- \--* CNS_INT int 8 - ------------- BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} - -***** BB28 [0027] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) - [000246] ----------- * JTRUE void - [000245] ----------- \--* LT int - [000243] ----------- +--* LCL_VAR int V02 arg2 - [000244] ----------- \--* CNS_INT int 4 - ------------- BB29 [0028] [1F5..21F) -> BB31(0.5),BB30(0.5) (cond), preds={BB28} succs={BB30,BB31} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) - [000282] DA--------- * STORE_LCL_VAR int V02 arg2 - [000281] ----------- \--* SUB int - [000279] ----------- +--* LCL_VAR int V02 arg2 - [000280] ----------- \--* CNS_INT int 4 - -***** BB29 [0028] -STMT00051 ( 0x1FA[E--] ... 0x21D ) - [000290] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000288] ---XG------ arg0 +--* IND long - [000287] ----------- | \--* ADD byref - [000283] ----------- | +--* LCL_VAR byref V00 arg0 - [000286] ----------- | \--* MUL long - [000284] ----------- | +--* LCL_VAR long V04 loc1 - [000285] ----------- | \--* CNS_INT long 8 - [000289] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB29 [0028] -STMT00052 ( 0x1FA[E--] ... ??? ) - [000292] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000291] --C-------- arg0 \--* RET_EXPR int (for [000290]) - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] --C-------- * JTRUE void - [000295] --C-------- \--* EQ int - [000293] --C-------- +--* RET_EXPR int (for [000292]) - [000294] ----------- \--* CNS_INT int 0 - ------------- BB30 [0029] [21F..222) (return), preds={BB29} succs={} - -***** BB30 [0029] -STMT00067 ( 0x21F[E--] ... 0x221 ) - [000373] ----------- * RETURN int - [000372] ----------- \--* CAST int <- long - [000371] ----------- \--* LCL_VAR long V04 loc1 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00054 ( 0x222[E--] ... 0x248 ) - [000307] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000305] ---XG------ arg0 +--* IND long - [000304] ----------- | \--* ADD byref - [000297] ----------- | +--* LCL_VAR byref V00 arg0 - [000303] ----------- | \--* MUL long - [000301] ----------- | +--* SUB long - [000298] ----------- | | +--* LCL_VAR long V04 loc1 - [000300] ----------- | | \--* CNS_INT long 1 - [000302] ----------- | \--* CNS_INT long 8 - [000306] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB31 [0030] -STMT00055 ( 0x222[E--] ... ??? ) - [000309] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000308] --C-------- arg0 \--* RET_EXPR int (for [000307]) - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) - [000313] --C-------- * JTRUE void - [000312] --C-------- \--* EQ int - [000310] --C-------- +--* RET_EXPR int (for [000309]) - [000311] ----------- \--* CNS_INT int 0 - ------------- BB32 [0031] [24A..250) (return), preds={BB31} succs={} - -***** BB32 [0031] -STMT00066 ( 0x24A[E--] ... 0x24F ) - [000370] ----------- * RETURN int - [000369] ----------- \--* CAST int <- long - [000368] ----------- \--* SUB long - [000365] ----------- +--* LCL_VAR long V04 loc1 - [000367] ----------- \--* CNS_INT long 1 - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00057 ( 0x250[E--] ... 0x276 ) - [000324] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000322] ---XG------ arg0 +--* IND long - [000321] ----------- | \--* ADD byref - [000314] ----------- | +--* LCL_VAR byref V00 arg0 - [000320] ----------- | \--* MUL long - [000318] ----------- | +--* SUB long - [000315] ----------- | | +--* LCL_VAR long V04 loc1 - [000317] ----------- | | \--* CNS_INT long 2 - [000319] ----------- | \--* CNS_INT long 8 - [000323] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB33 [0032] -STMT00058 ( 0x250[E--] ... ??? ) - [000326] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000325] --C-------- arg0 \--* RET_EXPR int (for [000324]) - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) - [000330] --C-------- * JTRUE void - [000329] --C-------- \--* EQ int - [000327] --C-------- +--* RET_EXPR int (for [000326]) - [000328] ----------- \--* CNS_INT int 0 - ------------- BB34 [0033] [278..27E) (return), preds={BB33} succs={} - -***** BB34 [0033] -STMT00065 ( 0x278[E--] ... 0x27D ) - [000364] ----------- * RETURN int - [000363] ----------- \--* CAST int <- long - [000362] ----------- \--* SUB long - [000359] ----------- +--* LCL_VAR long V04 loc1 - [000361] ----------- \--* CNS_INT long 2 - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00060 ( 0x27E[E--] ... 0x2A4 ) - [000341] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000339] ---XG------ arg0 +--* IND long - [000338] ----------- | \--* ADD byref - [000331] ----------- | +--* LCL_VAR byref V00 arg0 - [000337] ----------- | \--* MUL long - [000335] ----------- | +--* SUB long - [000332] ----------- | | +--* LCL_VAR long V04 loc1 - [000334] ----------- | | \--* CNS_INT long 3 - [000336] ----------- | \--* CNS_INT long 8 - [000340] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB35 [0034] -STMT00061 ( 0x27E[E--] ... ??? ) - [000343] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000342] --C-------- arg0 \--* RET_EXPR int (for [000341]) - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] --C-------- * JTRUE void - [000346] --C-------- \--* EQ int - [000344] --C-------- +--* RET_EXPR int (for [000343]) - [000345] ----------- \--* CNS_INT int 0 - ------------- BB36 [0035] [2A6..2AC) (return), preds={BB35} succs={} - -***** BB36 [0035] -STMT00064 ( 0x2A6[E--] ... 0x2AB ) - [000358] ----------- * RETURN int - [000357] ----------- \--* CAST int <- long - [000356] ----------- \--* SUB long - [000353] ----------- +--* LCL_VAR long V04 loc1 - [000355] ----------- \--* CNS_INT long 3 - ------------- BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) - [000352] DA--------- * STORE_LCL_VAR long V04 loc1 - [000351] ----------- \--* SUB long - [000348] ----------- +--* LCL_VAR long V04 loc1 - [000350] ----------- \--* CNS_INT long 4 - ------------- BB38 [0037] [2B3..2DD) -> BB40(0.5),BB39(0.5) (cond), preds={BB41} succs={BB39,BB40} - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) - [000254] DA--------- * STORE_LCL_VAR int V02 arg2 - [000253] ----------- \--* SUB int - [000251] ----------- +--* LCL_VAR int V02 arg2 - [000252] ----------- \--* CNS_INT int 1 - -***** BB38 [0037] -STMT00044 ( 0x2B8[E--] ... 0x2DB ) - [000262] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000260] ---XG------ arg0 +--* IND long - [000259] ----------- | \--* ADD byref - [000255] ----------- | +--* LCL_VAR byref V00 arg0 - [000258] ----------- | \--* MUL long - [000256] ----------- | +--* LCL_VAR long V04 loc1 - [000257] ----------- | \--* CNS_INT long 8 - [000261] ----------- arg1 \--* LCL_VAR long V01 arg1 - -***** BB38 [0037] -STMT00045 ( 0x2B8[E--] ... ??? ) - [000264] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000263] --C-------- arg0 \--* RET_EXPR int (for [000262]) - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] --C-------- * JTRUE void - [000267] --C-------- \--* EQ int - [000265] --C-------- +--* RET_EXPR int (for [000264]) - [000266] ----------- \--* CNS_INT int 0 - ------------- BB39 [0038] [2DD..2E0) (return), preds={BB38} succs={} - -***** BB39 [0038] -STMT00048 ( 0x2DD[E--] ... 0x2DF ) - [000276] ----------- * RETURN int - [000275] ----------- \--* CAST int <- long - [000274] ----------- \--* LCL_VAR long V04 loc1 - ------------- BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - [000273] DA--------- * STORE_LCL_VAR long V04 loc1 - [000272] ----------- \--* SUB long - [000269] ----------- +--* LCL_VAR long V04 loc1 - [000271] ----------- \--* CNS_INT long 1 - ------------- BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} - -***** BB41 [0040] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - [000250] ----------- * JTRUE void - [000249] ----------- \--* GT int - [000247] ----------- +--* LCL_VAR int V02 arg2 - [000248] ----------- \--* CNS_INT int 0 - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} - -***** BB42 [0041] -STMT00049 ( 0x2E9[E--] ... 0x2EA ) - [000278] ----------- * RETURN int - [000277] ----------- \--* CNS_INT int -1 - ------------- BB43 [0042] [2EB..2F2) -> BB46(1) (always), preds={BB08} succs={BB46} - ------------- BB46 [0045] [303..30A) -> BB49(1) (always), preds={BB43} succs={BB49} - ------------- BB49 [0048] [31B..324) (return), preds={BB46} succs={} - -***** BB49 [0048] -STMT00004 ( 0x31B[E--] ... 0x323 ) - [000045] --C-G------ * RETURN int - [000044] --C-G------ \--* CALL int - [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 - [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 - [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Save contexts around async calls - -*************** Finishing PHASE Save contexts around async calls [no changes] - -*************** Starting PHASE Morph - Init - -*************** Finishing PHASE Morph - Init [no changes] - -*************** Starting PHASE Morph - Inlining -INLINER: no pgo data -Expanding INLINE_CANDIDATE in statement STMT00000 in BB01: -STMT00000 ( 0x000[E--] ... 0x01C ) - [000006] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String) (exactContextHandle=0x4000000000420549) - [000004] ----------- arg0 +--* EQ int - [000002] ----------- | +--* LT int - [000000] ----------- | | +--* LCL_VAR int V02 arg2 - [000001] ----------- | | \--* CNS_INT int 0 - [000003] ----------- | \--* CNS_INT int 0 - [000005] ----------- arg1 \--* CNS_STR ref -IL argument #0: - [000004] ----------- * EQ int - [000002] ----------- +--* LT int - [000000] ----------- | +--* LCL_VAR int V02 arg2 - [000001] ----------- | \--* CNS_INT int 0 - [000003] ----------- \--* CNS_INT int 0 - -IL argument #1: is a constant or invariant - [000005] ----------- * CNS_STR ref - -INLINER: inlineInfo.tokenLookupContextHandle for System.Diagnostics.Debug:Assert(bool,System.String) set to 0x4000000000420549: - -Invoking compiler for the inlinee method System.Diagnostics.Debug:Assert(bool,System.String) : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 03 ldarg.1 -IL_0002 7e ca 00 00 04 ldsfld 0x40000CA -IL_0007 28 83 5c 00 06 call 0x6005C83 -IL_000c 2a ret - -INLINER impTokenLookupContextHandle for System.Diagnostics.Debug:Assert(bool,System.String) is 0x4000000000420549. -0 return registers for return type void -*************** In compInitDebuggingInfo() for System.Diagnostics.Debug:Assert(bool,System.String) -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.Diagnostics.Debug:Assert(bool,System.String) -Jump targets: - none -New Basic Block BB01 [0049] created. -BB01 [0049] [000..00D) -Basic block list for 'System.Diagnostics.Debug:Assert(bool,System.String)' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0049] 1 1 [000..00D) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000006] Starting PHASE Pre-import - -*************** Inline @[000006] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0049] 1 1 [000..00D) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0049] [000..00D) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000006] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000006] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0049] 1 1 [000..00D) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0049] [000..00D) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000006] Starting PHASE Canonicalize entry - -*************** Inline @[000006] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000006] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.Diagnostics.Debug:Assert(bool,System.String)' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 6 (V06 tmp1) called for Inlining Arg. -Marked V06 as a single def temp - - [ 1] 1 (0x001) ldarg.1 - [ 2] 2 (0x002) ldsfld 040000CA - [ 3] 7 (0x007) call 06005C83 -In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 - -CheckCanInline: fetching method info for inline candidate Assert -- context 4000000000420549 -Class context: System.Diagnostics.Debug -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Diagnostics.Debug:Assert(bool,System.String)' calling 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00068 ( 0x000[E--] ... ??? ) <- INLRT @ 0x000[E--] - [000378] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String,System.String) (exactContextHandle=0x4000000000420549) - [000375] ----------- arg0 +--* LCL_VAR int V06 tmp1 - [000376] ----------- arg1 +--* CNS_STR ref - [000377] ----------- arg2 \--* CNS_STR ref "" - - [ 0] 12 (0x00c) ret -*************** Inline @[000006] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0049] 1 1 [000..00D) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0049] [000..00D) (return), preds={} succs={} - -***** BB01 [0049] -STMT00068 ( 0x000[E--] ... ??? ) <- INLRT @ 0x000[E--] - [000378] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String,System.String) (exactContextHandle=0x4000000000420549) - [000375] ----------- arg0 +--* LCL_VAR int V06 tmp1 - [000376] ----------- arg1 +--* CNS_STR ref - [000377] ----------- arg2 \--* CNS_STR ref "" - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000006] Starting PHASE Early QMARK expansion - -*************** Inline @[000006] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0049] 1 1 [000..00D) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0049] [000..00D) (return), preds={} succs={} - -***** BB01 [0049] -STMT00068 ( 0x000[E--] ... ??? ) <- INLRT @ 0x000[E--] - [000378] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String,System.String) (exactContextHandle=0x4000000000420549) - [000375] ----------- arg0 +--* LCL_VAR int V06 tmp1 - [000376] ----------- arg1 +--* CNS_STR ref - [000377] ----------- arg2 \--* CNS_STR ref "" - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000006] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000006] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000006] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000006] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000006] Starting PHASE Post-import - -*************** Inline @[000006] Finishing PHASE Post-import [no changes] - -*************** Inline @[000006] Starting PHASE Save contexts around async calls - -*************** Inline @[000006] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000006] ----------- - -Arguments setup: - -Inlinee method body: -Inserting inlinee code into BB01 - -STMT00068 ( INL01 @ 0x000[E--] ... ??? ) <- INLRT @ 0x000[E--] - [000378] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String,System.String) (exactContextHandle=0x4000000000420549) - [000374] ----------- arg0 +--* CAST int <- ubyte <- int - [000004] ----------- | \--* EQ int - [000002] ----------- | +--* LT int - [000000] ----------- | | +--* LCL_VAR int V02 arg2 - [000001] ----------- | | \--* CNS_INT int 0 - [000003] ----------- | \--* CNS_INT int 0 - [000376] ----------- arg1 +--* CNS_STR ref - [000377] ----------- arg2 \--* CNS_STR ref "" - -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.Diagnostics.Debug:Assert(bool,System.String) (13 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Diagnostics.Debug:Assert(bool,System.String)' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' -Expanding INLINE_CANDIDATE in statement STMT00068 in BB01: -STMT00068 ( INL01 @ 0x000[E--] ... ??? ) <- INLRT @ 0x000[E--] - [000378] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String,System.String) (exactContextHandle=0x4000000000420549) - [000374] ----------- arg0 +--* CAST int <- ubyte <- int - [000004] ----------- | \--* EQ int - [000002] ----------- | +--* LT int - [000000] ----------- | | +--* LCL_VAR int V02 arg2 - [000001] ----------- | | \--* CNS_INT int 0 - [000003] ----------- | \--* CNS_INT int 0 - [000376] ----------- arg1 +--* CNS_STR ref - [000377] ----------- arg2 \--* CNS_STR ref "" -IL argument #0: - [000374] ----------- * CAST int <- ubyte <- int - [000004] ----------- \--* EQ int - [000002] ----------- +--* LT int - [000000] ----------- | +--* LCL_VAR int V02 arg2 - [000001] ----------- | \--* CNS_INT int 0 - [000003] ----------- \--* CNS_INT int 0 - -IL argument #1: is a constant or invariant - [000376] ----------- * CNS_STR ref - -IL argument #2: is a constant or invariant - [000377] ----------- * CNS_STR ref "" - -INLINER: inlineInfo.tokenLookupContextHandle for System.Diagnostics.Debug:Assert(bool,System.String,System.String) set to 0x4000000000420549: - -Invoking compiler for the inlinee method System.Diagnostics.Debug:Assert(bool,System.String,System.String) : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 2d 07 brtrue.s 7 (IL_000a) -IL_0003 03 ldarg.1 -IL_0004 04 ldarg.2 -IL_0005 28 88 5c 00 06 call 0x6005C88 -IL_000a 2a ret - -INLINER impTokenLookupContextHandle for System.Diagnostics.Debug:Assert(bool,System.String,System.String) is 0x4000000000420549. -0 return registers for return type void -*************** In compInitDebuggingInfo() for System.Diagnostics.Debug:Assert(bool,System.String,System.String) -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.Diagnostics.Debug:Assert(bool,System.String,System.String) -Jump targets: - IL_000a -New Basic Block BB01 [0050] created. -BB01 [0050] [000..003) -New Basic Block BB02 [0051] created. -BB02 [0051] [003..00A) -New Basic Block BB03 [0052] created. -BB03 [0052] [00A..00B) -setting likelihood of BB01 -> BB03 to 0.5 -setting likelihood of BB01 -> BB02 to 0.5 -setting likelihood of BB02 -> BB03 to 1 -Basic block list for 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0050] 1 1 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) -BB02 [0051] 1 BB01 1 [003..00A)-> BB03(1) (always) -BB03 [0052] 2 BB01,BB02 1 [00A..00B) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000378] Starting PHASE Pre-import - -*************** Inline @[000378] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0050] 1 1 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) -BB02 [0051] 1 BB01 1 [003..00A)-> BB03(1) (always) -BB03 [0052] 2 BB01,BB02 1 [00A..00B) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0050] [000..003) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} - ------------- BB02 [0051] [003..00A) -> BB03(1) (always), preds={BB01} succs={BB03} - ------------- BB03 [0052] [00A..00B) (return), preds={BB01,BB02} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000378] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000378] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0050] 1 1 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) -BB02 [0051] 1 BB01 1 [003..00A)-> BB03(1) (always) -BB03 [0052] 2 BB01,BB02 1 [00A..00B) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0050] [000..003) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} - ------------- BB02 [0051] [003..00A) -> BB03(1) (always), preds={BB01} succs={BB03} - ------------- BB03 [0052] [00A..00B) (return), preds={BB01,BB02} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000378] Starting PHASE Canonicalize entry - -*************** Inline @[000378] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000378] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 7 (V07 tmp2) called for Inlining Arg. -Marked V07 as a single def temp - - [ 1] 1 (0x001) brtrue.s - -STMT00069 ( 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000384] ----------- * JTRUE void - [000383] ----------- \--* NE int - [000381] ----------- +--* LCL_VAR int V07 tmp2 - [000382] ----------- \--* CNS_INT int 0 - -impImportBlockPending for BB02 - -impImportBlockPending for BB03 - -Importing BB03 (PC=010) of 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' - [ 0] 10 (0x00a) ret -Importing BB02 (PC=003) of 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' - [ 0] 3 (0x003) ldarg.1 - [ 1] 4 (0x004) ldarg.2 - [ 2] 5 (0x005) call 06005C88 -In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 -INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' calling '' - -INLINER: Not marking NOINLINE because it's already marked as such -INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' - - -STMT00070 ( 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000387] --C-G------ * CALL void - [000385] ----------- arg0 +--* CNS_STR ref - [000386] ----------- arg1 \--* CNS_STR ref "" - -impImportBlockPending for BB03 - -** Note: inlinee IL was partially imported -- imported 10 of 11 bytes of method IL - -*************** Inline @[000378] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0050] 1 1 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) i -BB02 [0051] 1 BB01 1 [003..00A)-> BB03(1) (always) i -BB03 [0052] 2 BB01,BB02 1 [00A..00B) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0050] [000..003) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} - -***** BB01 [0050] -STMT00069 ( 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000384] ----------- * JTRUE void - [000383] ----------- \--* NE int - [000381] ----------- +--* LCL_VAR int V07 tmp2 - [000382] ----------- \--* CNS_INT int 0 - ------------- BB02 [0051] [003..00A) -> BB03(1) (always), preds={BB01} succs={BB03} - -***** BB02 [0051] -STMT00070 ( 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000387] --C-G------ * CALL void - [000385] ----------- arg0 +--* CNS_STR ref - [000386] ----------- arg1 \--* CNS_STR ref "" - ------------- BB03 [0052] [00A..00B) (return), preds={BB01,BB02} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000378] Starting PHASE Early QMARK expansion - -*************** Inline @[000378] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0050] 1 1 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) i -BB02 [0051] 1 BB01 1 [003..00A)-> BB03(1) (always) i -BB03 [0052] 2 BB01,BB02 1 [00A..00B) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0050] [000..003) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} - -***** BB01 [0050] -STMT00069 ( 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000384] ----------- * JTRUE void - [000383] ----------- \--* NE int - [000381] ----------- +--* LCL_VAR int V07 tmp2 - [000382] ----------- \--* CNS_INT int 0 - ------------- BB02 [0051] [003..00A) -> BB03(1) (always), preds={BB01} succs={BB03} - -***** BB02 [0051] -STMT00070 ( 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000387] --C-G------ * CALL void - [000385] ----------- arg0 +--* CNS_STR ref - [000386] ----------- arg1 \--* CNS_STR ref "" - ------------- BB03 [0052] [00A..00B) (return), preds={BB01,BB02} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000378] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000378] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000378] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000378] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000378] Starting PHASE Post-import - -*************** Inline @[000378] Finishing PHASE Post-import [no changes] - -*************** Inline @[000378] Starting PHASE Save contexts around async calls - -*************** Inline @[000378] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000378] ----------- - -Arguments setup: - -Inlinee method body: -Inserting inlinee blocks -New Basic Block BB50 [0053] created. -BB02 previous predecessor was BB01, now is BB50 -setting likelihood of BB50 -> BB02 from 1 to 1 -setting likelihood of BB01 -> BB50 to 1 -split BB01 after the inlinee call site; after portion is now BB50 - -Convert bbKind of BB53 to BBJ_ALWAYS to bottom block BB50 -setting likelihood of BB53 -> BB50 to 1 -fgInlineAppendStatements: no gc ref inline locals. - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB51 [0050] 1 BB01 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB51 1 [000..001)-> BB53(1) (always) i -BB53 [0052] 2 BB51,BB52 1 [000..001)-> BB50(1) (always) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB51 [0050] [000..001) -> BB53(0.5),BB52(0.5) (cond), preds={BB01} succs={BB52,BB53} - -***** BB51 [0050] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000384] ----------- * JTRUE void - [000383] ----------- \--* NE int - [000380] ----------- +--* CAST int <- ubyte <- int - [000374] ----------- | \--* CAST int <- ubyte <- int - [000004] ----------- | \--* EQ int - [000002] ----------- | +--* LT int - [000000] ----------- | | +--* LCL_VAR int V02 arg2 - [000001] ----------- | | \--* CNS_INT int 0 - [000003] ----------- | \--* CNS_INT int 0 - [000382] ----------- \--* CNS_INT int 0 - ------------- BB52 [0051] [000..001) -> BB53(1) (always), preds={BB51} succs={BB53} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000387] --C-G------ * CALL void - [000385] ----------- arg0 +--* CNS_STR ref - [000386] ----------- arg1 \--* CNS_STR ref "" - ------------- BB53 [0052] [000..001) -> BB50(1) (always), preds={BB51,BB52} succs={BB50} - -------------------------------------------------------------------------------------------------------------------- -Successfully inlined System.Diagnostics.Debug:Assert(bool,System.String,System.String) (11 IL bytes) (depth 2) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- - -BB01 becomes empty -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' -Expanding INLINE_CANDIDATE in statement STMT00002 in BB07: -STMT00002 ( 0x04B[E--] ... 0x05B ) - [000027] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String) (exactContextHandle=0x4000000000420549) - [000025] ----------- arg0 +--* LCL_VAR int V03 loc0 - [000026] ----------- arg1 \--* CNS_STR ref -IL argument #0: is a local var - [000025] ----------- * LCL_VAR int V03 loc0 - -IL argument #1: is a constant or invariant - [000026] ----------- * CNS_STR ref - -INLINER: inlineInfo.tokenLookupContextHandle for System.Diagnostics.Debug:Assert(bool,System.String) set to 0x4000000000420549: - -Invoking compiler for the inlinee method System.Diagnostics.Debug:Assert(bool,System.String) : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 03 ldarg.1 -IL_0002 7e ca 00 00 04 ldsfld 0x40000CA -IL_0007 28 83 5c 00 06 call 0x6005C83 -IL_000c 2a ret - -INLINER impTokenLookupContextHandle for System.Diagnostics.Debug:Assert(bool,System.String) is 0x4000000000420549. -0 return registers for return type void -*************** In compInitDebuggingInfo() for System.Diagnostics.Debug:Assert(bool,System.String) -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.Diagnostics.Debug:Assert(bool,System.String) -Jump targets: - none -New Basic Block BB01 [0054] created. -BB01 [0054] [000..00D) -Basic block list for 'System.Diagnostics.Debug:Assert(bool,System.String)' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0054] 1 1 [000..00D) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000027] Starting PHASE Pre-import - -*************** Inline @[000027] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0054] 1 1 [000..00D) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0054] [000..00D) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000027] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000027] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0054] 1 1 [000..00D) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0054] [000..00D) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000027] Starting PHASE Canonicalize entry - -*************** Inline @[000027] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000027] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.Diagnostics.Debug:Assert(bool,System.String)' - [ 0] 0 (0x000) ldarg.0 - [ 1] 1 (0x001) ldarg.1 - [ 2] 2 (0x002) ldsfld 040000CA - [ 3] 7 (0x007) call 06005C83 -In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 - -CheckCanInline: fetching method info for inline candidate Assert -- context 4000000000420549 -Class context: System.Diagnostics.Debug -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Diagnostics.Debug:Assert(bool,System.String)' calling 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' -INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' - - -STMT00071 ( 0x000[E--] ... ??? ) <- INLRT @ 0x04B[E--] - [000391] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String,System.String) (exactContextHandle=0x4000000000420549) - [000025] ----------- arg0 +--* LCL_VAR int V03 loc0 - [000389] ----------- arg1 +--* CNS_STR ref - [000390] ----------- arg2 \--* CNS_STR ref "" - - [ 0] 12 (0x00c) ret -*************** Inline @[000027] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0054] 1 1 [000..00D) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0054] [000..00D) (return), preds={} succs={} - -***** BB01 [0054] -STMT00071 ( 0x000[E--] ... ??? ) <- INLRT @ 0x04B[E--] - [000391] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String,System.String) (exactContextHandle=0x4000000000420549) - [000025] ----------- arg0 +--* LCL_VAR int V03 loc0 - [000389] ----------- arg1 +--* CNS_STR ref - [000390] ----------- arg2 \--* CNS_STR ref "" - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000027] Starting PHASE Early QMARK expansion - -*************** Inline @[000027] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0054] 1 1 [000..00D) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0054] [000..00D) (return), preds={} succs={} - -***** BB01 [0054] -STMT00071 ( 0x000[E--] ... ??? ) <- INLRT @ 0x04B[E--] - [000391] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String,System.String) (exactContextHandle=0x4000000000420549) - [000025] ----------- arg0 +--* LCL_VAR int V03 loc0 - [000389] ----------- arg1 +--* CNS_STR ref - [000390] ----------- arg2 \--* CNS_STR ref "" - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000027] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000027] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000027] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000027] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000027] Starting PHASE Post-import - -*************** Inline @[000027] Finishing PHASE Post-import [no changes] - -*************** Inline @[000027] Starting PHASE Save contexts around async calls - -*************** Inline @[000027] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000027] ----------- - -Arguments setup: - -Inlinee method body: -Inserting inlinee code into BB07 - -STMT00071 ( INL03 @ 0x000[E--] ... ??? ) <- INLRT @ 0x04B[E--] - [000391] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String,System.String) (exactContextHandle=0x4000000000420549) - [000025] ----------- arg0 +--* LCL_VAR int V03 loc0 - [000389] ----------- arg1 +--* CNS_STR ref - [000390] ----------- arg2 \--* CNS_STR ref "" - -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.Diagnostics.Debug:Assert(bool,System.String) (13 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Diagnostics.Debug:Assert(bool,System.String)' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' -Expanding INLINE_CANDIDATE in statement STMT00071 in BB07: -STMT00071 ( INL03 @ 0x000[E--] ... ??? ) <- INLRT @ 0x04B[E--] - [000391] I-C-G------ * CALL void System.Diagnostics.Debug:Assert(bool,System.String,System.String) (exactContextHandle=0x4000000000420549) - [000025] ----------- arg0 +--* LCL_VAR int V03 loc0 - [000389] ----------- arg1 +--* CNS_STR ref - [000390] ----------- arg2 \--* CNS_STR ref "" -IL argument #0: is a local var - [000025] ----------- * LCL_VAR int V03 loc0 - -IL argument #1: is a constant or invariant - [000389] ----------- * CNS_STR ref - -IL argument #2: is a constant or invariant - [000390] ----------- * CNS_STR ref "" - -INLINER: inlineInfo.tokenLookupContextHandle for System.Diagnostics.Debug:Assert(bool,System.String,System.String) set to 0x4000000000420549: - -Invoking compiler for the inlinee method System.Diagnostics.Debug:Assert(bool,System.String,System.String) : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 2d 07 brtrue.s 7 (IL_000a) -IL_0003 03 ldarg.1 -IL_0004 04 ldarg.2 -IL_0005 28 88 5c 00 06 call 0x6005C88 -IL_000a 2a ret - -INLINER impTokenLookupContextHandle for System.Diagnostics.Debug:Assert(bool,System.String,System.String) is 0x4000000000420549. -0 return registers for return type void -*************** In compInitDebuggingInfo() for System.Diagnostics.Debug:Assert(bool,System.String,System.String) -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.Diagnostics.Debug:Assert(bool,System.String,System.String) -Jump targets: - IL_000a -New Basic Block BB01 [0055] created. -BB01 [0055] [000..003) -New Basic Block BB02 [0056] created. -BB02 [0056] [003..00A) -New Basic Block BB03 [0057] created. -BB03 [0057] [00A..00B) -setting likelihood of BB01 -> BB03 to 0.5 -setting likelihood of BB01 -> BB02 to 0.5 -setting likelihood of BB02 -> BB03 to 1 -Basic block list for 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0055] 1 1 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) -BB02 [0056] 1 BB01 1 [003..00A)-> BB03(1) (always) -BB03 [0057] 2 BB01,BB02 1 [00A..00B) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000391] Starting PHASE Pre-import - -*************** Inline @[000391] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0055] 1 1 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) -BB02 [0056] 1 BB01 1 [003..00A)-> BB03(1) (always) -BB03 [0057] 2 BB01,BB02 1 [00A..00B) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0055] [000..003) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} - ------------- BB02 [0056] [003..00A) -> BB03(1) (always), preds={BB01} succs={BB03} - ------------- BB03 [0057] [00A..00B) (return), preds={BB01,BB02} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000391] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000391] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0055] 1 1 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) -BB02 [0056] 1 BB01 1 [003..00A)-> BB03(1) (always) -BB03 [0057] 2 BB01,BB02 1 [00A..00B) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0055] [000..003) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} - ------------- BB02 [0056] [003..00A) -> BB03(1) (always), preds={BB01} succs={BB03} - ------------- BB03 [0057] [00A..00B) (return), preds={BB01,BB02} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000391] Starting PHASE Canonicalize entry - -*************** Inline @[000391] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000391] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' - [ 0] 0 (0x000) ldarg.0 - [ 1] 1 (0x001) brtrue.s - -STMT00072 ( 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000395] ----------- * JTRUE void - [000394] ----------- \--* NE int - [000025] ----------- +--* LCL_VAR int V03 loc0 - [000393] ----------- \--* CNS_INT int 0 - -impImportBlockPending for BB02 - -impImportBlockPending for BB03 - -Importing BB03 (PC=010) of 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' - [ 0] 10 (0x00a) ret -Importing BB02 (PC=003) of 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' - [ 0] 3 (0x003) ldarg.1 - [ 1] 4 (0x004) ldarg.2 - [ 2] 5 (0x005) call 06005C88 -In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 -INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' calling '' - -INLINER: Not marking NOINLINE because it's already marked as such -INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' - - -STMT00073 ( 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000398] --C-G------ * CALL void - [000396] ----------- arg0 +--* CNS_STR ref - [000397] ----------- arg1 \--* CNS_STR ref "" - -impImportBlockPending for BB03 - -** Note: inlinee IL was partially imported -- imported 10 of 11 bytes of method IL - -*************** Inline @[000391] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0055] 1 1 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) i -BB02 [0056] 1 BB01 1 [003..00A)-> BB03(1) (always) i -BB03 [0057] 2 BB01,BB02 1 [00A..00B) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0055] [000..003) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} - -***** BB01 [0055] -STMT00072 ( 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000395] ----------- * JTRUE void - [000394] ----------- \--* NE int - [000025] ----------- +--* LCL_VAR int V03 loc0 - [000393] ----------- \--* CNS_INT int 0 - ------------- BB02 [0056] [003..00A) -> BB03(1) (always), preds={BB01} succs={BB03} - -***** BB02 [0056] -STMT00073 ( 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000398] --C-G------ * CALL void - [000396] ----------- arg0 +--* CNS_STR ref - [000397] ----------- arg1 \--* CNS_STR ref "" - ------------- BB03 [0057] [00A..00B) (return), preds={BB01,BB02} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000391] Starting PHASE Early QMARK expansion - -*************** Inline @[000391] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0055] 1 1 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) i -BB02 [0056] 1 BB01 1 [003..00A)-> BB03(1) (always) i -BB03 [0057] 2 BB01,BB02 1 [00A..00B) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0055] [000..003) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} - -***** BB01 [0055] -STMT00072 ( 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000395] ----------- * JTRUE void - [000394] ----------- \--* NE int - [000025] ----------- +--* LCL_VAR int V03 loc0 - [000393] ----------- \--* CNS_INT int 0 - ------------- BB02 [0056] [003..00A) -> BB03(1) (always), preds={BB01} succs={BB03} - -***** BB02 [0056] -STMT00073 ( 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000398] --C-G------ * CALL void - [000396] ----------- arg0 +--* CNS_STR ref - [000397] ----------- arg1 \--* CNS_STR ref "" - ------------- BB03 [0057] [00A..00B) (return), preds={BB01,BB02} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000391] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000391] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000391] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000391] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000391] Starting PHASE Post-import - -*************** Inline @[000391] Finishing PHASE Post-import [no changes] - -*************** Inline @[000391] Starting PHASE Save contexts around async calls - -*************** Inline @[000391] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000391] ----------- - -Arguments setup: - -Inlinee method body: -Inserting inlinee blocks -New Basic Block BB54 [0058] created. -BB08 previous predecessor was BB07, now is BB54 -setting likelihood of BB54 -> BB08 from 1 to 1 -setting likelihood of BB07 -> BB54 to 1 -split BB07 after the inlinee call site; after portion is now BB54 - -Convert bbKind of BB57 to BBJ_ALWAYS to bottom block BB54 -setting likelihood of BB57 -> BB54 to 1 -fgInlineAppendStatements: no gc ref inline locals. - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB55 [0055] 1 BB07 1 [04B..04C)-> BB57(0.5),BB56(0.5) ( cond ) i -BB56 [0056] 1 BB55 1 [04B..04C)-> BB57(1) (always) i -BB57 [0057] 2 BB55,BB56 1 [04B..04C)-> BB54(1) (always) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB55 [0055] [04B..04C) -> BB57(0.5),BB56(0.5) (cond), preds={BB07} succs={BB56,BB57} - -***** BB55 [0055] -STMT00072 ( INL04 @ 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000395] ----------- * JTRUE void - [000394] ----------- \--* NE int - [000025] ----------- +--* LCL_VAR int V03 loc0 - [000393] ----------- \--* CNS_INT int 0 - ------------- BB56 [0056] [04B..04C) -> BB57(1) (always), preds={BB55} succs={BB57} - -***** BB56 [0056] -STMT00073 ( INL04 @ 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000398] --C-G------ * CALL void - [000396] ----------- arg0 +--* CNS_STR ref - [000397] ----------- arg1 \--* CNS_STR ref "" - ------------- BB57 [0057] [04B..04C) -> BB54(1) (always), preds={BB55,BB56} succs={BB54} - -------------------------------------------------------------------------------------------------------------------- -Successfully inlined System.Diagnostics.Debug:Assert(bool,System.String,System.String) (11 IL bytes) (depth 2) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- - -BB07 becomes empty -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Diagnostics.Debug:Assert(bool,System.String,System.String)' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' -Expanding INLINE_CANDIDATE in statement STMT00008 in BB10: -STMT00008 ( 0x078[E--] ... 0x09B ) - [000067] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000065] ---XG------ arg0 +--* IND long - [000064] ----------- | \--* ADD byref - [000060] ----------- | +--* LCL_VAR byref V00 arg0 - [000063] ----------- | \--* MUL long - [000061] ----------- | +--* LCL_VAR long V04 loc1 - [000062] ----------- | \--* CNS_INT long 8 - [000066] ----------- arg1 \--* LCL_VAR long V01 arg1 -IL argument #0: has global refs has side effects - [000065] ---XG------ * IND long - [000064] ----------- \--* ADD byref - [000060] ----------- +--* LCL_VAR byref V00 arg0 - [000063] ----------- \--* MUL long - [000061] ----------- +--* LCL_VAR long V04 loc1 - [000062] ----------- \--* CNS_INT long 8 - -IL argument #1: is a local var - [000066] ----------- * LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: - -Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 03 ldarg.1 -IL_0002 fe 01 ceq -IL_0004 2a ret - -INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -Jump targets: - none -New Basic Block BB01 [0059] created. -BB01 [0059] [000..005) -Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0059] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000067] Starting PHASE Pre-import - -*************** Inline @[000067] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0059] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0059] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000067] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000067] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0059] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0059] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000067] Starting PHASE Canonicalize entry - -*************** Inline @[000067] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000067] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 8 (V08 tmp3) called for Inlining Arg. -Marked V08 as a single def temp - - [ 1] 1 (0x001) ldarg.1 - [ 2] 2 (0x002) ceq - [ 1] 4 (0x004) ret - - Inlinee Return expression (before normalization) => - [000401] ----------- * EQ int - [000400] ----------- +--* LCL_VAR long V08 tmp3 - [000066] ----------- \--* LCL_VAR long V01 arg1 - - - Inlinee Return expression (after normalization) => - [000401] ----------- * EQ int - [000400] ----------- +--* LCL_VAR long V08 tmp3 - [000066] ----------- \--* LCL_VAR long V01 arg1 - -** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL - -*************** Inline @[000067] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0059] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0059] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000067] Starting PHASE Early QMARK expansion - -*************** Inline @[000067] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0059] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0059] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000067] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000067] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000067] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000067] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000067] Starting PHASE Post-import - -*************** Inline @[000067] Finishing PHASE Post-import [no changes] - -*************** Inline @[000067] Starting PHASE Save contexts around async calls - -*************** Inline @[000067] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000067] ----------- - -Arguments setup: -STMT00074 ( 0x078[E--] ... ??? ) - [000402] DA-XG------ * STORE_LCL_VAR long V08 tmp3 - [000065] ---XG------ \--* IND long - [000064] ----------- \--* ADD byref - [000060] ----------- +--* LCL_VAR byref V00 arg0 - [000063] ----------- \--* MUL long - [000061] ----------- +--* LCL_VAR long V04 loc1 - [000062] ----------- \--* CNS_INT long 8 - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000068] with [000401] - [000068] --C-------- * RET_EXPR int (for [000067]) -> [000401] - -Inserting the inline return expression - [000401] ----------- * EQ int - [000400] ----------- +--* LCL_VAR long V08 tmp3 - [000066] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00009 in BB10: -STMT00009 ( 0x078[E--] ... ??? ) - [000069] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000401] ----------- arg0 \--* EQ int - [000400] ----------- +--* LCL_VAR long V08 tmp3 - [000066] ----------- \--* LCL_VAR long V01 arg1 -IL argument #0: - [000401] ----------- * EQ int - [000400] ----------- +--* LCL_VAR long V08 tmp3 - [000066] ----------- \--* LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: - -Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 2a ret - -INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -Jump targets: - none -New Basic Block BB01 [0060] created. -BB01 [0060] [000..002) -Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0060] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000069] Starting PHASE Pre-import - -*************** Inline @[000069] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0060] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0060] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000069] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000069] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0060] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0060] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000069] Starting PHASE Canonicalize entry - -*************** Inline @[000069] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000069] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 9 (V09 tmp4) called for Inlining Arg. -Marked V09 as a single def temp - - [ 1] 1 (0x001) ret - - Inlinee Return expression (before normalization) => - [000405] ----------- * LCL_VAR int V09 tmp4 - - - Inlinee Return expression (after normalization) => - [000405] ----------- * LCL_VAR int V09 tmp4 - -** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL - -*************** Inline @[000069] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0060] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0060] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000069] Starting PHASE Early QMARK expansion - -*************** Inline @[000069] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0060] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0060] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000069] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000069] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000069] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000069] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000069] Starting PHASE Post-import - -*************** Inline @[000069] Finishing PHASE Post-import [no changes] - -*************** Inline @[000069] Starting PHASE Save contexts around async calls - -*************** Inline @[000069] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000069] ----------- - -Arguments setup: - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000070] with [000404] - [000070] --C-------- * RET_EXPR int (for [000069]) -> [000404] - -Inserting the inline return expression - [000404] ----------- * CAST int <- ubyte <- int - [000401] ----------- \--* EQ int - [000400] ----------- +--* LCL_VAR long V08 tmp3 - [000066] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00011 in BB12: -STMT00011 ( 0x0A0[E--] ... 0x0C6 ) - [000084] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000082] ---XG------ arg0 +--* IND long - [000081] ----------- | \--* ADD byref - [000074] ----------- | +--* LCL_VAR byref V00 arg0 - [000080] ----------- | \--* MUL long - [000078] ----------- | +--* SUB long - [000075] ----------- | | +--* LCL_VAR long V04 loc1 - [000077] ----------- | | \--* CNS_INT long 1 - [000079] ----------- | \--* CNS_INT long 8 - [000083] ----------- arg1 \--* LCL_VAR long V01 arg1 -IL argument #0: has global refs has side effects - [000082] ---XG------ * IND long - [000081] ----------- \--* ADD byref - [000074] ----------- +--* LCL_VAR byref V00 arg0 - [000080] ----------- \--* MUL long - [000078] ----------- +--* SUB long - [000075] ----------- | +--* LCL_VAR long V04 loc1 - [000077] ----------- | \--* CNS_INT long 1 - [000079] ----------- \--* CNS_INT long 8 - -IL argument #1: is a local var - [000083] ----------- * LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: - -Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 03 ldarg.1 -IL_0002 fe 01 ceq -IL_0004 2a ret - -INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -Jump targets: - none -New Basic Block BB01 [0061] created. -BB01 [0061] [000..005) -Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0061] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000084] Starting PHASE Pre-import - -*************** Inline @[000084] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0061] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0061] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000084] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000084] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0061] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0061] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000084] Starting PHASE Canonicalize entry - -*************** Inline @[000084] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000084] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 10 (V10 tmp5) called for Inlining Arg. -Marked V10 as a single def temp - - [ 1] 1 (0x001) ldarg.1 - [ 2] 2 (0x002) ceq - [ 1] 4 (0x004) ret - - Inlinee Return expression (before normalization) => - [000408] ----------- * EQ int - [000407] ----------- +--* LCL_VAR long V10 tmp5 - [000083] ----------- \--* LCL_VAR long V01 arg1 - - - Inlinee Return expression (after normalization) => - [000408] ----------- * EQ int - [000407] ----------- +--* LCL_VAR long V10 tmp5 - [000083] ----------- \--* LCL_VAR long V01 arg1 - -** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL - -*************** Inline @[000084] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0061] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0061] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000084] Starting PHASE Early QMARK expansion - -*************** Inline @[000084] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0061] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0061] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000084] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000084] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000084] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000084] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000084] Starting PHASE Post-import - -*************** Inline @[000084] Finishing PHASE Post-import [no changes] - -*************** Inline @[000084] Starting PHASE Save contexts around async calls - -*************** Inline @[000084] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000084] ----------- - -Arguments setup: -STMT00075 ( 0x0A0[E--] ... ??? ) - [000409] DA-XG------ * STORE_LCL_VAR long V10 tmp5 - [000082] ---XG------ \--* IND long - [000081] ----------- \--* ADD byref - [000074] ----------- +--* LCL_VAR byref V00 arg0 - [000080] ----------- \--* MUL long - [000078] ----------- +--* SUB long - [000075] ----------- | +--* LCL_VAR long V04 loc1 - [000077] ----------- | \--* CNS_INT long 1 - [000079] ----------- \--* CNS_INT long 8 - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000085] with [000408] - [000085] --C-------- * RET_EXPR int (for [000084]) -> [000408] - -Inserting the inline return expression - [000408] ----------- * EQ int - [000407] ----------- +--* LCL_VAR long V10 tmp5 - [000083] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00012 in BB12: -STMT00012 ( 0x0A0[E--] ... ??? ) - [000086] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000408] ----------- arg0 \--* EQ int - [000407] ----------- +--* LCL_VAR long V10 tmp5 - [000083] ----------- \--* LCL_VAR long V01 arg1 -IL argument #0: - [000408] ----------- * EQ int - [000407] ----------- +--* LCL_VAR long V10 tmp5 - [000083] ----------- \--* LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: - -Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 2a ret - -INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -Jump targets: - none -New Basic Block BB01 [0062] created. -BB01 [0062] [000..002) -Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0062] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000086] Starting PHASE Pre-import - -*************** Inline @[000086] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0062] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0062] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000086] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000086] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0062] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0062] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000086] Starting PHASE Canonicalize entry - -*************** Inline @[000086] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000086] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 11 (V11 tmp6) called for Inlining Arg. -Marked V11 as a single def temp - - [ 1] 1 (0x001) ret - - Inlinee Return expression (before normalization) => - [000412] ----------- * LCL_VAR int V11 tmp6 - - - Inlinee Return expression (after normalization) => - [000412] ----------- * LCL_VAR int V11 tmp6 - -** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL - -*************** Inline @[000086] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0062] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0062] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000086] Starting PHASE Early QMARK expansion - -*************** Inline @[000086] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0062] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0062] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000086] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000086] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000086] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000086] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000086] Starting PHASE Post-import - -*************** Inline @[000086] Finishing PHASE Post-import [no changes] - -*************** Inline @[000086] Starting PHASE Save contexts around async calls - -*************** Inline @[000086] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000086] ----------- - -Arguments setup: - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000087] with [000411] - [000087] --C-------- * RET_EXPR int (for [000086]) -> [000411] - -Inserting the inline return expression - [000411] ----------- * CAST int <- ubyte <- int - [000408] ----------- \--* EQ int - [000407] ----------- +--* LCL_VAR long V10 tmp5 - [000083] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00014 in BB14: -STMT00014 ( 0x0CE[E--] ... 0x0F4 ) - [000101] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000099] ---XG------ arg0 +--* IND long - [000098] ----------- | \--* ADD byref - [000091] ----------- | +--* LCL_VAR byref V00 arg0 - [000097] ----------- | \--* MUL long - [000095] ----------- | +--* SUB long - [000092] ----------- | | +--* LCL_VAR long V04 loc1 - [000094] ----------- | | \--* CNS_INT long 2 - [000096] ----------- | \--* CNS_INT long 8 - [000100] ----------- arg1 \--* LCL_VAR long V01 arg1 -IL argument #0: has global refs has side effects - [000099] ---XG------ * IND long - [000098] ----------- \--* ADD byref - [000091] ----------- +--* LCL_VAR byref V00 arg0 - [000097] ----------- \--* MUL long - [000095] ----------- +--* SUB long - [000092] ----------- | +--* LCL_VAR long V04 loc1 - [000094] ----------- | \--* CNS_INT long 2 - [000096] ----------- \--* CNS_INT long 8 - -IL argument #1: is a local var - [000100] ----------- * LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: - -Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 03 ldarg.1 -IL_0002 fe 01 ceq -IL_0004 2a ret - -INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -Jump targets: - none -New Basic Block BB01 [0063] created. -BB01 [0063] [000..005) -Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0063] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000101] Starting PHASE Pre-import - -*************** Inline @[000101] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0063] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0063] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000101] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000101] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0063] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0063] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000101] Starting PHASE Canonicalize entry - -*************** Inline @[000101] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000101] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 12 (V12 tmp7) called for Inlining Arg. -Marked V12 as a single def temp - - [ 1] 1 (0x001) ldarg.1 - [ 2] 2 (0x002) ceq - [ 1] 4 (0x004) ret - - Inlinee Return expression (before normalization) => - [000415] ----------- * EQ int - [000414] ----------- +--* LCL_VAR long V12 tmp7 - [000100] ----------- \--* LCL_VAR long V01 arg1 - - - Inlinee Return expression (after normalization) => - [000415] ----------- * EQ int - [000414] ----------- +--* LCL_VAR long V12 tmp7 - [000100] ----------- \--* LCL_VAR long V01 arg1 - -** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL - -*************** Inline @[000101] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0063] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0063] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000101] Starting PHASE Early QMARK expansion - -*************** Inline @[000101] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0063] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0063] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000101] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000101] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000101] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000101] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000101] Starting PHASE Post-import - -*************** Inline @[000101] Finishing PHASE Post-import [no changes] - -*************** Inline @[000101] Starting PHASE Save contexts around async calls - -*************** Inline @[000101] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000101] ----------- - -Arguments setup: -STMT00076 ( 0x0CE[E--] ... ??? ) - [000416] DA-XG------ * STORE_LCL_VAR long V12 tmp7 - [000099] ---XG------ \--* IND long - [000098] ----------- \--* ADD byref - [000091] ----------- +--* LCL_VAR byref V00 arg0 - [000097] ----------- \--* MUL long - [000095] ----------- +--* SUB long - [000092] ----------- | +--* LCL_VAR long V04 loc1 - [000094] ----------- | \--* CNS_INT long 2 - [000096] ----------- \--* CNS_INT long 8 - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000102] with [000415] - [000102] --C-------- * RET_EXPR int (for [000101]) -> [000415] - -Inserting the inline return expression - [000415] ----------- * EQ int - [000414] ----------- +--* LCL_VAR long V12 tmp7 - [000100] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00015 in BB14: -STMT00015 ( 0x0CE[E--] ... ??? ) - [000103] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000415] ----------- arg0 \--* EQ int - [000414] ----------- +--* LCL_VAR long V12 tmp7 - [000100] ----------- \--* LCL_VAR long V01 arg1 -IL argument #0: - [000415] ----------- * EQ int - [000414] ----------- +--* LCL_VAR long V12 tmp7 - [000100] ----------- \--* LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: - -Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 2a ret - -INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -Jump targets: - none -New Basic Block BB01 [0064] created. -BB01 [0064] [000..002) -Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0064] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000103] Starting PHASE Pre-import - -*************** Inline @[000103] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0064] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0064] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000103] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000103] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0064] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0064] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000103] Starting PHASE Canonicalize entry - -*************** Inline @[000103] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000103] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 13 (V13 tmp8) called for Inlining Arg. -Marked V13 as a single def temp - - [ 1] 1 (0x001) ret - - Inlinee Return expression (before normalization) => - [000419] ----------- * LCL_VAR int V13 tmp8 - - - Inlinee Return expression (after normalization) => - [000419] ----------- * LCL_VAR int V13 tmp8 - -** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL - -*************** Inline @[000103] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0064] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0064] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000103] Starting PHASE Early QMARK expansion - -*************** Inline @[000103] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0064] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0064] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000103] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000103] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000103] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000103] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000103] Starting PHASE Post-import - -*************** Inline @[000103] Finishing PHASE Post-import [no changes] - -*************** Inline @[000103] Starting PHASE Save contexts around async calls - -*************** Inline @[000103] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000103] ----------- - -Arguments setup: - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000104] with [000418] - [000104] --C-------- * RET_EXPR int (for [000103]) -> [000418] - -Inserting the inline return expression - [000418] ----------- * CAST int <- ubyte <- int - [000415] ----------- \--* EQ int - [000414] ----------- +--* LCL_VAR long V12 tmp7 - [000100] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00017 in BB16: -STMT00017 ( 0x0FC[E--] ... 0x122 ) - [000118] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000116] ---XG------ arg0 +--* IND long - [000115] ----------- | \--* ADD byref - [000108] ----------- | +--* LCL_VAR byref V00 arg0 - [000114] ----------- | \--* MUL long - [000112] ----------- | +--* SUB long - [000109] ----------- | | +--* LCL_VAR long V04 loc1 - [000111] ----------- | | \--* CNS_INT long 3 - [000113] ----------- | \--* CNS_INT long 8 - [000117] ----------- arg1 \--* LCL_VAR long V01 arg1 -IL argument #0: has global refs has side effects - [000116] ---XG------ * IND long - [000115] ----------- \--* ADD byref - [000108] ----------- +--* LCL_VAR byref V00 arg0 - [000114] ----------- \--* MUL long - [000112] ----------- +--* SUB long - [000109] ----------- | +--* LCL_VAR long V04 loc1 - [000111] ----------- | \--* CNS_INT long 3 - [000113] ----------- \--* CNS_INT long 8 - -IL argument #1: is a local var - [000117] ----------- * LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: - -Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 03 ldarg.1 -IL_0002 fe 01 ceq -IL_0004 2a ret - -INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -Jump targets: - none -New Basic Block BB01 [0065] created. -BB01 [0065] [000..005) -Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0065] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000118] Starting PHASE Pre-import - -*************** Inline @[000118] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0065] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0065] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000118] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000118] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0065] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0065] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000118] Starting PHASE Canonicalize entry - -*************** Inline @[000118] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000118] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 14 (V14 tmp9) called for Inlining Arg. -Marked V14 as a single def temp - - [ 1] 1 (0x001) ldarg.1 - [ 2] 2 (0x002) ceq - [ 1] 4 (0x004) ret - - Inlinee Return expression (before normalization) => - [000422] ----------- * EQ int - [000421] ----------- +--* LCL_VAR long V14 tmp9 - [000117] ----------- \--* LCL_VAR long V01 arg1 - - - Inlinee Return expression (after normalization) => - [000422] ----------- * EQ int - [000421] ----------- +--* LCL_VAR long V14 tmp9 - [000117] ----------- \--* LCL_VAR long V01 arg1 - -** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL - -*************** Inline @[000118] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0065] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0065] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000118] Starting PHASE Early QMARK expansion - -*************** Inline @[000118] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0065] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0065] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000118] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000118] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000118] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000118] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000118] Starting PHASE Post-import - -*************** Inline @[000118] Finishing PHASE Post-import [no changes] - -*************** Inline @[000118] Starting PHASE Save contexts around async calls - -*************** Inline @[000118] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000118] ----------- - -Arguments setup: -STMT00077 ( 0x0FC[E--] ... ??? ) - [000423] DA-XG------ * STORE_LCL_VAR long V14 tmp9 - [000116] ---XG------ \--* IND long - [000115] ----------- \--* ADD byref - [000108] ----------- +--* LCL_VAR byref V00 arg0 - [000114] ----------- \--* MUL long - [000112] ----------- +--* SUB long - [000109] ----------- | +--* LCL_VAR long V04 loc1 - [000111] ----------- | \--* CNS_INT long 3 - [000113] ----------- \--* CNS_INT long 8 - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000119] with [000422] - [000119] --C-------- * RET_EXPR int (for [000118]) -> [000422] - -Inserting the inline return expression - [000422] ----------- * EQ int - [000421] ----------- +--* LCL_VAR long V14 tmp9 - [000117] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00018 in BB16: -STMT00018 ( 0x0FC[E--] ... ??? ) - [000120] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000422] ----------- arg0 \--* EQ int - [000421] ----------- +--* LCL_VAR long V14 tmp9 - [000117] ----------- \--* LCL_VAR long V01 arg1 -IL argument #0: - [000422] ----------- * EQ int - [000421] ----------- +--* LCL_VAR long V14 tmp9 - [000117] ----------- \--* LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: - -Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 2a ret - -INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -Jump targets: - none -New Basic Block BB01 [0066] created. -BB01 [0066] [000..002) -Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0066] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000120] Starting PHASE Pre-import - -*************** Inline @[000120] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0066] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0066] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000120] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000120] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0066] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0066] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000120] Starting PHASE Canonicalize entry - -*************** Inline @[000120] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000120] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 15 (V15 tmp10) called for Inlining Arg. -Marked V15 as a single def temp - - [ 1] 1 (0x001) ret - - Inlinee Return expression (before normalization) => - [000426] ----------- * LCL_VAR int V15 tmp10 - - - Inlinee Return expression (after normalization) => - [000426] ----------- * LCL_VAR int V15 tmp10 - -** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL - -*************** Inline @[000120] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0066] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0066] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000120] Starting PHASE Early QMARK expansion - -*************** Inline @[000120] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0066] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0066] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000120] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000120] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000120] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000120] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000120] Starting PHASE Post-import - -*************** Inline @[000120] Finishing PHASE Post-import [no changes] - -*************** Inline @[000120] Starting PHASE Save contexts around async calls - -*************** Inline @[000120] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000120] ----------- - -Arguments setup: - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000121] with [000425] - [000121] --C-------- * RET_EXPR int (for [000120]) -> [000425] - -Inserting the inline return expression - [000425] ----------- * CAST int <- ubyte <- int - [000422] ----------- \--* EQ int - [000421] ----------- +--* LCL_VAR long V14 tmp9 - [000117] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00020 in BB18: -STMT00020 ( 0x12A[E--] ... 0x150 ) - [000135] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000133] ---XG------ arg0 +--* IND long - [000132] ----------- | \--* ADD byref - [000125] ----------- | +--* LCL_VAR byref V00 arg0 - [000131] ----------- | \--* MUL long - [000129] ----------- | +--* SUB long - [000126] ----------- | | +--* LCL_VAR long V04 loc1 - [000128] ----------- | | \--* CNS_INT long 4 - [000130] ----------- | \--* CNS_INT long 8 - [000134] ----------- arg1 \--* LCL_VAR long V01 arg1 -IL argument #0: has global refs has side effects - [000133] ---XG------ * IND long - [000132] ----------- \--* ADD byref - [000125] ----------- +--* LCL_VAR byref V00 arg0 - [000131] ----------- \--* MUL long - [000129] ----------- +--* SUB long - [000126] ----------- | +--* LCL_VAR long V04 loc1 - [000128] ----------- | \--* CNS_INT long 4 - [000130] ----------- \--* CNS_INT long 8 - -IL argument #1: is a local var - [000134] ----------- * LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: - -Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 03 ldarg.1 -IL_0002 fe 01 ceq -IL_0004 2a ret - -INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -Jump targets: - none -New Basic Block BB01 [0067] created. -BB01 [0067] [000..005) -Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0067] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000135] Starting PHASE Pre-import - -*************** Inline @[000135] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0067] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0067] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000135] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000135] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0067] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0067] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000135] Starting PHASE Canonicalize entry - -*************** Inline @[000135] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000135] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 16 (V16 tmp11) called for Inlining Arg. -Marked V16 as a single def temp - - [ 1] 1 (0x001) ldarg.1 - [ 2] 2 (0x002) ceq - [ 1] 4 (0x004) ret - - Inlinee Return expression (before normalization) => - [000429] ----------- * EQ int - [000428] ----------- +--* LCL_VAR long V16 tmp11 - [000134] ----------- \--* LCL_VAR long V01 arg1 - - - Inlinee Return expression (after normalization) => - [000429] ----------- * EQ int - [000428] ----------- +--* LCL_VAR long V16 tmp11 - [000134] ----------- \--* LCL_VAR long V01 arg1 - -** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL - -*************** Inline @[000135] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0067] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0067] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000135] Starting PHASE Early QMARK expansion - -*************** Inline @[000135] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0067] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0067] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000135] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000135] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000135] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000135] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000135] Starting PHASE Post-import - -*************** Inline @[000135] Finishing PHASE Post-import [no changes] - -*************** Inline @[000135] Starting PHASE Save contexts around async calls - -*************** Inline @[000135] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000135] ----------- - -Arguments setup: -STMT00078 ( 0x12A[E--] ... ??? ) - [000430] DA-XG------ * STORE_LCL_VAR long V16 tmp11 - [000133] ---XG------ \--* IND long - [000132] ----------- \--* ADD byref - [000125] ----------- +--* LCL_VAR byref V00 arg0 - [000131] ----------- \--* MUL long - [000129] ----------- +--* SUB long - [000126] ----------- | +--* LCL_VAR long V04 loc1 - [000128] ----------- | \--* CNS_INT long 4 - [000130] ----------- \--* CNS_INT long 8 - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000136] with [000429] - [000136] --C-------- * RET_EXPR int (for [000135]) -> [000429] - -Inserting the inline return expression - [000429] ----------- * EQ int - [000428] ----------- +--* LCL_VAR long V16 tmp11 - [000134] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00021 in BB18: -STMT00021 ( 0x12A[E--] ... ??? ) - [000137] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000429] ----------- arg0 \--* EQ int - [000428] ----------- +--* LCL_VAR long V16 tmp11 - [000134] ----------- \--* LCL_VAR long V01 arg1 -IL argument #0: - [000429] ----------- * EQ int - [000428] ----------- +--* LCL_VAR long V16 tmp11 - [000134] ----------- \--* LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: - -Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 2a ret - -INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -Jump targets: - none -New Basic Block BB01 [0068] created. -BB01 [0068] [000..002) -Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0068] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000137] Starting PHASE Pre-import - -*************** Inline @[000137] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0068] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0068] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000137] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000137] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0068] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0068] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000137] Starting PHASE Canonicalize entry - -*************** Inline @[000137] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000137] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 17 (V17 tmp12) called for Inlining Arg. -Marked V17 as a single def temp - - [ 1] 1 (0x001) ret - - Inlinee Return expression (before normalization) => - [000433] ----------- * LCL_VAR int V17 tmp12 - - - Inlinee Return expression (after normalization) => - [000433] ----------- * LCL_VAR int V17 tmp12 - -** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL - -*************** Inline @[000137] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0068] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0068] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000137] Starting PHASE Early QMARK expansion - -*************** Inline @[000137] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0068] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0068] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000137] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000137] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000137] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000137] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000137] Starting PHASE Post-import - -*************** Inline @[000137] Finishing PHASE Post-import [no changes] - -*************** Inline @[000137] Starting PHASE Save contexts around async calls - -*************** Inline @[000137] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000137] ----------- - -Arguments setup: - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000138] with [000432] - [000138] --C-------- * RET_EXPR int (for [000137]) -> [000432] - -Inserting the inline return expression - [000432] ----------- * CAST int <- ubyte <- int - [000429] ----------- \--* EQ int - [000428] ----------- +--* LCL_VAR long V16 tmp11 - [000134] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00023 in BB20: -STMT00023 ( 0x158[E--] ... 0x17E ) - [000152] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000150] ---XG------ arg0 +--* IND long - [000149] ----------- | \--* ADD byref - [000142] ----------- | +--* LCL_VAR byref V00 arg0 - [000148] ----------- | \--* MUL long - [000146] ----------- | +--* SUB long - [000143] ----------- | | +--* LCL_VAR long V04 loc1 - [000145] ----------- | | \--* CNS_INT long 5 - [000147] ----------- | \--* CNS_INT long 8 - [000151] ----------- arg1 \--* LCL_VAR long V01 arg1 -IL argument #0: has global refs has side effects - [000150] ---XG------ * IND long - [000149] ----------- \--* ADD byref - [000142] ----------- +--* LCL_VAR byref V00 arg0 - [000148] ----------- \--* MUL long - [000146] ----------- +--* SUB long - [000143] ----------- | +--* LCL_VAR long V04 loc1 - [000145] ----------- | \--* CNS_INT long 5 - [000147] ----------- \--* CNS_INT long 8 - -IL argument #1: is a local var - [000151] ----------- * LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: - -Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 03 ldarg.1 -IL_0002 fe 01 ceq -IL_0004 2a ret - -INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -Jump targets: - none -New Basic Block BB01 [0069] created. -BB01 [0069] [000..005) -Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0069] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000152] Starting PHASE Pre-import - -*************** Inline @[000152] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0069] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0069] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000152] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000152] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0069] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0069] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000152] Starting PHASE Canonicalize entry - -*************** Inline @[000152] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000152] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 18 (V18 tmp13) called for Inlining Arg. -Marked V18 as a single def temp - - [ 1] 1 (0x001) ldarg.1 - [ 2] 2 (0x002) ceq - [ 1] 4 (0x004) ret - - Inlinee Return expression (before normalization) => - [000436] ----------- * EQ int - [000435] ----------- +--* LCL_VAR long V18 tmp13 - [000151] ----------- \--* LCL_VAR long V01 arg1 - - - Inlinee Return expression (after normalization) => - [000436] ----------- * EQ int - [000435] ----------- +--* LCL_VAR long V18 tmp13 - [000151] ----------- \--* LCL_VAR long V01 arg1 - -** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL - -*************** Inline @[000152] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0069] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0069] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000152] Starting PHASE Early QMARK expansion - -*************** Inline @[000152] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0069] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0069] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000152] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000152] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000152] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000152] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000152] Starting PHASE Post-import - -*************** Inline @[000152] Finishing PHASE Post-import [no changes] - -*************** Inline @[000152] Starting PHASE Save contexts around async calls - -*************** Inline @[000152] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000152] ----------- - -Arguments setup: -STMT00079 ( 0x158[E--] ... ??? ) - [000437] DA-XG------ * STORE_LCL_VAR long V18 tmp13 - [000150] ---XG------ \--* IND long - [000149] ----------- \--* ADD byref - [000142] ----------- +--* LCL_VAR byref V00 arg0 - [000148] ----------- \--* MUL long - [000146] ----------- +--* SUB long - [000143] ----------- | +--* LCL_VAR long V04 loc1 - [000145] ----------- | \--* CNS_INT long 5 - [000147] ----------- \--* CNS_INT long 8 - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000153] with [000436] - [000153] --C-------- * RET_EXPR int (for [000152]) -> [000436] - -Inserting the inline return expression - [000436] ----------- * EQ int - [000435] ----------- +--* LCL_VAR long V18 tmp13 - [000151] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00024 in BB20: -STMT00024 ( 0x158[E--] ... ??? ) - [000154] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000436] ----------- arg0 \--* EQ int - [000435] ----------- +--* LCL_VAR long V18 tmp13 - [000151] ----------- \--* LCL_VAR long V01 arg1 -IL argument #0: - [000436] ----------- * EQ int - [000435] ----------- +--* LCL_VAR long V18 tmp13 - [000151] ----------- \--* LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: - -Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 2a ret - -INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -Jump targets: - none -New Basic Block BB01 [0070] created. -BB01 [0070] [000..002) -Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0070] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000154] Starting PHASE Pre-import - -*************** Inline @[000154] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0070] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0070] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000154] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000154] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0070] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0070] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000154] Starting PHASE Canonicalize entry - -*************** Inline @[000154] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000154] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 19 (V19 tmp14) called for Inlining Arg. -Marked V19 as a single def temp - - [ 1] 1 (0x001) ret - - Inlinee Return expression (before normalization) => - [000440] ----------- * LCL_VAR int V19 tmp14 - - - Inlinee Return expression (after normalization) => - [000440] ----------- * LCL_VAR int V19 tmp14 - -** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL - -*************** Inline @[000154] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0070] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0070] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000154] Starting PHASE Early QMARK expansion - -*************** Inline @[000154] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0070] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0070] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000154] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000154] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000154] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000154] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000154] Starting PHASE Post-import - -*************** Inline @[000154] Finishing PHASE Post-import [no changes] - -*************** Inline @[000154] Starting PHASE Save contexts around async calls - -*************** Inline @[000154] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000154] ----------- - -Arguments setup: - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000155] with [000439] - [000155] --C-------- * RET_EXPR int (for [000154]) -> [000439] - -Inserting the inline return expression - [000439] ----------- * CAST int <- ubyte <- int - [000436] ----------- \--* EQ int - [000435] ----------- +--* LCL_VAR long V18 tmp13 - [000151] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00026 in BB22: -STMT00026 ( 0x186[E--] ... 0x1AC ) - [000169] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000167] ---XG------ arg0 +--* IND long - [000166] ----------- | \--* ADD byref - [000159] ----------- | +--* LCL_VAR byref V00 arg0 - [000165] ----------- | \--* MUL long - [000163] ----------- | +--* SUB long - [000160] ----------- | | +--* LCL_VAR long V04 loc1 - [000162] ----------- | | \--* CNS_INT long 6 - [000164] ----------- | \--* CNS_INT long 8 - [000168] ----------- arg1 \--* LCL_VAR long V01 arg1 -IL argument #0: has global refs has side effects - [000167] ---XG------ * IND long - [000166] ----------- \--* ADD byref - [000159] ----------- +--* LCL_VAR byref V00 arg0 - [000165] ----------- \--* MUL long - [000163] ----------- +--* SUB long - [000160] ----------- | +--* LCL_VAR long V04 loc1 - [000162] ----------- | \--* CNS_INT long 6 - [000164] ----------- \--* CNS_INT long 8 - -IL argument #1: is a local var - [000168] ----------- * LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: - -Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 03 ldarg.1 -IL_0002 fe 01 ceq -IL_0004 2a ret - -INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -Jump targets: - none -New Basic Block BB01 [0071] created. -BB01 [0071] [000..005) -Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0071] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000169] Starting PHASE Pre-import - -*************** Inline @[000169] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0071] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0071] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000169] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000169] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0071] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0071] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000169] Starting PHASE Canonicalize entry - -*************** Inline @[000169] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000169] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 20 (V20 tmp15) called for Inlining Arg. -Marked V20 as a single def temp - - [ 1] 1 (0x001) ldarg.1 - [ 2] 2 (0x002) ceq - [ 1] 4 (0x004) ret - - Inlinee Return expression (before normalization) => - [000443] ----------- * EQ int - [000442] ----------- +--* LCL_VAR long V20 tmp15 - [000168] ----------- \--* LCL_VAR long V01 arg1 - - - Inlinee Return expression (after normalization) => - [000443] ----------- * EQ int - [000442] ----------- +--* LCL_VAR long V20 tmp15 - [000168] ----------- \--* LCL_VAR long V01 arg1 - -** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL - -*************** Inline @[000169] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0071] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0071] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000169] Starting PHASE Early QMARK expansion - -*************** Inline @[000169] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0071] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0071] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000169] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000169] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000169] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000169] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000169] Starting PHASE Post-import - -*************** Inline @[000169] Finishing PHASE Post-import [no changes] - -*************** Inline @[000169] Starting PHASE Save contexts around async calls - -*************** Inline @[000169] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000169] ----------- - -Arguments setup: -STMT00080 ( 0x186[E--] ... ??? ) - [000444] DA-XG------ * STORE_LCL_VAR long V20 tmp15 - [000167] ---XG------ \--* IND long - [000166] ----------- \--* ADD byref - [000159] ----------- +--* LCL_VAR byref V00 arg0 - [000165] ----------- \--* MUL long - [000163] ----------- +--* SUB long - [000160] ----------- | +--* LCL_VAR long V04 loc1 - [000162] ----------- | \--* CNS_INT long 6 - [000164] ----------- \--* CNS_INT long 8 - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000170] with [000443] - [000170] --C-------- * RET_EXPR int (for [000169]) -> [000443] - -Inserting the inline return expression - [000443] ----------- * EQ int - [000442] ----------- +--* LCL_VAR long V20 tmp15 - [000168] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00027 in BB22: -STMT00027 ( 0x186[E--] ... ??? ) - [000171] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000443] ----------- arg0 \--* EQ int - [000442] ----------- +--* LCL_VAR long V20 tmp15 - [000168] ----------- \--* LCL_VAR long V01 arg1 -IL argument #0: - [000443] ----------- * EQ int - [000442] ----------- +--* LCL_VAR long V20 tmp15 - [000168] ----------- \--* LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: - -Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 2a ret - -INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -Jump targets: - none -New Basic Block BB01 [0072] created. -BB01 [0072] [000..002) -Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0072] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000171] Starting PHASE Pre-import - -*************** Inline @[000171] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0072] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0072] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000171] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000171] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0072] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0072] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000171] Starting PHASE Canonicalize entry - -*************** Inline @[000171] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000171] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 21 (V21 tmp16) called for Inlining Arg. -Marked V21 as a single def temp - - [ 1] 1 (0x001) ret - - Inlinee Return expression (before normalization) => - [000447] ----------- * LCL_VAR int V21 tmp16 - - - Inlinee Return expression (after normalization) => - [000447] ----------- * LCL_VAR int V21 tmp16 - -** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL - -*************** Inline @[000171] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0072] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0072] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000171] Starting PHASE Early QMARK expansion - -*************** Inline @[000171] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0072] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0072] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000171] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000171] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000171] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000171] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000171] Starting PHASE Post-import - -*************** Inline @[000171] Finishing PHASE Post-import [no changes] - -*************** Inline @[000171] Starting PHASE Save contexts around async calls - -*************** Inline @[000171] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000171] ----------- - -Arguments setup: - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000172] with [000446] - [000172] --C-------- * RET_EXPR int (for [000171]) -> [000446] - -Inserting the inline return expression - [000446] ----------- * CAST int <- ubyte <- int - [000443] ----------- \--* EQ int - [000442] ----------- +--* LCL_VAR long V20 tmp15 - [000168] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00029 in BB24: -STMT00029 ( 0x1B4[E--] ... 0x1DA ) - [000186] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000184] ---XG------ arg0 +--* IND long - [000183] ----------- | \--* ADD byref - [000176] ----------- | +--* LCL_VAR byref V00 arg0 - [000182] ----------- | \--* MUL long - [000180] ----------- | +--* SUB long - [000177] ----------- | | +--* LCL_VAR long V04 loc1 - [000179] ----------- | | \--* CNS_INT long 7 - [000181] ----------- | \--* CNS_INT long 8 - [000185] ----------- arg1 \--* LCL_VAR long V01 arg1 -IL argument #0: has global refs has side effects - [000184] ---XG------ * IND long - [000183] ----------- \--* ADD byref - [000176] ----------- +--* LCL_VAR byref V00 arg0 - [000182] ----------- \--* MUL long - [000180] ----------- +--* SUB long - [000177] ----------- | +--* LCL_VAR long V04 loc1 - [000179] ----------- | \--* CNS_INT long 7 - [000181] ----------- \--* CNS_INT long 8 - -IL argument #1: is a local var - [000185] ----------- * LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: - -Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 03 ldarg.1 -IL_0002 fe 01 ceq -IL_0004 2a ret - -INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -Jump targets: - none -New Basic Block BB01 [0073] created. -BB01 [0073] [000..005) -Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0073] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000186] Starting PHASE Pre-import - -*************** Inline @[000186] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0073] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0073] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000186] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000186] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0073] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0073] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000186] Starting PHASE Canonicalize entry - -*************** Inline @[000186] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000186] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 22 (V22 tmp17) called for Inlining Arg. -Marked V22 as a single def temp - - [ 1] 1 (0x001) ldarg.1 - [ 2] 2 (0x002) ceq - [ 1] 4 (0x004) ret - - Inlinee Return expression (before normalization) => - [000450] ----------- * EQ int - [000449] ----------- +--* LCL_VAR long V22 tmp17 - [000185] ----------- \--* LCL_VAR long V01 arg1 - - - Inlinee Return expression (after normalization) => - [000450] ----------- * EQ int - [000449] ----------- +--* LCL_VAR long V22 tmp17 - [000185] ----------- \--* LCL_VAR long V01 arg1 - -** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL - -*************** Inline @[000186] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0073] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0073] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000186] Starting PHASE Early QMARK expansion - -*************** Inline @[000186] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0073] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0073] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000186] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000186] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000186] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000186] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000186] Starting PHASE Post-import - -*************** Inline @[000186] Finishing PHASE Post-import [no changes] - -*************** Inline @[000186] Starting PHASE Save contexts around async calls - -*************** Inline @[000186] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000186] ----------- - -Arguments setup: -STMT00081 ( 0x1B4[E--] ... ??? ) - [000451] DA-XG------ * STORE_LCL_VAR long V22 tmp17 - [000184] ---XG------ \--* IND long - [000183] ----------- \--* ADD byref - [000176] ----------- +--* LCL_VAR byref V00 arg0 - [000182] ----------- \--* MUL long - [000180] ----------- +--* SUB long - [000177] ----------- | +--* LCL_VAR long V04 loc1 - [000179] ----------- | \--* CNS_INT long 7 - [000181] ----------- \--* CNS_INT long 8 - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000187] with [000450] - [000187] --C-------- * RET_EXPR int (for [000186]) -> [000450] - -Inserting the inline return expression - [000450] ----------- * EQ int - [000449] ----------- +--* LCL_VAR long V22 tmp17 - [000185] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00030 in BB24: -STMT00030 ( 0x1B4[E--] ... ??? ) - [000188] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000450] ----------- arg0 \--* EQ int - [000449] ----------- +--* LCL_VAR long V22 tmp17 - [000185] ----------- \--* LCL_VAR long V01 arg1 -IL argument #0: - [000450] ----------- * EQ int - [000449] ----------- +--* LCL_VAR long V22 tmp17 - [000185] ----------- \--* LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: - -Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 2a ret - -INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -Jump targets: - none -New Basic Block BB01 [0074] created. -BB01 [0074] [000..002) -Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0074] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000188] Starting PHASE Pre-import - -*************** Inline @[000188] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0074] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0074] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000188] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000188] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0074] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0074] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000188] Starting PHASE Canonicalize entry - -*************** Inline @[000188] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000188] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 23 (V23 tmp18) called for Inlining Arg. -Marked V23 as a single def temp - - [ 1] 1 (0x001) ret - - Inlinee Return expression (before normalization) => - [000454] ----------- * LCL_VAR int V23 tmp18 - - - Inlinee Return expression (after normalization) => - [000454] ----------- * LCL_VAR int V23 tmp18 - -** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL - -*************** Inline @[000188] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0074] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0074] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000188] Starting PHASE Early QMARK expansion - -*************** Inline @[000188] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0074] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0074] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000188] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000188] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000188] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000188] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000188] Starting PHASE Post-import - -*************** Inline @[000188] Finishing PHASE Post-import [no changes] - -*************** Inline @[000188] Starting PHASE Save contexts around async calls - -*************** Inline @[000188] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000188] ----------- - -Arguments setup: - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000189] with [000453] - [000189] --C-------- * RET_EXPR int (for [000188]) -> [000453] - -Inserting the inline return expression - [000453] ----------- * CAST int <- ubyte <- int - [000450] ----------- \--* EQ int - [000449] ----------- +--* LCL_VAR long V22 tmp17 - [000185] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00051 in BB29: -STMT00051 ( 0x1FA[E--] ... 0x21D ) - [000290] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000288] ---XG------ arg0 +--* IND long - [000287] ----------- | \--* ADD byref - [000283] ----------- | +--* LCL_VAR byref V00 arg0 - [000286] ----------- | \--* MUL long - [000284] ----------- | +--* LCL_VAR long V04 loc1 - [000285] ----------- | \--* CNS_INT long 8 - [000289] ----------- arg1 \--* LCL_VAR long V01 arg1 -IL argument #0: has global refs has side effects - [000288] ---XG------ * IND long - [000287] ----------- \--* ADD byref - [000283] ----------- +--* LCL_VAR byref V00 arg0 - [000286] ----------- \--* MUL long - [000284] ----------- +--* LCL_VAR long V04 loc1 - [000285] ----------- \--* CNS_INT long 8 - -IL argument #1: is a local var - [000289] ----------- * LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: - -Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 03 ldarg.1 -IL_0002 fe 01 ceq -IL_0004 2a ret - -INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -Jump targets: - none -New Basic Block BB01 [0075] created. -BB01 [0075] [000..005) -Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0075] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000290] Starting PHASE Pre-import - -*************** Inline @[000290] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0075] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0075] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000290] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000290] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0075] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0075] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000290] Starting PHASE Canonicalize entry - -*************** Inline @[000290] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000290] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 24 (V24 tmp19) called for Inlining Arg. -Marked V24 as a single def temp - - [ 1] 1 (0x001) ldarg.1 - [ 2] 2 (0x002) ceq - [ 1] 4 (0x004) ret - - Inlinee Return expression (before normalization) => - [000457] ----------- * EQ int - [000456] ----------- +--* LCL_VAR long V24 tmp19 - [000289] ----------- \--* LCL_VAR long V01 arg1 - - - Inlinee Return expression (after normalization) => - [000457] ----------- * EQ int - [000456] ----------- +--* LCL_VAR long V24 tmp19 - [000289] ----------- \--* LCL_VAR long V01 arg1 - -** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL - -*************** Inline @[000290] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0075] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0075] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000290] Starting PHASE Early QMARK expansion - -*************** Inline @[000290] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0075] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0075] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000290] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000290] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000290] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000290] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000290] Starting PHASE Post-import - -*************** Inline @[000290] Finishing PHASE Post-import [no changes] - -*************** Inline @[000290] Starting PHASE Save contexts around async calls - -*************** Inline @[000290] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000290] ----------- - -Arguments setup: -STMT00082 ( 0x1FA[E--] ... ??? ) - [000458] DA-XG------ * STORE_LCL_VAR long V24 tmp19 - [000288] ---XG------ \--* IND long - [000287] ----------- \--* ADD byref - [000283] ----------- +--* LCL_VAR byref V00 arg0 - [000286] ----------- \--* MUL long - [000284] ----------- +--* LCL_VAR long V04 loc1 - [000285] ----------- \--* CNS_INT long 8 - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000291] with [000457] - [000291] --C-------- * RET_EXPR int (for [000290]) -> [000457] - -Inserting the inline return expression - [000457] ----------- * EQ int - [000456] ----------- +--* LCL_VAR long V24 tmp19 - [000289] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00052 in BB29: -STMT00052 ( 0x1FA[E--] ... ??? ) - [000292] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000457] ----------- arg0 \--* EQ int - [000456] ----------- +--* LCL_VAR long V24 tmp19 - [000289] ----------- \--* LCL_VAR long V01 arg1 -IL argument #0: - [000457] ----------- * EQ int - [000456] ----------- +--* LCL_VAR long V24 tmp19 - [000289] ----------- \--* LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: - -Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 2a ret - -INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -Jump targets: - none -New Basic Block BB01 [0076] created. -BB01 [0076] [000..002) -Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0076] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000292] Starting PHASE Pre-import - -*************** Inline @[000292] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0076] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0076] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000292] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000292] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0076] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0076] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000292] Starting PHASE Canonicalize entry - -*************** Inline @[000292] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000292] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 25 (V25 tmp20) called for Inlining Arg. -Marked V25 as a single def temp - - [ 1] 1 (0x001) ret - - Inlinee Return expression (before normalization) => - [000461] ----------- * LCL_VAR int V25 tmp20 - - - Inlinee Return expression (after normalization) => - [000461] ----------- * LCL_VAR int V25 tmp20 - -** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL - -*************** Inline @[000292] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0076] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0076] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000292] Starting PHASE Early QMARK expansion - -*************** Inline @[000292] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0076] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0076] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000292] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000292] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000292] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000292] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000292] Starting PHASE Post-import - -*************** Inline @[000292] Finishing PHASE Post-import [no changes] - -*************** Inline @[000292] Starting PHASE Save contexts around async calls - -*************** Inline @[000292] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000292] ----------- - -Arguments setup: - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000293] with [000460] - [000293] --C-------- * RET_EXPR int (for [000292]) -> [000460] - -Inserting the inline return expression - [000460] ----------- * CAST int <- ubyte <- int - [000457] ----------- \--* EQ int - [000456] ----------- +--* LCL_VAR long V24 tmp19 - [000289] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00054 in BB31: -STMT00054 ( 0x222[E--] ... 0x248 ) - [000307] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000305] ---XG------ arg0 +--* IND long - [000304] ----------- | \--* ADD byref - [000297] ----------- | +--* LCL_VAR byref V00 arg0 - [000303] ----------- | \--* MUL long - [000301] ----------- | +--* SUB long - [000298] ----------- | | +--* LCL_VAR long V04 loc1 - [000300] ----------- | | \--* CNS_INT long 1 - [000302] ----------- | \--* CNS_INT long 8 - [000306] ----------- arg1 \--* LCL_VAR long V01 arg1 -IL argument #0: has global refs has side effects - [000305] ---XG------ * IND long - [000304] ----------- \--* ADD byref - [000297] ----------- +--* LCL_VAR byref V00 arg0 - [000303] ----------- \--* MUL long - [000301] ----------- +--* SUB long - [000298] ----------- | +--* LCL_VAR long V04 loc1 - [000300] ----------- | \--* CNS_INT long 1 - [000302] ----------- \--* CNS_INT long 8 - -IL argument #1: is a local var - [000306] ----------- * LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: - -Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 03 ldarg.1 -IL_0002 fe 01 ceq -IL_0004 2a ret - -INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -Jump targets: - none -New Basic Block BB01 [0077] created. -BB01 [0077] [000..005) -Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0077] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000307] Starting PHASE Pre-import - -*************** Inline @[000307] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0077] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0077] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000307] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000307] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0077] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0077] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000307] Starting PHASE Canonicalize entry - -*************** Inline @[000307] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000307] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 26 (V26 tmp21) called for Inlining Arg. -Marked V26 as a single def temp - - [ 1] 1 (0x001) ldarg.1 - [ 2] 2 (0x002) ceq - [ 1] 4 (0x004) ret - - Inlinee Return expression (before normalization) => - [000464] ----------- * EQ int - [000463] ----------- +--* LCL_VAR long V26 tmp21 - [000306] ----------- \--* LCL_VAR long V01 arg1 - - - Inlinee Return expression (after normalization) => - [000464] ----------- * EQ int - [000463] ----------- +--* LCL_VAR long V26 tmp21 - [000306] ----------- \--* LCL_VAR long V01 arg1 - -** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL - -*************** Inline @[000307] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0077] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0077] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000307] Starting PHASE Early QMARK expansion - -*************** Inline @[000307] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0077] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0077] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000307] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000307] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000307] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000307] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000307] Starting PHASE Post-import - -*************** Inline @[000307] Finishing PHASE Post-import [no changes] - -*************** Inline @[000307] Starting PHASE Save contexts around async calls - -*************** Inline @[000307] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000307] ----------- - -Arguments setup: -STMT00083 ( 0x222[E--] ... ??? ) - [000465] DA-XG------ * STORE_LCL_VAR long V26 tmp21 - [000305] ---XG------ \--* IND long - [000304] ----------- \--* ADD byref - [000297] ----------- +--* LCL_VAR byref V00 arg0 - [000303] ----------- \--* MUL long - [000301] ----------- +--* SUB long - [000298] ----------- | +--* LCL_VAR long V04 loc1 - [000300] ----------- | \--* CNS_INT long 1 - [000302] ----------- \--* CNS_INT long 8 - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000308] with [000464] - [000308] --C-------- * RET_EXPR int (for [000307]) -> [000464] - -Inserting the inline return expression - [000464] ----------- * EQ int - [000463] ----------- +--* LCL_VAR long V26 tmp21 - [000306] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00055 in BB31: -STMT00055 ( 0x222[E--] ... ??? ) - [000309] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000464] ----------- arg0 \--* EQ int - [000463] ----------- +--* LCL_VAR long V26 tmp21 - [000306] ----------- \--* LCL_VAR long V01 arg1 -IL argument #0: - [000464] ----------- * EQ int - [000463] ----------- +--* LCL_VAR long V26 tmp21 - [000306] ----------- \--* LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: - -Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 2a ret - -INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -Jump targets: - none -New Basic Block BB01 [0078] created. -BB01 [0078] [000..002) -Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0078] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000309] Starting PHASE Pre-import - -*************** Inline @[000309] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0078] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0078] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000309] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000309] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0078] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0078] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000309] Starting PHASE Canonicalize entry - -*************** Inline @[000309] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000309] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 27 (V27 tmp22) called for Inlining Arg. -Marked V27 as a single def temp - - [ 1] 1 (0x001) ret - - Inlinee Return expression (before normalization) => - [000468] ----------- * LCL_VAR int V27 tmp22 - - - Inlinee Return expression (after normalization) => - [000468] ----------- * LCL_VAR int V27 tmp22 - -** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL - -*************** Inline @[000309] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0078] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0078] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000309] Starting PHASE Early QMARK expansion - -*************** Inline @[000309] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0078] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0078] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000309] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000309] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000309] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000309] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000309] Starting PHASE Post-import - -*************** Inline @[000309] Finishing PHASE Post-import [no changes] - -*************** Inline @[000309] Starting PHASE Save contexts around async calls - -*************** Inline @[000309] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000309] ----------- - -Arguments setup: - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000310] with [000467] - [000310] --C-------- * RET_EXPR int (for [000309]) -> [000467] - -Inserting the inline return expression - [000467] ----------- * CAST int <- ubyte <- int - [000464] ----------- \--* EQ int - [000463] ----------- +--* LCL_VAR long V26 tmp21 - [000306] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00057 in BB33: -STMT00057 ( 0x250[E--] ... 0x276 ) - [000324] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000322] ---XG------ arg0 +--* IND long - [000321] ----------- | \--* ADD byref - [000314] ----------- | +--* LCL_VAR byref V00 arg0 - [000320] ----------- | \--* MUL long - [000318] ----------- | +--* SUB long - [000315] ----------- | | +--* LCL_VAR long V04 loc1 - [000317] ----------- | | \--* CNS_INT long 2 - [000319] ----------- | \--* CNS_INT long 8 - [000323] ----------- arg1 \--* LCL_VAR long V01 arg1 -IL argument #0: has global refs has side effects - [000322] ---XG------ * IND long - [000321] ----------- \--* ADD byref - [000314] ----------- +--* LCL_VAR byref V00 arg0 - [000320] ----------- \--* MUL long - [000318] ----------- +--* SUB long - [000315] ----------- | +--* LCL_VAR long V04 loc1 - [000317] ----------- | \--* CNS_INT long 2 - [000319] ----------- \--* CNS_INT long 8 - -IL argument #1: is a local var - [000323] ----------- * LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: - -Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 03 ldarg.1 -IL_0002 fe 01 ceq -IL_0004 2a ret - -INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -Jump targets: - none -New Basic Block BB01 [0079] created. -BB01 [0079] [000..005) -Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0079] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000324] Starting PHASE Pre-import - -*************** Inline @[000324] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0079] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0079] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000324] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000324] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0079] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0079] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000324] Starting PHASE Canonicalize entry - -*************** Inline @[000324] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000324] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 28 (V28 tmp23) called for Inlining Arg. -Marked V28 as a single def temp - - [ 1] 1 (0x001) ldarg.1 - [ 2] 2 (0x002) ceq - [ 1] 4 (0x004) ret - - Inlinee Return expression (before normalization) => - [000471] ----------- * EQ int - [000470] ----------- +--* LCL_VAR long V28 tmp23 - [000323] ----------- \--* LCL_VAR long V01 arg1 - - - Inlinee Return expression (after normalization) => - [000471] ----------- * EQ int - [000470] ----------- +--* LCL_VAR long V28 tmp23 - [000323] ----------- \--* LCL_VAR long V01 arg1 - -** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL - -*************** Inline @[000324] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0079] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0079] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000324] Starting PHASE Early QMARK expansion - -*************** Inline @[000324] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0079] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0079] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000324] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000324] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000324] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000324] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000324] Starting PHASE Post-import - -*************** Inline @[000324] Finishing PHASE Post-import [no changes] - -*************** Inline @[000324] Starting PHASE Save contexts around async calls - -*************** Inline @[000324] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000324] ----------- - -Arguments setup: -STMT00084 ( 0x250[E--] ... ??? ) - [000472] DA-XG------ * STORE_LCL_VAR long V28 tmp23 - [000322] ---XG------ \--* IND long - [000321] ----------- \--* ADD byref - [000314] ----------- +--* LCL_VAR byref V00 arg0 - [000320] ----------- \--* MUL long - [000318] ----------- +--* SUB long - [000315] ----------- | +--* LCL_VAR long V04 loc1 - [000317] ----------- | \--* CNS_INT long 2 - [000319] ----------- \--* CNS_INT long 8 - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000325] with [000471] - [000325] --C-------- * RET_EXPR int (for [000324]) -> [000471] - -Inserting the inline return expression - [000471] ----------- * EQ int - [000470] ----------- +--* LCL_VAR long V28 tmp23 - [000323] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00058 in BB33: -STMT00058 ( 0x250[E--] ... ??? ) - [000326] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000471] ----------- arg0 \--* EQ int - [000470] ----------- +--* LCL_VAR long V28 tmp23 - [000323] ----------- \--* LCL_VAR long V01 arg1 -IL argument #0: - [000471] ----------- * EQ int - [000470] ----------- +--* LCL_VAR long V28 tmp23 - [000323] ----------- \--* LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: - -Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 2a ret - -INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -Jump targets: - none -New Basic Block BB01 [0080] created. -BB01 [0080] [000..002) -Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0080] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000326] Starting PHASE Pre-import - -*************** Inline @[000326] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0080] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0080] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000326] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000326] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0080] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0080] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000326] Starting PHASE Canonicalize entry - -*************** Inline @[000326] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000326] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 29 (V29 tmp24) called for Inlining Arg. -Marked V29 as a single def temp - - [ 1] 1 (0x001) ret - - Inlinee Return expression (before normalization) => - [000475] ----------- * LCL_VAR int V29 tmp24 - - - Inlinee Return expression (after normalization) => - [000475] ----------- * LCL_VAR int V29 tmp24 - -** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL - -*************** Inline @[000326] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0080] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0080] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000326] Starting PHASE Early QMARK expansion - -*************** Inline @[000326] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0080] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0080] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000326] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000326] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000326] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000326] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000326] Starting PHASE Post-import - -*************** Inline @[000326] Finishing PHASE Post-import [no changes] - -*************** Inline @[000326] Starting PHASE Save contexts around async calls - -*************** Inline @[000326] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000326] ----------- - -Arguments setup: - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000327] with [000474] - [000327] --C-------- * RET_EXPR int (for [000326]) -> [000474] - -Inserting the inline return expression - [000474] ----------- * CAST int <- ubyte <- int - [000471] ----------- \--* EQ int - [000470] ----------- +--* LCL_VAR long V28 tmp23 - [000323] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00060 in BB35: -STMT00060 ( 0x27E[E--] ... 0x2A4 ) - [000341] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000339] ---XG------ arg0 +--* IND long - [000338] ----------- | \--* ADD byref - [000331] ----------- | +--* LCL_VAR byref V00 arg0 - [000337] ----------- | \--* MUL long - [000335] ----------- | +--* SUB long - [000332] ----------- | | +--* LCL_VAR long V04 loc1 - [000334] ----------- | | \--* CNS_INT long 3 - [000336] ----------- | \--* CNS_INT long 8 - [000340] ----------- arg1 \--* LCL_VAR long V01 arg1 -IL argument #0: has global refs has side effects - [000339] ---XG------ * IND long - [000338] ----------- \--* ADD byref - [000331] ----------- +--* LCL_VAR byref V00 arg0 - [000337] ----------- \--* MUL long - [000335] ----------- +--* SUB long - [000332] ----------- | +--* LCL_VAR long V04 loc1 - [000334] ----------- | \--* CNS_INT long 3 - [000336] ----------- \--* CNS_INT long 8 - -IL argument #1: is a local var - [000340] ----------- * LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: - -Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 03 ldarg.1 -IL_0002 fe 01 ceq -IL_0004 2a ret - -INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -Jump targets: - none -New Basic Block BB01 [0081] created. -BB01 [0081] [000..005) -Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0081] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000341] Starting PHASE Pre-import - -*************** Inline @[000341] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0081] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0081] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000341] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000341] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0081] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0081] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000341] Starting PHASE Canonicalize entry - -*************** Inline @[000341] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000341] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 30 (V30 tmp25) called for Inlining Arg. -Marked V30 as a single def temp - - [ 1] 1 (0x001) ldarg.1 - [ 2] 2 (0x002) ceq - [ 1] 4 (0x004) ret - - Inlinee Return expression (before normalization) => - [000478] ----------- * EQ int - [000477] ----------- +--* LCL_VAR long V30 tmp25 - [000340] ----------- \--* LCL_VAR long V01 arg1 - - - Inlinee Return expression (after normalization) => - [000478] ----------- * EQ int - [000477] ----------- +--* LCL_VAR long V30 tmp25 - [000340] ----------- \--* LCL_VAR long V01 arg1 - -** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL - -*************** Inline @[000341] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0081] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0081] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000341] Starting PHASE Early QMARK expansion - -*************** Inline @[000341] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0081] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0081] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000341] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000341] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000341] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000341] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000341] Starting PHASE Post-import - -*************** Inline @[000341] Finishing PHASE Post-import [no changes] - -*************** Inline @[000341] Starting PHASE Save contexts around async calls - -*************** Inline @[000341] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000341] ----------- - -Arguments setup: -STMT00085 ( 0x27E[E--] ... ??? ) - [000479] DA-XG------ * STORE_LCL_VAR long V30 tmp25 - [000339] ---XG------ \--* IND long - [000338] ----------- \--* ADD byref - [000331] ----------- +--* LCL_VAR byref V00 arg0 - [000337] ----------- \--* MUL long - [000335] ----------- +--* SUB long - [000332] ----------- | +--* LCL_VAR long V04 loc1 - [000334] ----------- | \--* CNS_INT long 3 - [000336] ----------- \--* CNS_INT long 8 - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000342] with [000478] - [000342] --C-------- * RET_EXPR int (for [000341]) -> [000478] - -Inserting the inline return expression - [000478] ----------- * EQ int - [000477] ----------- +--* LCL_VAR long V30 tmp25 - [000340] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00061 in BB35: -STMT00061 ( 0x27E[E--] ... ??? ) - [000343] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000478] ----------- arg0 \--* EQ int - [000477] ----------- +--* LCL_VAR long V30 tmp25 - [000340] ----------- \--* LCL_VAR long V01 arg1 -IL argument #0: - [000478] ----------- * EQ int - [000477] ----------- +--* LCL_VAR long V30 tmp25 - [000340] ----------- \--* LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: - -Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 2a ret - -INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -Jump targets: - none -New Basic Block BB01 [0082] created. -BB01 [0082] [000..002) -Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0082] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000343] Starting PHASE Pre-import - -*************** Inline @[000343] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0082] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0082] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000343] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000343] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0082] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0082] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000343] Starting PHASE Canonicalize entry - -*************** Inline @[000343] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000343] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 31 (V31 tmp26) called for Inlining Arg. -Marked V31 as a single def temp - - [ 1] 1 (0x001) ret - - Inlinee Return expression (before normalization) => - [000482] ----------- * LCL_VAR int V31 tmp26 - - - Inlinee Return expression (after normalization) => - [000482] ----------- * LCL_VAR int V31 tmp26 - -** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL - -*************** Inline @[000343] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0082] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0082] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000343] Starting PHASE Early QMARK expansion - -*************** Inline @[000343] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0082] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0082] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000343] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000343] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000343] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000343] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000343] Starting PHASE Post-import - -*************** Inline @[000343] Finishing PHASE Post-import [no changes] - -*************** Inline @[000343] Starting PHASE Save contexts around async calls - -*************** Inline @[000343] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000343] ----------- - -Arguments setup: - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000344] with [000481] - [000344] --C-------- * RET_EXPR int (for [000343]) -> [000481] - -Inserting the inline return expression - [000481] ----------- * CAST int <- ubyte <- int - [000478] ----------- \--* EQ int - [000477] ----------- +--* LCL_VAR long V30 tmp25 - [000340] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00044 in BB38: -STMT00044 ( 0x2B8[E--] ... 0x2DB ) - [000262] I-CXG------ * CALL int System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (exactContextHandle=0x40000000004219B1) - [000260] ---XG------ arg0 +--* IND long - [000259] ----------- | \--* ADD byref - [000255] ----------- | +--* LCL_VAR byref V00 arg0 - [000258] ----------- | \--* MUL long - [000256] ----------- | +--* LCL_VAR long V04 loc1 - [000257] ----------- | \--* CNS_INT long 8 - [000261] ----------- arg1 \--* LCL_VAR long V01 arg1 -IL argument #0: has global refs has side effects - [000260] ---XG------ * IND long - [000259] ----------- \--* ADD byref - [000255] ----------- +--* LCL_VAR byref V00 arg0 - [000258] ----------- \--* MUL long - [000256] ----------- +--* LCL_VAR long V04 loc1 - [000257] ----------- \--* CNS_INT long 8 - -IL argument #1: is a local var - [000261] ----------- * LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool set to 0x40000000004219B1: - -Invoking compiler for the inlinee method System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 03 ldarg.1 -IL_0002 fe 01 ceq -IL_0004 2a ret - -INLINER impTokenLookupContextHandle for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool is 0x40000000004219B1. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool -Jump targets: - none -New Basic Block BB01 [0083] created. -BB01 [0083] [000..005) -Basic block list for 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0083] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000262] Starting PHASE Pre-import - -*************** Inline @[000262] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0083] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0083] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000262] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000262] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0083] 1 1 [000..005) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0083] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000262] Starting PHASE Canonicalize entry - -*************** Inline @[000262] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000262] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 32 (V32 tmp27) called for Inlining Arg. -Marked V32 as a single def temp - - [ 1] 1 (0x001) ldarg.1 - [ 2] 2 (0x002) ceq - [ 1] 4 (0x004) ret - - Inlinee Return expression (before normalization) => - [000485] ----------- * EQ int - [000484] ----------- +--* LCL_VAR long V32 tmp27 - [000261] ----------- \--* LCL_VAR long V01 arg1 - - - Inlinee Return expression (after normalization) => - [000485] ----------- * EQ int - [000484] ----------- +--* LCL_VAR long V32 tmp27 - [000261] ----------- \--* LCL_VAR long V01 arg1 - -** Note: inlinee IL was partially imported -- imported 0 of 5 bytes of method IL - -*************** Inline @[000262] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0083] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0083] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000262] Starting PHASE Early QMARK expansion - -*************** Inline @[000262] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0083] 1 1 [000..005) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0083] [000..005) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000262] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000262] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000262] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000262] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000262] Starting PHASE Post-import - -*************** Inline @[000262] Finishing PHASE Post-import [no changes] - -*************** Inline @[000262] Starting PHASE Save contexts around async calls - -*************** Inline @[000262] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000262] ----------- - -Arguments setup: -STMT00086 ( 0x2B8[E--] ... ??? ) - [000486] DA-XG------ * STORE_LCL_VAR long V32 tmp27 - [000260] ---XG------ \--* IND long - [000259] ----------- \--* ADD byref - [000255] ----------- +--* LCL_VAR byref V00 arg0 - [000258] ----------- \--* MUL long - [000256] ----------- +--* LCL_VAR long V04 loc1 - [000257] ----------- \--* CNS_INT long 8 - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool (5 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000263] with [000485] - [000263] --C-------- * RET_EXPR int (for [000262]) -> [000485] - -Inserting the inline return expression - [000485] ----------- * EQ int - [000484] ----------- +--* LCL_VAR long V32 tmp27 - [000261] ----------- \--* LCL_VAR long V01 arg1 - -Expanding INLINE_CANDIDATE in statement STMT00045 in BB38: -STMT00045 ( 0x2B8[E--] ... ??? ) - [000264] I-C-G------ * CALL int System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (exactContextHandle=0x400000000042CEE9) - [000485] ----------- arg0 \--* EQ int - [000484] ----------- +--* LCL_VAR long V32 tmp27 - [000261] ----------- \--* LCL_VAR long V01 arg1 -IL argument #0: - [000485] ----------- * EQ int - [000484] ----------- +--* LCL_VAR long V32 tmp27 - [000261] ----------- \--* LCL_VAR long V01 arg1 - -INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool set to 0x400000000042CEE9: - -Invoking compiler for the inlinee method System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool : -IL to import: -IL_0000 02 ldarg.0 -IL_0001 2a ret - -INLINER impTokenLookupContextHandle for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool is 0x400000000042CEE9. -1 return registers for return type ubyte - [00..01) reg rax -*************** In compInitDebuggingInfo() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -info.compStmtOffsetsCount = 0 -info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) -*************** In fgFindBasicBlocks() for System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool -Jump targets: - none -New Basic Block BB01 [0084] created. -BB01 [0084] [000..002) -Basic block list for 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0084] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Inline @[000264] Starting PHASE Pre-import - -*************** Inline @[000264] Finishing PHASE Pre-import -Trees after Pre-import - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0084] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0084] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist - -*************** Inline @[000264] Starting PHASE Profile incorporation -BBOPT not set -Computing inlinee profile scale: - ... no callee profile data, will use non-pgo weight to scale - ... call site not profiled, will use non-pgo weight to scale - call site count 100 callee entry count 100 scale 1 -Scaling inlinee blocks - -*************** Inline @[000264] Finishing PHASE Profile incorporation -Trees after Profile incorporation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0084] 1 1 [000..002) (return) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0084] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000264] Starting PHASE Canonicalize entry - -*************** Inline @[000264] Finishing PHASE Canonicalize entry [no changes] - -*************** Inline @[000264] Starting PHASE Importation - -impImportBlockPending for BB01 - -Importing BB01 (PC=000) of 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' - [ 0] 0 (0x000) ldarg.0 -lvaGrabTemp returning 33 (V33 tmp28) called for Inlining Arg. -Marked V33 as a single def temp - - [ 1] 1 (0x001) ret - - Inlinee Return expression (before normalization) => - [000489] ----------- * LCL_VAR int V33 tmp28 - - - Inlinee Return expression (after normalization) => - [000489] ----------- * LCL_VAR int V33 tmp28 - -** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL - -*************** Inline @[000264] Finishing PHASE Importation -Trees after Importation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0084] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0084] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000264] Starting PHASE Early QMARK expansion - -*************** Inline @[000264] Finishing PHASE Early QMARK expansion -Trees after Early QMARK expansion - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0084] 1 1 [000..002) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0084] [000..002) (return), preds={} succs={} - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Inline @[000264] Starting PHASE Expand patchpoints - - -- no patchpoints to transform - -*************** Inline @[000264] Finishing PHASE Expand patchpoints [no changes] - -*************** Inline @[000264] Starting PHASE Indirect call transform - - -- no candidates to transform - -*************** Inline @[000264] Finishing PHASE Indirect call transform [no changes] - -*************** Inline @[000264] Starting PHASE Post-import - -*************** Inline @[000264] Finishing PHASE Post-import [no changes] - -*************** Inline @[000264] Starting PHASE Save contexts around async calls - -*************** Inline @[000264] Finishing PHASE Save contexts around async calls [no changes] - - ------------ Statements (and blocks) added due to the inlining of call [000264] ----------- - -Arguments setup: - -Inlinee method body: -inlinee was empty -fgInlineAppendStatements: no gc ref inline locals. -Successfully inlined System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool (2 IL bytes) (depth 1) [below ALWAYS_INLINE size] --------------------------------------------------------------------------------------------- -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int' calling 'System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool' -INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' - -Replacing the return expression placeholder [000265] with [000488] - [000265] --C-------- * RET_EXPR int (for [000264]) -> [000488] - -Inserting the inline return expression - [000488] ----------- * CAST int <- ubyte <- int - [000485] ----------- \--* EQ int - [000484] ----------- +--* LCL_VAR long V32 tmp27 - [000261] ----------- \--* LCL_VAR long V01 arg1 - -**************** Inline Tree - -Inlines into 06000000 [via ExtendedDefaultPolicy] System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int: - [INL01 IL=-572662307 TR=000006 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Diagnostics.Debug:Assert(bool,System.String) - [INL02 IL=-572662307 TR=000378 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Diagnostics.Debug:Assert(bool,System.String,System.String) - [INL00 IL=0005 TR=000387 06000000] [FAILED: callee: noinline per IL/cached result] - [INL03 IL=-572662307 TR=000027 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Diagnostics.Debug:Assert(bool,System.String) - [INL04 IL=-572662307 TR=000391 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Diagnostics.Debug:Assert(bool,System.String,System.String) - [INL00 IL=0005 TR=000398 06000000] [FAILED: callee: noinline per IL/cached result] - [INL05 IL=-572662307 TR=000067 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool - [INL06 IL=-572662307 TR=000069 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool - [INL07 IL=-572662307 TR=000084 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool - [INL08 IL=-572662307 TR=000086 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool - [INL09 IL=-572662307 TR=000101 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool - [INL10 IL=-572662307 TR=000103 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool - [INL11 IL=-572662307 TR=000118 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool - [INL12 IL=-572662307 TR=000120 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool - [INL13 IL=-572662307 TR=000135 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool - [INL14 IL=-572662307 TR=000137 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool - [INL15 IL=-572662307 TR=000152 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool - [INL16 IL=-572662307 TR=000154 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool - [INL17 IL=-572662307 TR=000169 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool - [INL18 IL=-572662307 TR=000171 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool - [INL19 IL=-572662307 TR=000186 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool - [INL20 IL=-572662307 TR=000188 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool - [INL21 IL=-572662307 TR=000290 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool - [INL22 IL=-572662307 TR=000292 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool - [INL23 IL=-572662307 TR=000307 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool - [INL24 IL=-572662307 TR=000309 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool - [INL25 IL=-572662307 TR=000324 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool - [INL26 IL=-572662307 TR=000326 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool - [INL27 IL=-572662307 TR=000341 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool - [INL28 IL=-572662307 TR=000343 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool - [INL29 IL=-572662307 TR=000262 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.Int64:System.Numerics.IEqualityOperators.op_Equality(long,long):bool - [INL30 IL=-572662307 TR=000264 06000000] [INLINED: callee: below ALWAYS_INLINE size] System.SpanHelpers+DontNegate`1[long]:NegateIfNeeded(bool):bool - [INL00 IL=0798 TR=000044 06000000] [FAILED: callee: too many il bytes] -Budget: initialTime=2472, finalTime=2144, initialBudget=54384, currentBudget=54384 -Budget: initialSize=18462, finalSize=18462 - -*************** Finishing PHASE Morph - Inlining -Trees after Morph - Inlining - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..???)-> BB51(1) (always) i -BB51 [0050] 1 BB01 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB51 1 [000..001)-> BB53(1) (always) i -BB53 [0052] 2 BB51,BB52 1 [000..001)-> BB50(1) (always) i -BB50 [0053] 1 BB53 1 [01E..01E)-> BB02(1) (always) i -BB02 [0001] 1 BB50 1 [01E..02B)-> BB03(1) (always) i -BB03 [0002] 1 BB02 1 [02B..038)-> BB04(1) (always) i -BB04 [0003] 1 BB03 1 [038..045)-> BB05(1) (always) i -BB05 [0004] 1 BB04 1 [045..049)-> BB07(1) (always) i -BB07 [0006] 1 BB05 1 [04B..???)-> BB55(1) (always) i -BB55 [0055] 1 BB07 1 [04B..04C)-> BB57(0.5),BB56(0.5) ( cond ) i -BB56 [0056] 1 BB55 1 [04B..04C)-> BB57(1) (always) i -BB57 [0057] 2 BB55,BB56 1 [04B..04C)-> BB54(1) (always) i -BB54 [0058] 1 BB57 1 [05D..05D)-> BB08(1) (always) i -BB08 [0007] 1 BB54 1 [05D..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB08 1 [068..073)-> BB27(1) (always) i -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target -BB11 [0010] 1 BB10 1 [09D..0A0) (return) i -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd -BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd -BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd -BB17 [0016] 1 BB16 1 [124..12A) (return) i -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB19 [0018] 1 BB18 1 [152..158) (return) i -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB21 [0020] 1 BB20 1 [180..186) (return) i -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB31(0.5),BB30(0.5) ( cond ) i -BB30 [0029] 1 BB29 1 [21F..222) (return) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250) (return) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E) (return) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB40(0.5),BB39(0.5) ( cond ) i bwd bwd-target -BB39 [0038] 1 BB38 1 [2DD..2E0) (return) i -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i -BB43 [0042] 1 BB08 1 [2EB..2F2)-> BB46(1) (always) i -BB46 [0045] 1 BB43 1 [303..30A)-> BB49(1) (always) i -BB49 [0048] 1 BB46 1 [31B..324) (return) i ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..???) -> BB51(1) (always), preds={} succs={BB51} - ------------- BB51 [0050] [000..001) -> BB53(0.5),BB52(0.5) (cond), preds={BB01} succs={BB52,BB53} - -***** BB51 [0050] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000384] ----------- * JTRUE void - [000383] ----------- \--* NE int - [000380] ----------- +--* CAST int <- ubyte <- int - [000374] ----------- | \--* CAST int <- ubyte <- int - [000004] ----------- | \--* EQ int - [000002] ----------- | +--* LT int - [000000] ----------- | | +--* LCL_VAR int V02 arg2 - [000001] ----------- | | \--* CNS_INT int 0 - [000003] ----------- | \--* CNS_INT int 0 - [000382] ----------- \--* CNS_INT int 0 - ------------- BB52 [0051] [000..001) -> BB53(1) (always), preds={BB51} succs={BB53} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000387] --C-G------ * CALL void - [000385] ----------- arg0 +--* CNS_STR ref - [000386] ----------- arg1 \--* CNS_STR ref "" - ------------- BB53 [0052] [000..001) -> BB50(1) (always), preds={BB51,BB52} succs={BB50} - ------------- BB50 [0053] [01E..01E) -> BB02(1) (always), preds={BB53} succs={BB02} - ------------- BB02 [0001] [01E..02B) -> BB03(1) (always), preds={BB50} succs={BB03} - ------------- BB03 [0002] [02B..038) -> BB04(1) (always), preds={BB02} succs={BB04} - ------------- BB04 [0003] [038..045) -> BB05(1) (always), preds={BB03} succs={BB05} - ------------- BB05 [0004] [045..049) -> BB07(1) (always), preds={BB04} succs={BB07} - -***** BB05 [0004] -STMT00001 ( 0x045[E--] ... 0x046 ) - [000024] DA--------- * STORE_LCL_VAR int V03 loc0 - [000023] ----------- \--* CNS_INT int 1 - ------------- BB07 [0006] [04B..???) -> BB55(1) (always), preds={BB05} succs={BB55} - ------------- BB55 [0055] [04B..04C) -> BB57(0.5),BB56(0.5) (cond), preds={BB07} succs={BB56,BB57} - -***** BB55 [0055] -STMT00072 ( INL04 @ 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000395] ----------- * JTRUE void - [000394] ----------- \--* NE int - [000025] ----------- +--* LCL_VAR int V03 loc0 - [000393] ----------- \--* CNS_INT int 0 - ------------- BB56 [0056] [04B..04C) -> BB57(1) (always), preds={BB55} succs={BB57} - -***** BB56 [0056] -STMT00073 ( INL04 @ 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000398] --C-G------ * CALL void - [000396] ----------- arg0 +--* CNS_STR ref - [000397] ----------- arg1 \--* CNS_STR ref "" - ------------- BB57 [0057] [04B..04C) -> BB54(1) (always), preds={BB55,BB56} succs={BB54} - ------------- BB54 [0058] [05D..05D) -> BB08(1) (always), preds={BB57} succs={BB08} - ------------- BB08 [0007] [05D..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB54} succs={BB09,BB43} - -***** BB08 [0007] -STMT00003 ( 0x05D[E--] ... 0x063 ) - [000034] ----------- * JTRUE void - [000033] ----------- \--* GE int - [000031] ----------- +--* LCL_VAR int V02 arg2 - [000032] ----------- \--* CNS_INT int 2 vector element count - ------------- BB09 [0008] [068..073) -> BB27(1) (always), preds={BB08} succs={BB27} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) - [000051] DA--------- * STORE_LCL_VAR long V04 loc1 - [000050] ----------- \--* SUB long - [000047] ----------- +--* CAST long <- int - [000046] ----------- | \--* LCL_VAR int V02 arg2 - [000049] ----------- \--* CNS_INT long 1 - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) - [000059] DA--------- * STORE_LCL_VAR int V02 arg2 - [000058] ----------- \--* SUB int - [000056] ----------- +--* LCL_VAR int V02 arg2 - [000057] ----------- \--* CNS_INT int 8 - -***** BB10 [0009] -STMT00074 ( 0x078[E--] ... ??? ) - [000402] DA-XG------ * STORE_LCL_VAR long V08 tmp3 - [000065] ---XG------ \--* IND long - [000064] ----------- \--* ADD byref - [000060] ----------- +--* LCL_VAR byref V00 arg0 - [000063] ----------- \--* MUL long - [000061] ----------- +--* LCL_VAR long V04 loc1 - [000062] ----------- \--* CNS_INT long 8 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) - [000073] --C-------- * JTRUE void - [000072] --C-------- \--* EQ int - [000404] ----------- +--* CAST int <- ubyte <- int - [000401] ----------- | \--* EQ int - [000400] ----------- | +--* LCL_VAR long V08 tmp3 - [000066] ----------- | \--* LCL_VAR long V01 arg1 - [000071] ----------- \--* CNS_INT int 0 - ------------- BB11 [0010] [09D..0A0) (return), preds={BB10} succs={} - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) - [000242] ----------- * RETURN int - [000241] ----------- \--* CAST int <- long - [000240] ----------- \--* LCL_VAR long V04 loc1 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} - -***** BB12 [0011] -STMT00075 ( 0x0A0[E--] ... ??? ) - [000409] DA-XG------ * STORE_LCL_VAR long V10 tmp5 - [000082] ---XG------ \--* IND long - [000081] ----------- \--* ADD byref - [000074] ----------- +--* LCL_VAR byref V00 arg0 - [000080] ----------- \--* MUL long - [000078] ----------- +--* SUB long - [000075] ----------- | +--* LCL_VAR long V04 loc1 - [000077] ----------- | \--* CNS_INT long 1 - [000079] ----------- \--* CNS_INT long 8 - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] --C-------- * JTRUE void - [000089] --C-------- \--* EQ int - [000411] ----------- +--* CAST int <- ubyte <- int - [000408] ----------- | \--* EQ int - [000407] ----------- | +--* LCL_VAR long V10 tmp5 - [000083] ----------- | \--* LCL_VAR long V01 arg1 - [000088] ----------- \--* CNS_INT int 0 - ------------- BB13 [0012] [0C8..0CE) (return), preds={BB12} succs={} - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - [000239] ----------- * RETURN int - [000238] ----------- \--* CAST int <- long - [000237] ----------- \--* SUB long - [000234] ----------- +--* LCL_VAR long V04 loc1 - [000236] ----------- \--* CNS_INT long 1 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} - -***** BB14 [0013] -STMT00076 ( 0x0CE[E--] ... ??? ) - [000416] DA-XG------ * STORE_LCL_VAR long V12 tmp7 - [000099] ---XG------ \--* IND long - [000098] ----------- \--* ADD byref - [000091] ----------- +--* LCL_VAR byref V00 arg0 - [000097] ----------- \--* MUL long - [000095] ----------- +--* SUB long - [000092] ----------- | +--* LCL_VAR long V04 loc1 - [000094] ----------- | \--* CNS_INT long 2 - [000096] ----------- \--* CNS_INT long 8 - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] --C-------- * JTRUE void - [000106] --C-------- \--* EQ int - [000418] ----------- +--* CAST int <- ubyte <- int - [000415] ----------- | \--* EQ int - [000414] ----------- | +--* LCL_VAR long V12 tmp7 - [000100] ----------- | \--* LCL_VAR long V01 arg1 - [000105] ----------- \--* CNS_INT int 0 - ------------- BB15 [0014] [0F6..0FC) (return), preds={BB14} succs={} - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - [000233] ----------- * RETURN int - [000232] ----------- \--* CAST int <- long - [000231] ----------- \--* SUB long - [000228] ----------- +--* LCL_VAR long V04 loc1 - [000230] ----------- \--* CNS_INT long 2 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} - -***** BB16 [0015] -STMT00077 ( 0x0FC[E--] ... ??? ) - [000423] DA-XG------ * STORE_LCL_VAR long V14 tmp9 - [000116] ---XG------ \--* IND long - [000115] ----------- \--* ADD byref - [000108] ----------- +--* LCL_VAR byref V00 arg0 - [000114] ----------- \--* MUL long - [000112] ----------- +--* SUB long - [000109] ----------- | +--* LCL_VAR long V04 loc1 - [000111] ----------- | \--* CNS_INT long 3 - [000113] ----------- \--* CNS_INT long 8 - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] --C-------- * JTRUE void - [000123] --C-------- \--* EQ int - [000425] ----------- +--* CAST int <- ubyte <- int - [000422] ----------- | \--* EQ int - [000421] ----------- | +--* LCL_VAR long V14 tmp9 - [000117] ----------- | \--* LCL_VAR long V01 arg1 - [000122] ----------- \--* CNS_INT int 0 - ------------- BB17 [0016] [124..12A) (return), preds={BB16} succs={} - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) - [000227] ----------- * RETURN int - [000226] ----------- \--* CAST int <- long - [000225] ----------- \--* SUB long - [000222] ----------- +--* LCL_VAR long V04 loc1 - [000224] ----------- \--* CNS_INT long 3 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00078 ( 0x12A[E--] ... ??? ) - [000430] DA-XG------ * STORE_LCL_VAR long V16 tmp11 - [000133] ---XG------ \--* IND long - [000132] ----------- \--* ADD byref - [000125] ----------- +--* LCL_VAR byref V00 arg0 - [000131] ----------- \--* MUL long - [000129] ----------- +--* SUB long - [000126] ----------- | +--* LCL_VAR long V04 loc1 - [000128] ----------- | \--* CNS_INT long 4 - [000130] ----------- \--* CNS_INT long 8 - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] --C-------- * JTRUE void - [000140] --C-------- \--* EQ int - [000432] ----------- +--* CAST int <- ubyte <- int - [000429] ----------- | \--* EQ int - [000428] ----------- | +--* LCL_VAR long V16 tmp11 - [000134] ----------- | \--* LCL_VAR long V01 arg1 - [000139] ----------- \--* CNS_INT int 0 - ------------- BB19 [0018] [152..158) (return), preds={BB18} succs={} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) - [000221] ----------- * RETURN int - [000220] ----------- \--* CAST int <- long - [000219] ----------- \--* SUB long - [000216] ----------- +--* LCL_VAR long V04 loc1 - [000218] ----------- \--* CNS_INT long 4 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00079 ( 0x158[E--] ... ??? ) - [000437] DA-XG------ * STORE_LCL_VAR long V18 tmp13 - [000150] ---XG------ \--* IND long - [000149] ----------- \--* ADD byref - [000142] ----------- +--* LCL_VAR byref V00 arg0 - [000148] ----------- \--* MUL long - [000146] ----------- +--* SUB long - [000143] ----------- | +--* LCL_VAR long V04 loc1 - [000145] ----------- | \--* CNS_INT long 5 - [000147] ----------- \--* CNS_INT long 8 - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) - [000158] --C-------- * JTRUE void - [000157] --C-------- \--* EQ int - [000439] ----------- +--* CAST int <- ubyte <- int - [000436] ----------- | \--* EQ int - [000435] ----------- | +--* LCL_VAR long V18 tmp13 - [000151] ----------- | \--* LCL_VAR long V01 arg1 - [000156] ----------- \--* CNS_INT int 0 - ------------- BB21 [0020] [180..186) (return), preds={BB20} succs={} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) - [000215] ----------- * RETURN int - [000214] ----------- \--* CAST int <- long - [000213] ----------- \--* SUB long - [000210] ----------- +--* LCL_VAR long V04 loc1 - [000212] ----------- \--* CNS_INT long 5 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00080 ( 0x186[E--] ... ??? ) - [000444] DA-XG------ * STORE_LCL_VAR long V20 tmp15 - [000167] ---XG------ \--* IND long - [000166] ----------- \--* ADD byref - [000159] ----------- +--* LCL_VAR byref V00 arg0 - [000165] ----------- \--* MUL long - [000163] ----------- +--* SUB long - [000160] ----------- | +--* LCL_VAR long V04 loc1 - [000162] ----------- | \--* CNS_INT long 6 - [000164] ----------- \--* CNS_INT long 8 - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) - [000175] --C-------- * JTRUE void - [000174] --C-------- \--* EQ int - [000446] ----------- +--* CAST int <- ubyte <- int - [000443] ----------- | \--* EQ int - [000442] ----------- | +--* LCL_VAR long V20 tmp15 - [000168] ----------- | \--* LCL_VAR long V01 arg1 - [000173] ----------- \--* CNS_INT int 0 - ------------- BB23 [0022] [1AE..1B4) (return), preds={BB22} succs={} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) - [000209] ----------- * RETURN int - [000208] ----------- \--* CAST int <- long - [000207] ----------- \--* SUB long - [000204] ----------- +--* LCL_VAR long V04 loc1 - [000206] ----------- \--* CNS_INT long 6 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00081 ( 0x1B4[E--] ... ??? ) - [000451] DA-XG------ * STORE_LCL_VAR long V22 tmp17 - [000184] ---XG------ \--* IND long - [000183] ----------- \--* ADD byref - [000176] ----------- +--* LCL_VAR byref V00 arg0 - [000182] ----------- \--* MUL long - [000180] ----------- +--* SUB long - [000177] ----------- | +--* LCL_VAR long V04 loc1 - [000179] ----------- | \--* CNS_INT long 7 - [000181] ----------- \--* CNS_INT long 8 - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] --C-------- * JTRUE void - [000191] --C-------- \--* EQ int - [000453] ----------- +--* CAST int <- ubyte <- int - [000450] ----------- | \--* EQ int - [000449] ----------- | +--* LCL_VAR long V22 tmp17 - [000185] ----------- | \--* LCL_VAR long V01 arg1 - [000190] ----------- \--* CNS_INT int 0 - ------------- BB25 [0024] [1DC..1E2) (return), preds={BB24} succs={} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) - [000203] ----------- * RETURN int - [000202] ----------- \--* CAST int <- long - [000201] ----------- \--* SUB long - [000198] ----------- +--* LCL_VAR long V04 loc1 - [000200] ----------- \--* CNS_INT long 7 - ------------- BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - [000197] DA--------- * STORE_LCL_VAR long V04 loc1 - [000196] ----------- \--* SUB long - [000193] ----------- +--* LCL_VAR long V04 loc1 - [000195] ----------- \--* CNS_INT long 8 - ------------- BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} - -***** BB27 [0026] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - [000055] ----------- * JTRUE void - [000054] ----------- \--* GE int - [000052] ----------- +--* LCL_VAR int V02 arg2 - [000053] ----------- \--* CNS_INT int 8 - ------------- BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} - -***** BB28 [0027] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) - [000246] ----------- * JTRUE void - [000245] ----------- \--* LT int - [000243] ----------- +--* LCL_VAR int V02 arg2 - [000244] ----------- \--* CNS_INT int 4 - ------------- BB29 [0028] [1F5..21F) -> BB31(0.5),BB30(0.5) (cond), preds={BB28} succs={BB30,BB31} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) - [000282] DA--------- * STORE_LCL_VAR int V02 arg2 - [000281] ----------- \--* SUB int - [000279] ----------- +--* LCL_VAR int V02 arg2 - [000280] ----------- \--* CNS_INT int 4 - -***** BB29 [0028] -STMT00082 ( 0x1FA[E--] ... ??? ) - [000458] DA-XG------ * STORE_LCL_VAR long V24 tmp19 - [000288] ---XG------ \--* IND long - [000287] ----------- \--* ADD byref - [000283] ----------- +--* LCL_VAR byref V00 arg0 - [000286] ----------- \--* MUL long - [000284] ----------- +--* LCL_VAR long V04 loc1 - [000285] ----------- \--* CNS_INT long 8 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] --C-------- * JTRUE void - [000295] --C-------- \--* EQ int - [000460] ----------- +--* CAST int <- ubyte <- int - [000457] ----------- | \--* EQ int - [000456] ----------- | +--* LCL_VAR long V24 tmp19 - [000289] ----------- | \--* LCL_VAR long V01 arg1 - [000294] ----------- \--* CNS_INT int 0 - ------------- BB30 [0029] [21F..222) (return), preds={BB29} succs={} - -***** BB30 [0029] -STMT00067 ( 0x21F[E--] ... 0x221 ) - [000373] ----------- * RETURN int - [000372] ----------- \--* CAST int <- long - [000371] ----------- \--* LCL_VAR long V04 loc1 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00083 ( 0x222[E--] ... ??? ) - [000465] DA-XG------ * STORE_LCL_VAR long V26 tmp21 - [000305] ---XG------ \--* IND long - [000304] ----------- \--* ADD byref - [000297] ----------- +--* LCL_VAR byref V00 arg0 - [000303] ----------- \--* MUL long - [000301] ----------- +--* SUB long - [000298] ----------- | +--* LCL_VAR long V04 loc1 - [000300] ----------- | \--* CNS_INT long 1 - [000302] ----------- \--* CNS_INT long 8 - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) - [000313] --C-------- * JTRUE void - [000312] --C-------- \--* EQ int - [000467] ----------- +--* CAST int <- ubyte <- int - [000464] ----------- | \--* EQ int - [000463] ----------- | +--* LCL_VAR long V26 tmp21 - [000306] ----------- | \--* LCL_VAR long V01 arg1 - [000311] ----------- \--* CNS_INT int 0 - ------------- BB32 [0031] [24A..250) (return), preds={BB31} succs={} - -***** BB32 [0031] -STMT00066 ( 0x24A[E--] ... 0x24F ) - [000370] ----------- * RETURN int - [000369] ----------- \--* CAST int <- long - [000368] ----------- \--* SUB long - [000365] ----------- +--* LCL_VAR long V04 loc1 - [000367] ----------- \--* CNS_INT long 1 - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00084 ( 0x250[E--] ... ??? ) - [000472] DA-XG------ * STORE_LCL_VAR long V28 tmp23 - [000322] ---XG------ \--* IND long - [000321] ----------- \--* ADD byref - [000314] ----------- +--* LCL_VAR byref V00 arg0 - [000320] ----------- \--* MUL long - [000318] ----------- +--* SUB long - [000315] ----------- | +--* LCL_VAR long V04 loc1 - [000317] ----------- | \--* CNS_INT long 2 - [000319] ----------- \--* CNS_INT long 8 - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) - [000330] --C-------- * JTRUE void - [000329] --C-------- \--* EQ int - [000474] ----------- +--* CAST int <- ubyte <- int - [000471] ----------- | \--* EQ int - [000470] ----------- | +--* LCL_VAR long V28 tmp23 - [000323] ----------- | \--* LCL_VAR long V01 arg1 - [000328] ----------- \--* CNS_INT int 0 - ------------- BB34 [0033] [278..27E) (return), preds={BB33} succs={} - -***** BB34 [0033] -STMT00065 ( 0x278[E--] ... 0x27D ) - [000364] ----------- * RETURN int - [000363] ----------- \--* CAST int <- long - [000362] ----------- \--* SUB long - [000359] ----------- +--* LCL_VAR long V04 loc1 - [000361] ----------- \--* CNS_INT long 2 - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00085 ( 0x27E[E--] ... ??? ) - [000479] DA-XG------ * STORE_LCL_VAR long V30 tmp25 - [000339] ---XG------ \--* IND long - [000338] ----------- \--* ADD byref - [000331] ----------- +--* LCL_VAR byref V00 arg0 - [000337] ----------- \--* MUL long - [000335] ----------- +--* SUB long - [000332] ----------- | +--* LCL_VAR long V04 loc1 - [000334] ----------- | \--* CNS_INT long 3 - [000336] ----------- \--* CNS_INT long 8 - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] --C-------- * JTRUE void - [000346] --C-------- \--* EQ int - [000481] ----------- +--* CAST int <- ubyte <- int - [000478] ----------- | \--* EQ int - [000477] ----------- | +--* LCL_VAR long V30 tmp25 - [000340] ----------- | \--* LCL_VAR long V01 arg1 - [000345] ----------- \--* CNS_INT int 0 - ------------- BB36 [0035] [2A6..2AC) (return), preds={BB35} succs={} - -***** BB36 [0035] -STMT00064 ( 0x2A6[E--] ... 0x2AB ) - [000358] ----------- * RETURN int - [000357] ----------- \--* CAST int <- long - [000356] ----------- \--* SUB long - [000353] ----------- +--* LCL_VAR long V04 loc1 - [000355] ----------- \--* CNS_INT long 3 - ------------- BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) - [000352] DA--------- * STORE_LCL_VAR long V04 loc1 - [000351] ----------- \--* SUB long - [000348] ----------- +--* LCL_VAR long V04 loc1 - [000350] ----------- \--* CNS_INT long 4 - ------------- BB38 [0037] [2B3..2DD) -> BB40(0.5),BB39(0.5) (cond), preds={BB41} succs={BB39,BB40} - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) - [000254] DA--------- * STORE_LCL_VAR int V02 arg2 - [000253] ----------- \--* SUB int - [000251] ----------- +--* LCL_VAR int V02 arg2 - [000252] ----------- \--* CNS_INT int 1 - -***** BB38 [0037] -STMT00086 ( 0x2B8[E--] ... ??? ) - [000486] DA-XG------ * STORE_LCL_VAR long V32 tmp27 - [000260] ---XG------ \--* IND long - [000259] ----------- \--* ADD byref - [000255] ----------- +--* LCL_VAR byref V00 arg0 - [000258] ----------- \--* MUL long - [000256] ----------- +--* LCL_VAR long V04 loc1 - [000257] ----------- \--* CNS_INT long 8 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] --C-------- * JTRUE void - [000267] --C-------- \--* EQ int - [000488] ----------- +--* CAST int <- ubyte <- int - [000485] ----------- | \--* EQ int - [000484] ----------- | +--* LCL_VAR long V32 tmp27 - [000261] ----------- | \--* LCL_VAR long V01 arg1 - [000266] ----------- \--* CNS_INT int 0 - ------------- BB39 [0038] [2DD..2E0) (return), preds={BB38} succs={} - -***** BB39 [0038] -STMT00048 ( 0x2DD[E--] ... 0x2DF ) - [000276] ----------- * RETURN int - [000275] ----------- \--* CAST int <- long - [000274] ----------- \--* LCL_VAR long V04 loc1 - ------------- BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - [000273] DA--------- * STORE_LCL_VAR long V04 loc1 - [000272] ----------- \--* SUB long - [000269] ----------- +--* LCL_VAR long V04 loc1 - [000271] ----------- \--* CNS_INT long 1 - ------------- BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} - -***** BB41 [0040] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - [000250] ----------- * JTRUE void - [000249] ----------- \--* GT int - [000247] ----------- +--* LCL_VAR int V02 arg2 - [000248] ----------- \--* CNS_INT int 0 - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} - -***** BB42 [0041] -STMT00049 ( 0x2E9[E--] ... 0x2EA ) - [000278] ----------- * RETURN int - [000277] ----------- \--* CNS_INT int -1 - ------------- BB43 [0042] [2EB..2F2) -> BB46(1) (always), preds={BB08} succs={BB46} - ------------- BB46 [0045] [303..30A) -> BB49(1) (always), preds={BB43} succs={BB49} - ------------- BB49 [0048] [31B..324) (return), preds={BB46} succs={} - -***** BB49 [0048] -STMT00004 ( 0x31B[E--] ... 0x323 ) - [000045] --C-G------ * RETURN int - [000044] --C-G------ \--* CALL int - [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 - [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 - [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Resolve GDV Checks - -*************** Finishing PHASE Resolve GDV Checks [no changes] - -*************** Starting PHASE DFS blocks and remove dead code 1 - -*************** Finishing PHASE DFS blocks and remove dead code 1 [no changes] - -*************** Starting PHASE Allocate Objects -no newobjs or newarr in this method; punting - -*************** Finishing PHASE Allocate Objects [no changes] - -*************** Starting PHASE Morph - Add internal blocks -fgNewBBinRegion(jumpKind=BBJ_RETURN, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=true): inserting after BB49 -New Basic Block BB58 [0085] created. - - newReturnBB [BB58] created - -lvaGrabTemp returning 34 (V34 tmp29) called for Single return block return value. - -mergeReturns statement tree [000492] added to genReturnBB BB58 [0085] - [000492] ----------- * RETURN int - [000491] -------N--- \--* LCL_VAR int V34 tmp29 - -fgNewBBinRegion(jumpKind=BBJ_RETURN, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=true): inserting after BB58 -New Basic Block BB59 [0086] created. - - newReturnBB [BB59] created - -mergeReturns statement tree [000493] added to genReturnBB BB59 [0086] - [000493] ----------- * RETURN int - [000277] ----------- \--* CNS_INT int -1 - -setting likelihood of BB42 -> BB59 to 1 - -removing useless STMT00049 ( 0x2E9[E--] ... 0x2EA ) - [000278] ----------- * RETURN int - [000277] ----------- \--* CNS_INT int -1 - from BB42 - -BB42 becomes empty -Relocated block [BB59..BB59] inserted after BB42 - -*************** After fgAddInternal() - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..???)-> BB51(1) (always) i -BB51 [0050] 1 BB01 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB51 1 [000..001)-> BB53(1) (always) i -BB53 [0052] 2 BB51,BB52 1 [000..001)-> BB50(1) (always) i -BB50 [0053] 1 BB53 1 [01E..01E)-> BB02(1) (always) i -BB02 [0001] 1 BB50 1 [01E..02B)-> BB03(1) (always) i -BB03 [0002] 1 BB02 1 [02B..038)-> BB04(1) (always) i -BB04 [0003] 1 BB03 1 [038..045)-> BB05(1) (always) i -BB05 [0004] 1 BB04 1 [045..049)-> BB07(1) (always) i -BB07 [0006] 1 BB05 1 [04B..???)-> BB55(1) (always) i -BB55 [0055] 1 BB07 1 [04B..04C)-> BB57(0.5),BB56(0.5) ( cond ) i -BB56 [0056] 1 BB55 1 [04B..04C)-> BB57(1) (always) i -BB57 [0057] 2 BB55,BB56 1 [04B..04C)-> BB54(1) (always) i -BB54 [0058] 1 BB57 1 [05D..05D)-> BB08(1) (always) i -BB08 [0007] 1 BB54 1 [05D..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB08 1 [068..073)-> BB27(1) (always) i -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target -BB11 [0010] 1 BB10 1 [09D..0A0) (return) i -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd -BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd -BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd -BB17 [0016] 1 BB16 1 [124..12A) (return) i -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB19 [0018] 1 BB18 1 [152..158) (return) i -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB21 [0020] 1 BB20 1 [180..186) (return) i -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB31(0.5),BB30(0.5) ( cond ) i -BB30 [0029] 1 BB29 1 [21F..222) (return) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250) (return) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E) (return) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB40(0.5),BB39(0.5) ( cond ) i bwd bwd-target -BB39 [0038] 1 BB38 1 [2DD..2E0) (return) i -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB)-> BB59(1) (always) i -BB59 [0086] 1 BB42 1 [???..???) (return) internal -BB43 [0042] 1 BB08 1 [2EB..2F2)-> BB46(1) (always) i -BB46 [0045] 1 BB43 1 [303..30A)-> BB49(1) (always) i -BB49 [0048] 1 BB46 1 [31B..324) (return) i -BB58 [0085] 0 1 [???..???) (return) keep internal merged-return ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Exception Handling table is empty - -*************** Finishing PHASE Morph - Add internal blocks -Trees after Morph - Add internal blocks - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..???)-> BB51(1) (always) i -BB51 [0050] 1 BB01 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB51 1 [000..001)-> BB53(1) (always) i -BB53 [0052] 2 BB51,BB52 1 [000..001)-> BB50(1) (always) i -BB50 [0053] 1 BB53 1 [01E..01E)-> BB02(1) (always) i -BB02 [0001] 1 BB50 1 [01E..02B)-> BB03(1) (always) i -BB03 [0002] 1 BB02 1 [02B..038)-> BB04(1) (always) i -BB04 [0003] 1 BB03 1 [038..045)-> BB05(1) (always) i -BB05 [0004] 1 BB04 1 [045..049)-> BB07(1) (always) i -BB07 [0006] 1 BB05 1 [04B..???)-> BB55(1) (always) i -BB55 [0055] 1 BB07 1 [04B..04C)-> BB57(0.5),BB56(0.5) ( cond ) i -BB56 [0056] 1 BB55 1 [04B..04C)-> BB57(1) (always) i -BB57 [0057] 2 BB55,BB56 1 [04B..04C)-> BB54(1) (always) i -BB54 [0058] 1 BB57 1 [05D..05D)-> BB08(1) (always) i -BB08 [0007] 1 BB54 1 [05D..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB08 1 [068..073)-> BB27(1) (always) i -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target -BB11 [0010] 1 BB10 1 [09D..0A0) (return) i -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd -BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd -BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd -BB17 [0016] 1 BB16 1 [124..12A) (return) i -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB19 [0018] 1 BB18 1 [152..158) (return) i -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB21 [0020] 1 BB20 1 [180..186) (return) i -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB31(0.5),BB30(0.5) ( cond ) i -BB30 [0029] 1 BB29 1 [21F..222) (return) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250) (return) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E) (return) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB40(0.5),BB39(0.5) ( cond ) i bwd bwd-target -BB39 [0038] 1 BB38 1 [2DD..2E0) (return) i -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB)-> BB59(1) (always) i -BB59 [0086] 1 BB42 1 [???..???) (return) internal -BB43 [0042] 1 BB08 1 [2EB..2F2)-> BB46(1) (always) i -BB46 [0045] 1 BB43 1 [303..30A)-> BB49(1) (always) i -BB49 [0048] 1 BB46 1 [31B..324) (return) i -BB58 [0085] 0 1 [???..???) (return) keep internal merged-return ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..???) -> BB51(1) (always), preds={} succs={BB51} - ------------- BB51 [0050] [000..001) -> BB53(0.5),BB52(0.5) (cond), preds={BB01} succs={BB52,BB53} - -***** BB51 [0050] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000384] ----------- * JTRUE void - [000383] ----------- \--* NE int - [000380] ----------- +--* CAST int <- ubyte <- int - [000374] ----------- | \--* CAST int <- ubyte <- int - [000004] ----------- | \--* EQ int - [000002] ----------- | +--* LT int - [000000] ----------- | | +--* LCL_VAR int V02 arg2 - [000001] ----------- | | \--* CNS_INT int 0 - [000003] ----------- | \--* CNS_INT int 0 - [000382] ----------- \--* CNS_INT int 0 - ------------- BB52 [0051] [000..001) -> BB53(1) (always), preds={BB51} succs={BB53} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000387] --C-G------ * CALL void - [000385] ----------- arg0 +--* CNS_STR ref - [000386] ----------- arg1 \--* CNS_STR ref "" - ------------- BB53 [0052] [000..001) -> BB50(1) (always), preds={BB51,BB52} succs={BB50} - ------------- BB50 [0053] [01E..01E) -> BB02(1) (always), preds={BB53} succs={BB02} - ------------- BB02 [0001] [01E..02B) -> BB03(1) (always), preds={BB50} succs={BB03} - ------------- BB03 [0002] [02B..038) -> BB04(1) (always), preds={BB02} succs={BB04} - ------------- BB04 [0003] [038..045) -> BB05(1) (always), preds={BB03} succs={BB05} - ------------- BB05 [0004] [045..049) -> BB07(1) (always), preds={BB04} succs={BB07} - -***** BB05 [0004] -STMT00001 ( 0x045[E--] ... 0x046 ) - [000024] DA--------- * STORE_LCL_VAR int V03 loc0 - [000023] ----------- \--* CNS_INT int 1 - ------------- BB07 [0006] [04B..???) -> BB55(1) (always), preds={BB05} succs={BB55} - ------------- BB55 [0055] [04B..04C) -> BB57(0.5),BB56(0.5) (cond), preds={BB07} succs={BB56,BB57} - -***** BB55 [0055] -STMT00072 ( INL04 @ 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000395] ----------- * JTRUE void - [000394] ----------- \--* NE int - [000025] ----------- +--* LCL_VAR int V03 loc0 - [000393] ----------- \--* CNS_INT int 0 - ------------- BB56 [0056] [04B..04C) -> BB57(1) (always), preds={BB55} succs={BB57} - -***** BB56 [0056] -STMT00073 ( INL04 @ 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000398] --C-G------ * CALL void - [000396] ----------- arg0 +--* CNS_STR ref - [000397] ----------- arg1 \--* CNS_STR ref "" - ------------- BB57 [0057] [04B..04C) -> BB54(1) (always), preds={BB55,BB56} succs={BB54} - ------------- BB54 [0058] [05D..05D) -> BB08(1) (always), preds={BB57} succs={BB08} - ------------- BB08 [0007] [05D..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB54} succs={BB09,BB43} - -***** BB08 [0007] -STMT00003 ( 0x05D[E--] ... 0x063 ) - [000034] ----------- * JTRUE void - [000033] ----------- \--* GE int - [000031] ----------- +--* LCL_VAR int V02 arg2 - [000032] ----------- \--* CNS_INT int 2 vector element count - ------------- BB09 [0008] [068..073) -> BB27(1) (always), preds={BB08} succs={BB27} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) - [000051] DA--------- * STORE_LCL_VAR long V04 loc1 - [000050] ----------- \--* SUB long - [000047] ----------- +--* CAST long <- int - [000046] ----------- | \--* LCL_VAR int V02 arg2 - [000049] ----------- \--* CNS_INT long 1 - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) - [000059] DA--------- * STORE_LCL_VAR int V02 arg2 - [000058] ----------- \--* SUB int - [000056] ----------- +--* LCL_VAR int V02 arg2 - [000057] ----------- \--* CNS_INT int 8 - -***** BB10 [0009] -STMT00074 ( 0x078[E--] ... ??? ) - [000402] DA-XG------ * STORE_LCL_VAR long V08 tmp3 - [000065] ---XG------ \--* IND long - [000064] ----------- \--* ADD byref - [000060] ----------- +--* LCL_VAR byref V00 arg0 - [000063] ----------- \--* MUL long - [000061] ----------- +--* LCL_VAR long V04 loc1 - [000062] ----------- \--* CNS_INT long 8 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) - [000073] --C-------- * JTRUE void - [000072] --C-------- \--* EQ int - [000404] ----------- +--* CAST int <- ubyte <- int - [000401] ----------- | \--* EQ int - [000400] ----------- | +--* LCL_VAR long V08 tmp3 - [000066] ----------- | \--* LCL_VAR long V01 arg1 - [000071] ----------- \--* CNS_INT int 0 - ------------- BB11 [0010] [09D..0A0) (return), preds={BB10} succs={} - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) - [000242] ----------- * RETURN int - [000241] ----------- \--* CAST int <- long - [000240] ----------- \--* LCL_VAR long V04 loc1 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} - -***** BB12 [0011] -STMT00075 ( 0x0A0[E--] ... ??? ) - [000409] DA-XG------ * STORE_LCL_VAR long V10 tmp5 - [000082] ---XG------ \--* IND long - [000081] ----------- \--* ADD byref - [000074] ----------- +--* LCL_VAR byref V00 arg0 - [000080] ----------- \--* MUL long - [000078] ----------- +--* SUB long - [000075] ----------- | +--* LCL_VAR long V04 loc1 - [000077] ----------- | \--* CNS_INT long 1 - [000079] ----------- \--* CNS_INT long 8 - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] --C-------- * JTRUE void - [000089] --C-------- \--* EQ int - [000411] ----------- +--* CAST int <- ubyte <- int - [000408] ----------- | \--* EQ int - [000407] ----------- | +--* LCL_VAR long V10 tmp5 - [000083] ----------- | \--* LCL_VAR long V01 arg1 - [000088] ----------- \--* CNS_INT int 0 - ------------- BB13 [0012] [0C8..0CE) (return), preds={BB12} succs={} - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - [000239] ----------- * RETURN int - [000238] ----------- \--* CAST int <- long - [000237] ----------- \--* SUB long - [000234] ----------- +--* LCL_VAR long V04 loc1 - [000236] ----------- \--* CNS_INT long 1 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} - -***** BB14 [0013] -STMT00076 ( 0x0CE[E--] ... ??? ) - [000416] DA-XG------ * STORE_LCL_VAR long V12 tmp7 - [000099] ---XG------ \--* IND long - [000098] ----------- \--* ADD byref - [000091] ----------- +--* LCL_VAR byref V00 arg0 - [000097] ----------- \--* MUL long - [000095] ----------- +--* SUB long - [000092] ----------- | +--* LCL_VAR long V04 loc1 - [000094] ----------- | \--* CNS_INT long 2 - [000096] ----------- \--* CNS_INT long 8 - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] --C-------- * JTRUE void - [000106] --C-------- \--* EQ int - [000418] ----------- +--* CAST int <- ubyte <- int - [000415] ----------- | \--* EQ int - [000414] ----------- | +--* LCL_VAR long V12 tmp7 - [000100] ----------- | \--* LCL_VAR long V01 arg1 - [000105] ----------- \--* CNS_INT int 0 - ------------- BB15 [0014] [0F6..0FC) (return), preds={BB14} succs={} - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - [000233] ----------- * RETURN int - [000232] ----------- \--* CAST int <- long - [000231] ----------- \--* SUB long - [000228] ----------- +--* LCL_VAR long V04 loc1 - [000230] ----------- \--* CNS_INT long 2 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} - -***** BB16 [0015] -STMT00077 ( 0x0FC[E--] ... ??? ) - [000423] DA-XG------ * STORE_LCL_VAR long V14 tmp9 - [000116] ---XG------ \--* IND long - [000115] ----------- \--* ADD byref - [000108] ----------- +--* LCL_VAR byref V00 arg0 - [000114] ----------- \--* MUL long - [000112] ----------- +--* SUB long - [000109] ----------- | +--* LCL_VAR long V04 loc1 - [000111] ----------- | \--* CNS_INT long 3 - [000113] ----------- \--* CNS_INT long 8 - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] --C-------- * JTRUE void - [000123] --C-------- \--* EQ int - [000425] ----------- +--* CAST int <- ubyte <- int - [000422] ----------- | \--* EQ int - [000421] ----------- | +--* LCL_VAR long V14 tmp9 - [000117] ----------- | \--* LCL_VAR long V01 arg1 - [000122] ----------- \--* CNS_INT int 0 - ------------- BB17 [0016] [124..12A) (return), preds={BB16} succs={} - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) - [000227] ----------- * RETURN int - [000226] ----------- \--* CAST int <- long - [000225] ----------- \--* SUB long - [000222] ----------- +--* LCL_VAR long V04 loc1 - [000224] ----------- \--* CNS_INT long 3 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00078 ( 0x12A[E--] ... ??? ) - [000430] DA-XG------ * STORE_LCL_VAR long V16 tmp11 - [000133] ---XG------ \--* IND long - [000132] ----------- \--* ADD byref - [000125] ----------- +--* LCL_VAR byref V00 arg0 - [000131] ----------- \--* MUL long - [000129] ----------- +--* SUB long - [000126] ----------- | +--* LCL_VAR long V04 loc1 - [000128] ----------- | \--* CNS_INT long 4 - [000130] ----------- \--* CNS_INT long 8 - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] --C-------- * JTRUE void - [000140] --C-------- \--* EQ int - [000432] ----------- +--* CAST int <- ubyte <- int - [000429] ----------- | \--* EQ int - [000428] ----------- | +--* LCL_VAR long V16 tmp11 - [000134] ----------- | \--* LCL_VAR long V01 arg1 - [000139] ----------- \--* CNS_INT int 0 - ------------- BB19 [0018] [152..158) (return), preds={BB18} succs={} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) - [000221] ----------- * RETURN int - [000220] ----------- \--* CAST int <- long - [000219] ----------- \--* SUB long - [000216] ----------- +--* LCL_VAR long V04 loc1 - [000218] ----------- \--* CNS_INT long 4 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00079 ( 0x158[E--] ... ??? ) - [000437] DA-XG------ * STORE_LCL_VAR long V18 tmp13 - [000150] ---XG------ \--* IND long - [000149] ----------- \--* ADD byref - [000142] ----------- +--* LCL_VAR byref V00 arg0 - [000148] ----------- \--* MUL long - [000146] ----------- +--* SUB long - [000143] ----------- | +--* LCL_VAR long V04 loc1 - [000145] ----------- | \--* CNS_INT long 5 - [000147] ----------- \--* CNS_INT long 8 - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) - [000158] --C-------- * JTRUE void - [000157] --C-------- \--* EQ int - [000439] ----------- +--* CAST int <- ubyte <- int - [000436] ----------- | \--* EQ int - [000435] ----------- | +--* LCL_VAR long V18 tmp13 - [000151] ----------- | \--* LCL_VAR long V01 arg1 - [000156] ----------- \--* CNS_INT int 0 - ------------- BB21 [0020] [180..186) (return), preds={BB20} succs={} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) - [000215] ----------- * RETURN int - [000214] ----------- \--* CAST int <- long - [000213] ----------- \--* SUB long - [000210] ----------- +--* LCL_VAR long V04 loc1 - [000212] ----------- \--* CNS_INT long 5 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00080 ( 0x186[E--] ... ??? ) - [000444] DA-XG------ * STORE_LCL_VAR long V20 tmp15 - [000167] ---XG------ \--* IND long - [000166] ----------- \--* ADD byref - [000159] ----------- +--* LCL_VAR byref V00 arg0 - [000165] ----------- \--* MUL long - [000163] ----------- +--* SUB long - [000160] ----------- | +--* LCL_VAR long V04 loc1 - [000162] ----------- | \--* CNS_INT long 6 - [000164] ----------- \--* CNS_INT long 8 - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) - [000175] --C-------- * JTRUE void - [000174] --C-------- \--* EQ int - [000446] ----------- +--* CAST int <- ubyte <- int - [000443] ----------- | \--* EQ int - [000442] ----------- | +--* LCL_VAR long V20 tmp15 - [000168] ----------- | \--* LCL_VAR long V01 arg1 - [000173] ----------- \--* CNS_INT int 0 - ------------- BB23 [0022] [1AE..1B4) (return), preds={BB22} succs={} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) - [000209] ----------- * RETURN int - [000208] ----------- \--* CAST int <- long - [000207] ----------- \--* SUB long - [000204] ----------- +--* LCL_VAR long V04 loc1 - [000206] ----------- \--* CNS_INT long 6 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00081 ( 0x1B4[E--] ... ??? ) - [000451] DA-XG------ * STORE_LCL_VAR long V22 tmp17 - [000184] ---XG------ \--* IND long - [000183] ----------- \--* ADD byref - [000176] ----------- +--* LCL_VAR byref V00 arg0 - [000182] ----------- \--* MUL long - [000180] ----------- +--* SUB long - [000177] ----------- | +--* LCL_VAR long V04 loc1 - [000179] ----------- | \--* CNS_INT long 7 - [000181] ----------- \--* CNS_INT long 8 - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] --C-------- * JTRUE void - [000191] --C-------- \--* EQ int - [000453] ----------- +--* CAST int <- ubyte <- int - [000450] ----------- | \--* EQ int - [000449] ----------- | +--* LCL_VAR long V22 tmp17 - [000185] ----------- | \--* LCL_VAR long V01 arg1 - [000190] ----------- \--* CNS_INT int 0 - ------------- BB25 [0024] [1DC..1E2) (return), preds={BB24} succs={} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) - [000203] ----------- * RETURN int - [000202] ----------- \--* CAST int <- long - [000201] ----------- \--* SUB long - [000198] ----------- +--* LCL_VAR long V04 loc1 - [000200] ----------- \--* CNS_INT long 7 - ------------- BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - [000197] DA--------- * STORE_LCL_VAR long V04 loc1 - [000196] ----------- \--* SUB long - [000193] ----------- +--* LCL_VAR long V04 loc1 - [000195] ----------- \--* CNS_INT long 8 - ------------- BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} - -***** BB27 [0026] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - [000055] ----------- * JTRUE void - [000054] ----------- \--* GE int - [000052] ----------- +--* LCL_VAR int V02 arg2 - [000053] ----------- \--* CNS_INT int 8 - ------------- BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} - -***** BB28 [0027] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) - [000246] ----------- * JTRUE void - [000245] ----------- \--* LT int - [000243] ----------- +--* LCL_VAR int V02 arg2 - [000244] ----------- \--* CNS_INT int 4 - ------------- BB29 [0028] [1F5..21F) -> BB31(0.5),BB30(0.5) (cond), preds={BB28} succs={BB30,BB31} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) - [000282] DA--------- * STORE_LCL_VAR int V02 arg2 - [000281] ----------- \--* SUB int - [000279] ----------- +--* LCL_VAR int V02 arg2 - [000280] ----------- \--* CNS_INT int 4 - -***** BB29 [0028] -STMT00082 ( 0x1FA[E--] ... ??? ) - [000458] DA-XG------ * STORE_LCL_VAR long V24 tmp19 - [000288] ---XG------ \--* IND long - [000287] ----------- \--* ADD byref - [000283] ----------- +--* LCL_VAR byref V00 arg0 - [000286] ----------- \--* MUL long - [000284] ----------- +--* LCL_VAR long V04 loc1 - [000285] ----------- \--* CNS_INT long 8 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] --C-------- * JTRUE void - [000295] --C-------- \--* EQ int - [000460] ----------- +--* CAST int <- ubyte <- int - [000457] ----------- | \--* EQ int - [000456] ----------- | +--* LCL_VAR long V24 tmp19 - [000289] ----------- | \--* LCL_VAR long V01 arg1 - [000294] ----------- \--* CNS_INT int 0 - ------------- BB30 [0029] [21F..222) (return), preds={BB29} succs={} - -***** BB30 [0029] -STMT00067 ( 0x21F[E--] ... 0x221 ) - [000373] ----------- * RETURN int - [000372] ----------- \--* CAST int <- long - [000371] ----------- \--* LCL_VAR long V04 loc1 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00083 ( 0x222[E--] ... ??? ) - [000465] DA-XG------ * STORE_LCL_VAR long V26 tmp21 - [000305] ---XG------ \--* IND long - [000304] ----------- \--* ADD byref - [000297] ----------- +--* LCL_VAR byref V00 arg0 - [000303] ----------- \--* MUL long - [000301] ----------- +--* SUB long - [000298] ----------- | +--* LCL_VAR long V04 loc1 - [000300] ----------- | \--* CNS_INT long 1 - [000302] ----------- \--* CNS_INT long 8 - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) - [000313] --C-------- * JTRUE void - [000312] --C-------- \--* EQ int - [000467] ----------- +--* CAST int <- ubyte <- int - [000464] ----------- | \--* EQ int - [000463] ----------- | +--* LCL_VAR long V26 tmp21 - [000306] ----------- | \--* LCL_VAR long V01 arg1 - [000311] ----------- \--* CNS_INT int 0 - ------------- BB32 [0031] [24A..250) (return), preds={BB31} succs={} - -***** BB32 [0031] -STMT00066 ( 0x24A[E--] ... 0x24F ) - [000370] ----------- * RETURN int - [000369] ----------- \--* CAST int <- long - [000368] ----------- \--* SUB long - [000365] ----------- +--* LCL_VAR long V04 loc1 - [000367] ----------- \--* CNS_INT long 1 - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00084 ( 0x250[E--] ... ??? ) - [000472] DA-XG------ * STORE_LCL_VAR long V28 tmp23 - [000322] ---XG------ \--* IND long - [000321] ----------- \--* ADD byref - [000314] ----------- +--* LCL_VAR byref V00 arg0 - [000320] ----------- \--* MUL long - [000318] ----------- +--* SUB long - [000315] ----------- | +--* LCL_VAR long V04 loc1 - [000317] ----------- | \--* CNS_INT long 2 - [000319] ----------- \--* CNS_INT long 8 - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) - [000330] --C-------- * JTRUE void - [000329] --C-------- \--* EQ int - [000474] ----------- +--* CAST int <- ubyte <- int - [000471] ----------- | \--* EQ int - [000470] ----------- | +--* LCL_VAR long V28 tmp23 - [000323] ----------- | \--* LCL_VAR long V01 arg1 - [000328] ----------- \--* CNS_INT int 0 - ------------- BB34 [0033] [278..27E) (return), preds={BB33} succs={} - -***** BB34 [0033] -STMT00065 ( 0x278[E--] ... 0x27D ) - [000364] ----------- * RETURN int - [000363] ----------- \--* CAST int <- long - [000362] ----------- \--* SUB long - [000359] ----------- +--* LCL_VAR long V04 loc1 - [000361] ----------- \--* CNS_INT long 2 - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00085 ( 0x27E[E--] ... ??? ) - [000479] DA-XG------ * STORE_LCL_VAR long V30 tmp25 - [000339] ---XG------ \--* IND long - [000338] ----------- \--* ADD byref - [000331] ----------- +--* LCL_VAR byref V00 arg0 - [000337] ----------- \--* MUL long - [000335] ----------- +--* SUB long - [000332] ----------- | +--* LCL_VAR long V04 loc1 - [000334] ----------- | \--* CNS_INT long 3 - [000336] ----------- \--* CNS_INT long 8 - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] --C-------- * JTRUE void - [000346] --C-------- \--* EQ int - [000481] ----------- +--* CAST int <- ubyte <- int - [000478] ----------- | \--* EQ int - [000477] ----------- | +--* LCL_VAR long V30 tmp25 - [000340] ----------- | \--* LCL_VAR long V01 arg1 - [000345] ----------- \--* CNS_INT int 0 - ------------- BB36 [0035] [2A6..2AC) (return), preds={BB35} succs={} - -***** BB36 [0035] -STMT00064 ( 0x2A6[E--] ... 0x2AB ) - [000358] ----------- * RETURN int - [000357] ----------- \--* CAST int <- long - [000356] ----------- \--* SUB long - [000353] ----------- +--* LCL_VAR long V04 loc1 - [000355] ----------- \--* CNS_INT long 3 - ------------- BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) - [000352] DA--------- * STORE_LCL_VAR long V04 loc1 - [000351] ----------- \--* SUB long - [000348] ----------- +--* LCL_VAR long V04 loc1 - [000350] ----------- \--* CNS_INT long 4 - ------------- BB38 [0037] [2B3..2DD) -> BB40(0.5),BB39(0.5) (cond), preds={BB41} succs={BB39,BB40} - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) - [000254] DA--------- * STORE_LCL_VAR int V02 arg2 - [000253] ----------- \--* SUB int - [000251] ----------- +--* LCL_VAR int V02 arg2 - [000252] ----------- \--* CNS_INT int 1 - -***** BB38 [0037] -STMT00086 ( 0x2B8[E--] ... ??? ) - [000486] DA-XG------ * STORE_LCL_VAR long V32 tmp27 - [000260] ---XG------ \--* IND long - [000259] ----------- \--* ADD byref - [000255] ----------- +--* LCL_VAR byref V00 arg0 - [000258] ----------- \--* MUL long - [000256] ----------- +--* LCL_VAR long V04 loc1 - [000257] ----------- \--* CNS_INT long 8 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] --C-------- * JTRUE void - [000267] --C-------- \--* EQ int - [000488] ----------- +--* CAST int <- ubyte <- int - [000485] ----------- | \--* EQ int - [000484] ----------- | +--* LCL_VAR long V32 tmp27 - [000261] ----------- | \--* LCL_VAR long V01 arg1 - [000266] ----------- \--* CNS_INT int 0 - ------------- BB39 [0038] [2DD..2E0) (return), preds={BB38} succs={} - -***** BB39 [0038] -STMT00048 ( 0x2DD[E--] ... 0x2DF ) - [000276] ----------- * RETURN int - [000275] ----------- \--* CAST int <- long - [000274] ----------- \--* LCL_VAR long V04 loc1 - ------------- BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - [000273] DA--------- * STORE_LCL_VAR long V04 loc1 - [000272] ----------- \--* SUB long - [000269] ----------- +--* LCL_VAR long V04 loc1 - [000271] ----------- \--* CNS_INT long 1 - ------------- BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} - -***** BB41 [0040] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - [000250] ----------- * JTRUE void - [000249] ----------- \--* GT int - [000247] ----------- +--* LCL_VAR int V02 arg2 - [000248] ----------- \--* CNS_INT int 0 - ------------- BB42 [0041] [2E9..2EB) -> BB59(1) (always), preds={BB41} succs={BB59} - ------------- BB59 [0086] [???..???) (return), preds={BB42} succs={} - -***** BB59 [0086] -STMT00088 ( ??? ... ??? ) - [000493] ----------- * RETURN int - [000277] ----------- \--* CNS_INT int -1 - ------------- BB43 [0042] [2EB..2F2) -> BB46(1) (always), preds={BB08} succs={BB46} - ------------- BB46 [0045] [303..30A) -> BB49(1) (always), preds={BB43} succs={BB49} - ------------- BB49 [0048] [31B..324) (return), preds={BB46} succs={} - -***** BB49 [0048] -STMT00004 ( 0x31B[E--] ... 0x323 ) - [000045] --C-G------ * RETURN int - [000044] --C-G------ \--* CALL int - [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 - [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 - [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 - ------------- BB58 [0085] [???..???) (return), preds={} succs={} - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) - [000492] ----------- * RETURN int - [000491] -------N--- \--* LCL_VAR int V34 tmp29 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Remove empty try - -*************** In fgRemoveEmptyTry() -No EH in this method, nothing to remove. - -*************** Finishing PHASE Remove empty try [no changes] - -*************** Starting PHASE Remove empty try/catch/fault - -*************** In fgRemoveEmptyTryCatchOrTryFault() -No EH in this method, nothing to remove. - -*************** Finishing PHASE Remove empty try/catch/fault [no changes] - -*************** Starting PHASE Remove empty finally -No EH in this method, nothing to remove. - -*************** Finishing PHASE Remove empty finally [no changes] - -*************** Starting PHASE Merge callfinally chains -No EH in this method, nothing to merge. - -*************** Finishing PHASE Merge callfinally chains [no changes] - -*************** Starting PHASE Clone finally -No EH in this method, no cloning. - -*************** Finishing PHASE Clone finally [no changes] - -*************** Starting PHASE Head and tail merge -A set of 3 return blocks end with the same tree -STMT00040 ( 0x09D[E--] ... 0x09F ) - [000242] ----------- * RETURN int - [000241] ----------- \--* CAST int <- long - [000240] ----------- \--* LCL_VAR long V04 loc1 -Will cross-jump to BB11 - -unlinking STMT00067 ( 0x21F[E--] ... 0x221 ) - [000373] ----------- * RETURN int - [000372] ----------- \--* CAST int <- long - [000371] ----------- \--* LCL_VAR long V04 loc1 - from BB30 - -BB30 becomes empty -setting likelihood of BB30 -> BB11 to 1 - -unlinking STMT00048 ( 0x2DD[E--] ... 0x2DF ) - [000276] ----------- * RETURN int - [000275] ----------- \--* CAST int <- long - [000274] ----------- \--* LCL_VAR long V04 loc1 - from BB39 - -BB39 becomes empty -setting likelihood of BB39 -> BB11 to 1 - -*************** Finishing PHASE Head and tail merge -Trees after Head and tail merge - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..???)-> BB51(1) (always) i -BB51 [0050] 1 BB01 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB51 1 [000..001)-> BB53(1) (always) i -BB53 [0052] 2 BB51,BB52 1 [000..001)-> BB50(1) (always) i -BB50 [0053] 1 BB53 1 [01E..01E)-> BB02(1) (always) i -BB02 [0001] 1 BB50 1 [01E..02B)-> BB03(1) (always) i -BB03 [0002] 1 BB02 1 [02B..038)-> BB04(1) (always) i -BB04 [0003] 1 BB03 1 [038..045)-> BB05(1) (always) i -BB05 [0004] 1 BB04 1 [045..049)-> BB07(1) (always) i -BB07 [0006] 1 BB05 1 [04B..???)-> BB55(1) (always) i -BB55 [0055] 1 BB07 1 [04B..04C)-> BB57(0.5),BB56(0.5) ( cond ) i -BB56 [0056] 1 BB55 1 [04B..04C)-> BB57(1) (always) i -BB57 [0057] 2 BB55,BB56 1 [04B..04C)-> BB54(1) (always) i -BB54 [0058] 1 BB57 1 [05D..05D)-> BB08(1) (always) i -BB08 [0007] 1 BB54 1 [05D..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB08 1 [068..073)-> BB27(1) (always) i -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target -BB11 [0010] 3 BB10,BB30,BB39 1 [09D..0A0) (return) i -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd -BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd -BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd -BB17 [0016] 1 BB16 1 [124..12A) (return) i -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB19 [0018] 1 BB18 1 [152..158) (return) i -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB21 [0020] 1 BB20 1 [180..186) (return) i -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB31(0.5),BB30(0.5) ( cond ) i -BB30 [0029] 1 BB29 1 [21F..222)-> BB11(1) (always) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250) (return) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E) (return) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB40(0.5),BB39(0.5) ( cond ) i bwd bwd-target -BB39 [0038] 1 BB38 1 [2DD..2E0)-> BB11(1) (always) i -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB)-> BB59(1) (always) i -BB59 [0086] 1 BB42 1 [???..???) (return) internal -BB43 [0042] 1 BB08 1 [2EB..2F2)-> BB46(1) (always) i -BB46 [0045] 1 BB43 1 [303..30A)-> BB49(1) (always) i -BB49 [0048] 1 BB46 1 [31B..324) (return) i -BB58 [0085] 0 1 [???..???) (return) keep internal merged-return ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..???) -> BB51(1) (always), preds={} succs={BB51} - ------------- BB51 [0050] [000..001) -> BB53(0.5),BB52(0.5) (cond), preds={BB01} succs={BB52,BB53} - -***** BB51 [0050] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000384] ----------- * JTRUE void - [000383] ----------- \--* NE int - [000380] ----------- +--* CAST int <- ubyte <- int - [000374] ----------- | \--* CAST int <- ubyte <- int - [000004] ----------- | \--* EQ int - [000002] ----------- | +--* LT int - [000000] ----------- | | +--* LCL_VAR int V02 arg2 - [000001] ----------- | | \--* CNS_INT int 0 - [000003] ----------- | \--* CNS_INT int 0 - [000382] ----------- \--* CNS_INT int 0 - ------------- BB52 [0051] [000..001) -> BB53(1) (always), preds={BB51} succs={BB53} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000387] --C-G------ * CALL void - [000385] ----------- arg0 +--* CNS_STR ref - [000386] ----------- arg1 \--* CNS_STR ref "" - ------------- BB53 [0052] [000..001) -> BB50(1) (always), preds={BB51,BB52} succs={BB50} - ------------- BB50 [0053] [01E..01E) -> BB02(1) (always), preds={BB53} succs={BB02} - ------------- BB02 [0001] [01E..02B) -> BB03(1) (always), preds={BB50} succs={BB03} - ------------- BB03 [0002] [02B..038) -> BB04(1) (always), preds={BB02} succs={BB04} - ------------- BB04 [0003] [038..045) -> BB05(1) (always), preds={BB03} succs={BB05} - ------------- BB05 [0004] [045..049) -> BB07(1) (always), preds={BB04} succs={BB07} - -***** BB05 [0004] -STMT00001 ( 0x045[E--] ... 0x046 ) - [000024] DA--------- * STORE_LCL_VAR int V03 loc0 - [000023] ----------- \--* CNS_INT int 1 - ------------- BB07 [0006] [04B..???) -> BB55(1) (always), preds={BB05} succs={BB55} - ------------- BB55 [0055] [04B..04C) -> BB57(0.5),BB56(0.5) (cond), preds={BB07} succs={BB56,BB57} - -***** BB55 [0055] -STMT00072 ( INL04 @ 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000395] ----------- * JTRUE void - [000394] ----------- \--* NE int - [000025] ----------- +--* LCL_VAR int V03 loc0 - [000393] ----------- \--* CNS_INT int 0 - ------------- BB56 [0056] [04B..04C) -> BB57(1) (always), preds={BB55} succs={BB57} - -***** BB56 [0056] -STMT00073 ( INL04 @ 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000398] --C-G------ * CALL void - [000396] ----------- arg0 +--* CNS_STR ref - [000397] ----------- arg1 \--* CNS_STR ref "" - ------------- BB57 [0057] [04B..04C) -> BB54(1) (always), preds={BB55,BB56} succs={BB54} - ------------- BB54 [0058] [05D..05D) -> BB08(1) (always), preds={BB57} succs={BB08} - ------------- BB08 [0007] [05D..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB54} succs={BB09,BB43} - -***** BB08 [0007] -STMT00003 ( 0x05D[E--] ... 0x063 ) - [000034] ----------- * JTRUE void - [000033] ----------- \--* GE int - [000031] ----------- +--* LCL_VAR int V02 arg2 - [000032] ----------- \--* CNS_INT int 2 vector element count - ------------- BB09 [0008] [068..073) -> BB27(1) (always), preds={BB08} succs={BB27} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) - [000051] DA--------- * STORE_LCL_VAR long V04 loc1 - [000050] ----------- \--* SUB long - [000047] ----------- +--* CAST long <- int - [000046] ----------- | \--* LCL_VAR int V02 arg2 - [000049] ----------- \--* CNS_INT long 1 - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) - [000059] DA--------- * STORE_LCL_VAR int V02 arg2 - [000058] ----------- \--* SUB int - [000056] ----------- +--* LCL_VAR int V02 arg2 - [000057] ----------- \--* CNS_INT int 8 - -***** BB10 [0009] -STMT00074 ( 0x078[E--] ... ??? ) - [000402] DA-XG------ * STORE_LCL_VAR long V08 tmp3 - [000065] ---XG------ \--* IND long - [000064] ----------- \--* ADD byref - [000060] ----------- +--* LCL_VAR byref V00 arg0 - [000063] ----------- \--* MUL long - [000061] ----------- +--* LCL_VAR long V04 loc1 - [000062] ----------- \--* CNS_INT long 8 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) - [000073] --C-------- * JTRUE void - [000072] --C-------- \--* EQ int - [000404] ----------- +--* CAST int <- ubyte <- int - [000401] ----------- | \--* EQ int - [000400] ----------- | +--* LCL_VAR long V08 tmp3 - [000066] ----------- | \--* LCL_VAR long V01 arg1 - [000071] ----------- \--* CNS_INT int 0 - ------------- BB11 [0010] [09D..0A0) (return), preds={BB10,BB30,BB39} succs={} - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) - [000242] ----------- * RETURN int - [000241] ----------- \--* CAST int <- long - [000240] ----------- \--* LCL_VAR long V04 loc1 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} - -***** BB12 [0011] -STMT00075 ( 0x0A0[E--] ... ??? ) - [000409] DA-XG------ * STORE_LCL_VAR long V10 tmp5 - [000082] ---XG------ \--* IND long - [000081] ----------- \--* ADD byref - [000074] ----------- +--* LCL_VAR byref V00 arg0 - [000080] ----------- \--* MUL long - [000078] ----------- +--* SUB long - [000075] ----------- | +--* LCL_VAR long V04 loc1 - [000077] ----------- | \--* CNS_INT long 1 - [000079] ----------- \--* CNS_INT long 8 - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] --C-------- * JTRUE void - [000089] --C-------- \--* EQ int - [000411] ----------- +--* CAST int <- ubyte <- int - [000408] ----------- | \--* EQ int - [000407] ----------- | +--* LCL_VAR long V10 tmp5 - [000083] ----------- | \--* LCL_VAR long V01 arg1 - [000088] ----------- \--* CNS_INT int 0 - ------------- BB13 [0012] [0C8..0CE) (return), preds={BB12} succs={} - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - [000239] ----------- * RETURN int - [000238] ----------- \--* CAST int <- long - [000237] ----------- \--* SUB long - [000234] ----------- +--* LCL_VAR long V04 loc1 - [000236] ----------- \--* CNS_INT long 1 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} - -***** BB14 [0013] -STMT00076 ( 0x0CE[E--] ... ??? ) - [000416] DA-XG------ * STORE_LCL_VAR long V12 tmp7 - [000099] ---XG------ \--* IND long - [000098] ----------- \--* ADD byref - [000091] ----------- +--* LCL_VAR byref V00 arg0 - [000097] ----------- \--* MUL long - [000095] ----------- +--* SUB long - [000092] ----------- | +--* LCL_VAR long V04 loc1 - [000094] ----------- | \--* CNS_INT long 2 - [000096] ----------- \--* CNS_INT long 8 - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] --C-------- * JTRUE void - [000106] --C-------- \--* EQ int - [000418] ----------- +--* CAST int <- ubyte <- int - [000415] ----------- | \--* EQ int - [000414] ----------- | +--* LCL_VAR long V12 tmp7 - [000100] ----------- | \--* LCL_VAR long V01 arg1 - [000105] ----------- \--* CNS_INT int 0 - ------------- BB15 [0014] [0F6..0FC) (return), preds={BB14} succs={} - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - [000233] ----------- * RETURN int - [000232] ----------- \--* CAST int <- long - [000231] ----------- \--* SUB long - [000228] ----------- +--* LCL_VAR long V04 loc1 - [000230] ----------- \--* CNS_INT long 2 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} - -***** BB16 [0015] -STMT00077 ( 0x0FC[E--] ... ??? ) - [000423] DA-XG------ * STORE_LCL_VAR long V14 tmp9 - [000116] ---XG------ \--* IND long - [000115] ----------- \--* ADD byref - [000108] ----------- +--* LCL_VAR byref V00 arg0 - [000114] ----------- \--* MUL long - [000112] ----------- +--* SUB long - [000109] ----------- | +--* LCL_VAR long V04 loc1 - [000111] ----------- | \--* CNS_INT long 3 - [000113] ----------- \--* CNS_INT long 8 - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] --C-------- * JTRUE void - [000123] --C-------- \--* EQ int - [000425] ----------- +--* CAST int <- ubyte <- int - [000422] ----------- | \--* EQ int - [000421] ----------- | +--* LCL_VAR long V14 tmp9 - [000117] ----------- | \--* LCL_VAR long V01 arg1 - [000122] ----------- \--* CNS_INT int 0 - ------------- BB17 [0016] [124..12A) (return), preds={BB16} succs={} - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) - [000227] ----------- * RETURN int - [000226] ----------- \--* CAST int <- long - [000225] ----------- \--* SUB long - [000222] ----------- +--* LCL_VAR long V04 loc1 - [000224] ----------- \--* CNS_INT long 3 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00078 ( 0x12A[E--] ... ??? ) - [000430] DA-XG------ * STORE_LCL_VAR long V16 tmp11 - [000133] ---XG------ \--* IND long - [000132] ----------- \--* ADD byref - [000125] ----------- +--* LCL_VAR byref V00 arg0 - [000131] ----------- \--* MUL long - [000129] ----------- +--* SUB long - [000126] ----------- | +--* LCL_VAR long V04 loc1 - [000128] ----------- | \--* CNS_INT long 4 - [000130] ----------- \--* CNS_INT long 8 - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] --C-------- * JTRUE void - [000140] --C-------- \--* EQ int - [000432] ----------- +--* CAST int <- ubyte <- int - [000429] ----------- | \--* EQ int - [000428] ----------- | +--* LCL_VAR long V16 tmp11 - [000134] ----------- | \--* LCL_VAR long V01 arg1 - [000139] ----------- \--* CNS_INT int 0 - ------------- BB19 [0018] [152..158) (return), preds={BB18} succs={} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) - [000221] ----------- * RETURN int - [000220] ----------- \--* CAST int <- long - [000219] ----------- \--* SUB long - [000216] ----------- +--* LCL_VAR long V04 loc1 - [000218] ----------- \--* CNS_INT long 4 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00079 ( 0x158[E--] ... ??? ) - [000437] DA-XG------ * STORE_LCL_VAR long V18 tmp13 - [000150] ---XG------ \--* IND long - [000149] ----------- \--* ADD byref - [000142] ----------- +--* LCL_VAR byref V00 arg0 - [000148] ----------- \--* MUL long - [000146] ----------- +--* SUB long - [000143] ----------- | +--* LCL_VAR long V04 loc1 - [000145] ----------- | \--* CNS_INT long 5 - [000147] ----------- \--* CNS_INT long 8 - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) - [000158] --C-------- * JTRUE void - [000157] --C-------- \--* EQ int - [000439] ----------- +--* CAST int <- ubyte <- int - [000436] ----------- | \--* EQ int - [000435] ----------- | +--* LCL_VAR long V18 tmp13 - [000151] ----------- | \--* LCL_VAR long V01 arg1 - [000156] ----------- \--* CNS_INT int 0 - ------------- BB21 [0020] [180..186) (return), preds={BB20} succs={} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) - [000215] ----------- * RETURN int - [000214] ----------- \--* CAST int <- long - [000213] ----------- \--* SUB long - [000210] ----------- +--* LCL_VAR long V04 loc1 - [000212] ----------- \--* CNS_INT long 5 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00080 ( 0x186[E--] ... ??? ) - [000444] DA-XG------ * STORE_LCL_VAR long V20 tmp15 - [000167] ---XG------ \--* IND long - [000166] ----------- \--* ADD byref - [000159] ----------- +--* LCL_VAR byref V00 arg0 - [000165] ----------- \--* MUL long - [000163] ----------- +--* SUB long - [000160] ----------- | +--* LCL_VAR long V04 loc1 - [000162] ----------- | \--* CNS_INT long 6 - [000164] ----------- \--* CNS_INT long 8 - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) - [000175] --C-------- * JTRUE void - [000174] --C-------- \--* EQ int - [000446] ----------- +--* CAST int <- ubyte <- int - [000443] ----------- | \--* EQ int - [000442] ----------- | +--* LCL_VAR long V20 tmp15 - [000168] ----------- | \--* LCL_VAR long V01 arg1 - [000173] ----------- \--* CNS_INT int 0 - ------------- BB23 [0022] [1AE..1B4) (return), preds={BB22} succs={} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) - [000209] ----------- * RETURN int - [000208] ----------- \--* CAST int <- long - [000207] ----------- \--* SUB long - [000204] ----------- +--* LCL_VAR long V04 loc1 - [000206] ----------- \--* CNS_INT long 6 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00081 ( 0x1B4[E--] ... ??? ) - [000451] DA-XG------ * STORE_LCL_VAR long V22 tmp17 - [000184] ---XG------ \--* IND long - [000183] ----------- \--* ADD byref - [000176] ----------- +--* LCL_VAR byref V00 arg0 - [000182] ----------- \--* MUL long - [000180] ----------- +--* SUB long - [000177] ----------- | +--* LCL_VAR long V04 loc1 - [000179] ----------- | \--* CNS_INT long 7 - [000181] ----------- \--* CNS_INT long 8 - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] --C-------- * JTRUE void - [000191] --C-------- \--* EQ int - [000453] ----------- +--* CAST int <- ubyte <- int - [000450] ----------- | \--* EQ int - [000449] ----------- | +--* LCL_VAR long V22 tmp17 - [000185] ----------- | \--* LCL_VAR long V01 arg1 - [000190] ----------- \--* CNS_INT int 0 - ------------- BB25 [0024] [1DC..1E2) (return), preds={BB24} succs={} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) - [000203] ----------- * RETURN int - [000202] ----------- \--* CAST int <- long - [000201] ----------- \--* SUB long - [000198] ----------- +--* LCL_VAR long V04 loc1 - [000200] ----------- \--* CNS_INT long 7 - ------------- BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - [000197] DA--------- * STORE_LCL_VAR long V04 loc1 - [000196] ----------- \--* SUB long - [000193] ----------- +--* LCL_VAR long V04 loc1 - [000195] ----------- \--* CNS_INT long 8 - ------------- BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} - -***** BB27 [0026] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - [000055] ----------- * JTRUE void - [000054] ----------- \--* GE int - [000052] ----------- +--* LCL_VAR int V02 arg2 - [000053] ----------- \--* CNS_INT int 8 - ------------- BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} - -***** BB28 [0027] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) - [000246] ----------- * JTRUE void - [000245] ----------- \--* LT int - [000243] ----------- +--* LCL_VAR int V02 arg2 - [000244] ----------- \--* CNS_INT int 4 - ------------- BB29 [0028] [1F5..21F) -> BB31(0.5),BB30(0.5) (cond), preds={BB28} succs={BB30,BB31} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) - [000282] DA--------- * STORE_LCL_VAR int V02 arg2 - [000281] ----------- \--* SUB int - [000279] ----------- +--* LCL_VAR int V02 arg2 - [000280] ----------- \--* CNS_INT int 4 - -***** BB29 [0028] -STMT00082 ( 0x1FA[E--] ... ??? ) - [000458] DA-XG------ * STORE_LCL_VAR long V24 tmp19 - [000288] ---XG------ \--* IND long - [000287] ----------- \--* ADD byref - [000283] ----------- +--* LCL_VAR byref V00 arg0 - [000286] ----------- \--* MUL long - [000284] ----------- +--* LCL_VAR long V04 loc1 - [000285] ----------- \--* CNS_INT long 8 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] --C-------- * JTRUE void - [000295] --C-------- \--* EQ int - [000460] ----------- +--* CAST int <- ubyte <- int - [000457] ----------- | \--* EQ int - [000456] ----------- | +--* LCL_VAR long V24 tmp19 - [000289] ----------- | \--* LCL_VAR long V01 arg1 - [000294] ----------- \--* CNS_INT int 0 - ------------- BB30 [0029] [21F..222) -> BB11(1) (always), preds={BB29} succs={BB11} - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00083 ( 0x222[E--] ... ??? ) - [000465] DA-XG------ * STORE_LCL_VAR long V26 tmp21 - [000305] ---XG------ \--* IND long - [000304] ----------- \--* ADD byref - [000297] ----------- +--* LCL_VAR byref V00 arg0 - [000303] ----------- \--* MUL long - [000301] ----------- +--* SUB long - [000298] ----------- | +--* LCL_VAR long V04 loc1 - [000300] ----------- | \--* CNS_INT long 1 - [000302] ----------- \--* CNS_INT long 8 - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) - [000313] --C-------- * JTRUE void - [000312] --C-------- \--* EQ int - [000467] ----------- +--* CAST int <- ubyte <- int - [000464] ----------- | \--* EQ int - [000463] ----------- | +--* LCL_VAR long V26 tmp21 - [000306] ----------- | \--* LCL_VAR long V01 arg1 - [000311] ----------- \--* CNS_INT int 0 - ------------- BB32 [0031] [24A..250) (return), preds={BB31} succs={} - -***** BB32 [0031] -STMT00066 ( 0x24A[E--] ... 0x24F ) - [000370] ----------- * RETURN int - [000369] ----------- \--* CAST int <- long - [000368] ----------- \--* SUB long - [000365] ----------- +--* LCL_VAR long V04 loc1 - [000367] ----------- \--* CNS_INT long 1 - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00084 ( 0x250[E--] ... ??? ) - [000472] DA-XG------ * STORE_LCL_VAR long V28 tmp23 - [000322] ---XG------ \--* IND long - [000321] ----------- \--* ADD byref - [000314] ----------- +--* LCL_VAR byref V00 arg0 - [000320] ----------- \--* MUL long - [000318] ----------- +--* SUB long - [000315] ----------- | +--* LCL_VAR long V04 loc1 - [000317] ----------- | \--* CNS_INT long 2 - [000319] ----------- \--* CNS_INT long 8 - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) - [000330] --C-------- * JTRUE void - [000329] --C-------- \--* EQ int - [000474] ----------- +--* CAST int <- ubyte <- int - [000471] ----------- | \--* EQ int - [000470] ----------- | +--* LCL_VAR long V28 tmp23 - [000323] ----------- | \--* LCL_VAR long V01 arg1 - [000328] ----------- \--* CNS_INT int 0 - ------------- BB34 [0033] [278..27E) (return), preds={BB33} succs={} - -***** BB34 [0033] -STMT00065 ( 0x278[E--] ... 0x27D ) - [000364] ----------- * RETURN int - [000363] ----------- \--* CAST int <- long - [000362] ----------- \--* SUB long - [000359] ----------- +--* LCL_VAR long V04 loc1 - [000361] ----------- \--* CNS_INT long 2 - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00085 ( 0x27E[E--] ... ??? ) - [000479] DA-XG------ * STORE_LCL_VAR long V30 tmp25 - [000339] ---XG------ \--* IND long - [000338] ----------- \--* ADD byref - [000331] ----------- +--* LCL_VAR byref V00 arg0 - [000337] ----------- \--* MUL long - [000335] ----------- +--* SUB long - [000332] ----------- | +--* LCL_VAR long V04 loc1 - [000334] ----------- | \--* CNS_INT long 3 - [000336] ----------- \--* CNS_INT long 8 - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] --C-------- * JTRUE void - [000346] --C-------- \--* EQ int - [000481] ----------- +--* CAST int <- ubyte <- int - [000478] ----------- | \--* EQ int - [000477] ----------- | +--* LCL_VAR long V30 tmp25 - [000340] ----------- | \--* LCL_VAR long V01 arg1 - [000345] ----------- \--* CNS_INT int 0 - ------------- BB36 [0035] [2A6..2AC) (return), preds={BB35} succs={} - -***** BB36 [0035] -STMT00064 ( 0x2A6[E--] ... 0x2AB ) - [000358] ----------- * RETURN int - [000357] ----------- \--* CAST int <- long - [000356] ----------- \--* SUB long - [000353] ----------- +--* LCL_VAR long V04 loc1 - [000355] ----------- \--* CNS_INT long 3 - ------------- BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) - [000352] DA--------- * STORE_LCL_VAR long V04 loc1 - [000351] ----------- \--* SUB long - [000348] ----------- +--* LCL_VAR long V04 loc1 - [000350] ----------- \--* CNS_INT long 4 - ------------- BB38 [0037] [2B3..2DD) -> BB40(0.5),BB39(0.5) (cond), preds={BB41} succs={BB39,BB40} - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) - [000254] DA--------- * STORE_LCL_VAR int V02 arg2 - [000253] ----------- \--* SUB int - [000251] ----------- +--* LCL_VAR int V02 arg2 - [000252] ----------- \--* CNS_INT int 1 - -***** BB38 [0037] -STMT00086 ( 0x2B8[E--] ... ??? ) - [000486] DA-XG------ * STORE_LCL_VAR long V32 tmp27 - [000260] ---XG------ \--* IND long - [000259] ----------- \--* ADD byref - [000255] ----------- +--* LCL_VAR byref V00 arg0 - [000258] ----------- \--* MUL long - [000256] ----------- +--* LCL_VAR long V04 loc1 - [000257] ----------- \--* CNS_INT long 8 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] --C-------- * JTRUE void - [000267] --C-------- \--* EQ int - [000488] ----------- +--* CAST int <- ubyte <- int - [000485] ----------- | \--* EQ int - [000484] ----------- | +--* LCL_VAR long V32 tmp27 - [000261] ----------- | \--* LCL_VAR long V01 arg1 - [000266] ----------- \--* CNS_INT int 0 - ------------- BB39 [0038] [2DD..2E0) -> BB11(1) (always), preds={BB38} succs={BB11} - ------------- BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - [000273] DA--------- * STORE_LCL_VAR long V04 loc1 - [000272] ----------- \--* SUB long - [000269] ----------- +--* LCL_VAR long V04 loc1 - [000271] ----------- \--* CNS_INT long 1 - ------------- BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} - -***** BB41 [0040] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - [000250] ----------- * JTRUE void - [000249] ----------- \--* GT int - [000247] ----------- +--* LCL_VAR int V02 arg2 - [000248] ----------- \--* CNS_INT int 0 - ------------- BB42 [0041] [2E9..2EB) -> BB59(1) (always), preds={BB41} succs={BB59} - ------------- BB59 [0086] [???..???) (return), preds={BB42} succs={} - -***** BB59 [0086] -STMT00088 ( ??? ... ??? ) - [000493] ----------- * RETURN int - [000277] ----------- \--* CNS_INT int -1 - ------------- BB43 [0042] [2EB..2F2) -> BB46(1) (always), preds={BB08} succs={BB46} - ------------- BB46 [0045] [303..30A) -> BB49(1) (always), preds={BB43} succs={BB49} - ------------- BB49 [0048] [31B..324) (return), preds={BB46} succs={} - -***** BB49 [0048] -STMT00004 ( 0x31B[E--] ... 0x323 ) - [000045] --C-G------ * RETURN int - [000044] --C-G------ \--* CALL int - [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 - [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 - [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 - ------------- BB58 [0085] [???..???) (return), preds={} succs={} - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) - [000492] ----------- * RETURN int - [000491] -------N--- \--* LCL_VAR int V34 tmp29 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Merge throw blocks - -*************** In fgTailMergeThrows -Method does not have multiple noreturn calls. - -*************** Finishing PHASE Merge throw blocks [no changes] - -*************** Starting PHASE Update flow graph early pass - -Compacting BB51 into BB01: -*************** In fgDebugCheckBBlist - -Compacting BB50 into BB53: -setting likelihood of BB53 -> BB02 from 1 to 1 -*************** In fgDebugCheckBBlist - -Compacting BB02 into BB53: -setting likelihood of BB53 -> BB03 from 1 to 1 -*************** In fgDebugCheckBBlist - -Compacting BB03 into BB53: -setting likelihood of BB53 -> BB04 from 1 to 1 -*************** In fgDebugCheckBBlist - -Compacting BB04 into BB53: -setting likelihood of BB53 -> BB05 from 1 to 1 -*************** In fgDebugCheckBBlist - -Compacting BB05 into BB53: -setting likelihood of BB53 -> BB07 from 1 to 1 -*************** In fgDebugCheckBBlist - -Compacting BB07 into BB53: -setting likelihood of BB53 -> BB55 from 1 to 1 -*************** In fgDebugCheckBBlist - -Compacting BB55 into BB53: -*************** In fgDebugCheckBBlist - -Compacting BB54 into BB57: -setting likelihood of BB57 -> BB08 from 1 to 1 -*************** In fgDebugCheckBBlist - -Compacting BB08 into BB57: -*************** In fgDebugCheckBBlist - -Reversing a conditional jump around an unconditional jump (BB29 -> BB31, BB30 -> BB11) - -After reversing the jump: - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 1 [000..001)-> BB53(1) (always) i -BB53 [0052] 2 BB01,BB52 1 [000..04C)-> BB57(0.5),BB56(0.5) ( cond ) i -BB56 [0056] 1 BB53 1 [04B..04C)-> BB57(1) (always) i -BB57 [0057] 2 BB53,BB56 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target -BB11 [0010] 3 BB10,BB29,BB39 1 [09D..0A0) (return) i -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd -BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd -BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd -BB17 [0016] 1 BB16 1 [124..12A) (return) i -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB19 [0018] 1 BB18 1 [152..158) (return) i -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB21 [0020] 1 BB20 1 [180..186) (return) i -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250) (return) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E) (return) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB40(0.5),BB39(0.5) ( cond ) i bwd bwd-target -BB39 [0038] 1 BB38 1 [2DD..2E0)-> BB11(1) (always) i -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB)-> BB59(1) (always) i -BB59 [0086] 1 BB42 1 [???..???) (return) internal -BB43 [0042] 1 BB57 1 [2EB..2F2)-> BB46(1) (always) i -BB46 [0045] 1 BB43 1 [303..30A)-> BB49(1) (always) i -BB49 [0048] 1 BB46 1 [31B..324) (return) i -BB58 [0085] 0 1 [???..???) (return) keep internal merged-return ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -Reversing a conditional jump around an unconditional jump (BB38 -> BB40, BB39 -> BB11) - -After reversing the jump: - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 1 [000..001)-> BB53(1) (always) i -BB53 [0052] 2 BB01,BB52 1 [000..04C)-> BB57(0.5),BB56(0.5) ( cond ) i -BB56 [0056] 1 BB53 1 [04B..04C)-> BB57(1) (always) i -BB57 [0057] 2 BB53,BB56 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target -BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0) (return) i -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd -BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd -BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd -BB17 [0016] 1 BB16 1 [124..12A) (return) i -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB19 [0018] 1 BB18 1 [152..158) (return) i -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB21 [0020] 1 BB20 1 [180..186) (return) i -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250) (return) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E) (return) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB)-> BB59(1) (always) i -BB59 [0086] 1 BB42 1 [???..???) (return) internal -BB43 [0042] 1 BB57 1 [2EB..2F2)-> BB46(1) (always) i -BB46 [0045] 1 BB43 1 [303..30A)-> BB49(1) (always) i -BB49 [0048] 1 BB46 1 [31B..324) (return) i -BB58 [0085] 0 1 [???..???) (return) keep internal merged-return ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -Compacting BB59 into BB42: -*************** In fgDebugCheckBBlist - -Compacting BB46 into BB43: -setting likelihood of BB43 -> BB49 from 1 to 1 -*************** In fgDebugCheckBBlist - -Compacting BB49 into BB43: -*************** In fgDebugCheckBBlist - -*************** Finishing PHASE Update flow graph early pass -Trees after Update flow graph early pass - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 1 [000..001)-> BB53(1) (always) i -BB53 [0052] 2 BB01,BB52 1 [000..04C)-> BB57(0.5),BB56(0.5) ( cond ) i -BB56 [0056] 1 BB53 1 [04B..04C)-> BB57(1) (always) i -BB57 [0057] 2 BB53,BB56 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target -BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0) (return) i -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd -BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd -BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd -BB17 [0016] 1 BB16 1 [124..12A) (return) i -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB19 [0018] 1 BB18 1 [152..158) (return) i -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB21 [0020] 1 BB20 1 [180..186) (return) i -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250) (return) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E) (return) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 1 [2EB..324) (return) i -BB58 [0085] 0 1 [???..???) (return) keep internal merged-return ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB53(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB53} - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000384] ----------- * JTRUE void - [000383] ----------- \--* NE int - [000380] ----------- +--* CAST int <- ubyte <- int - [000374] ----------- | \--* CAST int <- ubyte <- int - [000004] ----------- | \--* EQ int - [000002] ----------- | +--* LT int - [000000] ----------- | | +--* LCL_VAR int V02 arg2 - [000001] ----------- | | \--* CNS_INT int 0 - [000003] ----------- | \--* CNS_INT int 0 - [000382] ----------- \--* CNS_INT int 0 - ------------- BB52 [0051] [000..001) -> BB53(1) (always), preds={BB01} succs={BB53} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000387] --C-G------ * CALL void - [000385] ----------- arg0 +--* CNS_STR ref - [000386] ----------- arg1 \--* CNS_STR ref "" - ------------- BB53 [0052] [000..04C) -> BB57(0.5),BB56(0.5) (cond), preds={BB01,BB52} succs={BB56,BB57} - -***** BB53 [0052] -STMT00001 ( 0x045[E--] ... 0x046 ) - [000024] DA--------- * STORE_LCL_VAR int V03 loc0 - [000023] ----------- \--* CNS_INT int 1 - -***** BB53 [0052] -STMT00072 ( INL04 @ 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000395] ----------- * JTRUE void - [000394] ----------- \--* NE int - [000025] ----------- +--* LCL_VAR int V03 loc0 - [000393] ----------- \--* CNS_INT int 0 - ------------- BB56 [0056] [04B..04C) -> BB57(1) (always), preds={BB53} succs={BB57} - -***** BB56 [0056] -STMT00073 ( INL04 @ 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000398] --C-G------ * CALL void - [000396] ----------- arg0 +--* CNS_STR ref - [000397] ----------- arg1 \--* CNS_STR ref "" - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB53,BB56} succs={BB09,BB43} - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) - [000034] ----------- * JTRUE void - [000033] ----------- \--* GE int - [000031] ----------- +--* LCL_VAR int V02 arg2 - [000032] ----------- \--* CNS_INT int 2 vector element count - ------------- BB09 [0008] [068..073) -> BB27(1) (always), preds={BB57} succs={BB27} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) - [000051] DA--------- * STORE_LCL_VAR long V04 loc1 - [000050] ----------- \--* SUB long - [000047] ----------- +--* CAST long <- int - [000046] ----------- | \--* LCL_VAR int V02 arg2 - [000049] ----------- \--* CNS_INT long 1 - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) - [000059] DA--------- * STORE_LCL_VAR int V02 arg2 - [000058] ----------- \--* SUB int - [000056] ----------- +--* LCL_VAR int V02 arg2 - [000057] ----------- \--* CNS_INT int 8 - -***** BB10 [0009] -STMT00074 ( 0x078[E--] ... ??? ) - [000402] DA-XG------ * STORE_LCL_VAR long V08 tmp3 - [000065] ---XG------ \--* IND long - [000064] ----------- \--* ADD byref - [000060] ----------- +--* LCL_VAR byref V00 arg0 - [000063] ----------- \--* MUL long - [000061] ----------- +--* LCL_VAR long V04 loc1 - [000062] ----------- \--* CNS_INT long 8 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) - [000073] --C-------- * JTRUE void - [000072] --C-------- \--* EQ int - [000404] ----------- +--* CAST int <- ubyte <- int - [000401] ----------- | \--* EQ int - [000400] ----------- | +--* LCL_VAR long V08 tmp3 - [000066] ----------- | \--* LCL_VAR long V01 arg1 - [000071] ----------- \--* CNS_INT int 0 - ------------- BB11 [0010] [09D..0A0) (return), preds={BB10,BB29,BB38} succs={} - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) - [000242] ----------- * RETURN int - [000241] ----------- \--* CAST int <- long - [000240] ----------- \--* LCL_VAR long V04 loc1 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} - -***** BB12 [0011] -STMT00075 ( 0x0A0[E--] ... ??? ) - [000409] DA-XG------ * STORE_LCL_VAR long V10 tmp5 - [000082] ---XG------ \--* IND long - [000081] ----------- \--* ADD byref - [000074] ----------- +--* LCL_VAR byref V00 arg0 - [000080] ----------- \--* MUL long - [000078] ----------- +--* SUB long - [000075] ----------- | +--* LCL_VAR long V04 loc1 - [000077] ----------- | \--* CNS_INT long 1 - [000079] ----------- \--* CNS_INT long 8 - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] --C-------- * JTRUE void - [000089] --C-------- \--* EQ int - [000411] ----------- +--* CAST int <- ubyte <- int - [000408] ----------- | \--* EQ int - [000407] ----------- | +--* LCL_VAR long V10 tmp5 - [000083] ----------- | \--* LCL_VAR long V01 arg1 - [000088] ----------- \--* CNS_INT int 0 - ------------- BB13 [0012] [0C8..0CE) (return), preds={BB12} succs={} - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - [000239] ----------- * RETURN int - [000238] ----------- \--* CAST int <- long - [000237] ----------- \--* SUB long - [000234] ----------- +--* LCL_VAR long V04 loc1 - [000236] ----------- \--* CNS_INT long 1 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} - -***** BB14 [0013] -STMT00076 ( 0x0CE[E--] ... ??? ) - [000416] DA-XG------ * STORE_LCL_VAR long V12 tmp7 - [000099] ---XG------ \--* IND long - [000098] ----------- \--* ADD byref - [000091] ----------- +--* LCL_VAR byref V00 arg0 - [000097] ----------- \--* MUL long - [000095] ----------- +--* SUB long - [000092] ----------- | +--* LCL_VAR long V04 loc1 - [000094] ----------- | \--* CNS_INT long 2 - [000096] ----------- \--* CNS_INT long 8 - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] --C-------- * JTRUE void - [000106] --C-------- \--* EQ int - [000418] ----------- +--* CAST int <- ubyte <- int - [000415] ----------- | \--* EQ int - [000414] ----------- | +--* LCL_VAR long V12 tmp7 - [000100] ----------- | \--* LCL_VAR long V01 arg1 - [000105] ----------- \--* CNS_INT int 0 - ------------- BB15 [0014] [0F6..0FC) (return), preds={BB14} succs={} - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - [000233] ----------- * RETURN int - [000232] ----------- \--* CAST int <- long - [000231] ----------- \--* SUB long - [000228] ----------- +--* LCL_VAR long V04 loc1 - [000230] ----------- \--* CNS_INT long 2 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} - -***** BB16 [0015] -STMT00077 ( 0x0FC[E--] ... ??? ) - [000423] DA-XG------ * STORE_LCL_VAR long V14 tmp9 - [000116] ---XG------ \--* IND long - [000115] ----------- \--* ADD byref - [000108] ----------- +--* LCL_VAR byref V00 arg0 - [000114] ----------- \--* MUL long - [000112] ----------- +--* SUB long - [000109] ----------- | +--* LCL_VAR long V04 loc1 - [000111] ----------- | \--* CNS_INT long 3 - [000113] ----------- \--* CNS_INT long 8 - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] --C-------- * JTRUE void - [000123] --C-------- \--* EQ int - [000425] ----------- +--* CAST int <- ubyte <- int - [000422] ----------- | \--* EQ int - [000421] ----------- | +--* LCL_VAR long V14 tmp9 - [000117] ----------- | \--* LCL_VAR long V01 arg1 - [000122] ----------- \--* CNS_INT int 0 - ------------- BB17 [0016] [124..12A) (return), preds={BB16} succs={} - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) - [000227] ----------- * RETURN int - [000226] ----------- \--* CAST int <- long - [000225] ----------- \--* SUB long - [000222] ----------- +--* LCL_VAR long V04 loc1 - [000224] ----------- \--* CNS_INT long 3 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00078 ( 0x12A[E--] ... ??? ) - [000430] DA-XG------ * STORE_LCL_VAR long V16 tmp11 - [000133] ---XG------ \--* IND long - [000132] ----------- \--* ADD byref - [000125] ----------- +--* LCL_VAR byref V00 arg0 - [000131] ----------- \--* MUL long - [000129] ----------- +--* SUB long - [000126] ----------- | +--* LCL_VAR long V04 loc1 - [000128] ----------- | \--* CNS_INT long 4 - [000130] ----------- \--* CNS_INT long 8 - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] --C-------- * JTRUE void - [000140] --C-------- \--* EQ int - [000432] ----------- +--* CAST int <- ubyte <- int - [000429] ----------- | \--* EQ int - [000428] ----------- | +--* LCL_VAR long V16 tmp11 - [000134] ----------- | \--* LCL_VAR long V01 arg1 - [000139] ----------- \--* CNS_INT int 0 - ------------- BB19 [0018] [152..158) (return), preds={BB18} succs={} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) - [000221] ----------- * RETURN int - [000220] ----------- \--* CAST int <- long - [000219] ----------- \--* SUB long - [000216] ----------- +--* LCL_VAR long V04 loc1 - [000218] ----------- \--* CNS_INT long 4 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00079 ( 0x158[E--] ... ??? ) - [000437] DA-XG------ * STORE_LCL_VAR long V18 tmp13 - [000150] ---XG------ \--* IND long - [000149] ----------- \--* ADD byref - [000142] ----------- +--* LCL_VAR byref V00 arg0 - [000148] ----------- \--* MUL long - [000146] ----------- +--* SUB long - [000143] ----------- | +--* LCL_VAR long V04 loc1 - [000145] ----------- | \--* CNS_INT long 5 - [000147] ----------- \--* CNS_INT long 8 - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) - [000158] --C-------- * JTRUE void - [000157] --C-------- \--* EQ int - [000439] ----------- +--* CAST int <- ubyte <- int - [000436] ----------- | \--* EQ int - [000435] ----------- | +--* LCL_VAR long V18 tmp13 - [000151] ----------- | \--* LCL_VAR long V01 arg1 - [000156] ----------- \--* CNS_INT int 0 - ------------- BB21 [0020] [180..186) (return), preds={BB20} succs={} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) - [000215] ----------- * RETURN int - [000214] ----------- \--* CAST int <- long - [000213] ----------- \--* SUB long - [000210] ----------- +--* LCL_VAR long V04 loc1 - [000212] ----------- \--* CNS_INT long 5 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00080 ( 0x186[E--] ... ??? ) - [000444] DA-XG------ * STORE_LCL_VAR long V20 tmp15 - [000167] ---XG------ \--* IND long - [000166] ----------- \--* ADD byref - [000159] ----------- +--* LCL_VAR byref V00 arg0 - [000165] ----------- \--* MUL long - [000163] ----------- +--* SUB long - [000160] ----------- | +--* LCL_VAR long V04 loc1 - [000162] ----------- | \--* CNS_INT long 6 - [000164] ----------- \--* CNS_INT long 8 - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) - [000175] --C-------- * JTRUE void - [000174] --C-------- \--* EQ int - [000446] ----------- +--* CAST int <- ubyte <- int - [000443] ----------- | \--* EQ int - [000442] ----------- | +--* LCL_VAR long V20 tmp15 - [000168] ----------- | \--* LCL_VAR long V01 arg1 - [000173] ----------- \--* CNS_INT int 0 - ------------- BB23 [0022] [1AE..1B4) (return), preds={BB22} succs={} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) - [000209] ----------- * RETURN int - [000208] ----------- \--* CAST int <- long - [000207] ----------- \--* SUB long - [000204] ----------- +--* LCL_VAR long V04 loc1 - [000206] ----------- \--* CNS_INT long 6 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00081 ( 0x1B4[E--] ... ??? ) - [000451] DA-XG------ * STORE_LCL_VAR long V22 tmp17 - [000184] ---XG------ \--* IND long - [000183] ----------- \--* ADD byref - [000176] ----------- +--* LCL_VAR byref V00 arg0 - [000182] ----------- \--* MUL long - [000180] ----------- +--* SUB long - [000177] ----------- | +--* LCL_VAR long V04 loc1 - [000179] ----------- | \--* CNS_INT long 7 - [000181] ----------- \--* CNS_INT long 8 - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] --C-------- * JTRUE void - [000191] --C-------- \--* EQ int - [000453] ----------- +--* CAST int <- ubyte <- int - [000450] ----------- | \--* EQ int - [000449] ----------- | +--* LCL_VAR long V22 tmp17 - [000185] ----------- | \--* LCL_VAR long V01 arg1 - [000190] ----------- \--* CNS_INT int 0 - ------------- BB25 [0024] [1DC..1E2) (return), preds={BB24} succs={} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) - [000203] ----------- * RETURN int - [000202] ----------- \--* CAST int <- long - [000201] ----------- \--* SUB long - [000198] ----------- +--* LCL_VAR long V04 loc1 - [000200] ----------- \--* CNS_INT long 7 - ------------- BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - [000197] DA--------- * STORE_LCL_VAR long V04 loc1 - [000196] ----------- \--* SUB long - [000193] ----------- +--* LCL_VAR long V04 loc1 - [000195] ----------- \--* CNS_INT long 8 - ------------- BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} - -***** BB27 [0026] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - [000055] ----------- * JTRUE void - [000054] ----------- \--* GE int - [000052] ----------- +--* LCL_VAR int V02 arg2 - [000053] ----------- \--* CNS_INT int 8 - ------------- BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} - -***** BB28 [0027] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) - [000246] ----------- * JTRUE void - [000245] ----------- \--* LT int - [000243] ----------- +--* LCL_VAR int V02 arg2 - [000244] ----------- \--* CNS_INT int 4 - ------------- BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB28} succs={BB31,BB11} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) - [000282] DA--------- * STORE_LCL_VAR int V02 arg2 - [000281] ----------- \--* SUB int - [000279] ----------- +--* LCL_VAR int V02 arg2 - [000280] ----------- \--* CNS_INT int 4 - -***** BB29 [0028] -STMT00082 ( 0x1FA[E--] ... ??? ) - [000458] DA-XG------ * STORE_LCL_VAR long V24 tmp19 - [000288] ---XG------ \--* IND long - [000287] ----------- \--* ADD byref - [000283] ----------- +--* LCL_VAR byref V00 arg0 - [000286] ----------- \--* MUL long - [000284] ----------- +--* LCL_VAR long V04 loc1 - [000285] ----------- \--* CNS_INT long 8 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] --C-------- * JTRUE void - [000295] --C-------- \--* NE int - [000460] ----------- +--* CAST int <- ubyte <- int - [000457] ----------- | \--* EQ int - [000456] ----------- | +--* LCL_VAR long V24 tmp19 - [000289] ----------- | \--* LCL_VAR long V01 arg1 - [000294] ----------- \--* CNS_INT int 0 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00083 ( 0x222[E--] ... ??? ) - [000465] DA-XG------ * STORE_LCL_VAR long V26 tmp21 - [000305] ---XG------ \--* IND long - [000304] ----------- \--* ADD byref - [000297] ----------- +--* LCL_VAR byref V00 arg0 - [000303] ----------- \--* MUL long - [000301] ----------- +--* SUB long - [000298] ----------- | +--* LCL_VAR long V04 loc1 - [000300] ----------- | \--* CNS_INT long 1 - [000302] ----------- \--* CNS_INT long 8 - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) - [000313] --C-------- * JTRUE void - [000312] --C-------- \--* EQ int - [000467] ----------- +--* CAST int <- ubyte <- int - [000464] ----------- | \--* EQ int - [000463] ----------- | +--* LCL_VAR long V26 tmp21 - [000306] ----------- | \--* LCL_VAR long V01 arg1 - [000311] ----------- \--* CNS_INT int 0 - ------------- BB32 [0031] [24A..250) (return), preds={BB31} succs={} - -***** BB32 [0031] -STMT00066 ( 0x24A[E--] ... 0x24F ) - [000370] ----------- * RETURN int - [000369] ----------- \--* CAST int <- long - [000368] ----------- \--* SUB long - [000365] ----------- +--* LCL_VAR long V04 loc1 - [000367] ----------- \--* CNS_INT long 1 - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00084 ( 0x250[E--] ... ??? ) - [000472] DA-XG------ * STORE_LCL_VAR long V28 tmp23 - [000322] ---XG------ \--* IND long - [000321] ----------- \--* ADD byref - [000314] ----------- +--* LCL_VAR byref V00 arg0 - [000320] ----------- \--* MUL long - [000318] ----------- +--* SUB long - [000315] ----------- | +--* LCL_VAR long V04 loc1 - [000317] ----------- | \--* CNS_INT long 2 - [000319] ----------- \--* CNS_INT long 8 - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) - [000330] --C-------- * JTRUE void - [000329] --C-------- \--* EQ int - [000474] ----------- +--* CAST int <- ubyte <- int - [000471] ----------- | \--* EQ int - [000470] ----------- | +--* LCL_VAR long V28 tmp23 - [000323] ----------- | \--* LCL_VAR long V01 arg1 - [000328] ----------- \--* CNS_INT int 0 - ------------- BB34 [0033] [278..27E) (return), preds={BB33} succs={} - -***** BB34 [0033] -STMT00065 ( 0x278[E--] ... 0x27D ) - [000364] ----------- * RETURN int - [000363] ----------- \--* CAST int <- long - [000362] ----------- \--* SUB long - [000359] ----------- +--* LCL_VAR long V04 loc1 - [000361] ----------- \--* CNS_INT long 2 - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00085 ( 0x27E[E--] ... ??? ) - [000479] DA-XG------ * STORE_LCL_VAR long V30 tmp25 - [000339] ---XG------ \--* IND long - [000338] ----------- \--* ADD byref - [000331] ----------- +--* LCL_VAR byref V00 arg0 - [000337] ----------- \--* MUL long - [000335] ----------- +--* SUB long - [000332] ----------- | +--* LCL_VAR long V04 loc1 - [000334] ----------- | \--* CNS_INT long 3 - [000336] ----------- \--* CNS_INT long 8 - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] --C-------- * JTRUE void - [000346] --C-------- \--* EQ int - [000481] ----------- +--* CAST int <- ubyte <- int - [000478] ----------- | \--* EQ int - [000477] ----------- | +--* LCL_VAR long V30 tmp25 - [000340] ----------- | \--* LCL_VAR long V01 arg1 - [000345] ----------- \--* CNS_INT int 0 - ------------- BB36 [0035] [2A6..2AC) (return), preds={BB35} succs={} - -***** BB36 [0035] -STMT00064 ( 0x2A6[E--] ... 0x2AB ) - [000358] ----------- * RETURN int - [000357] ----------- \--* CAST int <- long - [000356] ----------- \--* SUB long - [000353] ----------- +--* LCL_VAR long V04 loc1 - [000355] ----------- \--* CNS_INT long 3 - ------------- BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) - [000352] DA--------- * STORE_LCL_VAR long V04 loc1 - [000351] ----------- \--* SUB long - [000348] ----------- +--* LCL_VAR long V04 loc1 - [000350] ----------- \--* CNS_INT long 4 - ------------- BB38 [0037] [2B3..2DD) -> BB11(0.5),BB40(0.5) (cond), preds={BB41} succs={BB40,BB11} - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) - [000254] DA--------- * STORE_LCL_VAR int V02 arg2 - [000253] ----------- \--* SUB int - [000251] ----------- +--* LCL_VAR int V02 arg2 - [000252] ----------- \--* CNS_INT int 1 - -***** BB38 [0037] -STMT00086 ( 0x2B8[E--] ... ??? ) - [000486] DA-XG------ * STORE_LCL_VAR long V32 tmp27 - [000260] ---XG------ \--* IND long - [000259] ----------- \--* ADD byref - [000255] ----------- +--* LCL_VAR byref V00 arg0 - [000258] ----------- \--* MUL long - [000256] ----------- +--* LCL_VAR long V04 loc1 - [000257] ----------- \--* CNS_INT long 8 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] --C-------- * JTRUE void - [000267] --C-------- \--* NE int - [000488] ----------- +--* CAST int <- ubyte <- int - [000485] ----------- | \--* EQ int - [000484] ----------- | +--* LCL_VAR long V32 tmp27 - [000261] ----------- | \--* LCL_VAR long V01 arg1 - [000266] ----------- \--* CNS_INT int 0 - ------------- BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - [000273] DA--------- * STORE_LCL_VAR long V04 loc1 - [000272] ----------- \--* SUB long - [000269] ----------- +--* LCL_VAR long V04 loc1 - [000271] ----------- \--* CNS_INT long 1 - ------------- BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} - -***** BB41 [0040] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - [000250] ----------- * JTRUE void - [000249] ----------- \--* GT int - [000247] ----------- +--* LCL_VAR int V02 arg2 - [000248] ----------- \--* CNS_INT int 0 - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} - -***** BB42 [0041] -STMT00088 ( ??? ... ??? ) - [000493] ----------- * RETURN int - [000277] ----------- \--* CNS_INT int -1 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) - [000045] --C-G------ * RETURN int - [000044] --C-G------ \--* CALL int - [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 - [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 - [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 - ------------- BB58 [0085] [???..???) (return), preds={} succs={} - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) - [000492] ----------- * RETURN int - [000491] -------N--- \--* LCL_VAR int V34 tmp29 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Morph - Promote Structs - -lvaTable before fgPromoteStructs -; Initial local variable assignments -; -; V00 arg0 byref -; V01 arg1 long -; V02 arg2 int -; V03 loc0 ubyte -; V04 loc1 long -; V05 OutArgs struct <0> do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V06 tmp1 ubyte "Inlining Arg" -; V07 tmp2 ubyte "Inlining Arg" -; V08 tmp3 long "Inlining Arg" -; V09 tmp4 ubyte "Inlining Arg" -; V10 tmp5 long "Inlining Arg" -; V11 tmp6 ubyte "Inlining Arg" -; V12 tmp7 long "Inlining Arg" -; V13 tmp8 ubyte "Inlining Arg" -; V14 tmp9 long "Inlining Arg" -; V15 tmp10 ubyte "Inlining Arg" -; V16 tmp11 long "Inlining Arg" -; V17 tmp12 ubyte "Inlining Arg" -; V18 tmp13 long "Inlining Arg" -; V19 tmp14 ubyte "Inlining Arg" -; V20 tmp15 long "Inlining Arg" -; V21 tmp16 ubyte "Inlining Arg" -; V22 tmp17 long "Inlining Arg" -; V23 tmp18 ubyte "Inlining Arg" -; V24 tmp19 long "Inlining Arg" -; V25 tmp20 ubyte "Inlining Arg" -; V26 tmp21 long "Inlining Arg" -; V27 tmp22 ubyte "Inlining Arg" -; V28 tmp23 long "Inlining Arg" -; V29 tmp24 ubyte "Inlining Arg" -; V30 tmp25 long "Inlining Arg" -; V31 tmp26 ubyte "Inlining Arg" -; V32 tmp27 long "Inlining Arg" -; V33 tmp28 ubyte "Inlining Arg" -; V34 tmp29 int "Single return block return value" - struct promotion of V05 is disabled because it has already been marked DNER - -*************** Finishing PHASE Morph - Promote Structs [no changes] - -*************** Starting PHASE DFS blocks and remove dead code 2 - -*************** Finishing PHASE DFS blocks and remove dead code 2 [no changes] - -*************** Starting PHASE Local morph -Identifying loops in DFS tree with following reverse post order: -RPO -> BB [pre, post] -00 -> BB58[38, 38] -01 -> BB01[0, 37] -02 -> BB52[1, 36] -03 -> BB53[2, 35] -04 -> BB56[3, 34] -05 -> BB57[4, 33] -06 -> BB43[37, 32] -07 -> BB09[5, 31] -08 -> BB27[6, 30] -09 -> BB10[21, 29] -10 -> BB12[22, 28] -11 -> BB14[24, 27] -12 -> BB16[26, 26] -13 -> BB18[28, 25] -14 -> BB20[30, 24] -15 -> BB22[32, 23] -16 -> BB24[34, 22] -17 -> BB26[36, 21] -18 -> BB25[35, 20] -19 -> BB23[33, 19] -20 -> BB21[31, 18] -21 -> BB19[29, 17] -22 -> BB17[27, 16] -23 -> BB15[25, 15] -24 -> BB13[23, 14] -25 -> BB28[7, 13] -26 -> BB29[8, 12] -27 -> BB31[9, 11] -28 -> BB33[11, 10] -29 -> BB35[13, 9] -30 -> BB37[15, 8] -31 -> BB41[16, 7] -32 -> BB38[18, 6] -33 -> BB11[20, 5] -34 -> BB40[19, 4] -35 -> BB42[17, 3] -36 -> BB36[14, 2] -37 -> BB34[12, 1] -38 -> BB32[10, 0] - -BB26 -> BB27 is a backedge -BB27 is the header of a DFS loop with 1 back edges -Loop has 10 blocks -BB27 -> BB28 is an exit edge -BB10 -> BB11 is an exit edge -BB12 -> BB13 is an exit edge -BB14 -> BB15 is an exit edge -BB16 -> BB17 is an exit edge -BB18 -> BB19 is an exit edge -BB20 -> BB21 is an exit edge -BB22 -> BB23 is an exit edge -BB24 -> BB25 is an exit edge -BB09 -> BB27 is an entry edge -Added loop L00 with header BB27 - -BB40 -> BB41 is a backedge -BB41 is the header of a DFS loop with 1 back edges -Loop has 3 blocks -BB41 -> BB42 is an exit edge -BB38 -> BB11 is an exit edge -BB28 -> BB41 is an entry edge -BB37 -> BB41 is an entry edge -Added loop L01 with header BB41 - -Found 2 loops - -*************** Natural loop graph -L00 header: BB27 - Members (10): BB10;BB12;BB14;BB16;BB18;BB20;BB22;BB24;[BB26..BB27] - Entry: BB09 -> BB27 - Exit: BB27 -> BB28; BB10 -> BB11; BB12 -> BB13; BB14 -> BB15; BB16 -> BB17; BB18 -> BB19; BB20 -> BB21; BB22 -> BB23; BB24 -> BB25 - Back: BB26 -> BB27 -L01 header: BB41 - Members (3): [BB38..BB41] - Entry: BB28 -> BB41; BB37 -> BB41 - Exit: BB41 -> BB42; BB38 -> BB11 - Back: BB40 -> BB41 - -LocalAddressVisitor visiting statement: -STMT00087 ( ??? ... ??? ) - [000492] ----------- * RETURN int - [000491] -------N--- \--* LCL_VAR int V34 tmp29 - -LocalAddressVisitor visiting statement: -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000384] ----------- * JTRUE void - [000383] ----------- \--* NE int - [000380] ----------- +--* CAST int <- ubyte <- int - [000374] ----------- | \--* CAST int <- ubyte <- int - [000004] ----------- | \--* EQ int - [000002] ----------- | +--* LT int - [000000] ----------- | | +--* LCL_VAR int V02 arg2 - [000001] ----------- | | \--* CNS_INT int 0 - [000003] ----------- | \--* CNS_INT int 0 - [000382] ----------- \--* CNS_INT int 0 - -LocalAddressVisitor visiting statement: -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000387] --C-G------ * CALL void - [000385] ----------- arg0 +--* CNS_STR ref - [000386] ----------- arg1 \--* CNS_STR ref "" - -LocalAddressVisitor visiting statement: -STMT00001 ( 0x045[E--] ... 0x046 ) - [000024] DA--------- * STORE_LCL_VAR int V03 loc0 - [000023] ----------- \--* CNS_INT int 1 - -LocalAddressVisitor visiting statement: -STMT00072 ( INL04 @ 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000395] ----------- * JTRUE void - [000394] ----------- \--* NE int - [000025] ----------- +--* LCL_VAR int V03 loc0 - [000393] ----------- \--* CNS_INT int 0 - -LocalAddressVisitor visiting statement: -STMT00073 ( INL04 @ 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000398] --C-G------ * CALL void - [000396] ----------- arg0 +--* CNS_STR ref - [000397] ----------- arg1 \--* CNS_STR ref "" - -LocalAddressVisitor visiting statement: -STMT00003 ( 0x05D[E--] ... 0x063 ) - [000034] ----------- * JTRUE void - [000033] ----------- \--* GE int - [000031] ----------- +--* LCL_VAR int V02 arg2 - [000032] ----------- \--* CNS_INT int 2 vector element count - -LocalAddressVisitor visiting statement: -STMT00004 ( 0x31B[E--] ... 0x323 ) - [000045] --C-G------ * RETURN int - [000044] --C-G------ \--* CALL int - [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 - [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 - [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 - -LocalAddressVisitor visiting statement: -STMT00005 ( 0x068[E--] ... 0x06D ) - [000051] DA--------- * STORE_LCL_VAR long V04 loc1 - [000050] ----------- \--* SUB long - [000047] ----------- +--* CAST long <- int - [000046] ----------- | \--* LCL_VAR int V02 arg2 - [000049] ----------- \--* CNS_INT long 1 - -LocalAddressVisitor visiting statement: -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - [000055] ----------- * JTRUE void - [000054] ----------- \--* GE int - [000052] ----------- +--* LCL_VAR int V02 arg2 - [000053] ----------- \--* CNS_INT int 8 - -LocalAddressVisitor visiting statement: -STMT00007 ( 0x073[E--] ... 0x076 ) - [000059] DA--------- * STORE_LCL_VAR int V02 arg2 - [000058] ----------- \--* SUB int - [000056] ----------- +--* LCL_VAR int V02 arg2 - [000057] ----------- \--* CNS_INT int 8 - -LocalAddressVisitor visiting statement: -STMT00074 ( 0x078[E--] ... ??? ) - [000402] DA-XG------ * STORE_LCL_VAR long V08 tmp3 - [000065] ---XG------ \--* IND long - [000064] ----------- \--* ADD byref - [000060] ----------- +--* LCL_VAR byref V00 arg0 - [000063] ----------- \--* MUL long - [000061] ----------- +--* LCL_VAR long V04 loc1 - [000062] ----------- \--* CNS_INT long 8 - -LocalAddressVisitor visiting statement: -STMT00010 ( 0x078[E--] ... ??? ) - [000073] --C-------- * JTRUE void - [000072] --C-------- \--* EQ int - [000404] ----------- +--* CAST int <- ubyte <- int - [000401] ----------- | \--* EQ int - [000400] ----------- | +--* LCL_VAR long V08 tmp3 - [000066] ----------- | \--* LCL_VAR long V01 arg1 - [000071] ----------- \--* CNS_INT int 0 - -LocalAddressVisitor visiting statement: -STMT00075 ( 0x0A0[E--] ... ??? ) - [000409] DA-XG------ * STORE_LCL_VAR long V10 tmp5 - [000082] ---XG------ \--* IND long - [000081] ----------- \--* ADD byref - [000074] ----------- +--* LCL_VAR byref V00 arg0 - [000080] ----------- \--* MUL long - [000078] ----------- +--* SUB long - [000075] ----------- | +--* LCL_VAR long V04 loc1 - [000077] ----------- | \--* CNS_INT long 1 - [000079] ----------- \--* CNS_INT long 8 - -LocalAddressVisitor visiting statement: -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] --C-------- * JTRUE void - [000089] --C-------- \--* EQ int - [000411] ----------- +--* CAST int <- ubyte <- int - [000408] ----------- | \--* EQ int - [000407] ----------- | +--* LCL_VAR long V10 tmp5 - [000083] ----------- | \--* LCL_VAR long V01 arg1 - [000088] ----------- \--* CNS_INT int 0 - -LocalAddressVisitor visiting statement: -STMT00076 ( 0x0CE[E--] ... ??? ) - [000416] DA-XG------ * STORE_LCL_VAR long V12 tmp7 - [000099] ---XG------ \--* IND long - [000098] ----------- \--* ADD byref - [000091] ----------- +--* LCL_VAR byref V00 arg0 - [000097] ----------- \--* MUL long - [000095] ----------- +--* SUB long - [000092] ----------- | +--* LCL_VAR long V04 loc1 - [000094] ----------- | \--* CNS_INT long 2 - [000096] ----------- \--* CNS_INT long 8 - -LocalAddressVisitor visiting statement: -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] --C-------- * JTRUE void - [000106] --C-------- \--* EQ int - [000418] ----------- +--* CAST int <- ubyte <- int - [000415] ----------- | \--* EQ int - [000414] ----------- | +--* LCL_VAR long V12 tmp7 - [000100] ----------- | \--* LCL_VAR long V01 arg1 - [000105] ----------- \--* CNS_INT int 0 - -LocalAddressVisitor visiting statement: -STMT00077 ( 0x0FC[E--] ... ??? ) - [000423] DA-XG------ * STORE_LCL_VAR long V14 tmp9 - [000116] ---XG------ \--* IND long - [000115] ----------- \--* ADD byref - [000108] ----------- +--* LCL_VAR byref V00 arg0 - [000114] ----------- \--* MUL long - [000112] ----------- +--* SUB long - [000109] ----------- | +--* LCL_VAR long V04 loc1 - [000111] ----------- | \--* CNS_INT long 3 - [000113] ----------- \--* CNS_INT long 8 - -LocalAddressVisitor visiting statement: -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] --C-------- * JTRUE void - [000123] --C-------- \--* EQ int - [000425] ----------- +--* CAST int <- ubyte <- int - [000422] ----------- | \--* EQ int - [000421] ----------- | +--* LCL_VAR long V14 tmp9 - [000117] ----------- | \--* LCL_VAR long V01 arg1 - [000122] ----------- \--* CNS_INT int 0 - -LocalAddressVisitor visiting statement: -STMT00078 ( 0x12A[E--] ... ??? ) - [000430] DA-XG------ * STORE_LCL_VAR long V16 tmp11 - [000133] ---XG------ \--* IND long - [000132] ----------- \--* ADD byref - [000125] ----------- +--* LCL_VAR byref V00 arg0 - [000131] ----------- \--* MUL long - [000129] ----------- +--* SUB long - [000126] ----------- | +--* LCL_VAR long V04 loc1 - [000128] ----------- | \--* CNS_INT long 4 - [000130] ----------- \--* CNS_INT long 8 - -LocalAddressVisitor visiting statement: -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] --C-------- * JTRUE void - [000140] --C-------- \--* EQ int - [000432] ----------- +--* CAST int <- ubyte <- int - [000429] ----------- | \--* EQ int - [000428] ----------- | +--* LCL_VAR long V16 tmp11 - [000134] ----------- | \--* LCL_VAR long V01 arg1 - [000139] ----------- \--* CNS_INT int 0 - -LocalAddressVisitor visiting statement: -STMT00079 ( 0x158[E--] ... ??? ) - [000437] DA-XG------ * STORE_LCL_VAR long V18 tmp13 - [000150] ---XG------ \--* IND long - [000149] ----------- \--* ADD byref - [000142] ----------- +--* LCL_VAR byref V00 arg0 - [000148] ----------- \--* MUL long - [000146] ----------- +--* SUB long - [000143] ----------- | +--* LCL_VAR long V04 loc1 - [000145] ----------- | \--* CNS_INT long 5 - [000147] ----------- \--* CNS_INT long 8 - -LocalAddressVisitor visiting statement: -STMT00025 ( 0x158[E--] ... ??? ) - [000158] --C-------- * JTRUE void - [000157] --C-------- \--* EQ int - [000439] ----------- +--* CAST int <- ubyte <- int - [000436] ----------- | \--* EQ int - [000435] ----------- | +--* LCL_VAR long V18 tmp13 - [000151] ----------- | \--* LCL_VAR long V01 arg1 - [000156] ----------- \--* CNS_INT int 0 - -LocalAddressVisitor visiting statement: -STMT00080 ( 0x186[E--] ... ??? ) - [000444] DA-XG------ * STORE_LCL_VAR long V20 tmp15 - [000167] ---XG------ \--* IND long - [000166] ----------- \--* ADD byref - [000159] ----------- +--* LCL_VAR byref V00 arg0 - [000165] ----------- \--* MUL long - [000163] ----------- +--* SUB long - [000160] ----------- | +--* LCL_VAR long V04 loc1 - [000162] ----------- | \--* CNS_INT long 6 - [000164] ----------- \--* CNS_INT long 8 - -LocalAddressVisitor visiting statement: -STMT00028 ( 0x186[E--] ... ??? ) - [000175] --C-------- * JTRUE void - [000174] --C-------- \--* EQ int - [000446] ----------- +--* CAST int <- ubyte <- int - [000443] ----------- | \--* EQ int - [000442] ----------- | +--* LCL_VAR long V20 tmp15 - [000168] ----------- | \--* LCL_VAR long V01 arg1 - [000173] ----------- \--* CNS_INT int 0 - -LocalAddressVisitor visiting statement: -STMT00081 ( 0x1B4[E--] ... ??? ) - [000451] DA-XG------ * STORE_LCL_VAR long V22 tmp17 - [000184] ---XG------ \--* IND long - [000183] ----------- \--* ADD byref - [000176] ----------- +--* LCL_VAR byref V00 arg0 - [000182] ----------- \--* MUL long - [000180] ----------- +--* SUB long - [000177] ----------- | +--* LCL_VAR long V04 loc1 - [000179] ----------- | \--* CNS_INT long 7 - [000181] ----------- \--* CNS_INT long 8 - -LocalAddressVisitor visiting statement: -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] --C-------- * JTRUE void - [000191] --C-------- \--* EQ int - [000453] ----------- +--* CAST int <- ubyte <- int - [000450] ----------- | \--* EQ int - [000449] ----------- | +--* LCL_VAR long V22 tmp17 - [000185] ----------- | \--* LCL_VAR long V01 arg1 - [000190] ----------- \--* CNS_INT int 0 - -LocalAddressVisitor visiting statement: -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - [000197] DA--------- * STORE_LCL_VAR long V04 loc1 - [000196] ----------- \--* SUB long - [000193] ----------- +--* LCL_VAR long V04 loc1 - [000195] ----------- \--* CNS_INT long 8 - -LocalAddressVisitor visiting statement: -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) - [000203] ----------- * RETURN int - [000202] ----------- \--* CAST int <- long - [000201] ----------- \--* SUB long - [000198] ----------- +--* LCL_VAR long V04 loc1 - [000200] ----------- \--* CNS_INT long 7 - -LocalAddressVisitor visiting statement: -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) - [000209] ----------- * RETURN int - [000208] ----------- \--* CAST int <- long - [000207] ----------- \--* SUB long - [000204] ----------- +--* LCL_VAR long V04 loc1 - [000206] ----------- \--* CNS_INT long 6 - -LocalAddressVisitor visiting statement: -STMT00035 ( 0x180[E--] ... 0x185 ) - [000215] ----------- * RETURN int - [000214] ----------- \--* CAST int <- long - [000213] ----------- \--* SUB long - [000210] ----------- +--* LCL_VAR long V04 loc1 - [000212] ----------- \--* CNS_INT long 5 - -LocalAddressVisitor visiting statement: -STMT00036 ( 0x152[E--] ... 0x157 ) - [000221] ----------- * RETURN int - [000220] ----------- \--* CAST int <- long - [000219] ----------- \--* SUB long - [000216] ----------- +--* LCL_VAR long V04 loc1 - [000218] ----------- \--* CNS_INT long 4 - -LocalAddressVisitor visiting statement: -STMT00037 ( 0x124[E--] ... 0x129 ) - [000227] ----------- * RETURN int - [000226] ----------- \--* CAST int <- long - [000225] ----------- \--* SUB long - [000222] ----------- +--* LCL_VAR long V04 loc1 - [000224] ----------- \--* CNS_INT long 3 - -LocalAddressVisitor visiting statement: -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - [000233] ----------- * RETURN int - [000232] ----------- \--* CAST int <- long - [000231] ----------- \--* SUB long - [000228] ----------- +--* LCL_VAR long V04 loc1 - [000230] ----------- \--* CNS_INT long 2 - -LocalAddressVisitor visiting statement: -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - [000239] ----------- * RETURN int - [000238] ----------- \--* CAST int <- long - [000237] ----------- \--* SUB long - [000234] ----------- +--* LCL_VAR long V04 loc1 - [000236] ----------- \--* CNS_INT long 1 - -LocalAddressVisitor visiting statement: -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) - [000246] ----------- * JTRUE void - [000245] ----------- \--* LT int - [000243] ----------- +--* LCL_VAR int V02 arg2 - [000244] ----------- \--* CNS_INT int 4 - -LocalAddressVisitor visiting statement: -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) - [000282] DA--------- * STORE_LCL_VAR int V02 arg2 - [000281] ----------- \--* SUB int - [000279] ----------- +--* LCL_VAR int V02 arg2 - [000280] ----------- \--* CNS_INT int 4 - -LocalAddressVisitor visiting statement: -STMT00082 ( 0x1FA[E--] ... ??? ) - [000458] DA-XG------ * STORE_LCL_VAR long V24 tmp19 - [000288] ---XG------ \--* IND long - [000287] ----------- \--* ADD byref - [000283] ----------- +--* LCL_VAR byref V00 arg0 - [000286] ----------- \--* MUL long - [000284] ----------- +--* LCL_VAR long V04 loc1 - [000285] ----------- \--* CNS_INT long 8 - -LocalAddressVisitor visiting statement: -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] --C-------- * JTRUE void - [000295] --C-------- \--* NE int - [000460] ----------- +--* CAST int <- ubyte <- int - [000457] ----------- | \--* EQ int - [000456] ----------- | +--* LCL_VAR long V24 tmp19 - [000289] ----------- | \--* LCL_VAR long V01 arg1 - [000294] ----------- \--* CNS_INT int 0 - -LocalAddressVisitor visiting statement: -STMT00083 ( 0x222[E--] ... ??? ) - [000465] DA-XG------ * STORE_LCL_VAR long V26 tmp21 - [000305] ---XG------ \--* IND long - [000304] ----------- \--* ADD byref - [000297] ----------- +--* LCL_VAR byref V00 arg0 - [000303] ----------- \--* MUL long - [000301] ----------- +--* SUB long - [000298] ----------- | +--* LCL_VAR long V04 loc1 - [000300] ----------- | \--* CNS_INT long 1 - [000302] ----------- \--* CNS_INT long 8 - -LocalAddressVisitor visiting statement: -STMT00056 ( 0x222[E--] ... ??? ) - [000313] --C-------- * JTRUE void - [000312] --C-------- \--* EQ int - [000467] ----------- +--* CAST int <- ubyte <- int - [000464] ----------- | \--* EQ int - [000463] ----------- | +--* LCL_VAR long V26 tmp21 - [000306] ----------- | \--* LCL_VAR long V01 arg1 - [000311] ----------- \--* CNS_INT int 0 - -LocalAddressVisitor visiting statement: -STMT00084 ( 0x250[E--] ... ??? ) - [000472] DA-XG------ * STORE_LCL_VAR long V28 tmp23 - [000322] ---XG------ \--* IND long - [000321] ----------- \--* ADD byref - [000314] ----------- +--* LCL_VAR byref V00 arg0 - [000320] ----------- \--* MUL long - [000318] ----------- +--* SUB long - [000315] ----------- | +--* LCL_VAR long V04 loc1 - [000317] ----------- | \--* CNS_INT long 2 - [000319] ----------- \--* CNS_INT long 8 - -LocalAddressVisitor visiting statement: -STMT00059 ( 0x250[E--] ... ??? ) - [000330] --C-------- * JTRUE void - [000329] --C-------- \--* EQ int - [000474] ----------- +--* CAST int <- ubyte <- int - [000471] ----------- | \--* EQ int - [000470] ----------- | +--* LCL_VAR long V28 tmp23 - [000323] ----------- | \--* LCL_VAR long V01 arg1 - [000328] ----------- \--* CNS_INT int 0 - -LocalAddressVisitor visiting statement: -STMT00085 ( 0x27E[E--] ... ??? ) - [000479] DA-XG------ * STORE_LCL_VAR long V30 tmp25 - [000339] ---XG------ \--* IND long - [000338] ----------- \--* ADD byref - [000331] ----------- +--* LCL_VAR byref V00 arg0 - [000337] ----------- \--* MUL long - [000335] ----------- +--* SUB long - [000332] ----------- | +--* LCL_VAR long V04 loc1 - [000334] ----------- | \--* CNS_INT long 3 - [000336] ----------- \--* CNS_INT long 8 - -LocalAddressVisitor visiting statement: -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] --C-------- * JTRUE void - [000346] --C-------- \--* EQ int - [000481] ----------- +--* CAST int <- ubyte <- int - [000478] ----------- | \--* EQ int - [000477] ----------- | +--* LCL_VAR long V30 tmp25 - [000340] ----------- | \--* LCL_VAR long V01 arg1 - [000345] ----------- \--* CNS_INT int 0 - -LocalAddressVisitor visiting statement: -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) - [000352] DA--------- * STORE_LCL_VAR long V04 loc1 - [000351] ----------- \--* SUB long - [000348] ----------- +--* LCL_VAR long V04 loc1 - [000350] ----------- \--* CNS_INT long 4 - -LocalAddressVisitor visiting statement: -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - [000250] ----------- * JTRUE void - [000249] ----------- \--* GT int - [000247] ----------- +--* LCL_VAR int V02 arg2 - [000248] ----------- \--* CNS_INT int 0 - -LocalAddressVisitor visiting statement: -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) - [000254] DA--------- * STORE_LCL_VAR int V02 arg2 - [000253] ----------- \--* SUB int - [000251] ----------- +--* LCL_VAR int V02 arg2 - [000252] ----------- \--* CNS_INT int 1 - -LocalAddressVisitor visiting statement: -STMT00086 ( 0x2B8[E--] ... ??? ) - [000486] DA-XG------ * STORE_LCL_VAR long V32 tmp27 - [000260] ---XG------ \--* IND long - [000259] ----------- \--* ADD byref - [000255] ----------- +--* LCL_VAR byref V00 arg0 - [000258] ----------- \--* MUL long - [000256] ----------- +--* LCL_VAR long V04 loc1 - [000257] ----------- \--* CNS_INT long 8 - -LocalAddressVisitor visiting statement: -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] --C-------- * JTRUE void - [000267] --C-------- \--* NE int - [000488] ----------- +--* CAST int <- ubyte <- int - [000485] ----------- | \--* EQ int - [000484] ----------- | +--* LCL_VAR long V32 tmp27 - [000261] ----------- | \--* LCL_VAR long V01 arg1 - [000266] ----------- \--* CNS_INT int 0 - -LocalAddressVisitor visiting statement: -STMT00040 ( 0x09D[E--] ... 0x09F ) - [000242] ----------- * RETURN int - [000241] ----------- \--* CAST int <- long - [000240] ----------- \--* LCL_VAR long V04 loc1 - -LocalAddressVisitor visiting statement: -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - [000273] DA--------- * STORE_LCL_VAR long V04 loc1 - [000272] ----------- \--* SUB long - [000269] ----------- +--* LCL_VAR long V04 loc1 - [000271] ----------- \--* CNS_INT long 1 - -LocalAddressVisitor visiting statement: -STMT00088 ( ??? ... ??? ) - [000493] ----------- * RETURN int - [000277] ----------- \--* CNS_INT int -1 - -LocalAddressVisitor visiting statement: -STMT00064 ( 0x2A6[E--] ... 0x2AB ) - [000358] ----------- * RETURN int - [000357] ----------- \--* CAST int <- long - [000356] ----------- \--* SUB long - [000353] ----------- +--* LCL_VAR long V04 loc1 - [000355] ----------- \--* CNS_INT long 3 - -LocalAddressVisitor visiting statement: -STMT00065 ( 0x278[E--] ... 0x27D ) - [000364] ----------- * RETURN int - [000363] ----------- \--* CAST int <- long - [000362] ----------- \--* SUB long - [000359] ----------- +--* LCL_VAR long V04 loc1 - [000361] ----------- \--* CNS_INT long 2 - -LocalAddressVisitor visiting statement: -STMT00066 ( 0x24A[E--] ... 0x24F ) - [000370] ----------- * RETURN int - [000369] ----------- \--* CAST int <- long - [000368] ----------- \--* SUB long - [000365] ----------- +--* LCL_VAR long V04 loc1 - [000367] ----------- \--* CNS_INT long 1 - - -*************** Finishing PHASE Local morph [no changes] - -*************** Starting PHASE Optimize mask conversions -Skipping. There are no converts of locals - -*************** Finishing PHASE Optimize mask conversions [no changes] - -*************** Starting PHASE Early liveness -*************** In Liveness::Run() -In Liveness::Init - -Local V05 should not be enregistered because: struct size does not match reg size -Tracked variable (19 out of 35) table: -V00 arg0 [ byref]: refCnt = 14, refCntWtd = 0 -V01 arg1 [ long]: refCnt = 14, refCntWtd = 0 -V02 arg2 [ int]: refCnt = 13, refCntWtd = 0 -V03 loc0 [ ubyte]: refCnt = 2, refCntWtd = 0 -V04 loc1 [ long]: refCnt = 31, refCntWtd = 0 -V08 tmp3 [ long]: refCnt = 2, refCntWtd = 0 -V10 tmp5 [ long]: refCnt = 2, refCntWtd = 0 -V12 tmp7 [ long]: refCnt = 2, refCntWtd = 0 -V14 tmp9 [ long]: refCnt = 2, refCntWtd = 0 -V16 tmp11 [ long]: refCnt = 2, refCntWtd = 0 -V18 tmp13 [ long]: refCnt = 2, refCntWtd = 0 -V20 tmp15 [ long]: refCnt = 2, refCntWtd = 0 -V22 tmp17 [ long]: refCnt = 2, refCntWtd = 0 -V24 tmp19 [ long]: refCnt = 2, refCntWtd = 0 -V26 tmp21 [ long]: refCnt = 2, refCntWtd = 0 -V28 tmp23 [ long]: refCnt = 2, refCntWtd = 0 -V30 tmp25 [ long]: refCnt = 2, refCntWtd = 0 -V32 tmp27 [ long]: refCnt = 2, refCntWtd = 0 -V34 tmp29 [ int]: refCnt = 1, refCntWtd = 0 - -*************** In Liveness::PerBlockLocalVarLiveness() -BB01 USE(1)={V02} - DEF(0)={ } - -BB52 USE(0)={} - DEF(0)={} - -BB53 USE(0)={ } - DEF(1)={V03} - -BB56 USE(0)={} - DEF(0)={} - -BB57 USE(1)={V02} - DEF(0)={ } - -BB09 USE(1)={V02 } - DEF(1)={ V04} - -BB10 USE(4)={V00 V01 V02 V04 } - DEF(2)={ V02 V08} - -BB11 USE(1)={V04} - DEF(0)={ } - -BB12 USE(3)={V00 V01 V04 } - DEF(1)={ V10} - -BB13 USE(1)={V04} - DEF(0)={ } - -BB14 USE(3)={V00 V01 V04 } - DEF(1)={ V12} - -BB15 USE(1)={V04} - DEF(0)={ } - -BB16 USE(3)={V00 V01 V04 } - DEF(1)={ V14} - -BB17 USE(1)={V04} - DEF(0)={ } - -BB18 USE(3)={V00 V01 V04 } - DEF(1)={ V16} - -BB19 USE(1)={V04} - DEF(0)={ } - -BB20 USE(3)={V00 V01 V04 } - DEF(1)={ V18} - -BB21 USE(1)={V04} - DEF(0)={ } - -BB22 USE(3)={V00 V01 V04 } - DEF(1)={ V20} - -BB23 USE(1)={V04} - DEF(0)={ } - -BB24 USE(3)={V00 V01 V04 } - DEF(1)={ V22} - -BB25 USE(1)={V04} - DEF(0)={ } - -BB26 USE(1)={V04} - DEF(1)={V04} - -BB27 USE(1)={V02} - DEF(0)={ } - -BB28 USE(1)={V02} - DEF(0)={ } - -BB29 USE(4)={V00 V01 V02 V04 } - DEF(2)={ V02 V24} - -BB31 USE(3)={V00 V01 V04 } - DEF(1)={ V26} - -BB32 USE(1)={V04} - DEF(0)={ } - -BB33 USE(3)={V00 V01 V04 } - DEF(1)={ V28} - -BB34 USE(1)={V04} - DEF(0)={ } - -BB35 USE(3)={V00 V01 V04 } - DEF(1)={ V30} - -BB36 USE(1)={V04} - DEF(0)={ } - -BB37 USE(1)={V04} - DEF(1)={V04} - -BB38 USE(4)={V00 V01 V02 V04 } - DEF(2)={ V02 V32} - -BB40 USE(1)={V04} - DEF(1)={V04} - -BB41 USE(1)={V02} - DEF(0)={ } - -BB42 USE(0)={} - DEF(0)={} - -BB43 USE(3)={V00 V01 V02} - DEF(0)={ } - -BB58 USE(1)={V34} - DEF(0)={ } - -*************** IngInterBlockLocalVarLiveness() - -BB liveness after DoLiveVarAnalysis(): - -BB01 IN (3)={V00 V01 V02} - OUT(3)={V00 V01 V02} - -BB52 IN (3)={V00 V01 V02} - OUT(3)={V00 V01 V02} - -BB53 IN (3)={V00 V01 V02} - OUT(3)={V00 V01 V02} - -BB56 IN (3)={V00 V01 V02} - OUT(3)={V00 V01 V02} - -BB57 IN (3)={V00 V01 V02} - OUT(3)={V00 V01 V02} - -BB09 IN (3)={V00 V01 V02 } - OUT(4)={V00 V01 V02 V04} - -BB10 IN (4)={V00 V01 V02 V04} - OUT(4)={V00 V01 V02 V04} - -BB11 IN (1)={V04} - OUT(0)={ } - -BB12 IN (4)={V00 V01 V02 V04} - OUT(4)={V00 V01 V02 V04} - -BB13 IN (1)={V04} - OUT(0)={ } - -BB14 IN (4)={V00 V01 V02 V04} - OUT(4)={V00 V01 V02 V04} - -BB15 IN (1)={V04} - OUT(0)={ } - -BB16 IN (4)={V00 V01 V02 V04} - OUT(4)={V00 V01 V02 V04} - -BB17 IN (1)={V04} - OUT(0)={ } - -BB18 IN (4)={V00 V01 V02 V04} - OUT(4)={V00 V01 V02 V04} - -BB19 IN (1)={V04} - OUT(0)={ } - -BB20 IN (4)={V00 V01 V02 V04} - OUT(4)={V00 V01 V02 V04} - -BB21 IN (1)={V04} - OUT(0)={ } - -BB22 IN (4)={V00 V01 V02 V04} - OUT(4)={V00 V01 V02 V04} - -BB23 IN (1)={V04} - OUT(0)={ } - -BB24 IN (4)={V00 V01 V02 V04} - OUT(4)={V00 V01 V02 V04} - -BB25 IN (1)={V04} - OUT(0)={ } - -BB26 IN (4)={V00 V01 V02 V04} - OUT(4)={V00 V01 V02 V04} - -BB27 IN (4)={V00 V01 V02 V04} - OUT(4)={V00 V01 V02 V04} - -BB28 IN (4)={V00 V01 V02 V04} - OUT(4)={V00 V01 V02 V04} - -BB29 IN (4)={V00 V01 V02 V04} - OUT(4)={V00 V01 V02 V04} - -BB31 IN (4)={V00 V01 V02 V04} - OUT(4)={V00 V01 V02 V04} - -BB32 IN (1)={V04} - OUT(0)={ } - -BB33 IN (4)={V00 V01 V02 V04} - OUT(4)={V00 V01 V02 V04} - -BB34 IN (1)={V04} - OUT(0)={ } - -BB35 IN (4)={V00 V01 V02 V04} - OUT(4)={V00 V01 V02 V04} - -BB36 IN (1)={V04} - OUT(0)={ } - -BB37 IN (4)={V00 V01 V02 V04} - OUT(4)={V00 V01 V02 V04} - -BB38 IN (4)={V00 V01 V02 V04} - OUT(4)={V00 V01 V02 V04} - -BB40 IN (4)={V00 V01 V02 V04} - OUT(4)={V00 V01 V02 V04} - -BB41 IN (4)={V00 V01 V02 V04} - OUT(4)={V00 V01 V02 V04} - -BB42 IN (0)={} - OUT(0)={} - -BB43 IN (3)={V00 V01 V02} - OUT(0)={ } - -BB58 IN (1)={V34} - OUT(0)={ } - - -*************** Finishing PHASE Early liveness -Trees after Early liveness - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 1 [000..001)-> BB53(1) (always) i -BB53 [0052] 2 BB01,BB52 1 [000..04C)-> BB57(0.5),BB56(0.5) ( cond ) i -BB56 [0056] 1 BB53 1 [04B..04C)-> BB57(1) (always) i -BB57 [0057] 2 BB53,BB56 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target -BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0) (return) i -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd -BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd -BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd -BB17 [0016] 1 BB16 1 [124..12A) (return) i -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB19 [0018] 1 BB18 1 [152..158) (return) i -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB21 [0020] 1 BB20 1 [180..186) (return) i -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250) (return) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E) (return) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 1 [2EB..324) (return) i -BB58 [0085] 0 1 [???..???) (return) keep internal merged-return ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB53(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB53} - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000384] ----------- * JTRUE void - [000383] ----------- \--* NE int - [000380] ----------- +--* CAST int <- ubyte <- int - [000374] ----------- | \--* CAST int <- ubyte <- int - [000004] ----------- | \--* EQ int - [000002] ----------- | +--* LT int - [000000] ----------- | | +--* LCL_VAR int V02 arg2 - [000001] ----------- | | \--* CNS_INT int 0 - [000003] ----------- | \--* CNS_INT int 0 - [000382] ----------- \--* CNS_INT int 0 - ------------- BB52 [0051] [000..001) -> BB53(1) (always), preds={BB01} succs={BB53} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000387] --C-G------ * CALL void - [000385] ----------- arg0 +--* CNS_STR ref - [000386] ----------- arg1 \--* CNS_STR ref "" - ------------- BB53 [0052] [000..04C) -> BB57(0.5),BB56(0.5) (cond), preds={BB01,BB52} succs={BB56,BB57} - -***** BB53 [0052] -STMT00001 ( 0x045[E--] ... 0x046 ) - [000024] DA--------- * STORE_LCL_VAR int V03 loc0 - [000023] ----------- \--* CNS_INT int 1 - -***** BB53 [0052] -STMT00072 ( INL04 @ 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000395] ----------- * JTRUE void - [000394] ----------- \--* NE int - [000025] ----------- +--* LCL_VAR int V03 loc0 (last use) - [000393] ----------- \--* CNS_INT int 0 - ------------- BB56 [0056] [04B..04C) -> BB57(1) (always), preds={BB53} succs={BB57} - -***** BB56 [0056] -STMT00073 ( INL04 @ 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000398] --C-G------ * CALL void - [000396] ----------- arg0 +--* CNS_STR ref - [000397] ----------- arg1 \--* CNS_STR ref "" - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB53,BB56} succs={BB09,BB43} - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) - [000034] ----------- * JTRUE void - [000033] ----------- \--* GE int - [000031] ----------- +--* LCL_VAR int V02 arg2 - [000032] ----------- \--* CNS_INT int 2 vector element count - ------------- BB09 [0008] [068..073) -> BB27(1) (always), preds={BB57} succs={BB27} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) - [000051] DA--------- * STORE_LCL_VAR long V04 loc1 - [000050] ----------- \--* SUB long - [000047] ----------- +--* CAST long <- int - [000046] ----------- | \--* LCL_VAR int V02 arg2 - [000049] ----------- \--* CNS_INT long 1 - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) - [000059] DA--------- * STORE_LCL_VAR int V02 arg2 - [000058] ----------- \--* SUB int - [000056] ----------- +--* LCL_VAR int V02 arg2 (last use) - [000057] ----------- \--* CNS_INT int 8 - -***** BB10 [0009] -STMT00074 ( 0x078[E--] ... ??? ) - [000402] DA-XG------ * STORE_LCL_VAR long V08 tmp3 - [000065] ---XG------ \--* IND long - [000064] ----------- \--* ADD byref - [000060] ----------- +--* LCL_VAR byref V00 arg0 - [000063] ----------- \--* MUL long - [000061] ----------- +--* LCL_VAR long V04 loc1 - [000062] ----------- \--* CNS_INT long 8 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) - [000073] --C-------- * JTRUE void - [000072] --C-------- \--* EQ int - [000404] ----------- +--* CAST int <- ubyte <- int - [000401] ----------- | \--* EQ int - [000400] ----------- | +--* LCL_VAR long V08 tmp3 (last use) - [000066] ----------- | \--* LCL_VAR long V01 arg1 - [000071] ----------- \--* CNS_INT int 0 - ------------- BB11 [0010] [09D..0A0) (return), preds={BB10,BB29,BB38} succs={} - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) - [000242] ----------- * RETURN int - [000241] ----------- \--* CAST int <- long - [000240] ----------- \--* LCL_VAR long V04 loc1 (last use) - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} - -***** BB12 [0011] -STMT00075 ( 0x0A0[E--] ... ??? ) - [000409] DA-XG------ * STORE_LCL_VAR long V10 tmp5 - [000082] ---XG------ \--* IND long - [000081] ----------- \--* ADD byref - [000074] ----------- +--* LCL_VAR byref V00 arg0 - [000080] ----------- \--* MUL long - [000078] ----------- +--* SUB long - [000075] ----------- | +--* LCL_VAR long V04 loc1 - [000077] ----------- | \--* CNS_INT long 1 - [000079] ----------- \--* CNS_INT long 8 - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] --C-------- * JTRUE void - [000089] --C-------- \--* EQ int - [000411] ----------- +--* CAST int <- ubyte <- int - [000408] ----------- | \--* EQ int - [000407] ----------- | +--* LCL_VAR long V10 tmp5 (last use) - [000083] ----------- | \--* LCL_VAR long V01 arg1 - [000088] ----------- \--* CNS_INT int 0 - ------------- BB13 [0012] [0C8..0CE) (return), preds={BB12} succs={} - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - [000239] ----------- * RETURN int - [000238] ----------- \--* CAST int <- long - [000237] ----------- \--* SUB long - [000234] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000236] ----------- \--* CNS_INT long 1 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} - -***** BB14 [0013] -STMT00076 ( 0x0CE[E--] ... ??? ) - [000416] DA-XG------ * STORE_LCL_VAR long V12 tmp7 - [000099] ---XG------ \--* IND long - [000098] ----------- \--* ADD byref - [000091] ----------- +--* LCL_VAR byref V00 arg0 - [000097] ----------- \--* MUL long - [000095] ----------- +--* SUB long - [000092] ----------- | +--* LCL_VAR long V04 loc1 - [000094] ----------- | \--* CNS_INT long 2 - [000096] ----------- \--* CNS_INT long 8 - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] --C-------- * JTRUE void - [000106] --C-------- \--* EQ int - [000418] ----------- +--* CAST int <- ubyte <- int - [000415] ----------- | \--* EQ int - [000414] ----------- | +--* LCL_VAR long V12 tmp7 (last use) - [000100] ----------- | \--* LCL_VAR long V01 arg1 - [000105] ----------- \--* CNS_INT int 0 - ------------- BB15 [0014] [0F6..0FC) (return), preds={BB14} succs={} - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - [000233] ----------- * RETURN int - [000232] ----------- \--* CAST int <- long - [000231] ----------- \--* SUB long - [000228] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000230] ----------- \--* CNS_INT long 2 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} - -***** BB16 [0015] -STMT00077 ( 0x0FC[E--] ... ??? ) - [000423] DA-XG------ * STORE_LCL_VAR long V14 tmp9 - [000116] ---XG------ \--* IND long - [000115] ----------- \--* ADD byref - [000108] ----------- +--* LCL_VAR byref V00 arg0 - [000114] ----------- \--* MUL long - [000112] ----------- +--* SUB long - [000109] ----------- | +--* LCL_VAR long V04 loc1 - [000111] ----------- | \--* CNS_INT long 3 - [000113] ----------- \--* CNS_INT long 8 - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] --C-------- * JTRUE void - [000123] --C-------- \--* EQ int - [000425] ----------- +--* CAST int <- ubyte <- int - [000422] ----------- | \--* EQ int - [000421] ----------- | +--* LCL_VAR long V14 tmp9 (last use) - [000117] ----------- | \--* LCL_VAR long V01 arg1 - [000122] ----------- \--* CNS_INT int 0 - ------------- BB17 [0016] [124..12A) (return), preds={BB16} succs={} - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) - [000227] ----------- * RETURN int - [000226] ----------- \--* CAST int <- long - [000225] ----------- \--* SUB long - [000222] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000224] ----------- \--* CNS_INT long 3 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00078 ( 0x12A[E--] ... ??? ) - [000430] DA-XG------ * STORE_LCL_VAR long V16 tmp11 - [000133] ---XG------ \--* IND long - [000132] ----------- \--* ADD byref - [000125] ----------- +--* LCL_VAR byref V00 arg0 - [000131] ----------- \--* MUL long - [000129] ----------- +--* SUB long - [000126] ----------- | +--* LCL_VAR long V04 loc1 - [000128] ----------- | \--* CNS_INT long 4 - [000130] ----------- \--* CNS_INT long 8 - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] --C-------- * JTRUE void - [000140] --C-------- \--* EQ int - [000432] ----------- +--* CAST int <- ubyte <- int - [000429] ----------- | \--* EQ int - [000428] ----------- | +--* LCL_VAR long V16 tmp11 (last use) - [000134] ----------- | \--* LCL_VAR long V01 arg1 - [000139] ----------- \--* CNS_INT int 0 - ------------- BB19 [0018] [152..158) (return), preds={BB18} succs={} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) - [000221] ----------- * RETURN int - [000220] ----------- \--* CAST int <- long - [000219] ----------- \--* SUB long - [000216] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000218] ----------- \--* CNS_INT long 4 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00079 ( 0x158[E--] ... ??? ) - [000437] DA-XG------ * STORE_LCL_VAR long V18 tmp13 - [000150] ---XG------ \--* IND long - [000149] ----------- \--* ADD byref - [000142] ----------- +--* LCL_VAR byref V00 arg0 - [000148] ----------- \--* MUL long - [000146] ----------- +--* SUB long - [000143] ----------- | +--* LCL_VAR long V04 loc1 - [000145] ----------- | \--* CNS_INT long 5 - [000147] ----------- \--* CNS_INT long 8 - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) - [000158] --C-------- * JTRUE void - [000157] --C-------- \--* EQ int - [000439] ----------- +--* CAST int <- ubyte <- int - [000436] ----------- | \--* EQ int - [000435] ----------- | +--* LCL_VAR long V18 tmp13 (last use) - [000151] ----------- | \--* LCL_VAR long V01 arg1 - [000156] ----------- \--* CNS_INT int 0 - ------------- BB21 [0020] [180..186) (return), preds={BB20} succs={} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) - [000215] ----------- * RETURN int - [000214] ----------- \--* CAST int <- long - [000213] ----------- \--* SUB long - [000210] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000212] ----------- \--* CNS_INT long 5 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00080 ( 0x186[E--] ... ??? ) - [000444] DA-XG------ * STORE_LCL_VAR long V20 tmp15 - [000167] ---XG------ \--* IND long - [000166] ----------- \--* ADD byref - [000159] ----------- +--* LCL_VAR byref V00 arg0 - [000165] ----------- \--* MUL long - [000163] ----------- +--* SUB long - [000160] ----------- | +--* LCL_VAR long V04 loc1 - [000162] ----------- | \--* CNS_INT long 6 - [000164] ----------- \--* CNS_INT long 8 - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) - [000175] --C-------- * JTRUE void - [000174] --C-------- \--* EQ int - [000446] ----------- +--* CAST int <- ubyte <- int - [000443] ----------- | \--* EQ int - [000442] ----------- | +--* LCL_VAR long V20 tmp15 (last use) - [000168] ----------- | \--* LCL_VAR long V01 arg1 - [000173] ----------- \--* CNS_INT int 0 - ------------- BB23 [0022] [1AE..1B4) (return), preds={BB22} succs={} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) - [000209] ----------- * RETURN int - [000208] ----------- \--* CAST int <- long - [000207] ----------- \--* SUB long - [000204] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000206] ----------- \--* CNS_INT long 6 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00081 ( 0x1B4[E--] ... ??? ) - [000451] DA-XG------ * STORE_LCL_VAR long V22 tmp17 - [000184] ---XG------ \--* IND long - [000183] ----------- \--* ADD byref - [000176] ----------- +--* LCL_VAR byref V00 arg0 - [000182] ----------- \--* MUL long - [000180] ----------- +--* SUB long - [000177] ----------- | +--* LCL_VAR long V04 loc1 - [000179] ----------- | \--* CNS_INT long 7 - [000181] ----------- \--* CNS_INT long 8 - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] --C-------- * JTRUE void - [000191] --C-------- \--* EQ int - [000453] ----------- +--* CAST int <- ubyte <- int - [000450] ----------- | \--* EQ int - [000449] ----------- | +--* LCL_VAR long V22 tmp17 (last use) - [000185] ----------- | \--* LCL_VAR long V01 arg1 - [000190] ----------- \--* CNS_INT int 0 - ------------- BB25 [0024] [1DC..1E2) (return), preds={BB24} succs={} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) - [000203] ----------- * RETURN int - [000202] ----------- \--* CAST int <- long - [000201] ----------- \--* SUB long - [000198] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000200] ----------- \--* CNS_INT long 7 - ------------- BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - [000197] DA--------- * STORE_LCL_VAR long V04 loc1 - [000196] ----------- \--* SUB long - [000193] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000195] ----------- \--* CNS_INT long 8 - ------------- BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} - -***** BB27 [0026] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - [000055] ----------- * JTRUE void - [000054] ----------- \--* GE int - [000052] ----------- +--* LCL_VAR int V02 arg2 - [000053] ----------- \--* CNS_INT int 8 - ------------- BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} - -***** BB28 [0027] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) - [000246] ----------- * JTRUE void - [000245] ----------- \--* LT int - [000243] ----------- +--* LCL_VAR int V02 arg2 - [000244] ----------- \--* CNS_INT int 4 - ------------- BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB28} succs={BB31,BB11} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) - [000282] DA--------- * STORE_LCL_VAR int V02 arg2 - [000281] ----------- \--* SUB int - [000279] ----------- +--* LCL_VAR int V02 arg2 (last use) - [000280] ----------- \--* CNS_INT int 4 - -***** BB29 [0028] -STMT00082 ( 0x1FA[E--] ... ??? ) - [000458] DA-XG------ * STORE_LCL_VAR long V24 tmp19 - [000288] ---XG------ \--* IND long - [000287] ----------- \--* ADD byref - [000283] ----------- +--* LCL_VAR byref V00 arg0 - [000286] ----------- \--* MUL long - [000284] ----------- +--* LCL_VAR long V04 loc1 - [000285] ----------- \--* CNS_INT long 8 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] --C-------- * JTRUE void - [000295] --C-------- \--* NE int - [000460] ----------- +--* CAST int <- ubyte <- int - [000457] ----------- | \--* EQ int - [000456] ----------- | +--* LCL_VAR long V24 tmp19 (last use) - [000289] ----------- | \--* LCL_VAR long V01 arg1 - [000294] ----------- \--* CNS_INT int 0 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00083 ( 0x222[E--] ... ??? ) - [000465] DA-XG------ * STORE_LCL_VAR long V26 tmp21 - [000305] ---XG------ \--* IND long - [000304] ----------- \--* ADD byref - [000297] ----------- +--* LCL_VAR byref V00 arg0 - [000303] ----------- \--* MUL long - [000301] ----------- +--* SUB long - [000298] ----------- | +--* LCL_VAR long V04 loc1 - [000300] ----------- | \--* CNS_INT long 1 - [000302] ----------- \--* CNS_INT long 8 - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) - [000313] --C-------- * JTRUE void - [000312] --C-------- \--* EQ int - [000467] ----------- +--* CAST int <- ubyte <- int - [000464] ----------- | \--* EQ int - [000463] ----------- | +--* LCL_VAR long V26 tmp21 (last use) - [000306] ----------- | \--* LCL_VAR long V01 arg1 - [000311] ----------- \--* CNS_INT int 0 - ------------- BB32 [0031] [24A..250) (return), preds={BB31} succs={} - -***** BB32 [0031] -STMT00066 ( 0x24A[E--] ... 0x24F ) - [000370] ----------- * RETURN int - [000369] ----------- \--* CAST int <- long - [000368] ----------- \--* SUB long - [000365] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000367] ----------- \--* CNS_INT long 1 - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00084 ( 0x250[E--] ... ??? ) - [000472] DA-XG------ * STORE_LCL_VAR long V28 tmp23 - [000322] ---XG------ \--* IND long - [000321] ----------- \--* ADD byref - [000314] ----------- +--* LCL_VAR byref V00 arg0 - [000320] ----------- \--* MUL long - [000318] ----------- +--* SUB long - [000315] ----------- | +--* LCL_VAR long V04 loc1 - [000317] ----------- | \--* CNS_INT long 2 - [000319] ----------- \--* CNS_INT long 8 - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) - [000330] --C-------- * JTRUE void - [000329] --C-------- \--* EQ int - [000474] ----------- +--* CAST int <- ubyte <- int - [000471] ----------- | \--* EQ int - [000470] ----------- | +--* LCL_VAR long V28 tmp23 (last use) - [000323] ----------- | \--* LCL_VAR long V01 arg1 - [000328] ----------- \--* CNS_INT int 0 - ------------- BB34 [0033] [278..27E) (return), preds={BB33} succs={} - -***** BB34 [0033] -STMT00065 ( 0x278[E--] ... 0x27D ) - [000364] ----------- * RETURN int - [000363] ----------- \--* CAST int <- long - [000362] ----------- \--* SUB long - [000359] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000361] ----------- \--* CNS_INT long 2 - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00085 ( 0x27E[E--] ... ??? ) - [000479] DA-XG------ * STORE_LCL_VAR long V30 tmp25 - [000339] ---XG------ \--* IND long - [000338] ----------- \--* ADD byref - [000331] ----------- +--* LCL_VAR byref V00 arg0 - [000337] ----------- \--* MUL long - [000335] ----------- +--* SUB long - [000332] ----------- | +--* LCL_VAR long V04 loc1 - [000334] ----------- | \--* CNS_INT long 3 - [000336] ----------- \--* CNS_INT long 8 - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] --C-------- * JTRUE void - [000346] --C-------- \--* EQ int - [000481] ----------- +--* CAST int <- ubyte <- int - [000478] ----------- | \--* EQ int - [000477] ----------- | +--* LCL_VAR long V30 tmp25 (last use) - [000340] ----------- | \--* LCL_VAR long V01 arg1 - [000345] ----------- \--* CNS_INT int 0 - ------------- BB36 [0035] [2A6..2AC) (return), preds={BB35} succs={} - -***** BB36 [0035] -STMT00064 ( 0x2A6[E--] ... 0x2AB ) - [000358] ----------- * RETURN int - [000357] ----------- \--* CAST int <- long - [000356] ----------- \--* SUB long - [000353] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000355] ----------- \--* CNS_INT long 3 - ------------- BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) - [000352] DA--------- * STORE_LCL_VAR long V04 loc1 - [000351] ----------- \--* SUB long - [000348] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000350] ----------- \--* CNS_INT long 4 - ------------- BB38 [0037] [2B3..2DD) -> BB11(0.5),BB40(0.5) (cond), preds={BB41} succs={BB40,BB11} - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) - [000254] DA--------- * STORE_LCL_VAR int V02 arg2 - [000253] ----------- \--* SUB int - [000251] ----------- +--* LCL_VAR int V02 arg2 (last use) - [000252] ----------- \--* CNS_INT int 1 - -***** BB38 [0037] -STMT00086 ( 0x2B8[E--] ... ??? ) - [000486] DA-XG------ * STORE_LCL_VAR long V32 tmp27 - [000260] ---XG------ \--* IND long - [000259] ----------- \--* ADD byref - [000255] ----------- +--* LCL_VAR byref V00 arg0 - [000258] ----------- \--* MUL long - [000256] ----------- +--* LCL_VAR long V04 loc1 - [000257] ----------- \--* CNS_INT long 8 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] --C-------- * JTRUE void - [000267] --C-------- \--* NE int - [000488] ----------- +--* CAST int <- ubyte <- int - [000485] ----------- | \--* EQ int - [000484] ----------- | +--* LCL_VAR long V32 tmp27 (last use) - [000261] ----------- | \--* LCL_VAR long V01 arg1 - [000266] ----------- \--* CNS_INT int 0 - ------------- BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - [000273] DA--------- * STORE_LCL_VAR long V04 loc1 - [000272] ----------- \--* SUB long - [000269] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000271] ----------- \--* CNS_INT long 1 - ------------- BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} - -***** BB41 [0040] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - [000250] ----------- * JTRUE void - [000249] ----------- \--* GT int - [000247] ----------- +--* LCL_VAR int V02 arg2 - [000248] ----------- \--* CNS_INT int 0 - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} - -***** BB42 [0041] -STMT00088 ( ??? ... ??? ) - [000493] ----------- * RETURN int - [000277] ----------- \--* CNS_INT int -1 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) - [000045] --C-G------ * RETURN int - [000044] --C-G------ \--* CALL int - [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 (last use) - [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 (last use) - [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 (last use) - ------------- BB58 [0085] [???..???) (return), preds={} succs={} - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) - [000492] ----------- * RETURN int - [000491] -------N--- \--* LCL_VAR int V34 tmp29 (last use) - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Forward Substitution - - -===> BB01 - - -===> BB52 - - -===> BB53 - [000024]: [000025] is last use of [000024] (V03) [adding cast for small-typed local] -- fwd subbing [000496]; new next stmt is -STMT00072 ( INL04 @ 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000395] ----------- * JTRUE void - [000394] ----------- \--* NE int - [000496] ----------- +--* CAST int <- ubyte <- int - [000023] ----------- | \--* CNS_INT int 1 - [000393] ----------- \--* CNS_INT int 0 - -removing useless STMT00001 ( 0x045[E--] ... 0x046 ) - [000024] DA--------- * STORE_LCL_VAR int V03 loc0 - [000023] ----------- \--* CNS_INT int 1 - from BB53 - - -===> BB56 - - -===> BB57 - - -===> BB09 - - -===> BB10 - [000059]: no next stmt use - [000402]: [000400] is last use of [000402] (V08) -- fwd subbing [000065]; new next stmt is -STMT00010 ( 0x078[E--] ... ??? ) - [000073] ---XG------ * JTRUE void - [000072] ---XG------ \--* EQ int - [000404] ---XG------ +--* CAST int <- ubyte <- int - [000401] ---XG------ | \--* EQ int - [000065] ---XG------ | +--* IND long - [000064] ----------- | | \--* ADD byref - [000060] ----------- | | +--* LCL_VAR byref V00 arg0 - [000063] ----------- | | \--* MUL long - [000061] ----------- | | +--* LCL_VAR long V04 loc1 - [000062] ----------- | | \--* CNS_INT long 8 - [000066] ----------- | \--* LCL_VAR long V01 arg1 - [000071] ----------- \--* CNS_INT int 0 - -removing useless STMT00074 ( 0x078[E--] ... ??? ) - [000402] DA-XG------ * STORE_LCL_VAR long V08 tmp3 - [000065] ---XG------ \--* IND long - [000064] ----------- \--* ADD byref - [000060] ----------- +--* LCL_VAR byref V00 arg0 - [000063] ----------- \--* MUL long - [000061] ----------- +--* LCL_VAR long V04 loc1 - [000062] ----------- \--* CNS_INT long 8 - from BB10 - [000059]: no next stmt use - - -===> BB11 - - -===> BB12 - [000409]: [000407] is last use of [000409] (V10) -- fwd subbing [000082]; new next stmt is -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] ---XG------ * JTRUE void - [000089] ---XG------ \--* EQ int - [000411] ---XG------ +--* CAST int <- ubyte <- int - [000408] ---XG------ | \--* EQ int - [000082] ---XG------ | +--* IND long - [000081] ----------- | | \--* ADD byref - [000074] ----------- | | +--* LCL_VAR byref V00 arg0 - [000080] ----------- | | \--* MUL long - [000078] ----------- | | +--* SUB long - [000075] ----------- | | | +--* LCL_VAR long V04 loc1 - [000077] ----------- | | | \--* CNS_INT long 1 - [000079] ----------- | | \--* CNS_INT long 8 - [000083] ----------- | \--* LCL_VAR long V01 arg1 - [000088] ----------- \--* CNS_INT int 0 - -removing useless STMT00075 ( 0x0A0[E--] ... ??? ) - [000409] DA-XG------ * STORE_LCL_VAR long V10 tmp5 - [000082] ---XG------ \--* IND long - [000081] ----------- \--* ADD byref - [000074] ----------- +--* LCL_VAR byref V00 arg0 - [000080] ----------- \--* MUL long - [000078] ----------- +--* SUB long - [000075] ----------- | +--* LCL_VAR long V04 loc1 - [000077] ----------- | \--* CNS_INT long 1 - [000079] ----------- \--* CNS_INT long 8 - from BB12 - - -===> BB13 - - -===> BB14 - [000416]: [000414] is last use of [000416] (V12) -- fwd subbing [000099]; new next stmt is -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] ---XG------ * JTRUE void - [000106] ---XG------ \--* EQ int - [000418] ---XG------ +--* CAST int <- ubyte <- int - [000415] ---XG------ | \--* EQ int - [000099] ---XG------ | +--* IND long - [000098] ----------- | | \--* ADD byref - [000091] ----------- | | +--* LCL_VAR byref V00 arg0 - [000097] ----------- | | \--* MUL long - [000095] ----------- | | +--* SUB long - [000092] ----------- | | | +--* LCL_VAR long V04 loc1 - [000094] ----------- | | | \--* CNS_INT long 2 - [000096] ----------- | | \--* CNS_INT long 8 - [000100] ----------- | \--* LCL_VAR long V01 arg1 - [000105] ----------- \--* CNS_INT int 0 - -removing useless STMT00076 ( 0x0CE[E--] ... ??? ) - [000416] DA-XG------ * STORE_LCL_VAR long V12 tmp7 - [000099] ---XG------ \--* IND long - [000098] ----------- \--* ADD byref - [000091] ----------- +--* LCL_VAR byref V00 arg0 - [000097] ----------- \--* MUL long - [000095] ----------- +--* SUB long - [000092] ----------- | +--* LCL_VAR long V04 loc1 - [000094] ----------- | \--* CNS_INT long 2 - [000096] ----------- \--* CNS_INT long 8 - from BB14 - - -===> BB15 - - -===> BB16 - [000423]: [000421] is last use of [000423] (V14) -- fwd subbing [000116]; new next stmt is -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] ---XG------ * JTRUE void - [000123] ---XG------ \--* EQ int - [000425] ---XG------ +--* CAST int <- ubyte <- int - [000422] ---XG------ | \--* EQ int - [000116] ---XG------ | +--* IND long - [000115] ----------- | | \--* ADD byref - [000108] ----------- | | +--* LCL_VAR byref V00 arg0 - [000114] ----------- | | \--* MUL long - [000112] ----------- | | +--* SUB long - [000109] ----------- | | | +--* LCL_VAR long V04 loc1 - [000111] ----------- | | | \--* CNS_INT long 3 - [000113] ----------- | | \--* CNS_INT long 8 - [000117] ----------- | \--* LCL_VAR long V01 arg1 - [000122] ----------- \--* CNS_INT int 0 - -removing useless STMT00077 ( 0x0FC[E--] ... ??? ) - [000423] DA-XG------ * STORE_LCL_VAR long V14 tmp9 - [000116] ---XG------ \--* IND long - [000115] ----------- \--* ADD byref - [000108] ----------- +--* LCL_VAR byref V00 arg0 - [000114] ----------- \--* MUL long - [000112] ----------- +--* SUB long - [000109] ----------- | +--* LCL_VAR long V04 loc1 - [000111] ----------- | \--* CNS_INT long 3 - [000113] ----------- \--* CNS_INT long 8 - from BB16 - - -===> BB17 - - -===> BB18 - [000430]: [000428] is last use of [000430] (V16) -- fwd subbing [000133]; new next stmt is -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] ---XG------ * JTRUE void - [000140] ---XG------ \--* EQ int - [000432] ---XG------ +--* CAST int <- ubyte <- int - [000429] ---XG------ | \--* EQ int - [000133] ---XG------ | +--* IND long - [000132] ----------- | | \--* ADD byref - [000125] ----------- | | +--* LCL_VAR byref V00 arg0 - [000131] ----------- | | \--* MUL long - [000129] ----------- | | +--* SUB long - [000126] ----------- | | | +--* LCL_VAR long V04 loc1 - [000128] ----------- | | | \--* CNS_INT long 4 - [000130] ----------- | | \--* CNS_INT long 8 - [000134] ----------- | \--* LCL_VAR long V01 arg1 - [000139] ----------- \--* CNS_INT int 0 - -removing useless STMT00078 ( 0x12A[E--] ... ??? ) - [000430] DA-XG------ * STORE_LCL_VAR long V16 tmp11 - [000133] ---XG------ \--* IND long - [000132] ----------- \--* ADD byref - [000125] ----------- +--* LCL_VAR byref V00 arg0 - [000131] ----------- \--* MUL long - [000129] ----------- +--* SUB long - [000126] ----------- | +--* LCL_VAR long V04 loc1 - [000128] ----------- | \--* CNS_INT long 4 - [000130] ----------- \--* CNS_INT long 8 - from BB18 - - -===> BB19 - - -===> BB20 - [000437]: [000435] is last use of [000437] (V18) -- fwd subbing [000150]; new next stmt is -STMT00025 ( 0x158[E--] ... ??? ) - [000158] ---XG------ * JTRUE void - [000157] ---XG------ \--* EQ int - [000439] ---XG------ +--* CAST int <- ubyte <- int - [000436] ---XG------ | \--* EQ int - [000150] ---XG------ | +--* IND long - [000149] ----------- | | \--* ADD byref - [000142] ----------- | | +--* LCL_VAR byref V00 arg0 - [000148] ----------- | | \--* MUL long - [000146] ----------- | | +--* SUB long - [000143] ----------- | | | +--* LCL_VAR long V04 loc1 - [000145] ----------- | | | \--* CNS_INT long 5 - [000147] ----------- | | \--* CNS_INT long 8 - [000151] ----------- | \--* LCL_VAR long V01 arg1 - [000156] ----------- \--* CNS_INT int 0 - -removing useless STMT00079 ( 0x158[E--] ... ??? ) - [000437] DA-XG------ * STORE_LCL_VAR long V18 tmp13 - [000150] ---XG------ \--* IND long - [000149] ----------- \--* ADD byref - [000142] ----------- +--* LCL_VAR byref V00 arg0 - [000148] ----------- \--* MUL long - [000146] ----------- +--* SUB long - [000143] ----------- | +--* LCL_VAR long V04 loc1 - [000145] ----------- | \--* CNS_INT long 5 - [000147] ----------- \--* CNS_INT long 8 - from BB20 - - -===> BB21 - - -===> BB22 - [000444]: [000442] is last use of [000444] (V20) -- fwd subbing [000167]; new next stmt is -STMT00028 ( 0x186[E--] ... ??? ) - [000175] ---XG------ * JTRUE void - [000174] ---XG------ \--* EQ int - [000446] ---XG------ +--* CAST int <- ubyte <- int - [000443] ---XG------ | \--* EQ int - [000167] ---XG------ | +--* IND long - [000166] ----------- | | \--* ADD byref - [000159] ----------- | | +--* LCL_VAR byref V00 arg0 - [000165] ----------- | | \--* MUL long - [000163] ----------- | | +--* SUB long - [000160] ----------- | | | +--* LCL_VAR long V04 loc1 - [000162] ----------- | | | \--* CNS_INT long 6 - [000164] ----------- | | \--* CNS_INT long 8 - [000168] ----------- | \--* LCL_VAR long V01 arg1 - [000173] ----------- \--* CNS_INT int 0 - -removing useless STMT00080 ( 0x186[E--] ... ??? ) - [000444] DA-XG------ * STORE_LCL_VAR long V20 tmp15 - [000167] ---XG------ \--* IND long - [000166] ----------- \--* ADD byref - [000159] ----------- +--* LCL_VAR byref V00 arg0 - [000165] ----------- \--* MUL long - [000163] ----------- +--* SUB long - [000160] ----------- | +--* LCL_VAR long V04 loc1 - [000162] ----------- | \--* CNS_INT long 6 - [000164] ----------- \--* CNS_INT long 8 - from BB22 - - -===> BB23 - - -===> BB24 - [000451]: [000449] is last use of [000451] (V22) -- fwd subbing [000184]; new next stmt is -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] ---XG------ * JTRUE void - [000191] ---XG------ \--* EQ int - [000453] ---XG------ +--* CAST int <- ubyte <- int - [000450] ---XG------ | \--* EQ int - [000184] ---XG------ | +--* IND long - [000183] ----------- | | \--* ADD byref - [000176] ----------- | | +--* LCL_VAR byref V00 arg0 - [000182] ----------- | | \--* MUL long - [000180] ----------- | | +--* SUB long - [000177] ----------- | | | +--* LCL_VAR long V04 loc1 - [000179] ----------- | | | \--* CNS_INT long 7 - [000181] ----------- | | \--* CNS_INT long 8 - [000185] ----------- | \--* LCL_VAR long V01 arg1 - [000190] ----------- \--* CNS_INT int 0 - -removing useless STMT00081 ( 0x1B4[E--] ... ??? ) - [000451] DA-XG------ * STORE_LCL_VAR long V22 tmp17 - [000184] ---XG------ \--* IND long - [000183] ----------- \--* ADD byref - [000176] ----------- +--* LCL_VAR byref V00 arg0 - [000182] ----------- \--* MUL long - [000180] ----------- +--* SUB long - [000177] ----------- | +--* LCL_VAR long V04 loc1 - [000179] ----------- | \--* CNS_INT long 7 - [000181] ----------- \--* CNS_INT long 8 - from BB24 - - -===> BB25 - - -===> BB26 - - -===> BB27 - - -===> BB28 - - -===> BB29 - [000282]: no next stmt use - [000458]: [000456] is last use of [000458] (V24) -- fwd subbing [000288]; new next stmt is -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] ---XG------ * JTRUE void - [000295] ---XG------ \--* NE int - [000460] ---XG------ +--* CAST int <- ubyte <- int - [000457] ---XG------ | \--* EQ int - [000288] ---XG------ | +--* IND long - [000287] ----------- | | \--* ADD byref - [000283] ----------- | | +--* LCL_VAR byref V00 arg0 - [000286] ----------- | | \--* MUL long - [000284] ----------- | | +--* LCL_VAR long V04 loc1 - [000285] ----------- | | \--* CNS_INT long 8 - [000289] ----------- | \--* LCL_VAR long V01 arg1 - [000294] ----------- \--* CNS_INT int 0 - -removing useless STMT00082 ( 0x1FA[E--] ... ??? ) - [000458] DA-XG------ * STORE_LCL_VAR long V24 tmp19 - [000288] ---XG------ \--* IND long - [000287] ----------- \--* ADD byref - [000283] ----------- +--* LCL_VAR byref V00 arg0 - [000286] ----------- \--* MUL long - [000284] ----------- +--* LCL_VAR long V04 loc1 - [000285] ----------- \--* CNS_INT long 8 - from BB29 - [000282]: no next stmt use - - -===> BB31 - [000465]: [000463] is last use of [000465] (V26) -- fwd subbing [000305]; new next stmt is -STMT00056 ( 0x222[E--] ... ??? ) - [000313] ---XG------ * JTRUE void - [000312] ---XG------ \--* EQ int - [000467] ---XG------ +--* CAST int <- ubyte <- int - [000464] ---XG------ | \--* EQ int - [000305] ---XG------ | +--* IND long - [000304] ----------- | | \--* ADD byref - [000297] ----------- | | +--* LCL_VAR byref V00 arg0 - [000303] ----------- | | \--* MUL long - [000301] ----------- | | +--* SUB long - [000298] ----------- | | | +--* LCL_VAR long V04 loc1 - [000300] ----------- | | | \--* CNS_INT long 1 - [000302] ----------- | | \--* CNS_INT long 8 - [000306] ----------- | \--* LCL_VAR long V01 arg1 - [000311] ----------- \--* CNS_INT int 0 - -removing useless STMT00083 ( 0x222[E--] ... ??? ) - [000465] DA-XG------ * STORE_LCL_VAR long V26 tmp21 - [000305] ---XG------ \--* IND long - [000304] ----------- \--* ADD byref - [000297] ----------- +--* LCL_VAR byref V00 arg0 - [000303] ----------- \--* MUL long - [000301] ----------- +--* SUB long - [000298] ----------- | +--* LCL_VAR long V04 loc1 - [000300] ----------- | \--* CNS_INT long 1 - [000302] ----------- \--* CNS_INT long 8 - from BB31 - - -===> BB32 - - -===> BB33 - [000472]: [000470] is last use of [000472] (V28) -- fwd subbing [000322]; new next stmt is -STMT00059 ( 0x250[E--] ... ??? ) - [000330] ---XG------ * JTRUE void - [000329] ---XG------ \--* EQ int - [000474] ---XG------ +--* CAST int <- ubyte <- int - [000471] ---XG------ | \--* EQ int - [000322] ---XG------ | +--* IND long - [000321] ----------- | | \--* ADD byref - [000314] ----------- | | +--* LCL_VAR byref V00 arg0 - [000320] ----------- | | \--* MUL long - [000318] ----------- | | +--* SUB long - [000315] ----------- | | | +--* LCL_VAR long V04 loc1 - [000317] ----------- | | | \--* CNS_INT long 2 - [000319] ----------- | | \--* CNS_INT long 8 - [000323] ----------- | \--* LCL_VAR long V01 arg1 - [000328] ----------- \--* CNS_INT int 0 - -removing useless STMT00084 ( 0x250[E--] ... ??? ) - [000472] DA-XG------ * STORE_LCL_VAR long V28 tmp23 - [000322] ---XG------ \--* IND long - [000321] ----------- \--* ADD byref - [000314] ----------- +--* LCL_VAR byref V00 arg0 - [000320] ----------- \--* MUL long - [000318] ----------- +--* SUB long - [000315] ----------- | +--* LCL_VAR long V04 loc1 - [000317] ----------- | \--* CNS_INT long 2 - [000319] ----------- \--* CNS_INT long 8 - from BB33 - - -===> BB34 - - -===> BB35 - [000479]: [000477] is last use of [000479] (V30) -- fwd subbing [000339]; new next stmt is -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] ---XG------ * JTRUE void - [000346] ---XG------ \--* EQ int - [000481] ---XG------ +--* CAST int <- ubyte <- int - [000478] ---XG------ | \--* EQ int - [000339] ---XG------ | +--* IND long - [000338] ----------- | | \--* ADD byref - [000331] ----------- | | +--* LCL_VAR byref V00 arg0 - [000337] ----------- | | \--* MUL long - [000335] ----------- | | +--* SUB long - [000332] ----------- | | | +--* LCL_VAR long V04 loc1 - [000334] ----------- | | | \--* CNS_INT long 3 - [000336] ----------- | | \--* CNS_INT long 8 - [000340] ----------- | \--* LCL_VAR long V01 arg1 - [000345] ----------- \--* CNS_INT int 0 - -removing useless STMT00085 ( 0x27E[E--] ... ??? ) - [000479] DA-XG------ * STORE_LCL_VAR long V30 tmp25 - [000339] ---XG------ \--* IND long - [000338] ----------- \--* ADD byref - [000331] ----------- +--* LCL_VAR byref V00 arg0 - [000337] ----------- \--* MUL long - [000335] ----------- +--* SUB long - [000332] ----------- | +--* LCL_VAR long V04 loc1 - [000334] ----------- | \--* CNS_INT long 3 - [000336] ----------- \--* CNS_INT long 8 - from BB35 - - -===> BB36 - - -===> BB37 - - -===> BB38 - [000254]: no next stmt use - [000486]: [000484] is last use of [000486] (V32) -- fwd subbing [000260]; new next stmt is -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] ---XG------ * JTRUE void - [000267] ---XG------ \--* NE int - [000488] ---XG------ +--* CAST int <- ubyte <- int - [000485] ---XG------ | \--* EQ int - [000260] ---XG------ | +--* IND long - [000259] ----------- | | \--* ADD byref - [000255] ----------- | | +--* LCL_VAR byref V00 arg0 - [000258] ----------- | | \--* MUL long - [000256] ----------- | | +--* LCL_VAR long V04 loc1 - [000257] ----------- | | \--* CNS_INT long 8 - [000261] ----------- | \--* LCL_VAR long V01 arg1 - [000266] ----------- \--* CNS_INT int 0 - -removing useless STMT00086 ( 0x2B8[E--] ... ??? ) - [000486] DA-XG------ * STORE_LCL_VAR long V32 tmp27 - [000260] ---XG------ \--* IND long - [000259] ----------- \--* ADD byref - [000255] ----------- +--* LCL_VAR byref V00 arg0 - [000258] ----------- \--* MUL long - [000256] ----------- +--* LCL_VAR long V04 loc1 - [000257] ----------- \--* CNS_INT long 8 - from BB38 - [000254]: no next stmt use - - -===> BB40 - - -===> BB41 - - -===> BB42 - - -===> BB43 - - -===> BB58 - -*************** Finishing PHASE Forward Substitution -Trees after Forward Substitution - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 1 [000..001)-> BB53(1) (always) i -BB53 [0052] 2 BB01,BB52 1 [000..04C)-> BB57(0.5),BB56(0.5) ( cond ) i -BB56 [0056] 1 BB53 1 [04B..04C)-> BB57(1) (always) i -BB57 [0057] 2 BB53,BB56 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target -BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0) (return) i -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd -BB13 [0012] 1 BB12 1 [0C8..0CE) (return) i -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd -BB15 [0014] 1 BB14 1 [0F6..0FC) (return) i -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd -BB17 [0016] 1 BB16 1 [124..12A) (return) i -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB19 [0018] 1 BB18 1 [152..158) (return) i -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB21 [0020] 1 BB20 1 [180..186) (return) i -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB23 [0022] 1 BB22 1 [1AE..1B4) (return) i -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB25 [0024] 1 BB24 1 [1DC..1E2) (return) i -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250) (return) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E) (return) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC) (return) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 1 [2EB..324) (return) i -BB58 [0085] 0 1 [???..???) (return) keep internal merged-return ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB53(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB53} - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000384] ----------- * JTRUE void - [000383] ----------- \--* NE int - [000380] ----------- +--* CAST int <- ubyte <- int - [000374] ----------- | \--* CAST int <- ubyte <- int - [000004] ----------- | \--* EQ int - [000002] ----------- | +--* LT int - [000000] ----------- | | +--* LCL_VAR int V02 arg2 - [000001] ----------- | | \--* CNS_INT int 0 - [000003] ----------- | \--* CNS_INT int 0 - [000382] ----------- \--* CNS_INT int 0 - ------------- BB52 [0051] [000..001) -> BB53(1) (always), preds={BB01} succs={BB53} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000387] --C-G------ * CALL void - [000385] ----------- arg0 +--* CNS_STR ref - [000386] ----------- arg1 \--* CNS_STR ref "" - ------------- BB53 [0052] [000..04C) -> BB57(0.5),BB56(0.5) (cond), preds={BB01,BB52} succs={BB56,BB57} - -***** BB53 [0052] -STMT00072 ( INL04 @ 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000395] ----------- * JTRUE void - [000394] ----------- \--* NE int - [000496] ----------- +--* CAST int <- ubyte <- int - [000023] ----------- | \--* CNS_INT int 1 - [000393] ----------- \--* CNS_INT int 0 - ------------- BB56 [0056] [04B..04C) -> BB57(1) (always), preds={BB53} succs={BB57} - -***** BB56 [0056] -STMT00073 ( INL04 @ 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000398] --C-G------ * CALL void - [000396] ----------- arg0 +--* CNS_STR ref - [000397] ----------- arg1 \--* CNS_STR ref "" - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB53,BB56} succs={BB09,BB43} - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) - [000034] ----------- * JTRUE void - [000033] ----------- \--* GE int - [000031] ----------- +--* LCL_VAR int V02 arg2 - [000032] ----------- \--* CNS_INT int 2 vector element count - ------------- BB09 [0008] [068..073) -> BB27(1) (always), preds={BB57} succs={BB27} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) - [000051] DA--------- * STORE_LCL_VAR long V04 loc1 - [000050] ----------- \--* SUB long - [000047] ----------- +--* CAST long <- int - [000046] ----------- | \--* LCL_VAR int V02 arg2 - [000049] ----------- \--* CNS_INT long 1 - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) - [000059] DA--------- * STORE_LCL_VAR int V02 arg2 - [000058] ----------- \--* SUB int - [000056] ----------- +--* LCL_VAR int V02 arg2 (last use) - [000057] ----------- \--* CNS_INT int 8 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) - [000073] ---XG------ * JTRUE void - [000072] ---XG------ \--* EQ int - [000404] ---XG------ +--* CAST int <- ubyte <- int - [000401] ---XG------ | \--* EQ int - [000065] ---XG------ | +--* IND long - [000064] ----------- | | \--* ADD byref - [000060] ----------- | | +--* LCL_VAR byref V00 arg0 - [000063] ----------- | | \--* MUL long - [000061] ----------- | | +--* LCL_VAR long V04 loc1 - [000062] ----------- | | \--* CNS_INT long 8 - [000066] ----------- | \--* LCL_VAR long V01 arg1 - [000071] ----------- \--* CNS_INT int 0 - ------------- BB11 [0010] [09D..0A0) (return), preds={BB10,BB29,BB38} succs={} - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) - [000242] ----------- * RETURN int - [000241] ----------- \--* CAST int <- long - [000240] ----------- \--* LCL_VAR long V04 loc1 (last use) - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] ---XG------ * JTRUE void - [000089] ---XG------ \--* EQ int - [000411] ---XG------ +--* CAST int <- ubyte <- int - [000408] ---XG------ | \--* EQ int - [000082] ---XG------ | +--* IND long - [000081] ----------- | | \--* ADD byref - [000074] ----------- | | +--* LCL_VAR byref V00 arg0 - [000080] ----------- | | \--* MUL long - [000078] ----------- | | +--* SUB long - [000075] ----------- | | | +--* LCL_VAR long V04 loc1 - [000077] ----------- | | | \--* CNS_INT long 1 - [000079] ----------- | | \--* CNS_INT long 8 - [000083] ----------- | \--* LCL_VAR long V01 arg1 - [000088] ----------- \--* CNS_INT int 0 - ------------- BB13 [0012] [0C8..0CE) (return), preds={BB12} succs={} - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - [000239] ----------- * RETURN int - [000238] ----------- \--* CAST int <- long - [000237] ----------- \--* SUB long - [000234] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000236] ----------- \--* CNS_INT long 1 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] ---XG------ * JTRUE void - [000106] ---XG------ \--* EQ int - [000418] ---XG------ +--* CAST int <- ubyte <- int - [000415] ---XG------ | \--* EQ int - [000099] ---XG------ | +--* IND long - [000098] ----------- | | \--* ADD byref - [000091] ----------- | | +--* LCL_VAR byref V00 arg0 - [000097] ----------- | | \--* MUL long - [000095] ----------- | | +--* SUB long - [000092] ----------- | | | +--* LCL_VAR long V04 loc1 - [000094] ----------- | | | \--* CNS_INT long 2 - [000096] ----------- | | \--* CNS_INT long 8 - [000100] ----------- | \--* LCL_VAR long V01 arg1 - [000105] ----------- \--* CNS_INT int 0 - ------------- BB15 [0014] [0F6..0FC) (return), preds={BB14} succs={} - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - [000233] ----------- * RETURN int - [000232] ----------- \--* CAST int <- long - [000231] ----------- \--* SUB long - [000228] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000230] ----------- \--* CNS_INT long 2 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] ---XG------ * JTRUE void - [000123] ---XG------ \--* EQ int - [000425] ---XG------ +--* CAST int <- ubyte <- int - [000422] ---XG------ | \--* EQ int - [000116] ---XG------ | +--* IND long - [000115] ----------- | | \--* ADD byref - [000108] ----------- | | +--* LCL_VAR byref V00 arg0 - [000114] ----------- | | \--* MUL long - [000112] ----------- | | +--* SUB long - [000109] ----------- | | | +--* LCL_VAR long V04 loc1 - [000111] ----------- | | | \--* CNS_INT long 3 - [000113] ----------- | | \--* CNS_INT long 8 - [000117] ----------- | \--* LCL_VAR long V01 arg1 - [000122] ----------- \--* CNS_INT int 0 - ------------- BB17 [0016] [124..12A) (return), preds={BB16} succs={} - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) - [000227] ----------- * RETURN int - [000226] ----------- \--* CAST int <- long - [000225] ----------- \--* SUB long - [000222] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000224] ----------- \--* CNS_INT long 3 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] ---XG------ * JTRUE void - [000140] ---XG------ \--* EQ int - [000432] ---XG------ +--* CAST int <- ubyte <- int - [000429] ---XG------ | \--* EQ int - [000133] ---XG------ | +--* IND long - [000132] ----------- | | \--* ADD byref - [000125] ----------- | | +--* LCL_VAR byref V00 arg0 - [000131] ----------- | | \--* MUL long - [000129] ----------- | | +--* SUB long - [000126] ----------- | | | +--* LCL_VAR long V04 loc1 - [000128] ----------- | | | \--* CNS_INT long 4 - [000130] ----------- | | \--* CNS_INT long 8 - [000134] ----------- | \--* LCL_VAR long V01 arg1 - [000139] ----------- \--* CNS_INT int 0 - ------------- BB19 [0018] [152..158) (return), preds={BB18} succs={} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) - [000221] ----------- * RETURN int - [000220] ----------- \--* CAST int <- long - [000219] ----------- \--* SUB long - [000216] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000218] ----------- \--* CNS_INT long 4 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) - [000158] ---XG------ * JTRUE void - [000157] ---XG------ \--* EQ int - [000439] ---XG------ +--* CAST int <- ubyte <- int - [000436] ---XG------ | \--* EQ int - [000150] ---XG------ | +--* IND long - [000149] ----------- | | \--* ADD byref - [000142] ----------- | | +--* LCL_VAR byref V00 arg0 - [000148] ----------- | | \--* MUL long - [000146] ----------- | | +--* SUB long - [000143] ----------- | | | +--* LCL_VAR long V04 loc1 - [000145] ----------- | | | \--* CNS_INT long 5 - [000147] ----------- | | \--* CNS_INT long 8 - [000151] ----------- | \--* LCL_VAR long V01 arg1 - [000156] ----------- \--* CNS_INT int 0 - ------------- BB21 [0020] [180..186) (return), preds={BB20} succs={} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) - [000215] ----------- * RETURN int - [000214] ----------- \--* CAST int <- long - [000213] ----------- \--* SUB long - [000210] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000212] ----------- \--* CNS_INT long 5 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) - [000175] ---XG------ * JTRUE void - [000174] ---XG------ \--* EQ int - [000446] ---XG------ +--* CAST int <- ubyte <- int - [000443] ---XG------ | \--* EQ int - [000167] ---XG------ | +--* IND long - [000166] ----------- | | \--* ADD byref - [000159] ----------- | | +--* LCL_VAR byref V00 arg0 - [000165] ----------- | | \--* MUL long - [000163] ----------- | | +--* SUB long - [000160] ----------- | | | +--* LCL_VAR long V04 loc1 - [000162] ----------- | | | \--* CNS_INT long 6 - [000164] ----------- | | \--* CNS_INT long 8 - [000168] ----------- | \--* LCL_VAR long V01 arg1 - [000173] ----------- \--* CNS_INT int 0 - ------------- BB23 [0022] [1AE..1B4) (return), preds={BB22} succs={} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) - [000209] ----------- * RETURN int - [000208] ----------- \--* CAST int <- long - [000207] ----------- \--* SUB long - [000204] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000206] ----------- \--* CNS_INT long 6 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] ---XG------ * JTRUE void - [000191] ---XG------ \--* EQ int - [000453] ---XG------ +--* CAST int <- ubyte <- int - [000450] ---XG------ | \--* EQ int - [000184] ---XG------ | +--* IND long - [000183] ----------- | | \--* ADD byref - [000176] ----------- | | +--* LCL_VAR byref V00 arg0 - [000182] ----------- | | \--* MUL long - [000180] ----------- | | +--* SUB long - [000177] ----------- | | | +--* LCL_VAR long V04 loc1 - [000179] ----------- | | | \--* CNS_INT long 7 - [000181] ----------- | | \--* CNS_INT long 8 - [000185] ----------- | \--* LCL_VAR long V01 arg1 - [000190] ----------- \--* CNS_INT int 0 - ------------- BB25 [0024] [1DC..1E2) (return), preds={BB24} succs={} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) - [000203] ----------- * RETURN int - [000202] ----------- \--* CAST int <- long - [000201] ----------- \--* SUB long - [000198] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000200] ----------- \--* CNS_INT long 7 - ------------- BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - [000197] DA--------- * STORE_LCL_VAR long V04 loc1 - [000196] ----------- \--* SUB long - [000193] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000195] ----------- \--* CNS_INT long 8 - ------------- BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} - -***** BB27 [0026] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - [000055] ----------- * JTRUE void - [000054] ----------- \--* GE int - [000052] ----------- +--* LCL_VAR int V02 arg2 - [000053] ----------- \--* CNS_INT int 8 - ------------- BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} - -***** BB28 [0027] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) - [000246] ----------- * JTRUE void - [000245] ----------- \--* LT int - [000243] ----------- +--* LCL_VAR int V02 arg2 - [000244] ----------- \--* CNS_INT int 4 - ------------- BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB28} succs={BB31,BB11} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) - [000282] DA--------- * STORE_LCL_VAR int V02 arg2 - [000281] ----------- \--* SUB int - [000279] ----------- +--* LCL_VAR int V02 arg2 (last use) - [000280] ----------- \--* CNS_INT int 4 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] ---XG------ * JTRUE void - [000295] ---XG------ \--* NE int - [000460] ---XG------ +--* CAST int <- ubyte <- int - [000457] ---XG------ | \--* EQ int - [000288] ---XG------ | +--* IND long - [000287] ----------- | | \--* ADD byref - [000283] ----------- | | +--* LCL_VAR byref V00 arg0 - [000286] ----------- | | \--* MUL long - [000284] ----------- | | +--* LCL_VAR long V04 loc1 - [000285] ----------- | | \--* CNS_INT long 8 - [000289] ----------- | \--* LCL_VAR long V01 arg1 - [000294] ----------- \--* CNS_INT int 0 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) - [000313] ---XG------ * JTRUE void - [000312] ---XG------ \--* EQ int - [000467] ---XG------ +--* CAST int <- ubyte <- int - [000464] ---XG------ | \--* EQ int - [000305] ---XG------ | +--* IND long - [000304] ----------- | | \--* ADD byref - [000297] ----------- | | +--* LCL_VAR byref V00 arg0 - [000303] ----------- | | \--* MUL long - [000301] ----------- | | +--* SUB long - [000298] ----------- | | | +--* LCL_VAR long V04 loc1 - [000300] ----------- | | | \--* CNS_INT long 1 - [000302] ----------- | | \--* CNS_INT long 8 - [000306] ----------- | \--* LCL_VAR long V01 arg1 - [000311] ----------- \--* CNS_INT int 0 - ------------- BB32 [0031] [24A..250) (return), preds={BB31} succs={} - -***** BB32 [0031] -STMT00066 ( 0x24A[E--] ... 0x24F ) - [000370] ----------- * RETURN int - [000369] ----------- \--* CAST int <- long - [000368] ----------- \--* SUB long - [000365] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000367] ----------- \--* CNS_INT long 1 - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) - [000330] ---XG------ * JTRUE void - [000329] ---XG------ \--* EQ int - [000474] ---XG------ +--* CAST int <- ubyte <- int - [000471] ---XG------ | \--* EQ int - [000322] ---XG------ | +--* IND long - [000321] ----------- | | \--* ADD byref - [000314] ----------- | | +--* LCL_VAR byref V00 arg0 - [000320] ----------- | | \--* MUL long - [000318] ----------- | | +--* SUB long - [000315] ----------- | | | +--* LCL_VAR long V04 loc1 - [000317] ----------- | | | \--* CNS_INT long 2 - [000319] ----------- | | \--* CNS_INT long 8 - [000323] ----------- | \--* LCL_VAR long V01 arg1 - [000328] ----------- \--* CNS_INT int 0 - ------------- BB34 [0033] [278..27E) (return), preds={BB33} succs={} - -***** BB34 [0033] -STMT00065 ( 0x278[E--] ... 0x27D ) - [000364] ----------- * RETURN int - [000363] ----------- \--* CAST int <- long - [000362] ----------- \--* SUB long - [000359] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000361] ----------- \--* CNS_INT long 2 - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] ---XG------ * JTRUE void - [000346] ---XG------ \--* EQ int - [000481] ---XG------ +--* CAST int <- ubyte <- int - [000478] ---XG------ | \--* EQ int - [000339] ---XG------ | +--* IND long - [000338] ----------- | | \--* ADD byref - [000331] ----------- | | +--* LCL_VAR byref V00 arg0 - [000337] ----------- | | \--* MUL long - [000335] ----------- | | +--* SUB long - [000332] ----------- | | | +--* LCL_VAR long V04 loc1 - [000334] ----------- | | | \--* CNS_INT long 3 - [000336] ----------- | | \--* CNS_INT long 8 - [000340] ----------- | \--* LCL_VAR long V01 arg1 - [000345] ----------- \--* CNS_INT int 0 - ------------- BB36 [0035] [2A6..2AC) (return), preds={BB35} succs={} - -***** BB36 [0035] -STMT00064 ( 0x2A6[E--] ... 0x2AB ) - [000358] ----------- * RETURN int - [000357] ----------- \--* CAST int <- long - [000356] ----------- \--* SUB long - [000353] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000355] ----------- \--* CNS_INT long 3 - ------------- BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) - [000352] DA--------- * STORE_LCL_VAR long V04 loc1 - [000351] ----------- \--* SUB long - [000348] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000350] ----------- \--* CNS_INT long 4 - ------------- BB38 [0037] [2B3..2DD) -> BB11(0.5),BB40(0.5) (cond), preds={BB41} succs={BB40,BB11} - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) - [000254] DA--------- * STORE_LCL_VAR int V02 arg2 - [000253] ----------- \--* SUB int - [000251] ----------- +--* LCL_VAR int V02 arg2 (last use) - [000252] ----------- \--* CNS_INT int 1 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] ---XG------ * JTRUE void - [000267] ---XG------ \--* NE int - [000488] ---XG------ +--* CAST int <- ubyte <- int - [000485] ---XG------ | \--* EQ int - [000260] ---XG------ | +--* IND long - [000259] ----------- | | \--* ADD byref - [000255] ----------- | | +--* LCL_VAR byref V00 arg0 - [000258] ----------- | | \--* MUL long - [000256] ----------- | | +--* LCL_VAR long V04 loc1 - [000257] ----------- | | \--* CNS_INT long 8 - [000261] ----------- | \--* LCL_VAR long V01 arg1 - [000266] ----------- \--* CNS_INT int 0 - ------------- BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - [000273] DA--------- * STORE_LCL_VAR long V04 loc1 - [000272] ----------- \--* SUB long - [000269] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000271] ----------- \--* CNS_INT long 1 - ------------- BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} - -***** BB41 [0040] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - [000250] ----------- * JTRUE void - [000249] ----------- \--* GT int - [000247] ----------- +--* LCL_VAR int V02 arg2 - [000248] ----------- \--* CNS_INT int 0 - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} - -***** BB42 [0041] -STMT00088 ( ??? ... ??? ) - [000493] ----------- * RETURN int - [000277] ----------- \--* CNS_INT int -1 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) - [000045] --C-G------ * RETURN int - [000044] --C-G------ \--* CALL int - [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 (last use) - [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 (last use) - [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 (last use) - ------------- BB58 [0085] [???..???) (return), preds={} succs={} - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) - [000492] ----------- * RETURN int - [000491] -------N--- \--* LCL_VAR int V34 tmp29 (last use) - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Physical promotion - -*************** Finishing PHASE Physical promotion [no changes] - -*************** Starting PHASE Identify candidates for implicit byref copy omission - -*************** Finishing PHASE Identify candidates for implicit byref copy omission [no changes] - -*************** Starting PHASE Morph - ByRefs - -*************** Finishing PHASE Morph - ByRefs [no changes] - -*************** Starting PHASE Morph - Global -Cross-block table size 64 (for 19 tracked locals) - -Morphing BB58 -BB58 ineligible for cross-block -Assertions in: #NA -fgMorphTree BB58, STMT00087 (before) - [000492] ----------- * RETURN int - [000491] -------N--- \--* LCL_VAR int V34 tmp29 (last use) - -Morphing BB01 -Assertions in: #NA -fgMorphTree BB01, STMT00069 (before) - [000384] ----------- * JTRUE void - [000383] ----------- \--* NE int - [000380] ----------- +--* CAST int <- ubyte <- int - [000374] ----------- | \--* CAST int <- ubyte <- int - [000004] ----------- | \--* EQ int - [000002] ----------- | +--* LT int - [000000] ----------- | | +--* LCL_VAR int V02 arg2 - [000001] ----------- | | \--* CNS_INT int 0 - [000003] ----------- | \--* CNS_INT int 0 - [000382] ----------- \--* CNS_INT int 0 - -fgMorphTree BB01, STMT00069 (after) - [000384] -----+----- * JTRUE void - [000002] J----+-N--- \--* GE int - [000000] -----+----- +--* LCL_VAR int V02 arg2 - [000001] -----+----- \--* CNS_INT int 0 - -Morphing BB52 -Using `if false` assertions from pred BB01 -Assertions in: #NA -fgMorphTree BB52, STMT00070 (before) - [000387] --C-G------ * CALL void - [000385] ----------- arg0 +--* CNS_STR ref - [000386] ----------- arg1 \--* CNS_STR ref "" -Adding final args and determining ABI info for [000387]: -Argument 0 ABI info: [00..08) reg rcx -Argument 1 ABI info: [00..08) reg rdx -Args for call [000387] CALL after AddFinalArgsAndDetermineABIInfo: -CallArg[[000385].CNS_STR ref (By value), 1 segments: <[00..08) reg rcx>] -CallArg[[000386].CNS_STR ref (By value), 1 segments: <[00..08) reg rdx>] - -Morphing args for 387.CALL: - -Sorting the arguments: -Deferred argument: - [000497] H----+----- * CNS_INT(h) ref -Moved to late list -Deferred argument: - [000498] H----+----- * CNS_INT(h) ref -Moved to late list - -Register placement order: rcx rdx -Args for [000387].CALL after fgMorphArgs: -CallArg[[000497].CNS_INT ref (By value), 1 segments: <[00..08) reg rcx>, processed] -CallArg[[000498].CNS_INT ref (By value), 1 segments: <[00..08) reg rdx>, processed] -OutgoingArgsStackSize is 32 - - -fgMorphTree BB52, STMT00070 (after) - [000387] --CXG+----- * CALL void - [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref - [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref - -Morphing BB53 -Using `if true` assertions from pred BB01 -Assertions in: #NA -fgMorphTree BB53, STMT00072 (before) - [000395] ----------- * JTRUE void - [000394] ----------- \--* NE int - [000496] ----------- +--* CAST int <- ubyte <- int - [000023] ----------- | \--* CNS_INT int 1 - [000393] ----------- \--* CNS_INT int 0 - -Folding operator with constant nodes into a constant: - [000496] ----------- * CAST int <- ubyte <- int - [000023] -----+----- \--* CNS_INT int 1 -Bashed to int constant: - [000496] ----------- * CNS_INT int 1 - -Folding operator with constant nodes into a constant: - [000394] J------N--- * NE int - [000496] -----+----- +--* CNS_INT int 1 - [000393] -----+----- \--* CNS_INT int 0 -Bashed to int constant: - [000394] ----------- * CNS_INT int 1 - -fgMorphTree BB53, STMT00072 (after) - [000395] -----+----- * JTRUE void - [000394] -----+----- \--* CNS_INT int 1 - -removing useless STMT00072 ( INL04 @ 0x000[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000395] -----+----- * JTRUE void - [000394] -----+----- \--* CNS_INT int 1 - from BB53 - -BB53 becomes empty -setting likelihood of BB53 -> BB57 from 0.5 to 1 - -Conditional folded at BB53 -BB53 becomes a BBJ_ALWAYS to BB57 - -Morphing BB56 -BB56 has no reachable preds, marking as unreachable - -Removing unreachable BB56 - -removing useless STMT00073 ( INL04 @ 0x003[E--] ... ??? ) <- INL03 @ 0x000[E--] <- INLRT @ 0x04B[E--] - [000398] --C-G------ * CALL void - [000396] ----------- arg0 +--* CNS_STR ref - [000397] ----------- arg1 \--* CNS_STR ref "" - from BB56 - -BB56 becomes empty - -Morphing BB57 -Assertions in: #NA -fgMorphTree BB57, STMT00003 (before) - [000034] ----------- * JTRUE void - [000033] ----------- \--* GE int - [000031] ----------- +--* LCL_VAR int V02 arg2 - [000032] ----------- \--* CNS_INT int 2 vector element count - -Morphing BB43 -Using `if true` assertions from pred BB57 -Assertions in: #NA -fgMorphTree BB43, STMT00004 (before) - [000045] --C-G------ * RETURN int - [000044] --C-G------ \--* CALL int - [000041] ----------- arg0 +--* LCL_VAR byref V00 arg0 (last use) - [000042] ----------- arg1 +--* LCL_VAR long V01 arg1 (last use) - [000043] ----------- arg2 \--* LCL_VAR int V02 arg2 (last use) -Adding final args and determining ABI info for [000044]: -Argument 0 ABI info: [00..08) reg rcx -Argument 1 ABI info: [00..08) reg rdx -Argument 2 ABI info: [00..04) reg r8 -Args for call [000044] CALL after AddFinalArgsAndDetermineABIInfo: -CallArg[[000041].LCL_VAR byref (By value), 1 segments: <[00..08) reg rcx>] -CallArg[[000042].LCL_VAR long (By value), 1 segments: <[00..08) reg rdx>] -CallArg[[000043].LCL_VAR int (By value), 1 segments: <[00..04) reg r8>] - -[Fast tailcall decision]: Will fast tailcall - -GTF_CALL_M_TAILCALL bit set for call [000044] -Remove all stmts after the call. -Replace root node [000045] with [000044] tail call node. -Morphing args for 44.CALL: - -Sorting the arguments: -Deferred argument: - [000041] -----+----- * LCL_VAR byref V00 arg0 (last use) -Moved to late list -Deferred argument: - [000042] -----+----- * LCL_VAR long V01 arg1 (last use) -Moved to late list -Deferred argument: - [000043] -----+----- * LCL_VAR int V02 arg2 (last use) -Moved to late list - -Register placement order: rcx rdx r8 -Args for [000044].CALL after fgMorphArgs: -CallArg[[000041].LCL_VAR byref (By value), 1 segments: <[00..08) reg rcx>, processed] -CallArg[[000042].LCL_VAR long (By value), 1 segments: <[00..08) reg rdx>, processed] -CallArg[[000043].LCL_VAR int (By value), 1 segments: <[00..04) reg r8>, processed] -OutgoingArgsStackSize is 32 - - -fgMorphTree BB43, STMT00004 (after) - [000044] --CXG+----- * CALL void - [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 (last use) - [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 (last use) - [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 (last use) - -Morphing BB09 -Using `if false` assertions from pred BB57 -Assertions in: #NA -fgMorphTree BB09, STMT00005 (before) - [000051] DA--------- * STORE_LCL_VAR long V04 loc1 - [000050] ----------- \--* SUB long - [000047] ----------- +--* CAST long <- int - [000046] ----------- | \--* LCL_VAR int V02 arg2 - [000049] ----------- \--* CNS_INT long 1 - -fgMorphTree BB09, STMT00005 (after) - [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000050] -----+----- \--* ADD long - [000047] -----+----- +--* CAST long <- int - [000046] -----+----- | \--* LCL_VAR int V02 arg2 - [000049] -----+----- \--* CNS_INT long -1 - -Morphing BB27 -BB27 pred BB26 not processed; clearing assertions in -Assertions in: #NA -fgMorphTree BB27, STMT00006 (before) - [000055] ----------- * JTRUE void - [000054] ----------- \--* GE int - [000052] ----------- +--* LCL_VAR int V02 arg2 - [000053] ----------- \--* CNS_INT int 8 - -Morphing BB10 -Using `if true` assertions from pred BB27 -Assertions in: #NA -fgMorphTree BB10, STMT00007 (before) - [000059] DA--------- * STORE_LCL_VAR int V02 arg2 - [000058] ----------- \--* SUB int - [000056] ----------- +--* LCL_VAR int V02 arg2 (last use) - [000057] ----------- \--* CNS_INT int 8 - -fgMorphTree BB10, STMT00007 (after) - [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000058] -----+----- \--* ADD int - [000056] -----+----- +--* LCL_VAR int V02 arg2 (last use) - [000057] -----+----- \--* CNS_INT int -8 - -fgMorphTree BB10, STMT00010 (before) - [000073] ---XG------ * JTRUE void - [000072] ---XG------ \--* EQ int - [000404] ---XG------ +--* CAST int <- ubyte <- int - [000401] ---XG------ | \--* EQ int - [000065] ---XG------ | +--* IND long - [000064] ----------- | | \--* ADD byref - [000060] ----------- | | +--* LCL_VAR byref V00 arg0 - [000063] ----------- | | \--* MUL long - [000061] ----------- | | +--* LCL_VAR long V04 loc1 - [000062] ----------- | | \--* CNS_INT long 8 - [000066] ----------- | \--* LCL_VAR long V01 arg1 - [000071] ----------- \--* CNS_INT int 0 - -fgMorphTree BB10, STMT00010 (after) - [000073] ---XG+----- * JTRUE void - [000401] J--XG+-N--- \--* NE int - [000065] ---XG+----- +--* IND long - [000064] -----+----- | \--* ADD byref - [000060] -----+----- | +--* LCL_VAR byref V00 arg0 - [000063] -----+----- | \--* LSH long - [000061] -----+----- | +--* LCL_VAR long V04 loc1 - [000062] -----+----- | \--* CNS_INT long 3 - [000066] -----+----- \--* LCL_VAR long V01 arg1 - -Morphing BB12 -Using `if true` assertions from pred BB10 -Assertions in: #NA -fgMorphTree BB12, STMT00013 (before) - [000090] ---XG------ * JTRUE void - [000089] ---XG------ \--* EQ int - [000411] ---XG------ +--* CAST int <- ubyte <- int - [000408] ---XG------ | \--* EQ int - [000082] ---XG------ | +--* IND long - [000081] ----------- | | \--* ADD byref - [000074] ----------- | | +--* LCL_VAR byref V00 arg0 - [000080] ----------- | | \--* MUL long - [000078] ----------- | | +--* SUB long - [000075] ----------- | | | +--* LCL_VAR long V04 loc1 - [000077] ----------- | | | \--* CNS_INT long 1 - [000079] ----------- | | \--* CNS_INT long 8 - [000083] ----------- | \--* LCL_VAR long V01 arg1 - [000088] ----------- \--* CNS_INT int 0 - -fgMorphTree BB12, STMT00013 (after) - [000090] ---XG+----- * JTRUE void - [000408] J--XG+-N--- \--* NE int - [000082] ---XG+----- +--* IND long - [000081] -----+----- | \--* ADD byref - [000074] -----+----- | +--* LCL_VAR byref V00 arg0 - [000080] -----+----- | \--* ADD long - [000078] -----+----- | +--* LSH long - [000075] -----+----- | | +--* LCL_VAR long V04 loc1 - [000077] -----+----- | | \--* CNS_INT long 3 - [000079] -----+----- | \--* CNS_INT long -8 - [000083] -----+----- \--* LCL_VAR long V01 arg1 - -Morphing BB14 -Using `if true` assertions from pred BB12 -Assertions in: #NA -fgMorphTree BB14, STMT00016 (before) - [000107] ---XG------ * JTRUE void - [000106] ---XG------ \--* EQ int - [000418] ---XG------ +--* CAST int <- ubyte <- int - [000415] ---XG------ | \--* EQ int - [000099] ---XG------ | +--* IND long - [000098] ----------- | | \--* ADD byref - [000091] ----------- | | +--* LCL_VAR byref V00 arg0 - [000097] ----------- | | \--* MUL long - [000095] ----------- | | +--* SUB long - [000092] ----------- | | | +--* LCL_VAR long V04 loc1 - [000094] ----------- | | | \--* CNS_INT long 2 - [000096] ----------- | | \--* CNS_INT long 8 - [000100] ----------- | \--* LCL_VAR long V01 arg1 - [000105] ----------- \--* CNS_INT int 0 - -fgMorphTree BB14, STMT00016 (after) - [000107] ---XG+----- * JTRUE void - [000415] J--XG+-N--- \--* NE int - [000099] ---XG+----- +--* IND long - [000098] -----+----- | \--* ADD byref - [000091] -----+----- | +--* LCL_VAR byref V00 arg0 - [000097] -----+----- | \--* ADD long - [000095] -----+----- | +--* LSH long - [000092] -----+----- | | +--* LCL_VAR long V04 loc1 - [000094] -----+----- | | \--* CNS_INT long 3 - [000096] -----+----- | \--* CNS_INT long -16 - [000100] -----+----- \--* LCL_VAR long V01 arg1 - -Morphing BB16 -Using `if true` assertions from pred BB14 -Assertions in: #NA -fgMorphTree BB16, STMT00019 (before) - [000124] ---XG------ * JTRUE void - [000123] ---XG------ \--* EQ int - [000425] ---XG------ +--* CAST int <- ubyte <- int - [000422] ---XG------ | \--* EQ int - [000116] ---XG------ | +--* IND long - [000115] ----------- | | \--* ADD byref - [000108] ----------- | | +--* LCL_VAR byref V00 arg0 - [000114] ----------- | | \--* MUL long - [000112] ----------- | | +--* SUB long - [000109] ----------- | | | +--* LCL_VAR long V04 loc1 - [000111] ----------- | | | \--* CNS_INT long 3 - [000113] ----------- | | \--* CNS_INT long 8 - [000117] ----------- | \--* LCL_VAR long V01 arg1 - [000122] ----------- \--* CNS_INT int 0 - -fgMorphTree BB16, STMT00019 (after) - [000124] ---XG+----- * JTRUE void - [000422] J--XG+-N--- \--* NE int - [000116] ---XG+----- +--* IND long - [000115] -----+----- | \--* ADD byref - [000108] -----+----- | +--* LCL_VAR byref V00 arg0 - [000114] -----+----- | \--* ADD long - [000112] -----+----- | +--* LSH long - [000109] -----+----- | | +--* LCL_VAR long V04 loc1 - [000111] -----+----- | | \--* CNS_INT long 3 - [000113] -----+----- | \--* CNS_INT long -24 - [000117] -----+----- \--* LCL_VAR long V01 arg1 - -Morphing BB18 -Using `if true` assertions from pred BB16 -Assertions in: #NA -fgMorphTree BB18, STMT00022 (before) - [000141] ---XG------ * JTRUE void - [000140] ---XG------ \--* EQ int - [000432] ---XG------ +--* CAST int <- ubyte <- int - [000429] ---XG------ | \--* EQ int - [000133] ---XG------ | +--* IND long - [000132] ----------- | | \--* ADD byref - [000125] ----------- | | +--* LCL_VAR byref V00 arg0 - [000131] ----------- | | \--* MUL long - [000129] ----------- | | +--* SUB long - [000126] ----------- | | | +--* LCL_VAR long V04 loc1 - [000128] ----------- | | | \--* CNS_INT long 4 - [000130] ----------- | | \--* CNS_INT long 8 - [000134] ----------- | \--* LCL_VAR long V01 arg1 - [000139] ----------- \--* CNS_INT int 0 - -fgMorphTree BB18, STMT00022 (after) - [000141] ---XG+----- * JTRUE void - [000429] J--XG+-N--- \--* NE int - [000133] ---XG+----- +--* IND long - [000132] -----+----- | \--* ADD byref - [000125] -----+----- | +--* LCL_VAR byref V00 arg0 - [000131] -----+----- | \--* ADD long - [000129] -----+----- | +--* LSH long - [000126] -----+----- | | +--* LCL_VAR long V04 loc1 - [000128] -----+----- | | \--* CNS_INT long 3 - [000130] -----+----- | \--* CNS_INT long -32 - [000134] -----+----- \--* LCL_VAR long V01 arg1 - -Morphing BB20 -Using `if true` assertions from pred BB18 -Assertions in: #NA -fgMorphTree BB20, STMT00025 (before) - [000158] ---XG------ * JTRUE void - [000157] ---XG------ \--* EQ int - [000439] ---XG------ +--* CAST int <- ubyte <- int - [000436] ---XG------ | \--* EQ int - [000150] ---XG------ | +--* IND long - [000149] ----------- | | \--* ADD byref - [000142] ----------- | | +--* LCL_VAR byref V00 arg0 - [000148] ----------- | | \--* MUL long - [000146] ----------- | | +--* SUB long - [000143] ----------- | | | +--* LCL_VAR long V04 loc1 - [000145] ----------- | | | \--* CNS_INT long 5 - [000147] ----------- | | \--* CNS_INT long 8 - [000151] ----------- | \--* LCL_VAR long V01 arg1 - [000156] ----------- \--* CNS_INT int 0 - -fgMorphTree BB20, STMT00025 (after) - [000158] ---XG+----- * JTRUE void - [000436] J--XG+-N--- \--* NE int - [000150] ---XG+----- +--* IND long - [000149] -----+----- | \--* ADD byref - [000142] -----+----- | +--* LCL_VAR byref V00 arg0 - [000148] -----+----- | \--* ADD long - [000146] -----+----- | +--* LSH long - [000143] -----+----- | | +--* LCL_VAR long V04 loc1 - [000145] -----+----- | | \--* CNS_INT long 3 - [000147] -----+----- | \--* CNS_INT long -40 - [000151] -----+----- \--* LCL_VAR long V01 arg1 - -Morphing BB22 -Using `if true` assertions from pred BB20 -Assertions in: #NA -fgMorphTree BB22, STMT00028 (before) - [000175] ---XG------ * JTRUE void - [000174] ---XG------ \--* EQ int - [000446] ---XG------ +--* CAST int <- ubyte <- int - [000443] ---XG------ | \--* EQ int - [000167] ---XG------ | +--* IND long - [000166] ----------- | | \--* ADD byref - [000159] ----------- | | +--* LCL_VAR byref V00 arg0 - [000165] ----------- | | \--* MUL long - [000163] ----------- | | +--* SUB long - [000160] ----------- | | | +--* LCL_VAR long V04 loc1 - [000162] ----------- | | | \--* CNS_INT long 6 - [000164] ----------- | | \--* CNS_INT long 8 - [000168] ----------- | \--* LCL_VAR long V01 arg1 - [000173] ----------- \--* CNS_INT int 0 - -fgMorphTree BB22, STMT00028 (after) - [000175] ---XG+----- * JTRUE void - [000443] J--XG+-N--- \--* NE int - [000167] ---XG+----- +--* IND long - [000166] -----+----- | \--* ADD byref - [000159] -----+----- | +--* LCL_VAR byref V00 arg0 - [000165] -----+----- | \--* ADD long - [000163] -----+----- | +--* LSH long - [000160] -----+----- | | +--* LCL_VAR long V04 loc1 - [000162] -----+----- | | \--* CNS_INT long 3 - [000164] -----+----- | \--* CNS_INT long -48 - [000168] -----+----- \--* LCL_VAR long V01 arg1 - -Morphing BB24 -Using `if true` assertions from pred BB22 -Assertions in: #NA -fgMorphTree BB24, STMT00031 (before) - [000192] ---XG------ * JTRUE void - [000191] ---XG------ \--* EQ int - [000453] ---XG------ +--* CAST int <- ubyte <- int - [000450] ---XG------ | \--* EQ int - [000184] ---XG------ | +--* IND long - [000183] ----------- | | \--* ADD byref - [000176] ----------- | | +--* LCL_VAR byref V00 arg0 - [000182] ----------- | | \--* MUL long - [000180] ----------- | | +--* SUB long - [000177] ----------- | | | +--* LCL_VAR long V04 loc1 - [000179] ----------- | | | \--* CNS_INT long 7 - [000181] ----------- | | \--* CNS_INT long 8 - [000185] ----------- | \--* LCL_VAR long V01 arg1 - [000190] ----------- \--* CNS_INT int 0 - -fgMorphTree BB24, STMT00031 (after) - [000192] ---XG+----- * JTRUE void - [000450] J--XG+-N--- \--* NE int - [000184] ---XG+----- +--* IND long - [000183] -----+----- | \--* ADD byref - [000176] -----+----- | +--* LCL_VAR byref V00 arg0 - [000182] -----+----- | \--* ADD long - [000180] -----+----- | +--* LSH long - [000177] -----+----- | | +--* LCL_VAR long V04 loc1 - [000179] -----+----- | | \--* CNS_INT long 3 - [000181] -----+----- | \--* CNS_INT long -56 - [000185] -----+----- \--* LCL_VAR long V01 arg1 - -Morphing BB26 -Using `if true` assertions from pred BB24 -Assertions in: #NA -fgMorphTree BB26, STMT00032 (before) - [000197] DA--------- * STORE_LCL_VAR long V04 loc1 - [000196] ----------- \--* SUB long - [000193] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000195] ----------- \--* CNS_INT long 8 - -fgMorphTree BB26, STMT00032 (after) - [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000196] -----+----- \--* ADD long - [000193] -----+----- +--* LCL_VAR long V04 loc1 (last use) - [000195] -----+----- \--* CNS_INT long -8 - -Morphing BB25 -Using `if false` assertions from pred BB24 -Assertions in: #NA -fgMorphTree BB25, STMT00033 (before) - [000203] ----------- * RETURN int - [000202] ----------- \--* CAST int <- long - [000201] ----------- \--* SUB long - [000198] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000200] ----------- \--* CNS_INT long 7 - -Folding operator with constant nodes into a constant: - [000501] ----------- * CAST int <- long - [000200] -----+----- \--* CNS_INT long 7 -Bashed to int constant: - [000501] ----------- * CNS_INT int 7 - -fgMorphTree BB25, STMT00033 (after) - [000203] -----+----- * RETURN int - [000201] -----+----- \--* ADD int - [000198] -----+----- +--* LCL_VAR int V04 loc1 (last use) - [000501] -----+----- \--* CNS_INT int -7 -setting likelihood of BB25 -> BB58 to 1 - -Update BB25 to jump to common return block. -BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i - -Morphing BB23 -Using `if false` assertions from pred BB22 -Assertions in: #NA -fgMorphTree BB23, STMT00034 (before) - [000209] ----------- * RETURN int - [000208] ----------- \--* CAST int <- long - [000207] ----------- \--* SUB long - [000204] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000206] ----------- \--* CNS_INT long 6 - -Folding operator with constant nodes into a constant: - [000504] ----------- * CAST int <- long - [000206] -----+----- \--* CNS_INT long 6 -Bashed to int constant: - [000504] ----------- * CNS_INT int 6 - -fgMorphTree BB23, STMT00034 (after) - [000209] -----+----- * RETURN int - [000207] -----+----- \--* ADD int - [000204] -----+----- +--* LCL_VAR int V04 loc1 (last use) - [000504] -----+----- \--* CNS_INT int -6 -setting likelihood of BB23 -> BB58 to 1 - -Update BB23 to jump to common return block. -BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i - -Morphing BB21 -Using `if false` assertions from pred BB20 -Assertions in: #NA -fgMorphTree BB21, STMT00035 (before) - [000215] ----------- * RETURN int - [000214] ----------- \--* CAST int <- long - [000213] ----------- \--* SUB long - [000210] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000212] ----------- \--* CNS_INT long 5 - -Folding operator with constant nodes into a constant: - [000507] ----------- * CAST int <- long - [000212] -----+----- \--* CNS_INT long 5 -Bashed to int constant: - [000507] ----------- * CNS_INT int 5 - -fgMorphTree BB21, STMT00035 (after) - [000215] -----+----- * RETURN int - [000213] -----+----- \--* ADD int - [000210] -----+----- +--* LCL_VAR int V04 loc1 (last use) - [000507] -----+----- \--* CNS_INT int -5 -setting likelihood of BB21 -> BB58 to 1 - -Update BB21 to jump to common return block. -BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i - -Morphing BB19 -Using `if false` assertions from pred BB18 -Assertions in: #NA -fgMorphTree BB19, STMT00036 (before) - [000221] ----------- * RETURN int - [000220] ----------- \--* CAST int <- long - [000219] ----------- \--* SUB long - [000216] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000218] ----------- \--* CNS_INT long 4 - -Folding operator with constant nodes into a constant: - [000510] ----------- * CAST int <- long - [000218] -----+----- \--* CNS_INT long 4 -Bashed to int constant: - [000510] ----------- * CNS_INT int 4 - -fgMorphTree BB19, STMT00036 (after) - [000221] -----+----- * RETURN int - [000219] -----+----- \--* ADD int - [000216] -----+----- +--* LCL_VAR int V04 loc1 (last use) - [000510] -----+----- \--* CNS_INT int -4 -setting likelihood of BB19 -> BB58 to 1 - -Update BB19 to jump to common return block. -BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i - -Morphing BB17 -Using `if false` assertions from pred BB16 -Assertions in: #NA -fgMorphTree BB17, STMT00037 (before) - [000227] ----------- * RETURN int - [000226] ----------- \--* CAST int <- long - [000225] ----------- \--* SUB long - [000222] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000224] ----------- \--* CNS_INT long 3 - -Folding operator with constant nodes into a constant: - [000513] ----------- * CAST int <- long - [000224] -----+----- \--* CNS_INT long 3 -Bashed to int constant: - [000513] ----------- * CNS_INT int 3 - -fgMorphTree BB17, STMT00037 (after) - [000227] -----+----- * RETURN int - [000225] -----+----- \--* ADD int - [000222] -----+----- +--* LCL_VAR int V04 loc1 (last use) - [000513] -----+----- \--* CNS_INT int -3 -setting likelihood of BB17 -> BB58 to 1 - -Update BB17 to jump to common return block. -BB17 [0016] 1 BB16 1 [124..12A)-> BB58(1) (always) i - -Morphing BB15 -Using `if false` assertions from pred BB14 -Assertions in: #NA -fgMorphTree BB15, STMT00038 (before) - [000233] ----------- * RETURN int - [000232] ----------- \--* CAST int <- long - [000231] ----------- \--* SUB long - [000228] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000230] ----------- \--* CNS_INT long 2 - -Folding operator with constant nodes into a constant: - [000516] ----------- * CAST int <- long - [000230] -----+----- \--* CNS_INT long 2 -Bashed to int constant: - [000516] ----------- * CNS_INT int 2 - -fgMorphTree BB15, STMT00038 (after) - [000233] -----+----- * RETURN int - [000231] -----+----- \--* ADD int - [000228] -----+----- +--* LCL_VAR int V04 loc1 (last use) - [000516] -----+----- \--* CNS_INT int -2 -setting likelihood of BB15 -> BB58 to 1 - -Update BB15 to jump to common return block. -BB15 [0014] 1 BB14 1 [0F6..0FC)-> BB58(1) (always) i - -Morphing BB13 -Using `if false` assertions from pred BB12 -Assertions in: #NA -fgMorphTree BB13, STMT00039 (before) - [000239] ----------- * RETURN int - [000238] ----------- \--* CAST int <- long - [000237] ----------- \--* SUB long - [000234] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000236] ----------- \--* CNS_INT long 1 - -Folding operator with constant nodes into a constant: - [000519] ----------- * CAST int <- long - [000236] -----+----- \--* CNS_INT long 1 -Bashed to int constant: - [000519] ----------- * CNS_INT int 1 - -fgMorphTree BB13, STMT00039 (after) - [000239] -----+----- * RETURN int - [000237] -----+----- \--* ADD int - [000234] -----+----- +--* LCL_VAR int V04 loc1 (last use) - [000519] -----+----- \--* CNS_INT int -1 -setting likelihood of BB13 -> BB58 to 1 - -Update BB13 to jump to common return block. -BB13 [0012] 1 BB12 1 [0C8..0CE)-> BB58(1) (always) i - -Morphing BB28 -Using `if false` assertions from pred BB27 -Assertions in: #NA -fgMorphTree BB28, STMT00041 (before) - [000246] ----------- * JTRUE void - [000245] ----------- \--* LT int - [000243] ----------- +--* LCL_VAR int V02 arg2 - [000244] ----------- \--* CNS_INT int 4 - -Morphing BB29 -Using `if false` assertions from pred BB28 -Assertions in: #NA -fgMorphTree BB29, STMT00050 (before) - [000282] DA--------- * STORE_LCL_VAR int V02 arg2 - [000281] ----------- \--* SUB int - [000279] ----------- +--* LCL_VAR int V02 arg2 (last use) - [000280] ----------- \--* CNS_INT int 4 - -fgMorphTree BB29, STMT00050 (after) - [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000281] -----+----- \--* ADD int - [000279] -----+----- +--* LCL_VAR int V02 arg2 (last use) - [000280] -----+----- \--* CNS_INT int -4 - -fgMorphTree BB29, STMT00053 (before) - [000296] ---XG------ * JTRUE void - [000295] ---XG------ \--* NE int - [000460] ---XG------ +--* CAST int <- ubyte <- int - [000457] ---XG------ | \--* EQ int - [000288] ---XG------ | +--* IND long - [000287] ----------- | | \--* ADD byref - [000283] ----------- | | +--* LCL_VAR byref V00 arg0 - [000286] ----------- | | \--* MUL long - [000284] ----------- | | +--* LCL_VAR long V04 loc1 - [000285] ----------- | | \--* CNS_INT long 8 - [000289] ----------- | \--* LCL_VAR long V01 arg1 - [000294] ----------- \--* CNS_INT int 0 - -fgMorphTree BB29, STMT00053 (after) - [000296] ---XG+----- * JTRUE void - [000457] J--XG+-N--- \--* EQ int - [000288] ---XG+----- +--* IND long - [000287] -----+----- | \--* ADD byref - [000283] -----+----- | +--* LCL_VAR byref V00 arg0 - [000286] -----+----- | \--* LSH long - [000284] -----+----- | +--* LCL_VAR long V04 loc1 - [000285] -----+----- | \--* CNS_INT long 3 - [000289] -----+----- \--* LCL_VAR long V01 arg1 - -Morphing BB31 -Using `if false` assertions from pred BB29 -Assertions in: #NA -fgMorphTree BB31, STMT00056 (before) - [000313] ---XG------ * JTRUE void - [000312] ---XG------ \--* EQ int - [000467] ---XG------ +--* CAST int <- ubyte <- int - [000464] ---XG------ | \--* EQ int - [000305] ---XG------ | +--* IND long - [000304] ----------- | | \--* ADD byref - [000297] ----------- | | +--* LCL_VAR byref V00 arg0 - [000303] ----------- | | \--* MUL long - [000301] ----------- | | +--* SUB long - [000298] ----------- | | | +--* LCL_VAR long V04 loc1 - [000300] ----------- | | | \--* CNS_INT long 1 - [000302] ----------- | | \--* CNS_INT long 8 - [000306] ----------- | \--* LCL_VAR long V01 arg1 - [000311] ----------- \--* CNS_INT int 0 - -fgMorphTree BB31, STMT00056 (after) - [000313] ---XG+----- * JTRUE void - [000464] J--XG+-N--- \--* NE int - [000305] ---XG+----- +--* IND long - [000304] -----+----- | \--* ADD byref - [000297] -----+----- | +--* LCL_VAR byref V00 arg0 - [000303] -----+----- | \--* ADD long - [000301] -----+----- | +--* LSH long - [000298] -----+----- | | +--* LCL_VAR long V04 loc1 - [000300] -----+----- | | \--* CNS_INT long 3 - [000302] -----+----- | \--* CNS_INT long -8 - [000306] -----+----- \--* LCL_VAR long V01 arg1 - -Morphing BB33 -Using `if true` assertions from pred BB31 -Assertions in: #NA -fgMorphTree BB33, STMT00059 (before) - [000330] ---XG------ * JTRUE void - [000329] ---XG------ \--* EQ int - [000474] ---XG------ +--* CAST int <- ubyte <- int - [000471] ---XG------ | \--* EQ int - [000322] ---XG------ | +--* IND long - [000321] ----------- | | \--* ADD byref - [000314] ----------- | | +--* LCL_VAR byref V00 arg0 - [000320] ----------- | | \--* MUL long - [000318] ----------- | | +--* SUB long - [000315] ----------- | | | +--* LCL_VAR long V04 loc1 - [000317] ----------- | | | \--* CNS_INT long 2 - [000319] ----------- | | \--* CNS_INT long 8 - [000323] ----------- | \--* LCL_VAR long V01 arg1 - [000328] ----------- \--* CNS_INT int 0 - -fgMorphTree BB33, STMT00059 (after) - [000330] ---XG+----- * JTRUE void - [000471] J--XG+-N--- \--* NE int - [000322] ---XG+----- +--* IND long - [000321] -----+----- | \--* ADD byref - [000314] -----+----- | +--* LCL_VAR byref V00 arg0 - [000320] -----+----- | \--* ADD long - [000318] -----+----- | +--* LSH long - [000315] -----+----- | | +--* LCL_VAR long V04 loc1 - [000317] -----+----- | | \--* CNS_INT long 3 - [000319] -----+----- | \--* CNS_INT long -16 - [000323] -----+----- \--* LCL_VAR long V01 arg1 - -Morphing BB35 -Using `if true` assertions from pred BB33 -Assertions in: #NA -fgMorphTree BB35, STMT00062 (before) - [000347] ---XG------ * JTRUE void - [000346] ---XG------ \--* EQ int - [000481] ---XG------ +--* CAST int <- ubyte <- int - [000478] ---XG------ | \--* EQ int - [000339] ---XG------ | +--* IND long - [000338] ----------- | | \--* ADD byref - [000331] ----------- | | +--* LCL_VAR byref V00 arg0 - [000337] ----------- | | \--* MUL long - [000335] ----------- | | +--* SUB long - [000332] ----------- | | | +--* LCL_VAR long V04 loc1 - [000334] ----------- | | | \--* CNS_INT long 3 - [000336] ----------- | | \--* CNS_INT long 8 - [000340] ----------- | \--* LCL_VAR long V01 arg1 - [000345] ----------- \--* CNS_INT int 0 - -fgMorphTree BB35, STMT00062 (after) - [000347] ---XG+----- * JTRUE void - [000478] J--XG+-N--- \--* NE int - [000339] ---XG+----- +--* IND long - [000338] -----+----- | \--* ADD byref - [000331] -----+----- | +--* LCL_VAR byref V00 arg0 - [000337] -----+----- | \--* ADD long - [000335] -----+----- | +--* LSH long - [000332] -----+----- | | +--* LCL_VAR long V04 loc1 - [000334] -----+----- | | \--* CNS_INT long 3 - [000336] -----+----- | \--* CNS_INT long -24 - [000340] -----+----- \--* LCL_VAR long V01 arg1 - -Morphing BB37 -Using `if true` assertions from pred BB35 -Assertions in: #NA -fgMorphTree BB37, STMT00063 (before) - [000352] DA--------- * STORE_LCL_VAR long V04 loc1 - [000351] ----------- \--* SUB long - [000348] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000350] ----------- \--* CNS_INT long 4 - -fgMorphTree BB37, STMT00063 (after) - [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000351] -----+----- \--* ADD long - [000348] -----+----- +--* LCL_VAR long V04 loc1 (last use) - [000350] -----+----- \--* CNS_INT long -4 - -Morphing BB41 -Using `if true` assertions from pred BB28 -BB41 pred BB40 not processed; clearing assertions in -Assertions in: #NA -fgMorphTree BB41, STMT00042 (before) - [000250] ----------- * JTRUE void - [000249] ----------- \--* GT int - [000247] ----------- +--* LCL_VAR int V02 arg2 - [000248] ----------- \--* CNS_INT int 0 - -Morphing BB38 -Using `if true` assertions from pred BB41 -Assertions in: #NA -fgMorphTree BB38, STMT00043 (before) - [000254] DA--------- * STORE_LCL_VAR int V02 arg2 - [000253] ----------- \--* SUB int - [000251] ----------- +--* LCL_VAR int V02 arg2 (last use) - [000252] ----------- \--* CNS_INT int 1 - -fgMorphTree BB38, STMT00043 (after) - [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000253] -----+----- \--* ADD int - [000251] -----+----- +--* LCL_VAR int V02 arg2 (last use) - [000252] -----+----- \--* CNS_INT int -1 - -fgMorphTree BB38, STMT00046 (before) - [000268] ---XG------ * JTRUE void - [000267] ---XG------ \--* NE int - [000488] ---XG------ +--* CAST int <- ubyte <- int - [000485] ---XG------ | \--* EQ int - [000260] ---XG------ | +--* IND long - [000259] ----------- | | \--* ADD byref - [000255] ----------- | | +--* LCL_VAR byref V00 arg0 - [000258] ----------- | | \--* MUL long - [000256] ----------- | | +--* LCL_VAR long V04 loc1 - [000257] ----------- | | \--* CNS_INT long 8 - [000261] ----------- | \--* LCL_VAR long V01 arg1 - [000266] ----------- \--* CNS_INT int 0 - -fgMorphTree BB38, STMT00046 (after) - [000268] ---XG+----- * JTRUE void - [000485] J--XG+-N--- \--* EQ int - [000260] ---XG+----- +--* IND long - [000259] -----+----- | \--* ADD byref - [000255] -----+----- | +--* LCL_VAR byref V00 arg0 - [000258] -----+----- | \--* LSH long - [000256] -----+----- | +--* LCL_VAR long V04 loc1 - [000257] -----+----- | \--* CNS_INT long 3 - [000261] -----+----- \--* LCL_VAR long V01 arg1 - -Morphing BB11 -Using `if false` assertions from pred BB10 -Using `if true` assertions from pred BB29 -Using `if true` assertions from pred BB38 -Assertions in: #NA -fgMorphTree BB11, STMT00040 (before) - [000242] ----------- * RETURN int - [000241] ----------- \--* CAST int <- long - [000240] ----------- \--* LCL_VAR long V04 loc1 (last use) - -fgMorphTree BB11, STMT00040 (after) - [000242] -----+----- * RETURN int - [000240] -----+----- \--* LCL_VAR int V04 loc1 (last use) -setting likelihood of BB11 -> BB58 to 1 - -Update BB11 to jump to common return block. -BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0)-> BB58(1) (always) i - -Morphing BB40 -Using `if false` assertions from pred BB38 -Assertions in: #NA -fgMorphTree BB40, STMT00047 (before) - [000273] DA--------- * STORE_LCL_VAR long V04 loc1 - [000272] ----------- \--* SUB long - [000269] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000271] ----------- \--* CNS_INT long 1 - -fgMorphTree BB40, STMT00047 (after) - [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000272] -----+----- \--* ADD long - [000269] -----+----- +--* LCL_VAR long V04 loc1 (last use) - [000271] -----+----- \--* CNS_INT long -1 - -Morphing BB42 -Using `if false` assertions from pred BB41 -Assertions in: #NA -fgMorphTree BB42, STMT00088 (before) - [000493] ----------- * RETURN int - [000277] ----------- \--* CNS_INT int -1 - -Morphing BB36 -Using `if false` assertions from pred BB35 -Assertions in: #NA -fgMorphTree BB36, STMT00064 (before) - [000358] ----------- * RETURN int - [000357] ----------- \--* CAST int <- long - [000356] ----------- \--* SUB long - [000353] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000355] ----------- \--* CNS_INT long 3 - -Folding operator with constant nodes into a constant: - [000523] ----------- * CAST int <- long - [000355] -----+----- \--* CNS_INT long 3 -Bashed to int constant: - [000523] ----------- * CNS_INT int 3 - -fgMorphTree BB36, STMT00064 (after) - [000358] -----+----- * RETURN int - [000356] -----+----- \--* ADD int - [000353] -----+----- +--* LCL_VAR int V04 loc1 (last use) - [000523] -----+----- \--* CNS_INT int -3 -setting likelihood of BB36 -> BB58 to 1 - -Update BB36 to jump to common return block. -BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB58(1) (always) i - -Morphing BB34 -Using `if false` assertions from pred BB33 -Assertions in: #NA -fgMorphTree BB34, STMT00065 (before) - [000364] ----------- * RETURN int - [000363] ----------- \--* CAST int <- long - [000362] ----------- \--* SUB long - [000359] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000361] ----------- \--* CNS_INT long 2 - -Folding operator with constant nodes into a constant: - [000526] ----------- * CAST int <- long - [000361] -----+----- \--* CNS_INT long 2 -Bashed to int constant: - [000526] ----------- * CNS_INT int 2 - -fgMorphTree BB34, STMT00065 (after) - [000364] -----+----- * RETURN int - [000362] -----+----- \--* ADD int - [000359] -----+----- +--* LCL_VAR int V04 loc1 (last use) - [000526] -----+----- \--* CNS_INT int -2 -setting likelihood of BB34 -> BB58 to 1 - -Update BB34 to jump to common return block. -BB34 [0033] 1 BB33 1 [278..27E)-> BB58(1) (always) i - -Morphing BB32 -Using `if false` assertions from pred BB31 -Assertions in: #NA -fgMorphTree BB32, STMT00066 (before) - [000370] ----------- * RETURN int - [000369] ----------- \--* CAST int <- long - [000368] ----------- \--* SUB long - [000365] ----------- +--* LCL_VAR long V04 loc1 (last use) - [000367] ----------- \--* CNS_INT long 1 - -Folding operator with constant nodes into a constant: - [000529] ----------- * CAST int <- long - [000367] -----+----- \--* CNS_INT long 1 -Bashed to int constant: - [000529] ----------- * CNS_INT int 1 - -fgMorphTree BB32, STMT00066 (after) - [000370] -----+----- * RETURN int - [000368] -----+----- \--* ADD int - [000365] -----+----- +--* LCL_VAR int V04 loc1 (last use) - [000529] -----+----- \--* CNS_INT int -1 -setting likelihood of BB32 -> BB58 to 1 - -Update BB32 to jump to common return block. -BB32 [0031] 1 BB31 1 [24A..250)-> BB58(1) (always) i -morph assertion stats: 64 table size, 0 assertions, 0 dropped - -*************** Finishing PHASE Morph - Global -Trees after Morph - Global - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 1 [000..001)-> BB53(1) (always) i hascall gcsafe -BB53 [0052] 2 BB01,BB52 1 [000..04C)-> BB57(1) (always) i -BB56 [0056] 0 1 [04B..04C) (throw ) i -BB57 [0057] 1 BB53 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target -BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0)-> BB58(1) (always) i -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd -BB13 [0012] 1 BB12 1 [0C8..0CE)-> BB58(1) (always) i -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd -BB15 [0014] 1 BB14 1 [0F6..0FC)-> BB58(1) (always) i -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd -BB17 [0016] 1 BB16 1 [124..12A)-> BB58(1) (always) i -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250)-> BB58(1) (always) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E)-> BB58(1) (always) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB58(1) (always) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 1 [2EB..324) (return) i jmp hascall -BB58 [0085] 11 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25,BB32,BB34,BB36 1 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB53(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB53} - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000384] -----+----- * JTRUE void - [000002] J----+-N--- \--* GE int - [000000] -----+----- +--* LCL_VAR int V02 arg2 - [000001] -----+----- \--* CNS_INT int 0 - ------------- BB52 [0051] [000..001) -> BB53(1) (always), preds={BB01} succs={BB53} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000387] --CXG+----- * CALL void - [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref - [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref - ------------- BB53 [0052] [000..04C) -> BB57(1) (always), preds={BB01,BB52} succs={BB57} - ------------- BB56 [0056] [04B..04C) (throw), preds={} succs={} - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB53} succs={BB09,BB43} - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) - [000034] -----+----- * JTRUE void - [000033] J----+-N--- \--* GE int - [000031] -----+----- +--* LCL_VAR int V02 arg2 - [000032] -----+----- \--* CNS_INT int 2 vector element count - ------------- BB09 [0008] [068..073) -> BB27(1) (always), preds={BB57} succs={BB27} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) - [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000050] -----+----- \--* ADD long - [000047] -----+----- +--* CAST long <- int - [000046] -----+----- | \--* LCL_VAR int V02 arg2 - [000049] -----+----- \--* CNS_INT long -1 - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) - [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000058] -----+----- \--* ADD int - [000056] -----+----- +--* LCL_VAR int V02 arg2 (last use) - [000057] -----+----- \--* CNS_INT int -8 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) - [000073] ---XG+----- * JTRUE void - [000401] J--XG+-N--- \--* NE int - [000065] ---XG+----- +--* IND long - [000064] -----+----- | \--* ADD byref - [000060] -----+----- | +--* LCL_VAR byref V00 arg0 - [000063] -----+----- | \--* LSH long - [000061] -----+----- | +--* LCL_VAR long V04 loc1 - [000062] -----+----- | \--* CNS_INT long 3 - [000066] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB10,BB29,BB38} succs={BB58} - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) - [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000240] -----+----- \--* LCL_VAR int V04 loc1 (last use) - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] ---XG+----- * JTRUE void - [000408] J--XG+-N--- \--* NE int - [000082] ---XG+----- +--* IND long - [000081] -----+----- | \--* ADD byref - [000074] -----+----- | +--* LCL_VAR byref V00 arg0 - [000080] -----+----- | \--* ADD long - [000078] -----+----- | +--* LSH long - [000075] -----+----- | | +--* LCL_VAR long V04 loc1 - [000077] -----+----- | | \--* CNS_INT long 3 - [000079] -----+----- | \--* CNS_INT long -8 - [000083] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB12} succs={BB58} - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000237] -----+----- \--* ADD int - [000234] -----+----- +--* LCL_VAR int V04 loc1 (last use) - [000519] -----+----- \--* CNS_INT int -1 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] ---XG+----- * JTRUE void - [000415] J--XG+-N--- \--* NE int - [000099] ---XG+----- +--* IND long - [000098] -----+----- | \--* ADD byref - [000091] -----+----- | +--* LCL_VAR byref V00 arg0 - [000097] -----+----- | \--* ADD long - [000095] -----+----- | +--* LSH long - [000092] -----+----- | | +--* LCL_VAR long V04 loc1 - [000094] -----+----- | | \--* CNS_INT long 3 - [000096] -----+----- | \--* CNS_INT long -16 - [000100] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB14} succs={BB58} - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000231] -----+----- \--* ADD int - [000228] -----+----- +--* LCL_VAR int V04 loc1 (last use) - [000516] -----+----- \--* CNS_INT int -2 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] ---XG+----- * JTRUE void - [000422] J--XG+-N--- \--* NE int - [000116] ---XG+----- +--* IND long - [000115] -----+----- | \--* ADD byref - [000108] -----+----- | +--* LCL_VAR byref V00 arg0 - [000114] -----+----- | \--* ADD long - [000112] -----+----- | +--* LSH long - [000109] -----+----- | | +--* LCL_VAR long V04 loc1 - [000111] -----+----- | | \--* CNS_INT long 3 - [000113] -----+----- | \--* CNS_INT long -24 - [000117] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB16} succs={BB58} - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) - [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000225] -----+----- \--* ADD int - [000222] -----+----- +--* LCL_VAR int V04 loc1 (last use) - [000513] -----+----- \--* CNS_INT int -3 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] ---XG+----- * JTRUE void - [000429] J--XG+-N--- \--* NE int - [000133] ---XG+----- +--* IND long - [000132] -----+----- | \--* ADD byref - [000125] -----+----- | +--* LCL_VAR byref V00 arg0 - [000131] -----+----- | \--* ADD long - [000129] -----+----- | +--* LSH long - [000126] -----+----- | | +--* LCL_VAR long V04 loc1 - [000128] -----+----- | | \--* CNS_INT long 3 - [000130] -----+----- | \--* CNS_INT long -32 - [000134] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) - [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000219] -----+----- \--* ADD int - [000216] -----+----- +--* LCL_VAR int V04 loc1 (last use) - [000510] -----+----- \--* CNS_INT int -4 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) - [000158] ---XG+----- * JTRUE void - [000436] J--XG+-N--- \--* NE int - [000150] ---XG+----- +--* IND long - [000149] -----+----- | \--* ADD byref - [000142] -----+----- | +--* LCL_VAR byref V00 arg0 - [000148] -----+----- | \--* ADD long - [000146] -----+----- | +--* LSH long - [000143] -----+----- | | +--* LCL_VAR long V04 loc1 - [000145] -----+----- | | \--* CNS_INT long 3 - [000147] -----+----- | \--* CNS_INT long -40 - [000151] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) - [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000213] -----+----- \--* ADD int - [000210] -----+----- +--* LCL_VAR int V04 loc1 (last use) - [000507] -----+----- \--* CNS_INT int -5 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) - [000175] ---XG+----- * JTRUE void - [000443] J--XG+-N--- \--* NE int - [000167] ---XG+----- +--* IND long - [000166] -----+----- | \--* ADD byref - [000159] -----+----- | +--* LCL_VAR byref V00 arg0 - [000165] -----+----- | \--* ADD long - [000163] -----+----- | +--* LSH long - [000160] -----+----- | | +--* LCL_VAR long V04 loc1 - [000162] -----+----- | | \--* CNS_INT long 3 - [000164] -----+----- | \--* CNS_INT long -48 - [000168] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) - [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000207] -----+----- \--* ADD int - [000204] -----+----- +--* LCL_VAR int V04 loc1 (last use) - [000504] -----+----- \--* CNS_INT int -6 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] ---XG+----- * JTRUE void - [000450] J--XG+-N--- \--* NE int - [000184] ---XG+----- +--* IND long - [000183] -----+----- | \--* ADD byref - [000176] -----+----- | +--* LCL_VAR byref V00 arg0 - [000182] -----+----- | \--* ADD long - [000180] -----+----- | +--* LSH long - [000177] -----+----- | | +--* LCL_VAR long V04 loc1 - [000179] -----+----- | | \--* CNS_INT long 3 - [000181] -----+----- | \--* CNS_INT long -56 - [000185] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) - [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000201] -----+----- \--* ADD int - [000198] -----+----- +--* LCL_VAR int V04 loc1 (last use) - [000501] -----+----- \--* CNS_INT int -7 - ------------- BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000196] -----+----- \--* ADD long - [000193] -----+----- +--* LCL_VAR long V04 loc1 (last use) - [000195] -----+----- \--* CNS_INT long -8 - ------------- BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} - -***** BB27 [0026] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - [000055] -----+----- * JTRUE void - [000054] J----+-N--- \--* GE int - [000052] -----+----- +--* LCL_VAR int V02 arg2 - [000053] -----+----- \--* CNS_INT int 8 - ------------- BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} - -***** BB28 [0027] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) - [000246] -----+----- * JTRUE void - [000245] J----+-N--- \--* LT int - [000243] -----+----- +--* LCL_VAR int V02 arg2 - [000244] -----+----- \--* CNS_INT int 4 - ------------- BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB28} succs={BB31,BB11} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) - [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000281] -----+----- \--* ADD int - [000279] -----+----- +--* LCL_VAR int V02 arg2 (last use) - [000280] -----+----- \--* CNS_INT int -4 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] ---XG+----- * JTRUE void - [000457] J--XG+-N--- \--* EQ int - [000288] ---XG+----- +--* IND long - [000287] -----+----- | \--* ADD byref - [000283] -----+----- | +--* LCL_VAR byref V00 arg0 - [000286] -----+----- | \--* LSH long - [000284] -----+----- | +--* LCL_VAR long V04 loc1 - [000285] -----+----- | \--* CNS_INT long 3 - [000289] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) - [000313] ---XG+----- * JTRUE void - [000464] J--XG+-N--- \--* NE int - [000305] ---XG+----- +--* IND long - [000304] -----+----- | \--* ADD byref - [000297] -----+----- | +--* LCL_VAR byref V00 arg0 - [000303] -----+----- | \--* ADD long - [000301] -----+----- | +--* LSH long - [000298] -----+----- | | +--* LCL_VAR long V04 loc1 - [000300] -----+----- | | \--* CNS_INT long 3 - [000302] -----+----- | \--* CNS_INT long -8 - [000306] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB32 [0031] [24A..250) -> BB58(1) (always), preds={BB31} succs={BB58} - -***** BB32 [0031] -STMT00066 ( 0x24A[E--] ... 0x24F ) - [000530] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000368] -----+----- \--* ADD int - [000365] -----+----- +--* LCL_VAR int V04 loc1 (last use) - [000529] -----+----- \--* CNS_INT int -1 - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) - [000330] ---XG+----- * JTRUE void - [000471] J--XG+-N--- \--* NE int - [000322] ---XG+----- +--* IND long - [000321] -----+----- | \--* ADD byref - [000314] -----+----- | +--* LCL_VAR byref V00 arg0 - [000320] -----+----- | \--* ADD long - [000318] -----+----- | +--* LSH long - [000315] -----+----- | | +--* LCL_VAR long V04 loc1 - [000317] -----+----- | | \--* CNS_INT long 3 - [000319] -----+----- | \--* CNS_INT long -16 - [000323] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB34 [0033] [278..27E) -> BB58(1) (always), preds={BB33} succs={BB58} - -***** BB34 [0033] -STMT00065 ( 0x278[E--] ... 0x27D ) - [000527] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000362] -----+----- \--* ADD int - [000359] -----+----- +--* LCL_VAR int V04 loc1 (last use) - [000526] -----+----- \--* CNS_INT int -2 - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] ---XG+----- * JTRUE void - [000478] J--XG+-N--- \--* NE int - [000339] ---XG+----- +--* IND long - [000338] -----+----- | \--* ADD byref - [000331] -----+----- | +--* LCL_VAR byref V00 arg0 - [000337] -----+----- | \--* ADD long - [000335] -----+----- | +--* LSH long - [000332] -----+----- | | +--* LCL_VAR long V04 loc1 - [000334] -----+----- | | \--* CNS_INT long 3 - [000336] -----+----- | \--* CNS_INT long -24 - [000340] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB36 [0035] [2A6..2AC) -> BB58(1) (always), preds={BB35} succs={BB58} - -***** BB36 [0035] -STMT00064 ( 0x2A6[E--] ... 0x2AB ) - [000524] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000356] -----+----- \--* ADD int - [000353] -----+----- +--* LCL_VAR int V04 loc1 (last use) - [000523] -----+----- \--* CNS_INT int -3 - ------------- BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) - [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000351] -----+----- \--* ADD long - [000348] -----+----- +--* LCL_VAR long V04 loc1 (last use) - [000350] -----+----- \--* CNS_INT long -4 - ------------- BB38 [0037] [2B3..2DD) -> BB11(0.5),BB40(0.5) (cond), preds={BB41} succs={BB40,BB11} - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) - [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000253] -----+----- \--* ADD int - [000251] -----+----- +--* LCL_VAR int V02 arg2 (last use) - [000252] -----+----- \--* CNS_INT int -1 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] ---XG+----- * JTRUE void - [000485] J--XG+-N--- \--* EQ int - [000260] ---XG+----- +--* IND long - [000259] -----+----- | \--* ADD byref - [000255] -----+----- | +--* LCL_VAR byref V00 arg0 - [000258] -----+----- | \--* LSH long - [000256] -----+----- | +--* LCL_VAR long V04 loc1 - [000257] -----+----- | \--* CNS_INT long 3 - [000261] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000272] -----+----- \--* ADD long - [000269] -----+----- +--* LCL_VAR long V04 loc1 (last use) - [000271] -----+----- \--* CNS_INT long -1 - ------------- BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} - -***** BB41 [0040] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - [000250] -----+----- * JTRUE void - [000249] J----+-N--- \--* GT int - [000247] -----+----- +--* LCL_VAR int V02 arg2 - [000248] -----+----- \--* CNS_INT int 0 - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} - -***** BB42 [0041] -STMT00088 ( ??? ... ??? ) - [000493] -----+----- * RETURN int - [000277] -----+----- \--* CNS_INT int -1 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) - [000044] --CXG+----- * CALL void - [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 (last use) - [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 (last use) - [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 (last use) - ------------- BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25,BB32,BB34,BB36} succs={} - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) - [000492] -----+----- * RETURN int - [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 (last use) - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Post-Morph - -*************** In fgMarkDemotedImplicitByRefArgs() - -*************** Finishing PHASE Post-Morph -Trees after Post-Morph - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 1 [000..001)-> BB53(1) (always) i hascall gcsafe -BB53 [0052] 2 BB01,BB52 1 [000..04C)-> BB57(1) (always) i -BB56 [0056] 0 1 [04B..04C) (throw ) i -BB57 [0057] 1 BB53 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target -BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0)-> BB58(1) (always) i -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd -BB13 [0012] 1 BB12 1 [0C8..0CE)-> BB58(1) (always) i -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd -BB15 [0014] 1 BB14 1 [0F6..0FC)-> BB58(1) (always) i -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd -BB17 [0016] 1 BB16 1 [124..12A)-> BB58(1) (always) i -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250)-> BB58(1) (always) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E)-> BB58(1) (always) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB58(1) (always) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 1 [2EB..324) (return) i jmp hascall -BB58 [0085] 11 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25,BB32,BB34,BB36 1 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB53(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB53} - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000384] -----+----- * JTRUE void - [000002] J----+-N--- \--* GE int - [000000] -----+----- +--* LCL_VAR int V02 arg2 - [000001] -----+----- \--* CNS_INT int 0 - ------------- BB52 [0051] [000..001) -> BB53(1) (always), preds={BB01} succs={BB53} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000387] --CXG+----- * CALL void - [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref - [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref - ------------- BB53 [0052] [000..04C) -> BB57(1) (always), preds={BB01,BB52} succs={BB57} - ------------- BB56 [0056] [04B..04C) (throw), preds={} succs={} - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB53} succs={BB09,BB43} - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) - [000034] -----+----- * JTRUE void - [000033] J----+-N--- \--* GE int - [000031] -----+----- +--* LCL_VAR int V02 arg2 - [000032] -----+----- \--* CNS_INT int 2 vector element count - ------------- BB09 [0008] [068..073) -> BB27(1) (always), preds={BB57} succs={BB27} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) - [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000050] -----+----- \--* ADD long - [000047] -----+----- +--* CAST long <- int - [000046] -----+----- | \--* LCL_VAR int V02 arg2 - [000049] -----+----- \--* CNS_INT long -1 - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) - [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000058] -----+----- \--* ADD int - [000056] -----+----- +--* LCL_VAR int V02 arg2 - [000057] -----+----- \--* CNS_INT int -8 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) - [000073] ---XG+----- * JTRUE void - [000401] J--XG+-N--- \--* NE int - [000065] ---XG+----- +--* IND long - [000064] -----+----- | \--* ADD byref - [000060] -----+----- | +--* LCL_VAR byref V00 arg0 - [000063] -----+----- | \--* LSH long - [000061] -----+----- | +--* LCL_VAR long V04 loc1 - [000062] -----+----- | \--* CNS_INT long 3 - [000066] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB10,BB29,BB38} succs={BB58} - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) - [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000240] -----+----- \--* LCL_VAR int V04 loc1 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] ---XG+----- * JTRUE void - [000408] J--XG+-N--- \--* NE int - [000082] ---XG+----- +--* IND long - [000081] -----+----- | \--* ADD byref - [000074] -----+----- | +--* LCL_VAR byref V00 arg0 - [000080] -----+----- | \--* ADD long - [000078] -----+----- | +--* LSH long - [000075] -----+----- | | +--* LCL_VAR long V04 loc1 - [000077] -----+----- | | \--* CNS_INT long 3 - [000079] -----+----- | \--* CNS_INT long -8 - [000083] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB12} succs={BB58} - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000237] -----+----- \--* ADD int - [000234] -----+----- +--* LCL_VAR int V04 loc1 - [000519] -----+----- \--* CNS_INT int -1 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] ---XG+----- * JTRUE void - [000415] J--XG+-N--- \--* NE int - [000099] ---XG+----- +--* IND long - [000098] -----+----- | \--* ADD byref - [000091] -----+----- | +--* LCL_VAR byref V00 arg0 - [000097] -----+----- | \--* ADD long - [000095] -----+----- | +--* LSH long - [000092] -----+----- | | +--* LCL_VAR long V04 loc1 - [000094] -----+----- | | \--* CNS_INT long 3 - [000096] -----+----- | \--* CNS_INT long -16 - [000100] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB14} succs={BB58} - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000231] -----+----- \--* ADD int - [000228] -----+----- +--* LCL_VAR int V04 loc1 - [000516] -----+----- \--* CNS_INT int -2 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] ---XG+----- * JTRUE void - [000422] J--XG+-N--- \--* NE int - [000116] ---XG+----- +--* IND long - [000115] -----+----- | \--* ADD byref - [000108] -----+----- | +--* LCL_VAR byref V00 arg0 - [000114] -----+----- | \--* ADD long - [000112] -----+----- | +--* LSH long - [000109] -----+----- | | +--* LCL_VAR long V04 loc1 - [000111] -----+----- | | \--* CNS_INT long 3 - [000113] -----+----- | \--* CNS_INT long -24 - [000117] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB16} succs={BB58} - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) - [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000225] -----+----- \--* ADD int - [000222] -----+----- +--* LCL_VAR int V04 loc1 - [000513] -----+----- \--* CNS_INT int -3 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] ---XG+----- * JTRUE void - [000429] J--XG+-N--- \--* NE int - [000133] ---XG+----- +--* IND long - [000132] -----+----- | \--* ADD byref - [000125] -----+----- | +--* LCL_VAR byref V00 arg0 - [000131] -----+----- | \--* ADD long - [000129] -----+----- | +--* LSH long - [000126] -----+----- | | +--* LCL_VAR long V04 loc1 - [000128] -----+----- | | \--* CNS_INT long 3 - [000130] -----+----- | \--* CNS_INT long -32 - [000134] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) - [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000219] -----+----- \--* ADD int - [000216] -----+----- +--* LCL_VAR int V04 loc1 - [000510] -----+----- \--* CNS_INT int -4 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) - [000158] ---XG+----- * JTRUE void - [000436] J--XG+-N--- \--* NE int - [000150] ---XG+----- +--* IND long - [000149] -----+----- | \--* ADD byref - [000142] -----+----- | +--* LCL_VAR byref V00 arg0 - [000148] -----+----- | \--* ADD long - [000146] -----+----- | +--* LSH long - [000143] -----+----- | | +--* LCL_VAR long V04 loc1 - [000145] -----+----- | | \--* CNS_INT long 3 - [000147] -----+----- | \--* CNS_INT long -40 - [000151] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) - [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000213] -----+----- \--* ADD int - [000210] -----+----- +--* LCL_VAR int V04 loc1 - [000507] -----+----- \--* CNS_INT int -5 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) - [000175] ---XG+----- * JTRUE void - [000443] J--XG+-N--- \--* NE int - [000167] ---XG+----- +--* IND long - [000166] -----+----- | \--* ADD byref - [000159] -----+----- | +--* LCL_VAR byref V00 arg0 - [000165] -----+----- | \--* ADD long - [000163] -----+----- | +--* LSH long - [000160] -----+----- | | +--* LCL_VAR long V04 loc1 - [000162] -----+----- | | \--* CNS_INT long 3 - [000164] -----+----- | \--* CNS_INT long -48 - [000168] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) - [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000207] -----+----- \--* ADD int - [000204] -----+----- +--* LCL_VAR int V04 loc1 - [000504] -----+----- \--* CNS_INT int -6 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] ---XG+----- * JTRUE void - [000450] J--XG+-N--- \--* NE int - [000184] ---XG+----- +--* IND long - [000183] -----+----- | \--* ADD byref - [000176] -----+----- | +--* LCL_VAR byref V00 arg0 - [000182] -----+----- | \--* ADD long - [000180] -----+----- | +--* LSH long - [000177] -----+----- | | +--* LCL_VAR long V04 loc1 - [000179] -----+----- | | \--* CNS_INT long 3 - [000181] -----+----- | \--* CNS_INT long -56 - [000185] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) - [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000201] -----+----- \--* ADD int - [000198] -----+----- +--* LCL_VAR int V04 loc1 - [000501] -----+----- \--* CNS_INT int -7 - ------------- BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000196] -----+----- \--* ADD long - [000193] -----+----- +--* LCL_VAR long V04 loc1 - [000195] -----+----- \--* CNS_INT long -8 - ------------- BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} - -***** BB27 [0026] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - [000055] -----+----- * JTRUE void - [000054] J----+-N--- \--* GE int - [000052] -----+----- +--* LCL_VAR int V02 arg2 - [000053] -----+----- \--* CNS_INT int 8 - ------------- BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} - -***** BB28 [0027] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) - [000246] -----+----- * JTRUE void - [000245] J----+-N--- \--* LT int - [000243] -----+----- +--* LCL_VAR int V02 arg2 - [000244] -----+----- \--* CNS_INT int 4 - ------------- BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB28} succs={BB31,BB11} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) - [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000281] -----+----- \--* ADD int - [000279] -----+----- +--* LCL_VAR int V02 arg2 - [000280] -----+----- \--* CNS_INT int -4 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] ---XG+----- * JTRUE void - [000457] J--XG+-N--- \--* EQ int - [000288] ---XG+----- +--* IND long - [000287] -----+----- | \--* ADD byref - [000283] -----+----- | +--* LCL_VAR byref V00 arg0 - [000286] -----+----- | \--* LSH long - [000284] -----+----- | +--* LCL_VAR long V04 loc1 - [000285] -----+----- | \--* CNS_INT long 3 - [000289] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) - [000313] ---XG+----- * JTRUE void - [000464] J--XG+-N--- \--* NE int - [000305] ---XG+----- +--* IND long - [000304] -----+----- | \--* ADD byref - [000297] -----+----- | +--* LCL_VAR byref V00 arg0 - [000303] -----+----- | \--* ADD long - [000301] -----+----- | +--* LSH long - [000298] -----+----- | | +--* LCL_VAR long V04 loc1 - [000300] -----+----- | | \--* CNS_INT long 3 - [000302] -----+----- | \--* CNS_INT long -8 - [000306] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB32 [0031] [24A..250) -> BB58(1) (always), preds={BB31} succs={BB58} - -***** BB32 [0031] -STMT00066 ( 0x24A[E--] ... 0x24F ) - [000530] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000368] -----+----- \--* ADD int - [000365] -----+----- +--* LCL_VAR int V04 loc1 - [000529] -----+----- \--* CNS_INT int -1 - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) - [000330] ---XG+----- * JTRUE void - [000471] J--XG+-N--- \--* NE int - [000322] ---XG+----- +--* IND long - [000321] -----+----- | \--* ADD byref - [000314] -----+----- | +--* LCL_VAR byref V00 arg0 - [000320] -----+----- | \--* ADD long - [000318] -----+----- | +--* LSH long - [000315] -----+----- | | +--* LCL_VAR long V04 loc1 - [000317] -----+----- | | \--* CNS_INT long 3 - [000319] -----+----- | \--* CNS_INT long -16 - [000323] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB34 [0033] [278..27E) -> BB58(1) (always), preds={BB33} succs={BB58} - -***** BB34 [0033] -STMT00065 ( 0x278[E--] ... 0x27D ) - [000527] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000362] -----+----- \--* ADD int - [000359] -----+----- +--* LCL_VAR int V04 loc1 - [000526] -----+----- \--* CNS_INT int -2 - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] ---XG+----- * JTRUE void - [000478] J--XG+-N--- \--* NE int - [000339] ---XG+----- +--* IND long - [000338] -----+----- | \--* ADD byref - [000331] -----+----- | +--* LCL_VAR byref V00 arg0 - [000337] -----+----- | \--* ADD long - [000335] -----+----- | +--* LSH long - [000332] -----+----- | | +--* LCL_VAR long V04 loc1 - [000334] -----+----- | | \--* CNS_INT long 3 - [000336] -----+----- | \--* CNS_INT long -24 - [000340] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB36 [0035] [2A6..2AC) -> BB58(1) (always), preds={BB35} succs={BB58} - -***** BB36 [0035] -STMT00064 ( 0x2A6[E--] ... 0x2AB ) - [000524] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000356] -----+----- \--* ADD int - [000353] -----+----- +--* LCL_VAR int V04 loc1 - [000523] -----+----- \--* CNS_INT int -3 - ------------- BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) - [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000351] -----+----- \--* ADD long - [000348] -----+----- +--* LCL_VAR long V04 loc1 - [000350] -----+----- \--* CNS_INT long -4 - ------------- BB38 [0037] [2B3..2DD) -> BB11(0.5),BB40(0.5) (cond), preds={BB41} succs={BB40,BB11} - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) - [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000253] -----+----- \--* ADD int - [000251] -----+----- +--* LCL_VAR int V02 arg2 - [000252] -----+----- \--* CNS_INT int -1 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] ---XG+----- * JTRUE void - [000485] J--XG+-N--- \--* EQ int - [000260] ---XG+----- +--* IND long - [000259] -----+----- | \--* ADD byref - [000255] -----+----- | +--* LCL_VAR byref V00 arg0 - [000258] -----+----- | \--* LSH long - [000256] -----+----- | +--* LCL_VAR long V04 loc1 - [000257] -----+----- | \--* CNS_INT long 3 - [000261] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000272] -----+----- \--* ADD long - [000269] -----+----- +--* LCL_VAR long V04 loc1 - [000271] -----+----- \--* CNS_INT long -1 - ------------- BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} - -***** BB41 [0040] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - [000250] -----+----- * JTRUE void - [000249] J----+-N--- \--* GT int - [000247] -----+----- +--* LCL_VAR int V02 arg2 - [000248] -----+----- \--* CNS_INT int 0 - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} - -***** BB42 [0041] -STMT00088 ( ??? ... ??? ) - [000493] -----+----- * RETURN int - [000277] -----+----- \--* CNS_INT int -1 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) - [000044] --CXG+----- * CALL void - [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 - [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 - [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 - ------------- BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25,BB32,BB34,BB36} succs={} - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) - [000492] -----+----- * RETURN int - [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Compute block weights - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 1 [000..001)-> BB53(1) (always) i hascall gcsafe -BB53 [0052] 2 BB01,BB52 1 [000..04C)-> BB57(1) (always) i -BB56 [0056] 0 1 [04B..04C) (throw ) i -BB57 [0057] 1 BB53 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target -BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0)-> BB58(1) (always) i -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd -BB13 [0012] 1 BB12 1 [0C8..0CE)-> BB58(1) (always) i -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd -BB15 [0014] 1 BB14 1 [0F6..0FC)-> BB58(1) (always) i -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd -BB17 [0016] 1 BB16 1 [124..12A)-> BB58(1) (always) i -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250)-> BB58(1) (always) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E)-> BB58(1) (always) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB58(1) (always) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 1 [2EB..324) (return) i jmp hascall -BB58 [0085] 11 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25,BB32,BB34,BB36 1 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - - -*************** Finishing PHASE Compute block weights [no changes] - -*************** Starting PHASE Remove empty finally 2 -No EH in this method, nothing to remove. - -*************** Finishing PHASE Remove empty finally 2 [no changes] - -*************** Starting PHASE Remove empty try 2 - -*************** In fgRemoveEmptyTry() -No EH in this method, nothing to remove. - -*************** Finishing PHASE Remove empty try 2 [no changes] - -*************** Starting PHASE Remove empty try-catch-fault 2 - -*************** In fgRemoveEmptyTryCatchOrTryFault() -No EH in this method, nothing to remove. - -*************** Finishing PHASE Remove empty try-catch-fault 2 [no changes] - -*************** Starting PHASE Optimize control flow - -*************** In fgUpdateFlowGraph() -Before updating the flow graph: - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB53(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 1 [000..001)-> BB53(1) (always) i hascall gcsafe -BB53 [0052] 2 BB01,BB52 1 [000..04C)-> BB57(1) (always) i -BB56 [0056] 0 1 [04B..04C) (throw ) i -BB57 [0057] 1 BB53 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target -BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0)-> BB58(1) (always) i -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd -BB13 [0012] 1 BB12 1 [0C8..0CE)-> BB58(1) (always) i -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd -BB15 [0014] 1 BB14 1 [0F6..0FC)-> BB58(1) (always) i -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd -BB17 [0016] 1 BB16 1 [124..12A)-> BB58(1) (always) i -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250)-> BB58(1) (always) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E)-> BB58(1) (always) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB58(1) (always) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 1 [2EB..324) (return) i jmp hascall -BB58 [0085] 11 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25,BB32,BB34,BB36 1 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - - -Optimizing a jump to an unconditional jump (BB01 -> BB53 -> BB57) -Considering uncond to cond BB52 -> BB53 - -Compacting BB53 into BB52: -setting likelihood of BB52 -> BB57 from 1 to 1 -*************** In fgDebugCheckBBlist -Considering uncond to cond BB52 -> BB57 -fgRemoveBlock BB56, unreachable=true - -Removing unreachable BB56 -Considering uncond to cond BB09 -> BB27 -Considering uncond to cond BB11 -> BB58 -Considering uncond to cond BB13 -> BB58 -Considering uncond to cond BB15 -> BB58 -Considering uncond to cond BB17 -> BB58 -Considering uncond to cond BB19 -> BB58 -Considering uncond to cond BB21 -> BB58 -Considering uncond to cond BB23 -> BB58 -Considering uncond to cond BB25 -> BB58 -Considering uncond to cond BB26 -> BB27 -Considering uncond to cond BB32 -> BB58 -Considering uncond to cond BB34 -> BB58 -Considering uncond to cond BB36 -> BB58 -Considering uncond to cond BB37 -> BB41 -Considering uncond to cond BB40 -> BB41 -Considering uncond to cond BB52 -> BB57 -Considering uncond to cond BB09 -> BB27 -Considering uncond to cond BB11 -> BB58 -Considering uncond to cond BB13 -> BB58 -Considering uncond to cond BB15 -> BB58 -Considering uncond to cond BB17 -> BB58 -Considering uncond to cond BB19 -> BB58 -Considering uncond to cond BB21 -> BB58 -Considering uncond to cond BB23 -> BB58 -Considering uncond to cond BB25 -> BB58 -Considering uncond to cond BB26 -> BB27 -Considering uncond to cond BB32 -> BB58 -Considering uncond to cond BB34 -> BB58 -Considering uncond to cond BB36 -> BB58 -Considering uncond to cond BB37 -> BB41 -Considering uncond to cond BB40 -> BB41 - -After updating the flow graph: - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 1 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target -BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0)-> BB58(1) (always) i -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd -BB13 [0012] 1 BB12 1 [0C8..0CE)-> BB58(1) (always) i -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd -BB15 [0014] 1 BB14 1 [0F6..0FC)-> BB58(1) (always) i -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd -BB17 [0016] 1 BB16 1 [124..12A)-> BB58(1) (always) i -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250)-> BB58(1) (always) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E)-> BB58(1) (always) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB58(1) (always) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 1 [2EB..324) (return) i jmp hascall -BB58 [0085] 11 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25,BB32,BB34,BB36 1 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Exception Handling table is empty -*************** In fgDebugCheckBBlist - -*************** In fgExpandRarelyRunBlocks() - -*************** Finishing PHASE Optimize control flow -Trees after Optimize control flow - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 1 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target -BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0)-> BB58(1) (always) i -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd -BB13 [0012] 1 BB12 1 [0C8..0CE)-> BB58(1) (always) i -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd -BB15 [0014] 1 BB14 1 [0F6..0FC)-> BB58(1) (always) i -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd -BB17 [0016] 1 BB16 1 [124..12A)-> BB58(1) (always) i -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250)-> BB58(1) (always) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E)-> BB58(1) (always) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB58(1) (always) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 1 [2EB..324) (return) i jmp hascall -BB58 [0085] 11 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25,BB32,BB34,BB36 1 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000384] -----+----- * JTRUE void - [000002] J----+-N--- \--* GE int - [000000] -----+----- +--* LCL_VAR int V02 arg2 - [000001] -----+----- \--* CNS_INT int 0 - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000387] --CXG+----- * CALL void - [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref - [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) - [000034] -----+----- * JTRUE void - [000033] J----+-N--- \--* GE int - [000031] -----+----- +--* LCL_VAR int V02 arg2 - [000032] -----+----- \--* CNS_INT int 2 vector element count - ------------- BB09 [0008] [068..073) -> BB27(1) (always), preds={BB57} succs={BB27} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) - [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000050] -----+----- \--* ADD long - [000047] -----+----- +--* CAST long <- int - [000046] -----+----- | \--* LCL_VAR int V02 arg2 - [000049] -----+----- \--* CNS_INT long -1 - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) - [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000058] -----+----- \--* ADD int - [000056] -----+----- +--* LCL_VAR int V02 arg2 - [000057] -----+----- \--* CNS_INT int -8 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) - [000073] ---XG+----- * JTRUE void - [000401] J--XG+-N--- \--* NE int - [000065] ---XG+----- +--* IND long - [000064] -----+----- | \--* ADD byref - [000060] -----+----- | +--* LCL_VAR byref V00 arg0 - [000063] -----+----- | \--* LSH long - [000061] -----+----- | +--* LCL_VAR long V04 loc1 - [000062] -----+----- | \--* CNS_INT long 3 - [000066] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB10,BB29,BB38} succs={BB58} - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) - [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000240] -----+----- \--* LCL_VAR int V04 loc1 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] ---XG+----- * JTRUE void - [000408] J--XG+-N--- \--* NE int - [000082] ---XG+----- +--* IND long - [000081] -----+----- | \--* ADD byref - [000074] -----+----- | +--* LCL_VAR byref V00 arg0 - [000080] -----+----- | \--* ADD long - [000078] -----+----- | +--* LSH long - [000075] -----+----- | | +--* LCL_VAR long V04 loc1 - [000077] -----+----- | | \--* CNS_INT long 3 - [000079] -----+----- | \--* CNS_INT long -8 - [000083] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB12} succs={BB58} - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000237] -----+----- \--* ADD int - [000234] -----+----- +--* LCL_VAR int V04 loc1 - [000519] -----+----- \--* CNS_INT int -1 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] ---XG+----- * JTRUE void - [000415] J--XG+-N--- \--* NE int - [000099] ---XG+----- +--* IND long - [000098] -----+----- | \--* ADD byref - [000091] -----+----- | +--* LCL_VAR byref V00 arg0 - [000097] -----+----- | \--* ADD long - [000095] -----+----- | +--* LSH long - [000092] -----+----- | | +--* LCL_VAR long V04 loc1 - [000094] -----+----- | | \--* CNS_INT long 3 - [000096] -----+----- | \--* CNS_INT long -16 - [000100] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB14} succs={BB58} - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000231] -----+----- \--* ADD int - [000228] -----+----- +--* LCL_VAR int V04 loc1 - [000516] -----+----- \--* CNS_INT int -2 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] ---XG+----- * JTRUE void - [000422] J--XG+-N--- \--* NE int - [000116] ---XG+----- +--* IND long - [000115] -----+----- | \--* ADD byref - [000108] -----+----- | +--* LCL_VAR byref V00 arg0 - [000114] -----+----- | \--* ADD long - [000112] -----+----- | +--* LSH long - [000109] -----+----- | | +--* LCL_VAR long V04 loc1 - [000111] -----+----- | | \--* CNS_INT long 3 - [000113] -----+----- | \--* CNS_INT long -24 - [000117] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB16} succs={BB58} - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) - [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000225] -----+----- \--* ADD int - [000222] -----+----- +--* LCL_VAR int V04 loc1 - [000513] -----+----- \--* CNS_INT int -3 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] ---XG+----- * JTRUE void - [000429] J--XG+-N--- \--* NE int - [000133] ---XG+----- +--* IND long - [000132] -----+----- | \--* ADD byref - [000125] -----+----- | +--* LCL_VAR byref V00 arg0 - [000131] -----+----- | \--* ADD long - [000129] -----+----- | +--* LSH long - [000126] -----+----- | | +--* LCL_VAR long V04 loc1 - [000128] -----+----- | | \--* CNS_INT long 3 - [000130] -----+----- | \--* CNS_INT long -32 - [000134] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) - [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000219] -----+----- \--* ADD int - [000216] -----+----- +--* LCL_VAR int V04 loc1 - [000510] -----+----- \--* CNS_INT int -4 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) - [000158] ---XG+----- * JTRUE void - [000436] J--XG+-N--- \--* NE int - [000150] ---XG+----- +--* IND long - [000149] -----+----- | \--* ADD byref - [000142] -----+----- | +--* LCL_VAR byref V00 arg0 - [000148] -----+----- | \--* ADD long - [000146] -----+----- | +--* LSH long - [000143] -----+----- | | +--* LCL_VAR long V04 loc1 - [000145] -----+----- | | \--* CNS_INT long 3 - [000147] -----+----- | \--* CNS_INT long -40 - [000151] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) - [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000213] -----+----- \--* ADD int - [000210] -----+----- +--* LCL_VAR int V04 loc1 - [000507] -----+----- \--* CNS_INT int -5 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) - [000175] ---XG+----- * JTRUE void - [000443] J--XG+-N--- \--* NE int - [000167] ---XG+----- +--* IND long - [000166] -----+----- | \--* ADD byref - [000159] -----+----- | +--* LCL_VAR byref V00 arg0 - [000165] -----+----- | \--* ADD long - [000163] -----+----- | +--* LSH long - [000160] -----+----- | | +--* LCL_VAR long V04 loc1 - [000162] -----+----- | | \--* CNS_INT long 3 - [000164] -----+----- | \--* CNS_INT long -48 - [000168] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) - [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000207] -----+----- \--* ADD int - [000204] -----+----- +--* LCL_VAR int V04 loc1 - [000504] -----+----- \--* CNS_INT int -6 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] ---XG+----- * JTRUE void - [000450] J--XG+-N--- \--* NE int - [000184] ---XG+----- +--* IND long - [000183] -----+----- | \--* ADD byref - [000176] -----+----- | +--* LCL_VAR byref V00 arg0 - [000182] -----+----- | \--* ADD long - [000180] -----+----- | +--* LSH long - [000177] -----+----- | | +--* LCL_VAR long V04 loc1 - [000179] -----+----- | | \--* CNS_INT long 3 - [000181] -----+----- | \--* CNS_INT long -56 - [000185] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) - [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000201] -----+----- \--* ADD int - [000198] -----+----- +--* LCL_VAR int V04 loc1 - [000501] -----+----- \--* CNS_INT int -7 - ------------- BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000196] -----+----- \--* ADD long - [000193] -----+----- +--* LCL_VAR long V04 loc1 - [000195] -----+----- \--* CNS_INT long -8 - ------------- BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} - -***** BB27 [0026] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - [000055] -----+----- * JTRUE void - [000054] J----+-N--- \--* GE int - [000052] -----+----- +--* LCL_VAR int V02 arg2 - [000053] -----+----- \--* CNS_INT int 8 - ------------- BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} - -***** BB28 [0027] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) - [000246] -----+----- * JTRUE void - [000245] J----+-N--- \--* LT int - [000243] -----+----- +--* LCL_VAR int V02 arg2 - [000244] -----+----- \--* CNS_INT int 4 - ------------- BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB28} succs={BB31,BB11} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) - [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000281] -----+----- \--* ADD int - [000279] -----+----- +--* LCL_VAR int V02 arg2 - [000280] -----+----- \--* CNS_INT int -4 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] ---XG+----- * JTRUE void - [000457] J--XG+-N--- \--* EQ int - [000288] ---XG+----- +--* IND long - [000287] -----+----- | \--* ADD byref - [000283] -----+----- | +--* LCL_VAR byref V00 arg0 - [000286] -----+----- | \--* LSH long - [000284] -----+----- | +--* LCL_VAR long V04 loc1 - [000285] -----+----- | \--* CNS_INT long 3 - [000289] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) - [000313] ---XG+----- * JTRUE void - [000464] J--XG+-N--- \--* NE int - [000305] ---XG+----- +--* IND long - [000304] -----+----- | \--* ADD byref - [000297] -----+----- | +--* LCL_VAR byref V00 arg0 - [000303] -----+----- | \--* ADD long - [000301] -----+----- | +--* LSH long - [000298] -----+----- | | +--* LCL_VAR long V04 loc1 - [000300] -----+----- | | \--* CNS_INT long 3 - [000302] -----+----- | \--* CNS_INT long -8 - [000306] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB32 [0031] [24A..250) -> BB58(1) (always), preds={BB31} succs={BB58} - -***** BB32 [0031] -STMT00066 ( 0x24A[E--] ... 0x24F ) - [000530] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000368] -----+----- \--* ADD int - [000365] -----+----- +--* LCL_VAR int V04 loc1 - [000529] -----+----- \--* CNS_INT int -1 - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) - [000330] ---XG+----- * JTRUE void - [000471] J--XG+-N--- \--* NE int - [000322] ---XG+----- +--* IND long - [000321] -----+----- | \--* ADD byref - [000314] -----+----- | +--* LCL_VAR byref V00 arg0 - [000320] -----+----- | \--* ADD long - [000318] -----+----- | +--* LSH long - [000315] -----+----- | | +--* LCL_VAR long V04 loc1 - [000317] -----+----- | | \--* CNS_INT long 3 - [000319] -----+----- | \--* CNS_INT long -16 - [000323] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB34 [0033] [278..27E) -> BB58(1) (always), preds={BB33} succs={BB58} - -***** BB34 [0033] -STMT00065 ( 0x278[E--] ... 0x27D ) - [000527] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000362] -----+----- \--* ADD int - [000359] -----+----- +--* LCL_VAR int V04 loc1 - [000526] -----+----- \--* CNS_INT int -2 - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] ---XG+----- * JTRUE void - [000478] J--XG+-N--- \--* NE int - [000339] ---XG+----- +--* IND long - [000338] -----+----- | \--* ADD byref - [000331] -----+----- | +--* LCL_VAR byref V00 arg0 - [000337] -----+----- | \--* ADD long - [000335] -----+----- | +--* LSH long - [000332] -----+----- | | +--* LCL_VAR long V04 loc1 - [000334] -----+----- | | \--* CNS_INT long 3 - [000336] -----+----- | \--* CNS_INT long -24 - [000340] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB36 [0035] [2A6..2AC) -> BB58(1) (always), preds={BB35} succs={BB58} - -***** BB36 [0035] -STMT00064 ( 0x2A6[E--] ... 0x2AB ) - [000524] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000356] -----+----- \--* ADD int - [000353] -----+----- +--* LCL_VAR int V04 loc1 - [000523] -----+----- \--* CNS_INT int -3 - ------------- BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) - [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000351] -----+----- \--* ADD long - [000348] -----+----- +--* LCL_VAR long V04 loc1 - [000350] -----+----- \--* CNS_INT long -4 - ------------- BB38 [0037] [2B3..2DD) -> BB11(0.5),BB40(0.5) (cond), preds={BB41} succs={BB40,BB11} - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) - [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000253] -----+----- \--* ADD int - [000251] -----+----- +--* LCL_VAR int V02 arg2 - [000252] -----+----- \--* CNS_INT int -1 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] ---XG+----- * JTRUE void - [000485] J--XG+-N--- \--* EQ int - [000260] ---XG+----- +--* IND long - [000259] -----+----- | \--* ADD byref - [000255] -----+----- | +--* LCL_VAR byref V00 arg0 - [000258] -----+----- | \--* LSH long - [000256] -----+----- | +--* LCL_VAR long V04 loc1 - [000257] -----+----- | \--* CNS_INT long 3 - [000261] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000272] -----+----- \--* ADD long - [000269] -----+----- +--* LCL_VAR long V04 loc1 - [000271] -----+----- \--* CNS_INT long -1 - ------------- BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} - -***** BB41 [0040] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - [000250] -----+----- * JTRUE void - [000249] J----+-N--- \--* GT int - [000247] -----+----- +--* LCL_VAR int V02 arg2 - [000248] -----+----- \--* CNS_INT int 0 - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} - -***** BB42 [0041] -STMT00088 ( ??? ... ??? ) - [000493] -----+----- * RETURN int - [000277] -----+----- \--* CNS_INT int -1 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) - [000044] --CXG+----- * CALL void - [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 - [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 - [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 - ------------- BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25,BB32,BB34,BB36} succs={} - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) - [000492] -----+----- * RETURN int - [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Post-morph head and tail merge -A subset of 2 preds of BB58 end with the same tree -STMT00037 ( 0x124[E--] ... 0x129 ) - [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000225] -----+----- \--* ADD int - [000222] -----+----- +--* LCL_VAR int V04 loc1 - [000513] -----+----- \--* CNS_INT int -3 -Will cross-jump to BB17 - -unlinking STMT00064 ( 0x2A6[E--] ... 0x2AB ) - [000524] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000356] -----+----- \--* ADD int - [000353] -----+----- +--* LCL_VAR int V04 loc1 - [000523] -----+----- \--* CNS_INT int -3 - from BB36 - -BB36 becomes empty -A subset of 2 preds of BB58 end with the same tree -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000231] -----+----- \--* ADD int - [000228] -----+----- +--* LCL_VAR int V04 loc1 - [000516] -----+----- \--* CNS_INT int -2 -Will cross-jump to BB15 - -unlinking STMT00065 ( 0x278[E--] ... 0x27D ) - [000527] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000362] -----+----- \--* ADD int - [000359] -----+----- +--* LCL_VAR int V04 loc1 - [000526] -----+----- \--* CNS_INT int -2 - from BB34 - -BB34 becomes empty -A subset of 2 preds of BB58 end with the same tree -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000237] -----+----- \--* ADD int - [000234] -----+----- +--* LCL_VAR int V04 loc1 - [000519] -----+----- \--* CNS_INT int -1 -Will cross-jump to BB13 - -unlinking STMT00066 ( 0x24A[E--] ... 0x24F ) - [000530] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000368] -----+----- \--* ADD int - [000365] -----+----- +--* LCL_VAR int V04 loc1 - [000529] -----+----- \--* CNS_INT int -1 - from BB32 - -BB32 becomes empty -Did 3 tail merges in BB58 - -*************** Finishing PHASE Post-morph head and tail merge -Trees after Post-morph head and tail merge - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 1 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target -BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0)-> BB58(1) (always) i -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd -BB13 [0012] 2 BB12,BB32 1 [0C8..0CE)-> BB58(1) (always) i -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd -BB15 [0014] 2 BB14,BB34 1 [0F6..0FC)-> BB58(1) (always) i -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd -BB17 [0016] 2 BB16,BB36 1 [124..12A)-> BB58(1) (always) i -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250)-> BB13(1) (always) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E)-> BB15(1) (always) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB17(1) (always) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 1 [2EB..324) (return) i jmp hascall -BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 1 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000384] -----+----- * JTRUE void - [000002] J----+-N--- \--* GE int - [000000] -----+----- +--* LCL_VAR int V02 arg2 - [000001] -----+----- \--* CNS_INT int 0 - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000387] --CXG+----- * CALL void - [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref - [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) - [000034] -----+----- * JTRUE void - [000033] J----+-N--- \--* GE int - [000031] -----+----- +--* LCL_VAR int V02 arg2 - [000032] -----+----- \--* CNS_INT int 2 vector element count - ------------- BB09 [0008] [068..073) -> BB27(1) (always), preds={BB57} succs={BB27} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) - [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000050] -----+----- \--* ADD long - [000047] -----+----- +--* CAST long <- int - [000046] -----+----- | \--* LCL_VAR int V02 arg2 - [000049] -----+----- \--* CNS_INT long -1 - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) - [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000058] -----+----- \--* ADD int - [000056] -----+----- +--* LCL_VAR int V02 arg2 - [000057] -----+----- \--* CNS_INT int -8 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) - [000073] ---XG+----- * JTRUE void - [000401] J--XG+-N--- \--* NE int - [000065] ---XG+----- +--* IND long - [000064] -----+----- | \--* ADD byref - [000060] -----+----- | +--* LCL_VAR byref V00 arg0 - [000063] -----+----- | \--* LSH long - [000061] -----+----- | +--* LCL_VAR long V04 loc1 - [000062] -----+----- | \--* CNS_INT long 3 - [000066] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB10,BB29,BB38} succs={BB58} - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) - [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000240] -----+----- \--* LCL_VAR int V04 loc1 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] ---XG+----- * JTRUE void - [000408] J--XG+-N--- \--* NE int - [000082] ---XG+----- +--* IND long - [000081] -----+----- | \--* ADD byref - [000074] -----+----- | +--* LCL_VAR byref V00 arg0 - [000080] -----+----- | \--* ADD long - [000078] -----+----- | +--* LSH long - [000075] -----+----- | | +--* LCL_VAR long V04 loc1 - [000077] -----+----- | | \--* CNS_INT long 3 - [000079] -----+----- | \--* CNS_INT long -8 - [000083] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB12,BB32} succs={BB58} - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000237] -----+----- \--* ADD int - [000234] -----+----- +--* LCL_VAR int V04 loc1 - [000519] -----+----- \--* CNS_INT int -1 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] ---XG+----- * JTRUE void - [000415] J--XG+-N--- \--* NE int - [000099] ---XG+----- +--* IND long - [000098] -----+----- | \--* ADD byref - [000091] -----+----- | +--* LCL_VAR byref V00 arg0 - [000097] -----+----- | \--* ADD long - [000095] -----+----- | +--* LSH long - [000092] -----+----- | | +--* LCL_VAR long V04 loc1 - [000094] -----+----- | | \--* CNS_INT long 3 - [000096] -----+----- | \--* CNS_INT long -16 - [000100] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB14,BB34} succs={BB58} - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000231] -----+----- \--* ADD int - [000228] -----+----- +--* LCL_VAR int V04 loc1 - [000516] -----+----- \--* CNS_INT int -2 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] ---XG+----- * JTRUE void - [000422] J--XG+-N--- \--* NE int - [000116] ---XG+----- +--* IND long - [000115] -----+----- | \--* ADD byref - [000108] -----+----- | +--* LCL_VAR byref V00 arg0 - [000114] -----+----- | \--* ADD long - [000112] -----+----- | +--* LSH long - [000109] -----+----- | | +--* LCL_VAR long V04 loc1 - [000111] -----+----- | | \--* CNS_INT long 3 - [000113] -----+----- | \--* CNS_INT long -24 - [000117] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB16,BB36} succs={BB58} - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) - [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000225] -----+----- \--* ADD int - [000222] -----+----- +--* LCL_VAR int V04 loc1 - [000513] -----+----- \--* CNS_INT int -3 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] ---XG+----- * JTRUE void - [000429] J--XG+-N--- \--* NE int - [000133] ---XG+----- +--* IND long - [000132] -----+----- | \--* ADD byref - [000125] -----+----- | +--* LCL_VAR byref V00 arg0 - [000131] -----+----- | \--* ADD long - [000129] -----+----- | +--* LSH long - [000126] -----+----- | | +--* LCL_VAR long V04 loc1 - [000128] -----+----- | | \--* CNS_INT long 3 - [000130] -----+----- | \--* CNS_INT long -32 - [000134] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) - [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000219] -----+----- \--* ADD int - [000216] -----+----- +--* LCL_VAR int V04 loc1 - [000510] -----+----- \--* CNS_INT int -4 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) - [000158] ---XG+----- * JTRUE void - [000436] J--XG+-N--- \--* NE int - [000150] ---XG+----- +--* IND long - [000149] -----+----- | \--* ADD byref - [000142] -----+----- | +--* LCL_VAR byref V00 arg0 - [000148] -----+----- | \--* ADD long - [000146] -----+----- | +--* LSH long - [000143] -----+----- | | +--* LCL_VAR long V04 loc1 - [000145] -----+----- | | \--* CNS_INT long 3 - [000147] -----+----- | \--* CNS_INT long -40 - [000151] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) - [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000213] -----+----- \--* ADD int - [000210] -----+----- +--* LCL_VAR int V04 loc1 - [000507] -----+----- \--* CNS_INT int -5 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) - [000175] ---XG+----- * JTRUE void - [000443] J--XG+-N--- \--* NE int - [000167] ---XG+----- +--* IND long - [000166] -----+----- | \--* ADD byref - [000159] -----+----- | +--* LCL_VAR byref V00 arg0 - [000165] -----+----- | \--* ADD long - [000163] -----+----- | +--* LSH long - [000160] -----+----- | | +--* LCL_VAR long V04 loc1 - [000162] -----+----- | | \--* CNS_INT long 3 - [000164] -----+----- | \--* CNS_INT long -48 - [000168] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) - [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000207] -----+----- \--* ADD int - [000204] -----+----- +--* LCL_VAR int V04 loc1 - [000504] -----+----- \--* CNS_INT int -6 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] ---XG+----- * JTRUE void - [000450] J--XG+-N--- \--* NE int - [000184] ---XG+----- +--* IND long - [000183] -----+----- | \--* ADD byref - [000176] -----+----- | +--* LCL_VAR byref V00 arg0 - [000182] -----+----- | \--* ADD long - [000180] -----+----- | +--* LSH long - [000177] -----+----- | | +--* LCL_VAR long V04 loc1 - [000179] -----+----- | | \--* CNS_INT long 3 - [000181] -----+----- | \--* CNS_INT long -56 - [000185] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) - [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000201] -----+----- \--* ADD int - [000198] -----+----- +--* LCL_VAR int V04 loc1 - [000501] -----+----- \--* CNS_INT int -7 - ------------- BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000196] -----+----- \--* ADD long - [000193] -----+----- +--* LCL_VAR long V04 loc1 - [000195] -----+----- \--* CNS_INT long -8 - ------------- BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} - -***** BB27 [0026] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - [000055] -----+----- * JTRUE void - [000054] J----+-N--- \--* GE int - [000052] -----+----- +--* LCL_VAR int V02 arg2 - [000053] -----+----- \--* CNS_INT int 8 - ------------- BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} - -***** BB28 [0027] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) - [000246] -----+----- * JTRUE void - [000245] J----+-N--- \--* LT int - [000243] -----+----- +--* LCL_VAR int V02 arg2 - [000244] -----+----- \--* CNS_INT int 4 - ------------- BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB28} succs={BB31,BB11} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) - [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000281] -----+----- \--* ADD int - [000279] -----+----- +--* LCL_VAR int V02 arg2 - [000280] -----+----- \--* CNS_INT int -4 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] ---XG+----- * JTRUE void - [000457] J--XG+-N--- \--* EQ int - [000288] ---XG+----- +--* IND long - [000287] -----+----- | \--* ADD byref - [000283] -----+----- | +--* LCL_VAR byref V00 arg0 - [000286] -----+----- | \--* LSH long - [000284] -----+----- | +--* LCL_VAR long V04 loc1 - [000285] -----+----- | \--* CNS_INT long 3 - [000289] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) - [000313] ---XG+----- * JTRUE void - [000464] J--XG+-N--- \--* NE int - [000305] ---XG+----- +--* IND long - [000304] -----+----- | \--* ADD byref - [000297] -----+----- | +--* LCL_VAR byref V00 arg0 - [000303] -----+----- | \--* ADD long - [000301] -----+----- | +--* LSH long - [000298] -----+----- | | +--* LCL_VAR long V04 loc1 - [000300] -----+----- | | \--* CNS_INT long 3 - [000302] -----+----- | \--* CNS_INT long -8 - [000306] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) - [000330] ---XG+----- * JTRUE void - [000471] J--XG+-N--- \--* NE int - [000322] ---XG+----- +--* IND long - [000321] -----+----- | \--* ADD byref - [000314] -----+----- | +--* LCL_VAR byref V00 arg0 - [000320] -----+----- | \--* ADD long - [000318] -----+----- | +--* LSH long - [000315] -----+----- | | +--* LCL_VAR long V04 loc1 - [000317] -----+----- | | \--* CNS_INT long 3 - [000319] -----+----- | \--* CNS_INT long -16 - [000323] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] ---XG+----- * JTRUE void - [000478] J--XG+-N--- \--* NE int - [000339] ---XG+----- +--* IND long - [000338] -----+----- | \--* ADD byref - [000331] -----+----- | +--* LCL_VAR byref V00 arg0 - [000337] -----+----- | \--* ADD long - [000335] -----+----- | +--* LSH long - [000332] -----+----- | | +--* LCL_VAR long V04 loc1 - [000334] -----+----- | | \--* CNS_INT long 3 - [000336] -----+----- | \--* CNS_INT long -24 - [000340] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} - ------------- BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) - [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000351] -----+----- \--* ADD long - [000348] -----+----- +--* LCL_VAR long V04 loc1 - [000350] -----+----- \--* CNS_INT long -4 - ------------- BB38 [0037] [2B3..2DD) -> BB11(0.5),BB40(0.5) (cond), preds={BB41} succs={BB40,BB11} - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) - [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000253] -----+----- \--* ADD int - [000251] -----+----- +--* LCL_VAR int V02 arg2 - [000252] -----+----- \--* CNS_INT int -1 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] ---XG+----- * JTRUE void - [000485] J--XG+-N--- \--* EQ int - [000260] ---XG+----- +--* IND long - [000259] -----+----- | \--* ADD byref - [000255] -----+----- | +--* LCL_VAR byref V00 arg0 - [000258] -----+----- | \--* LSH long - [000256] -----+----- | +--* LCL_VAR long V04 loc1 - [000257] -----+----- | \--* CNS_INT long 3 - [000261] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000272] -----+----- \--* ADD long - [000269] -----+----- +--* LCL_VAR long V04 loc1 - [000271] -----+----- \--* CNS_INT long -1 - ------------- BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} - -***** BB41 [0040] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - [000250] -----+----- * JTRUE void - [000249] J----+-N--- \--* GT int - [000247] -----+----- +--* LCL_VAR int V02 arg2 - [000248] -----+----- \--* CNS_INT int 0 - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} - -***** BB42 [0041] -STMT00088 ( ??? ... ??? ) - [000493] -----+----- * RETURN int - [000277] -----+----- \--* CNS_INT int -1 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) - [000044] --CXG+----- * CALL void - [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 - [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 - [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 - ------------- BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) - [000492] -----+----- * RETURN int - [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE DFS blocks and remove dead code 3 - -*************** Finishing PHASE DFS blocks and remove dead code 3 [no changes] - -*************** Starting PHASE Adjust throw edge likelihoods - -*************** Finishing PHASE Adjust throw edge likelihoods -Trees after Adjust throw edge likelihoods - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 1 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB11(0.5) ( cond ) i bwd bwd-target -BB11 [0010] 3 BB10,BB29,BB38 1 [09D..0A0)-> BB58(1) (always) i -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB13(0.5) ( cond ) i bwd -BB13 [0012] 2 BB12,BB32 1 [0C8..0CE)-> BB58(1) (always) i -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB15(0.5) ( cond ) i bwd -BB15 [0014] 2 BB14,BB34 1 [0F6..0FC)-> BB58(1) (always) i -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB17(0.5) ( cond ) i bwd -BB17 [0016] 2 BB16,BB36 1 [124..12A)-> BB58(1) (always) i -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB41(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250)-> BB13(1) (always) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E)-> BB15(1) (always) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB17(1) (always) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB41(1) (always) i -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB11(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd -BB41 [0040] 3 BB28,BB37,BB40 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 1 [2EB..324) (return) i jmp hascall -BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 1 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000384] -----+----- * JTRUE void - [000002] J----+-N--- \--* GE int - [000000] -----+----- +--* LCL_VAR int V02 arg2 - [000001] -----+----- \--* CNS_INT int 0 - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000387] --CXG+----- * CALL void - [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref - [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) - [000034] -----+----- * JTRUE void - [000033] J----+-N--- \--* GE int - [000031] -----+----- +--* LCL_VAR int V02 arg2 - [000032] -----+----- \--* CNS_INT int 2 vector element count - ------------- BB09 [0008] [068..073) -> BB27(1) (always), preds={BB57} succs={BB27} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) - [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000050] -----+----- \--* ADD long - [000047] -----+----- +--* CAST long <- int - [000046] -----+----- | \--* LCL_VAR int V02 arg2 - [000049] -----+----- \--* CNS_INT long -1 - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB11(0.5) (cond), preds={BB27} succs={BB11,BB12} - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) - [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000058] -----+----- \--* ADD int - [000056] -----+----- +--* LCL_VAR int V02 arg2 - [000057] -----+----- \--* CNS_INT int -8 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) - [000073] ---XG+----- * JTRUE void - [000401] J--XG+-N--- \--* NE int - [000065] ---XG+----- +--* IND long - [000064] -----+----- | \--* ADD byref - [000060] -----+----- | +--* LCL_VAR byref V00 arg0 - [000063] -----+----- | \--* LSH long - [000061] -----+----- | +--* LCL_VAR long V04 loc1 - [000062] -----+----- | \--* CNS_INT long 3 - [000066] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB10,BB29,BB38} succs={BB58} - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) - [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000240] -----+----- \--* LCL_VAR int V04 loc1 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB13(0.5) (cond), preds={BB10} succs={BB13,BB14} - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] ---XG+----- * JTRUE void - [000408] J--XG+-N--- \--* NE int - [000082] ---XG+----- +--* IND long - [000081] -----+----- | \--* ADD byref - [000074] -----+----- | +--* LCL_VAR byref V00 arg0 - [000080] -----+----- | \--* ADD long - [000078] -----+----- | +--* LSH long - [000075] -----+----- | | +--* LCL_VAR long V04 loc1 - [000077] -----+----- | | \--* CNS_INT long 3 - [000079] -----+----- | \--* CNS_INT long -8 - [000083] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB12,BB32} succs={BB58} - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000237] -----+----- \--* ADD int - [000234] -----+----- +--* LCL_VAR int V04 loc1 - [000519] -----+----- \--* CNS_INT int -1 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB15(0.5) (cond), preds={BB12} succs={BB15,BB16} - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] ---XG+----- * JTRUE void - [000415] J--XG+-N--- \--* NE int - [000099] ---XG+----- +--* IND long - [000098] -----+----- | \--* ADD byref - [000091] -----+----- | +--* LCL_VAR byref V00 arg0 - [000097] -----+----- | \--* ADD long - [000095] -----+----- | +--* LSH long - [000092] -----+----- | | +--* LCL_VAR long V04 loc1 - [000094] -----+----- | | \--* CNS_INT long 3 - [000096] -----+----- | \--* CNS_INT long -16 - [000100] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB14,BB34} succs={BB58} - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000231] -----+----- \--* ADD int - [000228] -----+----- +--* LCL_VAR int V04 loc1 - [000516] -----+----- \--* CNS_INT int -2 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB17(0.5) (cond), preds={BB14} succs={BB17,BB18} - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] ---XG+----- * JTRUE void - [000422] J--XG+-N--- \--* NE int - [000116] ---XG+----- +--* IND long - [000115] -----+----- | \--* ADD byref - [000108] -----+----- | +--* LCL_VAR byref V00 arg0 - [000114] -----+----- | \--* ADD long - [000112] -----+----- | +--* LSH long - [000109] -----+----- | | +--* LCL_VAR long V04 loc1 - [000111] -----+----- | | \--* CNS_INT long 3 - [000113] -----+----- | \--* CNS_INT long -24 - [000117] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB16,BB36} succs={BB58} - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) - [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000225] -----+----- \--* ADD int - [000222] -----+----- +--* LCL_VAR int V04 loc1 - [000513] -----+----- \--* CNS_INT int -3 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] ---XG+----- * JTRUE void - [000429] J--XG+-N--- \--* NE int - [000133] ---XG+----- +--* IND long - [000132] -----+----- | \--* ADD byref - [000125] -----+----- | +--* LCL_VAR byref V00 arg0 - [000131] -----+----- | \--* ADD long - [000129] -----+----- | +--* LSH long - [000126] -----+----- | | +--* LCL_VAR long V04 loc1 - [000128] -----+----- | | \--* CNS_INT long 3 - [000130] -----+----- | \--* CNS_INT long -32 - [000134] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) - [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000219] -----+----- \--* ADD int - [000216] -----+----- +--* LCL_VAR int V04 loc1 - [000510] -----+----- \--* CNS_INT int -4 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) - [000158] ---XG+----- * JTRUE void - [000436] J--XG+-N--- \--* NE int - [000150] ---XG+----- +--* IND long - [000149] -----+----- | \--* ADD byref - [000142] -----+----- | +--* LCL_VAR byref V00 arg0 - [000148] -----+----- | \--* ADD long - [000146] -----+----- | +--* LSH long - [000143] -----+----- | | +--* LCL_VAR long V04 loc1 - [000145] -----+----- | | \--* CNS_INT long 3 - [000147] -----+----- | \--* CNS_INT long -40 - [000151] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) - [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000213] -----+----- \--* ADD int - [000210] -----+----- +--* LCL_VAR int V04 loc1 - [000507] -----+----- \--* CNS_INT int -5 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) - [000175] ---XG+----- * JTRUE void - [000443] J--XG+-N--- \--* NE int - [000167] ---XG+----- +--* IND long - [000166] -----+----- | \--* ADD byref - [000159] -----+----- | +--* LCL_VAR byref V00 arg0 - [000165] -----+----- | \--* ADD long - [000163] -----+----- | +--* LSH long - [000160] -----+----- | | +--* LCL_VAR long V04 loc1 - [000162] -----+----- | | \--* CNS_INT long 3 - [000164] -----+----- | \--* CNS_INT long -48 - [000168] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) - [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000207] -----+----- \--* ADD int - [000204] -----+----- +--* LCL_VAR int V04 loc1 - [000504] -----+----- \--* CNS_INT int -6 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] ---XG+----- * JTRUE void - [000450] J--XG+-N--- \--* NE int - [000184] ---XG+----- +--* IND long - [000183] -----+----- | \--* ADD byref - [000176] -----+----- | +--* LCL_VAR byref V00 arg0 - [000182] -----+----- | \--* ADD long - [000180] -----+----- | +--* LSH long - [000177] -----+----- | | +--* LCL_VAR long V04 loc1 - [000179] -----+----- | | \--* CNS_INT long 3 - [000181] -----+----- | \--* CNS_INT long -56 - [000185] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) - [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000201] -----+----- \--* ADD int - [000198] -----+----- +--* LCL_VAR int V04 loc1 - [000501] -----+----- \--* CNS_INT int -7 - ------------- BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000196] -----+----- \--* ADD long - [000193] -----+----- +--* LCL_VAR long V04 loc1 - [000195] -----+----- \--* CNS_INT long -8 - ------------- BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} - -***** BB27 [0026] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - [000055] -----+----- * JTRUE void - [000054] J----+-N--- \--* GE int - [000052] -----+----- +--* LCL_VAR int V02 arg2 - [000053] -----+----- \--* CNS_INT int 8 - ------------- BB28 [0027] [1EE..1F5) -> BB41(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB41} - -***** BB28 [0027] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) - [000246] -----+----- * JTRUE void - [000245] J----+-N--- \--* LT int - [000243] -----+----- +--* LCL_VAR int V02 arg2 - [000244] -----+----- \--* CNS_INT int 4 - ------------- BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB28} succs={BB31,BB11} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) - [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000281] -----+----- \--* ADD int - [000279] -----+----- +--* LCL_VAR int V02 arg2 - [000280] -----+----- \--* CNS_INT int -4 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] ---XG+----- * JTRUE void - [000457] J--XG+-N--- \--* EQ int - [000288] ---XG+----- +--* IND long - [000287] -----+----- | \--* ADD byref - [000283] -----+----- | +--* LCL_VAR byref V00 arg0 - [000286] -----+----- | \--* LSH long - [000284] -----+----- | +--* LCL_VAR long V04 loc1 - [000285] -----+----- | \--* CNS_INT long 3 - [000289] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) - [000313] ---XG+----- * JTRUE void - [000464] J--XG+-N--- \--* NE int - [000305] ---XG+----- +--* IND long - [000304] -----+----- | \--* ADD byref - [000297] -----+----- | +--* LCL_VAR byref V00 arg0 - [000303] -----+----- | \--* ADD long - [000301] -----+----- | +--* LSH long - [000298] -----+----- | | +--* LCL_VAR long V04 loc1 - [000300] -----+----- | | \--* CNS_INT long 3 - [000302] -----+----- | \--* CNS_INT long -8 - [000306] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) - [000330] ---XG+----- * JTRUE void - [000471] J--XG+-N--- \--* NE int - [000322] ---XG+----- +--* IND long - [000321] -----+----- | \--* ADD byref - [000314] -----+----- | +--* LCL_VAR byref V00 arg0 - [000320] -----+----- | \--* ADD long - [000318] -----+----- | +--* LSH long - [000315] -----+----- | | +--* LCL_VAR long V04 loc1 - [000317] -----+----- | | \--* CNS_INT long 3 - [000319] -----+----- | \--* CNS_INT long -16 - [000323] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] ---XG+----- * JTRUE void - [000478] J--XG+-N--- \--* NE int - [000339] ---XG+----- +--* IND long - [000338] -----+----- | \--* ADD byref - [000331] -----+----- | +--* LCL_VAR byref V00 arg0 - [000337] -----+----- | \--* ADD long - [000335] -----+----- | +--* LSH long - [000332] -----+----- | | +--* LCL_VAR long V04 loc1 - [000334] -----+----- | | \--* CNS_INT long 3 - [000336] -----+----- | \--* CNS_INT long -24 - [000340] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} - ------------- BB37 [0036] [2AC..2B3) -> BB41(1) (always), preds={BB35} succs={BB41} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) - [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000351] -----+----- \--* ADD long - [000348] -----+----- +--* LCL_VAR long V04 loc1 - [000350] -----+----- \--* CNS_INT long -4 - ------------- BB38 [0037] [2B3..2DD) -> BB11(0.5),BB40(0.5) (cond), preds={BB41} succs={BB40,BB11} - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) - [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000253] -----+----- \--* ADD int - [000251] -----+----- +--* LCL_VAR int V02 arg2 - [000252] -----+----- \--* CNS_INT int -1 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] ---XG+----- * JTRUE void - [000485] J--XG+-N--- \--* EQ int - [000260] ---XG+----- +--* IND long - [000259] -----+----- | \--* ADD byref - [000255] -----+----- | +--* LCL_VAR byref V00 arg0 - [000258] -----+----- | \--* LSH long - [000256] -----+----- | +--* LCL_VAR long V04 loc1 - [000257] -----+----- | \--* CNS_INT long 3 - [000261] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000272] -----+----- \--* ADD long - [000269] -----+----- +--* LCL_VAR long V04 loc1 - [000271] -----+----- \--* CNS_INT long -1 - ------------- BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB28,BB37,BB40} succs={BB42,BB38} - -***** BB41 [0040] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - [000250] -----+----- * JTRUE void - [000249] J----+-N--- \--* GT int - [000247] -----+----- +--* LCL_VAR int V02 arg2 - [000248] -----+----- \--* CNS_INT int 0 - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} - -***** BB42 [0041] -STMT00088 ( ??? ... ??? ) - [000493] -----+----- * RETURN int - [000277] -----+----- \--* CNS_INT int -1 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) - [000044] --CXG+----- * CALL void - [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 - [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 - [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 - ------------- BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) - [000492] -----+----- * RETURN int - [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Find loops -*************** In optFindLoopsPhase() -Identifying loops in DFS tree with following reverse post order: -RPO -> BB [pre, post] -00 -> BB01[0, 36] -01 -> BB52[1, 35] -02 -> BB57[2, 34] -03 -> BB43[36, 33] -04 -> BB09[3, 32] -05 -> BB27[4, 31] -06 -> BB10[23, 30] -07 -> BB12[24, 29] -08 -> BB14[25, 28] -09 -> BB16[26, 27] -10 -> BB18[27, 26] -11 -> BB20[29, 25] -12 -> BB22[31, 24] -13 -> BB24[33, 23] -14 -> BB26[35, 22] -15 -> BB25[34, 21] -16 -> BB23[32, 20] -17 -> BB21[30, 19] -18 -> BB19[28, 18] -19 -> BB28[5, 17] -20 -> BB29[6, 16] -21 -> BB31[7, 15] -22 -> BB33[11, 14] -23 -> BB35[14, 13] -24 -> BB37[17, 12] -25 -> BB41[18, 11] -26 -> BB38[20, 10] -27 -> BB11[22, 9] -28 -> BB40[21, 8] -29 -> BB42[19, 7] -30 -> BB36[15, 6] -31 -> BB17[16, 5] -32 -> BB34[12, 4] -33 -> BB15[13, 3] -34 -> BB32[8, 2] -35 -> BB13[9, 1] -36 -> BB58[10, 0] - -BB26 -> BB27 is a backedge -BB27 is the header of a DFS loop with 1 back edges -Loop has 10 blocks -BB27 -> BB28 is an exit edge -BB10 -> BB11 is an exit edge -BB12 -> BB13 is an exit edge -BB14 -> BB15 is an exit edge -BB16 -> BB17 is an exit edge -BB18 -> BB19 is an exit edge -BB20 -> BB21 is an exit edge -BB22 -> BB23 is an exit edge -BB24 -> BB25 is an exit edge -BB09 -> BB27 is an entry edge -Added loop L00 with header BB27 - -BB40 -> BB41 is a backedge -BB41 is the header of a DFS loop with 1 back edges -Loop has 3 blocks -BB41 -> BB42 is an exit edge -BB38 -> BB11 is an exit edge -BB28 -> BB41 is an entry edge -BB37 -> BB41 is an entry edge -Added loop L01 with header BB41 - -Found 2 loops - -*************** Natural loop graph -L00 header: BB27 - Members (10): BB10;BB12;BB14;BB16;BB18;BB20;BB22;BB24;[BB26..BB27] - Entry: BB09 -> BB27 - Exit: BB27 -> BB28; BB10 -> BB11; BB12 -> BB13; BB14 -> BB15; BB16 -> BB17; BB18 -> BB19; BB20 -> BB21; BB22 -> BB23; BB24 -> BB25 - Back: BB26 -> BB27 -L01 header: BB41 - Members (3): [BB38..BB41] - Entry: BB28 -> BB41; BB37 -> BB41 - Exit: BB41 -> BB42; BB38 -> BB11 - Back: BB40 -> BB41 - -Relocated block [BB11..BB11] inserted after BB27 -Relocated block [BB13..BB13] inserted after BB11 -Relocated block [BB15..BB15] inserted after BB13 -Relocated block [BB17..BB17] inserted after BB15 -Relocated block [BB19..BB19] inserted after BB17 -Relocated block [BB21..BB21] inserted after BB19 -Relocated block [BB23..BB23] inserted after BB21 -Relocated block [BB25..BB25] inserted after BB23 -Natural loop L00 already has preheader BB09 -New Basic Block BB60 [0087] created. -Created new preheader BB60 for L01 -setting likelihood of BB60 -> BB41 to 1 -Entry edge BB28 -> BB41 becomes BB28 -> BB60 -Entry edge BB37 -> BB41 becomes BB37 -> BB60 -All preds of exit BB42 of L01 are already in the loop, no exit canonicalization needed -Canonicalize exit BB11 for L01 to have only loop predecessors -New Basic Block BB61 [0088] created. -setting likelihood of BB61 -> BB11 to 1 -Created new exit BB61 to replace BB11 exit for L01 -All preds of exit BB28 of L00 are already in the loop, no exit canonicalization needed -Canonicalize exit BB11 for L00 to have only loop predecessors -New Basic Block BB62 [0089] created. -setting likelihood of BB62 -> BB11 to 1 -Created new exit BB62 to replace BB11 exit for L00 -Canonicalize exit BB13 for L00 to have only loop predecessors -New Basic Block BB63 [0090] created. -setting likelihood of BB63 -> BB13 to 1 -Created new exit BB63 to replace BB13 exit for L00 -Canonicalize exit BB15 for L00 to have only loop predecessors -New Basic Block BB64 [0091] created. -setting likelihood of BB64 -> BB15 to 1 -Created new exit BB64 to replace BB15 exit for L00 -Canonicalize exit BB17 for L00 to have only loop predecessors -New Basic Block BB65 [0092] created. -setting likelihood of BB65 -> BB17 to 1 -Created new exit BB65 to replace BB17 exit for L00 -All preds of exit BB19 of L00 are already in the loop, no exit canonicalization needed -All preds of exit BB21 of L00 are already in the loop, no exit canonicalization needed -All preds of exit BB23 of L00 are already in the loop, no exit canonicalization needed -All preds of exit BB25 of L00 are already in the loop, no exit canonicalization needed -Identifying loops in DFS tree with following reverse post order: -RPO -> BB [pre, post] -00 -> BB01[0, 42] -01 -> BB52[1, 41] -02 -> BB57[2, 40] -03 -> BB43[42, 39] -04 -> BB09[3, 38] -05 -> BB27[4, 37] -06 -> BB10[25, 36] -07 -> BB12[27, 35] -08 -> BB14[29, 34] -09 -> BB16[31, 33] -10 -> BB18[33, 32] -11 -> BB20[35, 31] -12 -> BB22[37, 30] -13 -> BB24[39, 29] -14 -> BB26[41, 28] -15 -> BB25[40, 27] -16 -> BB23[38, 26] -17 -> BB21[36, 25] -18 -> BB19[34, 24] -19 -> BB65[32, 23] -20 -> BB64[30, 22] -21 -> BB63[28, 21] -22 -> BB62[26, 20] -23 -> BB28[5, 19] -24 -> BB29[6, 18] -25 -> BB31[7, 17] -26 -> BB33[11, 16] -27 -> BB35[14, 15] -28 -> BB37[17, 14] -29 -> BB60[18, 13] -30 -> BB41[19, 12] -31 -> BB38[21, 11] -32 -> BB61[23, 10] -33 -> BB11[24, 9] -34 -> BB40[22, 8] -35 -> BB42[20, 7] -36 -> BB36[15, 6] -37 -> BB17[16, 5] -38 -> BB34[12, 4] -39 -> BB15[13, 3] -40 -> BB32[8, 2] -41 -> BB13[9, 1] -42 -> BB58[10, 0] - -BB26 -> BB27 is a backedge -BB27 is the header of a DFS loop with 1 back edges -Loop has 10 blocks -BB27 -> BB28 is an exit edge -BB10 -> BB62 is an exit edge -BB12 -> BB63 is an exit edge -BB14 -> BB64 is an exit edge -BB16 -> BB65 is an exit edge -BB18 -> BB19 is an exit edge -BB20 -> BB21 is an exit edge -BB22 -> BB23 is an exit edge -BB24 -> BB25 is an exit edge -BB09 -> BB27 is an entry edge -Added loop L00 with header BB27 - -BB40 -> BB41 is a backedge -BB41 is the header of a DFS loop with 1 back edges -Loop has 3 blocks -BB41 -> BB42 is an exit edge -BB38 -> BB61 is an exit edge -BB60 -> BB41 is an entry edge -Added loop L01 with header BB41 - -Found 2 loops - -*************** Natural loop graph -L00 header: BB27 - Members (10): [BB10..BB27] - Entry: BB09 -> BB27 - Exit: BB27 -> BB28; BB10 -> BB62; BB12 -> BB63; BB14 -> BB64; BB16 -> BB65; BB18 -> BB19; BB20 -> BB21; BB22 -> BB23; BB24 -> BB25 - Back: BB26 -> BB27 -L01 header: BB41 - Members (3): [BB38..BB40];BB41 - Entry: BB60 -> BB41 - Exit: BB41 -> BB42; BB38 -> BB61 - Back: BB40 -> BB41 - - -*************** Finishing PHASE Find loops -Trees after Find loops - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 1 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 1 [068..073)-> BB27(1) (always) i -BB10 [0009] 1 BB27 1 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB26 [0025] 1 BB24 1 [1E2..1E7)-> BB27(1) (always) i bwd -BB27 [0026] 2 BB09,BB26 1 [1E7..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd bwd-src -BB61 [0088] 1 BB38 0.50 [09D..???)-> BB11(1) (always) internal -BB62 [0089] 1 BB10 0.50 [09D..???)-> BB11(1) (always) internal -BB11 [0010] 3 BB29,BB61,BB62 1 [09D..0A0)-> BB58(1) (always) i -BB63 [0090] 1 BB12 0.50 [0C8..???)-> BB13(1) (always) internal -BB13 [0012] 2 BB32,BB63 1 [0C8..0CE)-> BB58(1) (always) i -BB64 [0091] 1 BB14 0.50 [0F6..???)-> BB15(1) (always) internal -BB15 [0014] 2 BB34,BB64 1 [0F6..0FC)-> BB58(1) (always) i -BB65 [0092] 1 BB16 0.50 [124..???)-> BB17(1) (always) internal -BB17 [0016] 2 BB36,BB65 1 [124..12A)-> BB58(1) (always) i -BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i -BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i -BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i -BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i -BB28 [0027] 1 BB27 1 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB28 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250)-> BB13(1) (always) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E)-> BB15(1) (always) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB17(1) (always) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB60(1) (always) i -BB38 [0037] 1 BB41 1 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 1 [2E0..2E5)-> BB41(1) (always) i bwd -BB60 [0087] 2 BB28,BB37 1.50 [2E5..???)-> BB41(1) (always) internal -BB41 [0040] 2 BB40,BB60 1 [2E5..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd bwd-src -BB42 [0041] 1 BB41 1 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 1 [2EB..324) (return) i jmp hascall -BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 1 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000384] -----+----- * JTRUE void - [000002] J----+-N--- \--* GE int - [000000] -----+----- +--* LCL_VAR int V02 arg2 - [000001] -----+----- \--* CNS_INT int 0 - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000387] --CXG+----- * CALL void - [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref - [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) - [000034] -----+----- * JTRUE void - [000033] J----+-N--- \--* GE int - [000031] -----+----- +--* LCL_VAR int V02 arg2 - [000032] -----+----- \--* CNS_INT int 2 vector element count - ------------- BB09 [0008] [068..073) -> BB27(1) (always), preds={BB57} succs={BB27} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) - [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000050] -----+----- \--* ADD long - [000047] -----+----- +--* CAST long <- int - [000046] -----+----- | \--* LCL_VAR int V02 arg2 - [000049] -----+----- \--* CNS_INT long -1 - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB27} succs={BB62,BB12} - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) - [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000058] -----+----- \--* ADD int - [000056] -----+----- +--* LCL_VAR int V02 arg2 - [000057] -----+----- \--* CNS_INT int -8 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) - [000073] ---XG+----- * JTRUE void - [000401] J--XG+-N--- \--* NE int - [000065] ---XG+----- +--* IND long - [000064] -----+----- | \--* ADD byref - [000060] -----+----- | +--* LCL_VAR byref V00 arg0 - [000063] -----+----- | \--* LSH long - [000061] -----+----- | +--* LCL_VAR long V04 loc1 - [000062] -----+----- | \--* CNS_INT long 3 - [000066] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] ---XG+----- * JTRUE void - [000408] J--XG+-N--- \--* NE int - [000082] ---XG+----- +--* IND long - [000081] -----+----- | \--* ADD byref - [000074] -----+----- | +--* LCL_VAR byref V00 arg0 - [000080] -----+----- | \--* ADD long - [000078] -----+----- | +--* LSH long - [000075] -----+----- | | +--* LCL_VAR long V04 loc1 - [000077] -----+----- | | \--* CNS_INT long 3 - [000079] -----+----- | \--* CNS_INT long -8 - [000083] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] ---XG+----- * JTRUE void - [000415] J--XG+-N--- \--* NE int - [000099] ---XG+----- +--* IND long - [000098] -----+----- | \--* ADD byref - [000091] -----+----- | +--* LCL_VAR byref V00 arg0 - [000097] -----+----- | \--* ADD long - [000095] -----+----- | +--* LSH long - [000092] -----+----- | | +--* LCL_VAR long V04 loc1 - [000094] -----+----- | | \--* CNS_INT long 3 - [000096] -----+----- | \--* CNS_INT long -16 - [000100] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] ---XG+----- * JTRUE void - [000422] J--XG+-N--- \--* NE int - [000116] ---XG+----- +--* IND long - [000115] -----+----- | \--* ADD byref - [000108] -----+----- | +--* LCL_VAR byref V00 arg0 - [000114] -----+----- | \--* ADD long - [000112] -----+----- | +--* LSH long - [000109] -----+----- | | +--* LCL_VAR long V04 loc1 - [000111] -----+----- | | \--* CNS_INT long 3 - [000113] -----+----- | \--* CNS_INT long -24 - [000117] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] ---XG+----- * JTRUE void - [000429] J--XG+-N--- \--* NE int - [000133] ---XG+----- +--* IND long - [000132] -----+----- | \--* ADD byref - [000125] -----+----- | +--* LCL_VAR byref V00 arg0 - [000131] -----+----- | \--* ADD long - [000129] -----+----- | +--* LSH long - [000126] -----+----- | | +--* LCL_VAR long V04 loc1 - [000128] -----+----- | | \--* CNS_INT long 3 - [000130] -----+----- | \--* CNS_INT long -32 - [000134] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) - [000158] ---XG+----- * JTRUE void - [000436] J--XG+-N--- \--* NE int - [000150] ---XG+----- +--* IND long - [000149] -----+----- | \--* ADD byref - [000142] -----+----- | +--* LCL_VAR byref V00 arg0 - [000148] -----+----- | \--* ADD long - [000146] -----+----- | +--* LSH long - [000143] -----+----- | | +--* LCL_VAR long V04 loc1 - [000145] -----+----- | | \--* CNS_INT long 3 - [000147] -----+----- | \--* CNS_INT long -40 - [000151] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) - [000175] ---XG+----- * JTRUE void - [000443] J--XG+-N--- \--* NE int - [000167] ---XG+----- +--* IND long - [000166] -----+----- | \--* ADD byref - [000159] -----+----- | +--* LCL_VAR byref V00 arg0 - [000165] -----+----- | \--* ADD long - [000163] -----+----- | +--* LSH long - [000160] -----+----- | | +--* LCL_VAR long V04 loc1 - [000162] -----+----- | | \--* CNS_INT long 3 - [000164] -----+----- | \--* CNS_INT long -48 - [000168] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] ---XG+----- * JTRUE void - [000450] J--XG+-N--- \--* NE int - [000184] ---XG+----- +--* IND long - [000183] -----+----- | \--* ADD byref - [000176] -----+----- | +--* LCL_VAR byref V00 arg0 - [000182] -----+----- | \--* ADD long - [000180] -----+----- | +--* LSH long - [000177] -----+----- | | +--* LCL_VAR long V04 loc1 - [000179] -----+----- | | \--* CNS_INT long 3 - [000181] -----+----- | \--* CNS_INT long -56 - [000185] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB26 [0025] [1E2..1E7) -> BB27(1) (always), preds={BB24} succs={BB27} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000196] -----+----- \--* ADD long - [000193] -----+----- +--* LCL_VAR long V04 loc1 - [000195] -----+----- \--* CNS_INT long -8 - ------------- BB27 [0026] [1E7..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB09,BB26} succs={BB28,BB10} - -***** BB27 [0026] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - [000055] -----+----- * JTRUE void - [000054] J----+-N--- \--* GE int - [000052] -----+----- +--* LCL_VAR int V02 arg2 - [000053] -----+----- \--* CNS_INT int 8 - ------------- BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} - ------------- BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} - ------------- BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) - [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000240] -----+----- \--* LCL_VAR int V04 loc1 - ------------- BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} - ------------- BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000237] -----+----- \--* ADD int - [000234] -----+----- +--* LCL_VAR int V04 loc1 - [000519] -----+----- \--* CNS_INT int -1 - ------------- BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} - ------------- BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000231] -----+----- \--* ADD int - [000228] -----+----- +--* LCL_VAR int V04 loc1 - [000516] -----+----- \--* CNS_INT int -2 - ------------- BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} - ------------- BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) - [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000225] -----+----- \--* ADD int - [000222] -----+----- +--* LCL_VAR int V04 loc1 - [000513] -----+----- \--* CNS_INT int -3 - ------------- BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) - [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000219] -----+----- \--* ADD int - [000216] -----+----- +--* LCL_VAR int V04 loc1 - [000510] -----+----- \--* CNS_INT int -4 - ------------- BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) - [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000213] -----+----- \--* ADD int - [000210] -----+----- +--* LCL_VAR int V04 loc1 - [000507] -----+----- \--* CNS_INT int -5 - ------------- BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) - [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000207] -----+----- \--* ADD int - [000204] -----+----- +--* LCL_VAR int V04 loc1 - [000504] -----+----- \--* CNS_INT int -6 - ------------- BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) - [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000201] -----+----- \--* ADD int - [000198] -----+----- +--* LCL_VAR int V04 loc1 - [000501] -----+----- \--* CNS_INT int -7 - ------------- BB28 [0027] [1EE..1F5) -> BB60(0.5),BB29(0.5) (cond), preds={BB27} succs={BB29,BB60} - -***** BB28 [0027] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) - [000246] -----+----- * JTRUE void - [000245] J----+-N--- \--* LT int - [000243] -----+----- +--* LCL_VAR int V02 arg2 - [000244] -----+----- \--* CNS_INT int 4 - ------------- BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB28} succs={BB31,BB11} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) - [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000281] -----+----- \--* ADD int - [000279] -----+----- +--* LCL_VAR int V02 arg2 - [000280] -----+----- \--* CNS_INT int -4 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] ---XG+----- * JTRUE void - [000457] J--XG+-N--- \--* EQ int - [000288] ---XG+----- +--* IND long - [000287] -----+----- | \--* ADD byref - [000283] -----+----- | +--* LCL_VAR byref V00 arg0 - [000286] -----+----- | \--* LSH long - [000284] -----+----- | +--* LCL_VAR long V04 loc1 - [000285] -----+----- | \--* CNS_INT long 3 - [000289] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) - [000313] ---XG+----- * JTRUE void - [000464] J--XG+-N--- \--* NE int - [000305] ---XG+----- +--* IND long - [000304] -----+----- | \--* ADD byref - [000297] -----+----- | +--* LCL_VAR byref V00 arg0 - [000303] -----+----- | \--* ADD long - [000301] -----+----- | +--* LSH long - [000298] -----+----- | | +--* LCL_VAR long V04 loc1 - [000300] -----+----- | | \--* CNS_INT long 3 - [000302] -----+----- | \--* CNS_INT long -8 - [000306] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) - [000330] ---XG+----- * JTRUE void - [000471] J--XG+-N--- \--* NE int - [000322] ---XG+----- +--* IND long - [000321] -----+----- | \--* ADD byref - [000314] -----+----- | +--* LCL_VAR byref V00 arg0 - [000320] -----+----- | \--* ADD long - [000318] -----+----- | +--* LSH long - [000315] -----+----- | | +--* LCL_VAR long V04 loc1 - [000317] -----+----- | | \--* CNS_INT long 3 - [000319] -----+----- | \--* CNS_INT long -16 - [000323] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] ---XG+----- * JTRUE void - [000478] J--XG+-N--- \--* NE int - [000339] ---XG+----- +--* IND long - [000338] -----+----- | \--* ADD byref - [000331] -----+----- | +--* LCL_VAR byref V00 arg0 - [000337] -----+----- | \--* ADD long - [000335] -----+----- | +--* LSH long - [000332] -----+----- | | +--* LCL_VAR long V04 loc1 - [000334] -----+----- | | \--* CNS_INT long 3 - [000336] -----+----- | \--* CNS_INT long -24 - [000340] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} - ------------- BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) - [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000351] -----+----- \--* ADD long - [000348] -----+----- +--* LCL_VAR long V04 loc1 - [000350] -----+----- \--* CNS_INT long -4 - ------------- BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB41} succs={BB40,BB61} - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) - [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000253] -----+----- \--* ADD int - [000251] -----+----- +--* LCL_VAR int V02 arg2 - [000252] -----+----- \--* CNS_INT int -1 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] ---XG+----- * JTRUE void - [000485] J--XG+-N--- \--* EQ int - [000260] ---XG+----- +--* IND long - [000259] -----+----- | \--* ADD byref - [000255] -----+----- | +--* LCL_VAR byref V00 arg0 - [000258] -----+----- | \--* LSH long - [000256] -----+----- | +--* LCL_VAR long V04 loc1 - [000257] -----+----- | \--* CNS_INT long 3 - [000261] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB40 [0039] [2E0..2E5) -> BB41(1) (always), preds={BB38} succs={BB41} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000272] -----+----- \--* ADD long - [000269] -----+----- +--* LCL_VAR long V04 loc1 - [000271] -----+----- \--* CNS_INT long -1 - ------------- BB60 [0087] [2E5..???) -> BB41(1) (always), preds={BB28,BB37} succs={BB41} - ------------- BB41 [0040] [2E5..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB40,BB60} succs={BB42,BB38} - -***** BB41 [0040] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - [000250] -----+----- * JTRUE void - [000249] J----+-N--- \--* GT int - [000247] -----+----- +--* LCL_VAR int V02 arg2 - [000248] -----+----- \--* CNS_INT int 0 - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB41} succs={} - -***** BB42 [0041] -STMT00088 ( ??? ... ??? ) - [000493] -----+----- * RETURN int - [000277] -----+----- \--* CNS_INT int -1 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) - [000044] --CXG+----- * CALL void - [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 - [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 - [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 - ------------- BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) - [000492] -----+----- * RETURN int - [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Repair profile post-morph -No PGO data. Skipping profile repair. - -*************** Finishing PHASE Repair profile post-morph [no changes] - -*************** Starting PHASE Invert loops -Analyzing iteration for L01 with header BB41 - Preheader = BB60 - Checking exiting block BB41 - Could not extract an IV - Checking exiting block BB38 - Could not find any IV -Condition in block BB41 of loop L01 is a candidate for duplication to invert the loop - -Duplication of loop condition [000250] is performed, because the cost of duplication (6) is less or equal than 34, - loopIterations = 8.000, optInvertTotalInfo.sharedStaticHelperCount >= 0, haveProfileWeights = false -New Basic Block BB66 [0093] created. -BB41 previous predecessor was BB60, now is BB66 -setting likelihood of BB66 -> BB41 from 1 to 1 -setting likelihood of BB60 -> BB66 to 1 -New Basic Block BB67 [0094] created. -setting likelihood of BB42 -> BB67 to 1 -New preheader is BB66 -Duplicated condition block is BB60 -Old exit is BB42, new non-enter block is BB67 -setting likelihood of BB60 -> BB66 from 1 to 0.5 -setting likelihood of BB60 -> BB67 to 0.5 -STMT00089 ( 0x2E5[E--] ... ??? ) - ( 7, 6) [000531] ----------- * JTRUE void - ( 5, 4) [000532] J------N--- \--* LE int - ( 3, 2) [000533] ----------- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000534] ----------- \--* CNS_INT int 0 -Cond block BB41 has a unique pred now, seeing if we can compact... - ..we can! - -Compacting BB41 into BB40: -*************** In fgDebugCheckBBlist - -Duplicated loop exit block at BB60 for loop L01 -Estimated code size expansion is 6 - ------------- BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB28,BB37} succs={BB66,BB67} - -***** BB60 [0087] -STMT00089 ( 0x2E5[E--] ... ??? ) - ( 7, 6) [000531] ----------- * JTRUE void - ( 5, 4) [000532] J------N--- \--* LE int - ( 3, 2) [000533] ----------- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000534] ----------- \--* CNS_INT int 0 - ------------- BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000272] -----+----- \--* ADD long - [000269] -----+----- +--* LCL_VAR long V04 loc1 - [000271] -----+----- \--* CNS_INT long -1 - -***** BB40 [0039] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - ( 7, 6) [000250] -----+----- * JTRUE void - ( 5, 4) [000249] J----+-N--- \--* GT int - ( 3, 2) [000247] -----+----- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 -Analyzing iteration for L00 with header BB27 - Preheader = BB09 - Checking exiting block BB27 - Could not extract an IV - Checking exiting block BB10 - Checking exiting block BB12 - Could not extract an IV - Checking exiting block BB14 - Could not extract an IV - Checking exiting block BB16 - Could not extract an IV - Checking exiting block BB18 - Could not extract an IV - Checking exiting block BB20 - Could not extract an IV - Checking exiting block BB22 - Could not extract an IV - Checking exiting block BB24 - Could not extract an IV - Could not find any IV -Condition in block BB27 of loop L00 is a candidate for duplication to invert the loop - -Duplication of loop condition [000055] is performed, because the cost of duplication (6) is less or equal than 34, - loopIterations = 8.000, optInvertTotalInfo.sharedStaticHelperCount >= 0, haveProfileWeights = false -New Basic Block BB68 [0095] created. -BB27 previous predecessor was BB09, now is BB68 -setting likelihood of BB68 -> BB27 from 1 to 1 -setting likelihood of BB09 -> BB68 to 1 -New Basic Block BB69 [0096] created. -BB29 previous predecessor was BB28, now is BB69 -BB60 previous predecessor was BB28, now is BB69 -setting likelihood of BB28 -> BB69 to 1 -New preheader is BB68 -Duplicated condition block is BB09 -Old exit is BB28, new non-enter block is BB69 -setting likelihood of BB09 -> BB68 from 1 to 0.5 -setting likelihood of BB09 -> BB69 to 0.5 -STMT00090 ( 0x1E7[E--] ... ??? ) - ( 7, 6) [000535] ----------- * JTRUE void - ( 5, 4) [000536] J------N--- \--* LT int - ( 3, 2) [000537] ----------- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000538] ----------- \--* CNS_INT int 8 -Cond block BB27 has a unique pred now, seeing if we can compact... - ..we can! - -Compacting BB27 into BB26: -*************** In fgDebugCheckBBlist - -Duplicated loop exit block at BB09 for loop L00 -Estimated code size expansion is 6 - ------------- BB09 [0008] [068..073) -> BB69(0.5),BB68(0.5) (cond), preds={BB57} succs={BB68,BB69} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) - [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000050] -----+----- \--* ADD long - [000047] -----+----- +--* CAST long <- int - [000046] -----+----- | \--* LCL_VAR int V02 arg2 - [000049] -----+----- \--* CNS_INT long -1 - -***** BB09 [0008] -STMT00090 ( 0x1E7[E--] ... ??? ) - ( 7, 6) [000535] ----------- * JTRUE void - ( 5, 4) [000536] J------N--- \--* LT int - ( 3, 2) [000537] ----------- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000538] ----------- \--* CNS_INT int 8 - ------------- BB26 [0025] [1E2..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB24} succs={BB28,BB10} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000196] -----+----- \--* ADD long - [000193] -----+----- +--* LCL_VAR long V04 loc1 - [000195] -----+----- \--* CNS_INT long -8 - -***** BB26 [0025] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - ( 7, 6) [000055] -----+----- * JTRUE void - ( 5, 4) [000054] J----+-N--- \--* GE int - ( 3, 2) [000052] -----+----- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 -Identifying loops in DFS tree with following reverse post order: -RPO -> BB [pre, post] -00 -> BB01[0, 44] -01 -> BB52[1, 43] -02 -> BB57[2, 42] -03 -> BB43[44, 41] -04 -> BB09[3, 40] -05 -> BB68[4, 39] -06 -> BB10[5, 38] -07 -> BB12[9, 37] -08 -> BB14[12, 36] -09 -> BB16[15, 35] -10 -> BB18[18, 34] -11 -> BB20[20, 33] -12 -> BB22[22, 32] -13 -> BB24[24, 31] -14 -> BB26[26, 30] -15 -> BB28[27, 29] -16 -> BB69[28, 28] -17 -> BB29[29, 27] -18 -> BB31[30, 26] -19 -> BB33[32, 25] -20 -> BB35[34, 24] -21 -> BB37[36, 23] -22 -> BB60[37, 22] -23 -> BB66[38, 21] -24 -> BB38[39, 20] -25 -> BB61[43, 19] -26 -> BB40[40, 18] -27 -> BB42[41, 17] -28 -> BB67[42, 16] -29 -> BB36[35, 15] -30 -> BB34[33, 14] -31 -> BB32[31, 13] -32 -> BB25[25, 12] -33 -> BB23[23, 11] -34 -> BB21[21, 10] -35 -> BB19[19, 9] -36 -> BB65[16, 8] -37 -> BB17[17, 7] -38 -> BB64[13, 6] -39 -> BB15[14, 5] -40 -> BB63[10, 4] -41 -> BB13[11, 3] -42 -> BB62[6, 2] -43 -> BB11[7, 1] -44 -> BB58[8, 0] - -BB26 -> BB10 is a backedge -BB10 is the header of a DFS loop with 1 back edges -Loop has 9 blocks -BB10 -> BB62 is an exit edge -BB12 -> BB63 is an exit edge -BB14 -> BB64 is an exit edge -BB16 -> BB65 is an exit edge -BB18 -> BB19 is an exit edge -BB20 -> BB21 is an exit edge -BB22 -> BB23 is an exit edge -BB24 -> BB25 is an exit edge -BB26 -> BB28 is an exit edge -BB68 -> BB10 is an entry edge -Added loop L00 with header BB10 - -BB40 -> BB38 is a backedge -BB38 is the header of a DFS loop with 1 back edges -Loop has 2 blocks -BB38 -> BB61 is an exit edge -BB40 -> BB42 is an exit edge -BB66 -> BB38 is an entry edge -Added loop L01 with header BB38 - -Found 2 loops - -*************** Natural loop graph -L00 header: BB10 - Members (9): [BB10..BB26] - Entry: BB68 -> BB10 - Exit: BB10 -> BB62; BB12 -> BB63; BB14 -> BB64; BB16 -> BB65; BB18 -> BB19; BB20 -> BB21; BB22 -> BB23; BB24 -> BB25; BB26 -> BB28 - Back: BB26 -> BB10 -L01 header: BB38 - Members (2): [BB38..BB40] - Entry: BB66 -> BB38 - Exit: BB38 -> BB61; BB40 -> BB42 - Back: BB40 -> BB38 - -Natural loop L00 already has preheader BB68 -Natural loop L01 already has preheader BB66 -All preds of exit BB61 of L01 are already in the loop, no exit canonicalization needed -All preds of exit BB42 of L01 are already in the loop, no exit canonicalization needed -All preds of exit BB62 of L00 are already in the loop, no exit canonicalization needed -All preds of exit BB63 of L00 are already in the loop, no exit canonicalization needed -All preds of exit BB64 of L00 are already in the loop, no exit canonicalization needed -All preds of exit BB65 of L00 are already in the loop, no exit canonicalization needed -All preds of exit BB19 of L00 are already in the loop, no exit canonicalization needed -All preds of exit BB21 of L00 are already in the loop, no exit canonicalization needed -All preds of exit BB23 of L00 are already in the loop, no exit canonicalization needed -All preds of exit BB25 of L00 are already in the loop, no exit canonicalization needed -All preds of exit BB28 of L00 are already in the loop, no exit canonicalization needed - -*************** Finishing PHASE Invert loops -Trees after Invert loops - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 1 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 1 [068..073)-> BB69(0.5),BB68(0.5) ( cond ) i -BB68 [0095] 1 BB09 1 [???..???)-> BB10(1) (always) i -BB10 [0009] 2 BB26,BB68 1 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target -BB12 [0011] 1 BB10 1 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd -BB14 [0013] 1 BB12 1 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd -BB16 [0015] 1 BB14 1 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd -BB18 [0017] 1 BB16 1 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB20 [0019] 1 BB18 1 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB22 [0021] 1 BB20 1 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB24 [0023] 1 BB22 1 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB26 [0025] 1 BB24 1 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd -BB61 [0088] 1 BB38 0.50 [09D..???)-> BB11(1) (always) internal -BB62 [0089] 1 BB10 0.50 [09D..???)-> BB11(1) (always) internal -BB11 [0010] 3 BB29,BB61,BB62 1 [09D..0A0)-> BB58(1) (always) i -BB63 [0090] 1 BB12 0.50 [0C8..???)-> BB13(1) (always) internal -BB13 [0012] 2 BB32,BB63 1 [0C8..0CE)-> BB58(1) (always) i -BB64 [0091] 1 BB14 0.50 [0F6..???)-> BB15(1) (always) internal -BB15 [0014] 2 BB34,BB64 1 [0F6..0FC)-> BB58(1) (always) i -BB65 [0092] 1 BB16 0.50 [124..???)-> BB17(1) (always) internal -BB17 [0016] 2 BB36,BB65 1 [124..12A)-> BB58(1) (always) i -BB19 [0018] 1 BB18 1 [152..158)-> BB58(1) (always) i -BB21 [0020] 1 BB20 1 [180..186)-> BB58(1) (always) i -BB23 [0022] 1 BB22 1 [1AE..1B4)-> BB58(1) (always) i -BB25 [0024] 1 BB24 1 [1DC..1E2)-> BB58(1) (always) i -BB28 [0027] 1 BB26 1 [???..???)-> BB69(1) (always) i -BB69 [0096] 2 BB09,BB28 1 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB69 1 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 1 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 1 [24A..250)-> BB13(1) (always) i -BB33 [0032] 1 BB31 1 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 1 [278..27E)-> BB15(1) (always) i -BB35 [0034] 1 BB33 1 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 1 [2A6..2AC)-> BB17(1) (always) i -BB37 [0036] 1 BB35 1 [2AC..2B3)-> BB60(1) (always) i -BB38 [0037] 2 BB40,BB66 1 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 1 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd -BB60 [0087] 2 BB37,BB69 1.50 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal -BB66 [0093] 1 BB60 1.50 [???..???)-> BB38(1) (always) internal -BB42 [0041] 1 BB40 1 [???..???)-> BB67(1) (always) i -BB67 [0094] 2 BB42,BB60 1 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 1 [2EB..324) (return) i jmp hascall -BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 1 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000384] -----+----- * JTRUE void - [000002] J----+-N--- \--* GE int - [000000] -----+----- +--* LCL_VAR int V02 arg2 - [000001] -----+----- \--* CNS_INT int 0 - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000387] --CXG+----- * CALL void - [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref - [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) - [000034] -----+----- * JTRUE void - [000033] J----+-N--- \--* GE int - [000031] -----+----- +--* LCL_VAR int V02 arg2 - [000032] -----+----- \--* CNS_INT int 2 vector element count - ------------- BB09 [0008] [068..073) -> BB69(0.5),BB68(0.5) (cond), preds={BB57} succs={BB68,BB69} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) - [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000050] -----+----- \--* ADD long - [000047] -----+----- +--* CAST long <- int - [000046] -----+----- | \--* LCL_VAR int V02 arg2 - [000049] -----+----- \--* CNS_INT long -1 - -***** BB09 [0008] -STMT00090 ( 0x1E7[E--] ... ??? ) - ( 7, 6) [000535] ----------- * JTRUE void - ( 5, 4) [000536] J------N--- \--* LT int - ( 3, 2) [000537] ----------- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000538] ----------- \--* CNS_INT int 8 - ------------- BB68 [0095] [???..???) -> BB10(1) (always), preds={BB09} succs={BB10} - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB26,BB68} succs={BB62,BB12} - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) - [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000058] -----+----- \--* ADD int - [000056] -----+----- +--* LCL_VAR int V02 arg2 - [000057] -----+----- \--* CNS_INT int -8 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) - [000073] ---XG+----- * JTRUE void - [000401] J--XG+-N--- \--* NE int - [000065] ---XG+----- +--* IND long - [000064] -----+----- | \--* ADD byref - [000060] -----+----- | +--* LCL_VAR byref V00 arg0 - [000063] -----+----- | \--* LSH long - [000061] -----+----- | +--* LCL_VAR long V04 loc1 - [000062] -----+----- | \--* CNS_INT long 3 - [000066] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] ---XG+----- * JTRUE void - [000408] J--XG+-N--- \--* NE int - [000082] ---XG+----- +--* IND long - [000081] -----+----- | \--* ADD byref - [000074] -----+----- | +--* LCL_VAR byref V00 arg0 - [000080] -----+----- | \--* ADD long - [000078] -----+----- | +--* LSH long - [000075] -----+----- | | +--* LCL_VAR long V04 loc1 - [000077] -----+----- | | \--* CNS_INT long 3 - [000079] -----+----- | \--* CNS_INT long -8 - [000083] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] ---XG+----- * JTRUE void - [000415] J--XG+-N--- \--* NE int - [000099] ---XG+----- +--* IND long - [000098] -----+----- | \--* ADD byref - [000091] -----+----- | +--* LCL_VAR byref V00 arg0 - [000097] -----+----- | \--* ADD long - [000095] -----+----- | +--* LSH long - [000092] -----+----- | | +--* LCL_VAR long V04 loc1 - [000094] -----+----- | | \--* CNS_INT long 3 - [000096] -----+----- | \--* CNS_INT long -16 - [000100] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] ---XG+----- * JTRUE void - [000422] J--XG+-N--- \--* NE int - [000116] ---XG+----- +--* IND long - [000115] -----+----- | \--* ADD byref - [000108] -----+----- | +--* LCL_VAR byref V00 arg0 - [000114] -----+----- | \--* ADD long - [000112] -----+----- | +--* LSH long - [000109] -----+----- | | +--* LCL_VAR long V04 loc1 - [000111] -----+----- | | \--* CNS_INT long 3 - [000113] -----+----- | \--* CNS_INT long -24 - [000117] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] ---XG+----- * JTRUE void - [000429] J--XG+-N--- \--* NE int - [000133] ---XG+----- +--* IND long - [000132] -----+----- | \--* ADD byref - [000125] -----+----- | +--* LCL_VAR byref V00 arg0 - [000131] -----+----- | \--* ADD long - [000129] -----+----- | +--* LSH long - [000126] -----+----- | | +--* LCL_VAR long V04 loc1 - [000128] -----+----- | | \--* CNS_INT long 3 - [000130] -----+----- | \--* CNS_INT long -32 - [000134] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) - [000158] ---XG+----- * JTRUE void - [000436] J--XG+-N--- \--* NE int - [000150] ---XG+----- +--* IND long - [000149] -----+----- | \--* ADD byref - [000142] -----+----- | +--* LCL_VAR byref V00 arg0 - [000148] -----+----- | \--* ADD long - [000146] -----+----- | +--* LSH long - [000143] -----+----- | | +--* LCL_VAR long V04 loc1 - [000145] -----+----- | | \--* CNS_INT long 3 - [000147] -----+----- | \--* CNS_INT long -40 - [000151] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) - [000175] ---XG+----- * JTRUE void - [000443] J--XG+-N--- \--* NE int - [000167] ---XG+----- +--* IND long - [000166] -----+----- | \--* ADD byref - [000159] -----+----- | +--* LCL_VAR byref V00 arg0 - [000165] -----+----- | \--* ADD long - [000163] -----+----- | +--* LSH long - [000160] -----+----- | | +--* LCL_VAR long V04 loc1 - [000162] -----+----- | | \--* CNS_INT long 3 - [000164] -----+----- | \--* CNS_INT long -48 - [000168] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] ---XG+----- * JTRUE void - [000450] J--XG+-N--- \--* NE int - [000184] ---XG+----- +--* IND long - [000183] -----+----- | \--* ADD byref - [000176] -----+----- | +--* LCL_VAR byref V00 arg0 - [000182] -----+----- | \--* ADD long - [000180] -----+----- | +--* LSH long - [000177] -----+----- | | +--* LCL_VAR long V04 loc1 - [000179] -----+----- | | \--* CNS_INT long 3 - [000181] -----+----- | \--* CNS_INT long -56 - [000185] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB26 [0025] [1E2..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB24} succs={BB28,BB10} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000196] -----+----- \--* ADD long - [000193] -----+----- +--* LCL_VAR long V04 loc1 - [000195] -----+----- \--* CNS_INT long -8 - -***** BB26 [0025] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - ( 7, 6) [000055] -----+----- * JTRUE void - ( 5, 4) [000054] J----+-N--- \--* GE int - ( 3, 2) [000052] -----+----- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 - ------------- BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} - ------------- BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} - ------------- BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) - [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000240] -----+----- \--* LCL_VAR int V04 loc1 - ------------- BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} - ------------- BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000237] -----+----- \--* ADD int - [000234] -----+----- +--* LCL_VAR int V04 loc1 - [000519] -----+----- \--* CNS_INT int -1 - ------------- BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} - ------------- BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000231] -----+----- \--* ADD int - [000228] -----+----- +--* LCL_VAR int V04 loc1 - [000516] -----+----- \--* CNS_INT int -2 - ------------- BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} - ------------- BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) - [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000225] -----+----- \--* ADD int - [000222] -----+----- +--* LCL_VAR int V04 loc1 - [000513] -----+----- \--* CNS_INT int -3 - ------------- BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) - [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000219] -----+----- \--* ADD int - [000216] -----+----- +--* LCL_VAR int V04 loc1 - [000510] -----+----- \--* CNS_INT int -4 - ------------- BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) - [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000213] -----+----- \--* ADD int - [000210] -----+----- +--* LCL_VAR int V04 loc1 - [000507] -----+----- \--* CNS_INT int -5 - ------------- BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) - [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000207] -----+----- \--* ADD int - [000204] -----+----- +--* LCL_VAR int V04 loc1 - [000504] -----+----- \--* CNS_INT int -6 - ------------- BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) - [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000201] -----+----- \--* ADD int - [000198] -----+----- +--* LCL_VAR int V04 loc1 - [000501] -----+----- \--* CNS_INT int -7 - ------------- BB28 [0027] [???..???) -> BB69(1) (always), preds={BB26} succs={BB69} - ------------- BB69 [0096] [1EE..1F5) -> BB60(0.5),BB29(0.5) (cond), preds={BB09,BB28} succs={BB29,BB60} - -***** BB69 [0096] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) - [000246] -----+----- * JTRUE void - [000245] J----+-N--- \--* LT int - [000243] -----+----- +--* LCL_VAR int V02 arg2 - [000244] -----+----- \--* CNS_INT int 4 - ------------- BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB69} succs={BB31,BB11} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) - [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000281] -----+----- \--* ADD int - [000279] -----+----- +--* LCL_VAR int V02 arg2 - [000280] -----+----- \--* CNS_INT int -4 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] ---XG+----- * JTRUE void - [000457] J--XG+-N--- \--* EQ int - [000288] ---XG+----- +--* IND long - [000287] -----+----- | \--* ADD byref - [000283] -----+----- | +--* LCL_VAR byref V00 arg0 - [000286] -----+----- | \--* LSH long - [000284] -----+----- | +--* LCL_VAR long V04 loc1 - [000285] -----+----- | \--* CNS_INT long 3 - [000289] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) - [000313] ---XG+----- * JTRUE void - [000464] J--XG+-N--- \--* NE int - [000305] ---XG+----- +--* IND long - [000304] -----+----- | \--* ADD byref - [000297] -----+----- | +--* LCL_VAR byref V00 arg0 - [000303] -----+----- | \--* ADD long - [000301] -----+----- | +--* LSH long - [000298] -----+----- | | +--* LCL_VAR long V04 loc1 - [000300] -----+----- | | \--* CNS_INT long 3 - [000302] -----+----- | \--* CNS_INT long -8 - [000306] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) - [000330] ---XG+----- * JTRUE void - [000471] J--XG+-N--- \--* NE int - [000322] ---XG+----- +--* IND long - [000321] -----+----- | \--* ADD byref - [000314] -----+----- | +--* LCL_VAR byref V00 arg0 - [000320] -----+----- | \--* ADD long - [000318] -----+----- | +--* LSH long - [000315] -----+----- | | +--* LCL_VAR long V04 loc1 - [000317] -----+----- | | \--* CNS_INT long 3 - [000319] -----+----- | \--* CNS_INT long -16 - [000323] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] ---XG+----- * JTRUE void - [000478] J--XG+-N--- \--* NE int - [000339] ---XG+----- +--* IND long - [000338] -----+----- | \--* ADD byref - [000331] -----+----- | +--* LCL_VAR byref V00 arg0 - [000337] -----+----- | \--* ADD long - [000335] -----+----- | +--* LSH long - [000332] -----+----- | | +--* LCL_VAR long V04 loc1 - [000334] -----+----- | | \--* CNS_INT long 3 - [000336] -----+----- | \--* CNS_INT long -24 - [000340] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} - ------------- BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) - [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000351] -----+----- \--* ADD long - [000348] -----+----- +--* LCL_VAR long V04 loc1 - [000350] -----+----- \--* CNS_INT long -4 - ------------- BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB40,BB66} succs={BB40,BB61} - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) - [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000253] -----+----- \--* ADD int - [000251] -----+----- +--* LCL_VAR int V02 arg2 - [000252] -----+----- \--* CNS_INT int -1 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] ---XG+----- * JTRUE void - [000485] J--XG+-N--- \--* EQ int - [000260] ---XG+----- +--* IND long - [000259] -----+----- | \--* ADD byref - [000255] -----+----- | +--* LCL_VAR byref V00 arg0 - [000258] -----+----- | \--* LSH long - [000256] -----+----- | +--* LCL_VAR long V04 loc1 - [000257] -----+----- | \--* CNS_INT long 3 - [000261] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000272] -----+----- \--* ADD long - [000269] -----+----- +--* LCL_VAR long V04 loc1 - [000271] -----+----- \--* CNS_INT long -1 - -***** BB40 [0039] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - ( 7, 6) [000250] -----+----- * JTRUE void - ( 5, 4) [000249] J----+-N--- \--* GT int - ( 3, 2) [000247] -----+----- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 - ------------- BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB37,BB69} succs={BB66,BB67} - -***** BB60 [0087] -STMT00089 ( 0x2E5[E--] ... ??? ) - ( 7, 6) [000531] ----------- * JTRUE void - ( 5, 4) [000532] J------N--- \--* LE int - ( 3, 2) [000533] ----------- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000534] ----------- \--* CNS_INT int 0 - ------------- BB66 [0093] [???..???) -> BB38(1) (always), preds={BB60} succs={BB38} - ------------- BB42 [0041] [???..???) -> BB67(1) (always), preds={BB40} succs={BB67} - ------------- BB67 [0094] [2E9..2EB) (return), preds={BB42,BB60} succs={} - -***** BB67 [0094] -STMT00088 ( ??? ... ??? ) - [000493] -----+----- * RETURN int - [000277] -----+----- \--* CNS_INT int -1 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) - [000044] --CXG+----- * CALL void - [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 - [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 - [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 - ------------- BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) - [000492] -----+----- * RETURN int - [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Set block weights -After computing the dominance tree: -BB01 : BB52 BB57 -BB57 : BB43 BB09 -BB09 : BB68 BB69 BB17 BB15 BB13 BB11 BB58 -BB68 : BB10 -BB10 : BB12 BB62 -BB12 : BB14 BB63 -BB14 : BB16 BB64 -BB16 : BB18 BB65 -BB18 : BB20 BB19 -BB20 : BB22 BB21 -BB22 : BB24 BB23 -BB24 : BB26 BB25 -BB26 : BB28 -BB69 : BB29 BB60 -BB29 : BB31 -BB31 : BB33 BB32 -BB33 : BB35 BB34 -BB35 : BB37 BB36 -BB60 : BB66 BB67 -BB66 : BB38 -BB38 : BB61 BB40 -BB40 : BB42 - - -After computing reachability sets: ------------------------------------------------- -BBnum Reachable by ------------------------------------------------- -BB01 : BB01 -BB52 : BB52 BB01 -BB57 : BB57 BB52 BB01 -BB09 : BB09 BB57 BB52 BB01 -BB68 : BB68 BB09 BB57 BB52 BB01 -BB10 : BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB12 : BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB14 : BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB16 : BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB18 : BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB20 : BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB22 : BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB24 : BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB26 : BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB61 : BB40 BB61 BB38 BB66 BB60 BB37 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB62 : BB62 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB11 : BB11 BB62 BB40 BB61 BB38 BB66 BB60 BB37 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB63 : BB63 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB13 : BB13 BB63 BB32 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB64 : BB64 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB15 : BB15 BB64 BB34 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB65 : BB65 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB17 : BB17 BB65 BB36 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB19 : BB19 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB21 : BB21 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB23 : BB23 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB25 : BB25 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB28 : BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB69 : BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB29 : BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB31 : BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB32 : BB32 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB33 : BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB34 : BB34 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB35 : BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB36 : BB36 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB37 : BB37 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB38 : BB40 BB38 BB66 BB60 BB37 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB40 : BB40 BB38 BB66 BB60 BB37 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB60 : BB60 BB37 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB66 : BB66 BB60 BB37 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB42 : BB42 BB40 BB38 BB66 BB60 BB37 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB67 : BB67 BB42 BB40 BB38 BB66 BB60 BB37 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 -BB43 : BB43 BB57 BB52 BB01 -BB58 : BB58 BB11 BB62 BB13 BB63 BB15 BB64 BB17 BB65 BB19 BB21 BB23 BB25 BB32 BB34 BB36 BB40 BB61 BB38 BB66 BB60 BB37 BB35 BB33 BB31 BB29 BB69 BB28 BB26 BB24 BB22 BB20 BB18 BB16 BB14 BB12 BB10 BB68 BB09 BB57 BB52 BB01 - - BB10(wt=800) - BB12(wt=800) - BB14(wt=800) - BB16(wt=800) - BB18(wt=800) - BB20(wt=800) - BB22(wt=800) - BB24(wt=800) - BB26(wt=800) - BB38(wt=800) - BB40(wt=800)Return blocks: BB58 BB43 BB67 - -*************** Finishing PHASE Set block weights -Trees after Set block weights - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(0.5),BB68(0.5) ( cond ) i -BB68 [0095] 1 BB09 0.50 [???..???)-> BB10(1) (always) i -BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target -BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd -BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd -BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd -BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd -BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal -BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal -BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i -BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal -BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i -BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal -BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i -BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal -BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i -BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i -BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i -BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i -BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i -BB28 [0027] 1 BB26 0.50 [???..???)-> BB69(1) (always) i -BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB69 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i -BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i -BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i -BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i -BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd -BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal -BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal -BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i -BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall -BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000384] -----+----- * JTRUE void - [000002] J----+-N--- \--* GE int - [000000] -----+----- +--* LCL_VAR int V02 arg2 - [000001] -----+----- \--* CNS_INT int 0 - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000387] --CXG+----- * CALL void - [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref - [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) - [000034] -----+----- * JTRUE void - [000033] J----+-N--- \--* GE int - [000031] -----+----- +--* LCL_VAR int V02 arg2 - [000032] -----+----- \--* CNS_INT int 2 vector element count - ------------- BB09 [0008] [068..073) -> BB69(0.5),BB68(0.5) (cond), preds={BB57} succs={BB68,BB69} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) - [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000050] -----+----- \--* ADD long - [000047] -----+----- +--* CAST long <- int - [000046] -----+----- | \--* LCL_VAR int V02 arg2 - [000049] -----+----- \--* CNS_INT long -1 - -***** BB09 [0008] -STMT00090 ( 0x1E7[E--] ... ??? ) - ( 7, 6) [000535] ----------- * JTRUE void - ( 5, 4) [000536] J------N--- \--* LT int - ( 3, 2) [000537] ----------- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000538] ----------- \--* CNS_INT int 8 - ------------- BB68 [0095] [???..???) -> BB10(1) (always), preds={BB09} succs={BB10} - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB26,BB68} succs={BB62,BB12} - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) - [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000058] -----+----- \--* ADD int - [000056] -----+----- +--* LCL_VAR int V02 arg2 - [000057] -----+----- \--* CNS_INT int -8 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) - [000073] ---XG+----- * JTRUE void - [000401] J--XG+-N--- \--* NE int - [000065] ---XG+----- +--* IND long - [000064] -----+----- | \--* ADD byref - [000060] -----+----- | +--* LCL_VAR byref V00 arg0 - [000063] -----+----- | \--* LSH long - [000061] -----+----- | +--* LCL_VAR long V04 loc1 - [000062] -----+----- | \--* CNS_INT long 3 - [000066] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] ---XG+----- * JTRUE void - [000408] J--XG+-N--- \--* NE int - [000082] ---XG+----- +--* IND long - [000081] -----+----- | \--* ADD byref - [000074] -----+----- | +--* LCL_VAR byref V00 arg0 - [000080] -----+----- | \--* ADD long - [000078] -----+----- | +--* LSH long - [000075] -----+----- | | +--* LCL_VAR long V04 loc1 - [000077] -----+----- | | \--* CNS_INT long 3 - [000079] -----+----- | \--* CNS_INT long -8 - [000083] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] ---XG+----- * JTRUE void - [000415] J--XG+-N--- \--* NE int - [000099] ---XG+----- +--* IND long - [000098] -----+----- | \--* ADD byref - [000091] -----+----- | +--* LCL_VAR byref V00 arg0 - [000097] -----+----- | \--* ADD long - [000095] -----+----- | +--* LSH long - [000092] -----+----- | | +--* LCL_VAR long V04 loc1 - [000094] -----+----- | | \--* CNS_INT long 3 - [000096] -----+----- | \--* CNS_INT long -16 - [000100] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] ---XG+----- * JTRUE void - [000422] J--XG+-N--- \--* NE int - [000116] ---XG+----- +--* IND long - [000115] -----+----- | \--* ADD byref - [000108] -----+----- | +--* LCL_VAR byref V00 arg0 - [000114] -----+----- | \--* ADD long - [000112] -----+----- | +--* LSH long - [000109] -----+----- | | +--* LCL_VAR long V04 loc1 - [000111] -----+----- | | \--* CNS_INT long 3 - [000113] -----+----- | \--* CNS_INT long -24 - [000117] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] ---XG+----- * JTRUE void - [000429] J--XG+-N--- \--* NE int - [000133] ---XG+----- +--* IND long - [000132] -----+----- | \--* ADD byref - [000125] -----+----- | +--* LCL_VAR byref V00 arg0 - [000131] -----+----- | \--* ADD long - [000129] -----+----- | +--* LSH long - [000126] -----+----- | | +--* LCL_VAR long V04 loc1 - [000128] -----+----- | | \--* CNS_INT long 3 - [000130] -----+----- | \--* CNS_INT long -32 - [000134] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) - [000158] ---XG+----- * JTRUE void - [000436] J--XG+-N--- \--* NE int - [000150] ---XG+----- +--* IND long - [000149] -----+----- | \--* ADD byref - [000142] -----+----- | +--* LCL_VAR byref V00 arg0 - [000148] -----+----- | \--* ADD long - [000146] -----+----- | +--* LSH long - [000143] -----+----- | | +--* LCL_VAR long V04 loc1 - [000145] -----+----- | | \--* CNS_INT long 3 - [000147] -----+----- | \--* CNS_INT long -40 - [000151] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) - [000175] ---XG+----- * JTRUE void - [000443] J--XG+-N--- \--* NE int - [000167] ---XG+----- +--* IND long - [000166] -----+----- | \--* ADD byref - [000159] -----+----- | +--* LCL_VAR byref V00 arg0 - [000165] -----+----- | \--* ADD long - [000163] -----+----- | +--* LSH long - [000160] -----+----- | | +--* LCL_VAR long V04 loc1 - [000162] -----+----- | | \--* CNS_INT long 3 - [000164] -----+----- | \--* CNS_INT long -48 - [000168] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] ---XG+----- * JTRUE void - [000450] J--XG+-N--- \--* NE int - [000184] ---XG+----- +--* IND long - [000183] -----+----- | \--* ADD byref - [000176] -----+----- | +--* LCL_VAR byref V00 arg0 - [000182] -----+----- | \--* ADD long - [000180] -----+----- | +--* LSH long - [000177] -----+----- | | +--* LCL_VAR long V04 loc1 - [000179] -----+----- | | \--* CNS_INT long 3 - [000181] -----+----- | \--* CNS_INT long -56 - [000185] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB26 [0025] [1E2..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB24} succs={BB28,BB10} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000196] -----+----- \--* ADD long - [000193] -----+----- +--* LCL_VAR long V04 loc1 - [000195] -----+----- \--* CNS_INT long -8 - -***** BB26 [0025] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - ( 7, 6) [000055] -----+----- * JTRUE void - ( 5, 4) [000054] J----+-N--- \--* GE int - ( 3, 2) [000052] -----+----- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 - ------------- BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} - ------------- BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} - ------------- BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) - [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000240] -----+----- \--* LCL_VAR int V04 loc1 - ------------- BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} - ------------- BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000237] -----+----- \--* ADD int - [000234] -----+----- +--* LCL_VAR int V04 loc1 - [000519] -----+----- \--* CNS_INT int -1 - ------------- BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} - ------------- BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000231] -----+----- \--* ADD int - [000228] -----+----- +--* LCL_VAR int V04 loc1 - [000516] -----+----- \--* CNS_INT int -2 - ------------- BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} - ------------- BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) - [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000225] -----+----- \--* ADD int - [000222] -----+----- +--* LCL_VAR int V04 loc1 - [000513] -----+----- \--* CNS_INT int -3 - ------------- BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) - [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000219] -----+----- \--* ADD int - [000216] -----+----- +--* LCL_VAR int V04 loc1 - [000510] -----+----- \--* CNS_INT int -4 - ------------- BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) - [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000213] -----+----- \--* ADD int - [000210] -----+----- +--* LCL_VAR int V04 loc1 - [000507] -----+----- \--* CNS_INT int -5 - ------------- BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) - [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000207] -----+----- \--* ADD int - [000204] -----+----- +--* LCL_VAR int V04 loc1 - [000504] -----+----- \--* CNS_INT int -6 - ------------- BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) - [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000201] -----+----- \--* ADD int - [000198] -----+----- +--* LCL_VAR int V04 loc1 - [000501] -----+----- \--* CNS_INT int -7 - ------------- BB28 [0027] [???..???) -> BB69(1) (always), preds={BB26} succs={BB69} - ------------- BB69 [0096] [1EE..1F5) -> BB60(0.5),BB29(0.5) (cond), preds={BB09,BB28} succs={BB29,BB60} - -***** BB69 [0096] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) - [000246] -----+----- * JTRUE void - [000245] J----+-N--- \--* LT int - [000243] -----+----- +--* LCL_VAR int V02 arg2 - [000244] -----+----- \--* CNS_INT int 4 - ------------- BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB69} succs={BB31,BB11} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) - [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000281] -----+----- \--* ADD int - [000279] -----+----- +--* LCL_VAR int V02 arg2 - [000280] -----+----- \--* CNS_INT int -4 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] ---XG+----- * JTRUE void - [000457] J--XG+-N--- \--* EQ int - [000288] ---XG+----- +--* IND long - [000287] -----+----- | \--* ADD byref - [000283] -----+----- | +--* LCL_VAR byref V00 arg0 - [000286] -----+----- | \--* LSH long - [000284] -----+----- | +--* LCL_VAR long V04 loc1 - [000285] -----+----- | \--* CNS_INT long 3 - [000289] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) - [000313] ---XG+----- * JTRUE void - [000464] J--XG+-N--- \--* NE int - [000305] ---XG+----- +--* IND long - [000304] -----+----- | \--* ADD byref - [000297] -----+----- | +--* LCL_VAR byref V00 arg0 - [000303] -----+----- | \--* ADD long - [000301] -----+----- | +--* LSH long - [000298] -----+----- | | +--* LCL_VAR long V04 loc1 - [000300] -----+----- | | \--* CNS_INT long 3 - [000302] -----+----- | \--* CNS_INT long -8 - [000306] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) - [000330] ---XG+----- * JTRUE void - [000471] J--XG+-N--- \--* NE int - [000322] ---XG+----- +--* IND long - [000321] -----+----- | \--* ADD byref - [000314] -----+----- | +--* LCL_VAR byref V00 arg0 - [000320] -----+----- | \--* ADD long - [000318] -----+----- | +--* LSH long - [000315] -----+----- | | +--* LCL_VAR long V04 loc1 - [000317] -----+----- | | \--* CNS_INT long 3 - [000319] -----+----- | \--* CNS_INT long -16 - [000323] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] ---XG+----- * JTRUE void - [000478] J--XG+-N--- \--* NE int - [000339] ---XG+----- +--* IND long - [000338] -----+----- | \--* ADD byref - [000331] -----+----- | +--* LCL_VAR byref V00 arg0 - [000337] -----+----- | \--* ADD long - [000335] -----+----- | +--* LSH long - [000332] -----+----- | | +--* LCL_VAR long V04 loc1 - [000334] -----+----- | | \--* CNS_INT long 3 - [000336] -----+----- | \--* CNS_INT long -24 - [000340] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} - ------------- BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) - [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000351] -----+----- \--* ADD long - [000348] -----+----- +--* LCL_VAR long V04 loc1 - [000350] -----+----- \--* CNS_INT long -4 - ------------- BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB40,BB66} succs={BB40,BB61} - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) - [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000253] -----+----- \--* ADD int - [000251] -----+----- +--* LCL_VAR int V02 arg2 - [000252] -----+----- \--* CNS_INT int -1 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] ---XG+----- * JTRUE void - [000485] J--XG+-N--- \--* EQ int - [000260] ---XG+----- +--* IND long - [000259] -----+----- | \--* ADD byref - [000255] -----+----- | +--* LCL_VAR byref V00 arg0 - [000258] -----+----- | \--* LSH long - [000256] -----+----- | +--* LCL_VAR long V04 loc1 - [000257] -----+----- | \--* CNS_INT long 3 - [000261] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000272] -----+----- \--* ADD long - [000269] -----+----- +--* LCL_VAR long V04 loc1 - [000271] -----+----- \--* CNS_INT long -1 - -***** BB40 [0039] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - ( 7, 6) [000250] -----+----- * JTRUE void - ( 5, 4) [000249] J----+-N--- \--* GT int - ( 3, 2) [000247] -----+----- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 - ------------- BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB37,BB69} succs={BB66,BB67} - -***** BB60 [0087] -STMT00089 ( 0x2E5[E--] ... ??? ) - ( 7, 6) [000531] ----------- * JTRUE void - ( 5, 4) [000532] J------N--- \--* LE int - ( 3, 2) [000533] ----------- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000534] ----------- \--* CNS_INT int 0 - ------------- BB66 [0093] [???..???) -> BB38(1) (always), preds={BB60} succs={BB38} - ------------- BB42 [0041] [???..???) -> BB67(1) (always), preds={BB40} succs={BB67} - ------------- BB67 [0094] [2E9..2EB) (return), preds={BB42,BB60} succs={} - -***** BB67 [0094] -STMT00088 ( ??? ... ??? ) - [000493] -----+----- * RETURN int - [000277] -----+----- \--* CNS_INT int -1 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) - [000044] --CXG+----- * CALL void - [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 - [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 - [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 - ------------- BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) - [000492] -----+----- * RETURN int - [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Clone loops - -*************** In optCloneLoops() -Considering loop L00 to clone for optimizations. -Analyzing iteration for L00 with header BB10 - Preheader = BB68 - Checking exiting block BB10 - Checking exiting block BB12 - Could not extract an IV - Checking exiting block BB14 - Could not extract an IV - Checking exiting block BB16 - Could not extract an IV - Checking exiting block BB18 - Could not extract an IV - Checking exiting block BB20 - Could not extract an IV - Checking exiting block BB22 - Could not extract an IV - Checking exiting block BB24 - Could not extract an IV - Checking exiting block BB26 - Could not extract an IV - Could not find any IV -Loop cloning: rejecting loop L00. Could not analyze iteration. ------------------------------------------------------------- -Considering loop L01 to clone for optimizations. -Analyzing iteration for L01 with header BB38 - Preheader = BB66 - Checking exiting block BB38 - Checking exiting block BB40 - Could not extract an IV - Could not find any IV -Loop cloning: rejecting loop L01. Could not analyze iteration. ------------------------------------------------------------- - - No clonable loops - -*************** Finishing PHASE Clone loops -Trees after Clone loops - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(0.5),BB68(0.5) ( cond ) i -BB68 [0095] 1 BB09 0.50 [???..???)-> BB10(1) (always) i -BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target -BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd -BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd -BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd -BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd -BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal -BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal -BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i -BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal -BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i -BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal -BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i -BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal -BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i -BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i -BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i -BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i -BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i -BB28 [0027] 1 BB26 0.50 [???..???)-> BB69(1) (always) i -BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB69 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i -BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i -BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i -BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i -BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd -BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal -BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal -BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i -BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall -BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000384] -----+----- * JTRUE void - [000002] J----+-N--- \--* GE int - [000000] -----+----- +--* LCL_VAR int V02 arg2 - [000001] -----+----- \--* CNS_INT int 0 - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000387] --CXG+----- * CALL void - [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref - [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) - [000034] -----+----- * JTRUE void - [000033] J----+-N--- \--* GE int - [000031] -----+----- +--* LCL_VAR int V02 arg2 - [000032] -----+----- \--* CNS_INT int 2 vector element count - ------------- BB09 [0008] [068..073) -> BB69(0.5),BB68(0.5) (cond), preds={BB57} succs={BB68,BB69} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) - [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000050] -----+----- \--* ADD long - [000047] -----+----- +--* CAST long <- int - [000046] -----+----- | \--* LCL_VAR int V02 arg2 - [000049] -----+----- \--* CNS_INT long -1 - -***** BB09 [0008] -STMT00090 ( 0x1E7[E--] ... ??? ) - ( 7, 6) [000535] ----------- * JTRUE void - ( 5, 4) [000536] J------N--- \--* LT int - ( 3, 2) [000537] ----------- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000538] ----------- \--* CNS_INT int 8 - ------------- BB68 [0095] [???..???) -> BB10(1) (always), preds={BB09} succs={BB10} - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB26,BB68} succs={BB62,BB12} - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) - [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000058] -----+----- \--* ADD int - [000056] -----+----- +--* LCL_VAR int V02 arg2 - [000057] -----+----- \--* CNS_INT int -8 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) - [000073] ---XG+----- * JTRUE void - [000401] J--XG+-N--- \--* NE int - [000065] ---XG+----- +--* IND long - [000064] -----+----- | \--* ADD byref - [000060] -----+----- | +--* LCL_VAR byref V00 arg0 - [000063] -----+----- | \--* LSH long - [000061] -----+----- | +--* LCL_VAR long V04 loc1 - [000062] -----+----- | \--* CNS_INT long 3 - [000066] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] ---XG+----- * JTRUE void - [000408] J--XG+-N--- \--* NE int - [000082] ---XG+----- +--* IND long - [000081] -----+----- | \--* ADD byref - [000074] -----+----- | +--* LCL_VAR byref V00 arg0 - [000080] -----+----- | \--* ADD long - [000078] -----+----- | +--* LSH long - [000075] -----+----- | | +--* LCL_VAR long V04 loc1 - [000077] -----+----- | | \--* CNS_INT long 3 - [000079] -----+----- | \--* CNS_INT long -8 - [000083] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] ---XG+----- * JTRUE void - [000415] J--XG+-N--- \--* NE int - [000099] ---XG+----- +--* IND long - [000098] -----+----- | \--* ADD byref - [000091] -----+----- | +--* LCL_VAR byref V00 arg0 - [000097] -----+----- | \--* ADD long - [000095] -----+----- | +--* LSH long - [000092] -----+----- | | +--* LCL_VAR long V04 loc1 - [000094] -----+----- | | \--* CNS_INT long 3 - [000096] -----+----- | \--* CNS_INT long -16 - [000100] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] ---XG+----- * JTRUE void - [000422] J--XG+-N--- \--* NE int - [000116] ---XG+----- +--* IND long - [000115] -----+----- | \--* ADD byref - [000108] -----+----- | +--* LCL_VAR byref V00 arg0 - [000114] -----+----- | \--* ADD long - [000112] -----+----- | +--* LSH long - [000109] -----+----- | | +--* LCL_VAR long V04 loc1 - [000111] -----+----- | | \--* CNS_INT long 3 - [000113] -----+----- | \--* CNS_INT long -24 - [000117] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] ---XG+----- * JTRUE void - [000429] J--XG+-N--- \--* NE int - [000133] ---XG+----- +--* IND long - [000132] -----+----- | \--* ADD byref - [000125] -----+----- | +--* LCL_VAR byref V00 arg0 - [000131] -----+----- | \--* ADD long - [000129] -----+----- | +--* LSH long - [000126] -----+----- | | +--* LCL_VAR long V04 loc1 - [000128] -----+----- | | \--* CNS_INT long 3 - [000130] -----+----- | \--* CNS_INT long -32 - [000134] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) - [000158] ---XG+----- * JTRUE void - [000436] J--XG+-N--- \--* NE int - [000150] ---XG+----- +--* IND long - [000149] -----+----- | \--* ADD byref - [000142] -----+----- | +--* LCL_VAR byref V00 arg0 - [000148] -----+----- | \--* ADD long - [000146] -----+----- | +--* LSH long - [000143] -----+----- | | +--* LCL_VAR long V04 loc1 - [000145] -----+----- | | \--* CNS_INT long 3 - [000147] -----+----- | \--* CNS_INT long -40 - [000151] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) - [000175] ---XG+----- * JTRUE void - [000443] J--XG+-N--- \--* NE int - [000167] ---XG+----- +--* IND long - [000166] -----+----- | \--* ADD byref - [000159] -----+----- | +--* LCL_VAR byref V00 arg0 - [000165] -----+----- | \--* ADD long - [000163] -----+----- | +--* LSH long - [000160] -----+----- | | +--* LCL_VAR long V04 loc1 - [000162] -----+----- | | \--* CNS_INT long 3 - [000164] -----+----- | \--* CNS_INT long -48 - [000168] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] ---XG+----- * JTRUE void - [000450] J--XG+-N--- \--* NE int - [000184] ---XG+----- +--* IND long - [000183] -----+----- | \--* ADD byref - [000176] -----+----- | +--* LCL_VAR byref V00 arg0 - [000182] -----+----- | \--* ADD long - [000180] -----+----- | +--* LSH long - [000177] -----+----- | | +--* LCL_VAR long V04 loc1 - [000179] -----+----- | | \--* CNS_INT long 3 - [000181] -----+----- | \--* CNS_INT long -56 - [000185] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB26 [0025] [1E2..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB24} succs={BB28,BB10} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000196] -----+----- \--* ADD long - [000193] -----+----- +--* LCL_VAR long V04 loc1 - [000195] -----+----- \--* CNS_INT long -8 - -***** BB26 [0025] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - ( 7, 6) [000055] -----+----- * JTRUE void - ( 5, 4) [000054] J----+-N--- \--* GE int - ( 3, 2) [000052] -----+----- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 - ------------- BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} - ------------- BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} - ------------- BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) - [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000240] -----+----- \--* LCL_VAR int V04 loc1 - ------------- BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} - ------------- BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000237] -----+----- \--* ADD int - [000234] -----+----- +--* LCL_VAR int V04 loc1 - [000519] -----+----- \--* CNS_INT int -1 - ------------- BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} - ------------- BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000231] -----+----- \--* ADD int - [000228] -----+----- +--* LCL_VAR int V04 loc1 - [000516] -----+----- \--* CNS_INT int -2 - ------------- BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} - ------------- BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) - [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000225] -----+----- \--* ADD int - [000222] -----+----- +--* LCL_VAR int V04 loc1 - [000513] -----+----- \--* CNS_INT int -3 - ------------- BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) - [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000219] -----+----- \--* ADD int - [000216] -----+----- +--* LCL_VAR int V04 loc1 - [000510] -----+----- \--* CNS_INT int -4 - ------------- BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) - [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000213] -----+----- \--* ADD int - [000210] -----+----- +--* LCL_VAR int V04 loc1 - [000507] -----+----- \--* CNS_INT int -5 - ------------- BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) - [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000207] -----+----- \--* ADD int - [000204] -----+----- +--* LCL_VAR int V04 loc1 - [000504] -----+----- \--* CNS_INT int -6 - ------------- BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) - [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000201] -----+----- \--* ADD int - [000198] -----+----- +--* LCL_VAR int V04 loc1 - [000501] -----+----- \--* CNS_INT int -7 - ------------- BB28 [0027] [???..???) -> BB69(1) (always), preds={BB26} succs={BB69} - ------------- BB69 [0096] [1EE..1F5) -> BB60(0.5),BB29(0.5) (cond), preds={BB09,BB28} succs={BB29,BB60} - -***** BB69 [0096] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) - [000246] -----+----- * JTRUE void - [000245] J----+-N--- \--* LT int - [000243] -----+----- +--* LCL_VAR int V02 arg2 - [000244] -----+----- \--* CNS_INT int 4 - ------------- BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB69} succs={BB31,BB11} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) - [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000281] -----+----- \--* ADD int - [000279] -----+----- +--* LCL_VAR int V02 arg2 - [000280] -----+----- \--* CNS_INT int -4 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] ---XG+----- * JTRUE void - [000457] J--XG+-N--- \--* EQ int - [000288] ---XG+----- +--* IND long - [000287] -----+----- | \--* ADD byref - [000283] -----+----- | +--* LCL_VAR byref V00 arg0 - [000286] -----+----- | \--* LSH long - [000284] -----+----- | +--* LCL_VAR long V04 loc1 - [000285] -----+----- | \--* CNS_INT long 3 - [000289] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) - [000313] ---XG+----- * JTRUE void - [000464] J--XG+-N--- \--* NE int - [000305] ---XG+----- +--* IND long - [000304] -----+----- | \--* ADD byref - [000297] -----+----- | +--* LCL_VAR byref V00 arg0 - [000303] -----+----- | \--* ADD long - [000301] -----+----- | +--* LSH long - [000298] -----+----- | | +--* LCL_VAR long V04 loc1 - [000300] -----+----- | | \--* CNS_INT long 3 - [000302] -----+----- | \--* CNS_INT long -8 - [000306] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) - [000330] ---XG+----- * JTRUE void - [000471] J--XG+-N--- \--* NE int - [000322] ---XG+----- +--* IND long - [000321] -----+----- | \--* ADD byref - [000314] -----+----- | +--* LCL_VAR byref V00 arg0 - [000320] -----+----- | \--* ADD long - [000318] -----+----- | +--* LSH long - [000315] -----+----- | | +--* LCL_VAR long V04 loc1 - [000317] -----+----- | | \--* CNS_INT long 3 - [000319] -----+----- | \--* CNS_INT long -16 - [000323] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] ---XG+----- * JTRUE void - [000478] J--XG+-N--- \--* NE int - [000339] ---XG+----- +--* IND long - [000338] -----+----- | \--* ADD byref - [000331] -----+----- | +--* LCL_VAR byref V00 arg0 - [000337] -----+----- | \--* ADD long - [000335] -----+----- | +--* LSH long - [000332] -----+----- | | +--* LCL_VAR long V04 loc1 - [000334] -----+----- | | \--* CNS_INT long 3 - [000336] -----+----- | \--* CNS_INT long -24 - [000340] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} - ------------- BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) - [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000351] -----+----- \--* ADD long - [000348] -----+----- +--* LCL_VAR long V04 loc1 - [000350] -----+----- \--* CNS_INT long -4 - ------------- BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB40,BB66} succs={BB40,BB61} - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) - [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000253] -----+----- \--* ADD int - [000251] -----+----- +--* LCL_VAR int V02 arg2 - [000252] -----+----- \--* CNS_INT int -1 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] ---XG+----- * JTRUE void - [000485] J--XG+-N--- \--* EQ int - [000260] ---XG+----- +--* IND long - [000259] -----+----- | \--* ADD byref - [000255] -----+----- | +--* LCL_VAR byref V00 arg0 - [000258] -----+----- | \--* LSH long - [000256] -----+----- | +--* LCL_VAR long V04 loc1 - [000257] -----+----- | \--* CNS_INT long 3 - [000261] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000272] -----+----- \--* ADD long - [000269] -----+----- +--* LCL_VAR long V04 loc1 - [000271] -----+----- \--* CNS_INT long -1 - -***** BB40 [0039] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - ( 7, 6) [000250] -----+----- * JTRUE void - ( 5, 4) [000249] J----+-N--- \--* GT int - ( 3, 2) [000247] -----+----- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 - ------------- BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB37,BB69} succs={BB66,BB67} - -***** BB60 [0087] -STMT00089 ( 0x2E5[E--] ... ??? ) - ( 7, 6) [000531] ----------- * JTRUE void - ( 5, 4) [000532] J------N--- \--* LE int - ( 3, 2) [000533] ----------- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000534] ----------- \--* CNS_INT int 0 - ------------- BB66 [0093] [???..???) -> BB38(1) (always), preds={BB60} succs={BB38} - ------------- BB42 [0041] [???..???) -> BB67(1) (always), preds={BB40} succs={BB67} - ------------- BB67 [0094] [2E9..2EB) (return), preds={BB42,BB60} succs={} - -***** BB67 [0094] -STMT00088 ( ??? ... ??? ) - [000493] -----+----- * RETURN int - [000277] -----+----- \--* CNS_INT int -1 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) - [000044] --CXG+----- * CALL void - [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 - [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 - [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 - ------------- BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) - [000492] -----+----- * RETURN int - [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Unroll loops -Analyzing iteration for L01 with header BB38 - Preheader = BB66 - Checking exiting block BB38 - Checking exiting block BB40 - Could not extract an IV - Could not find any IV -Analyzing iteration for L00 with header BB10 - Preheader = BB68 - Checking exiting block BB10 - Checking exiting block BB12 - Could not extract an IV - Checking exiting block BB14 - Could not extract an IV - Checking exiting block BB16 - Could not extract an IV - Checking exiting block BB18 - Could not extract an IV - Checking exiting block BB20 - Could not extract an IV - Checking exiting block BB22 - Could not extract an IV - Checking exiting block BB24 - Could not extract an IV - Checking exiting block BB26 - Could not extract an IV - Could not find any IV -*************** In fgDebugCheckBBlist - -*************** Finishing PHASE Unroll loops [no changes] - -*************** Starting PHASE Compute dominators - -*************** Finishing PHASE Compute dominators [no changes] - -*************** Starting PHASE Morph array ops -No multi-dimensional array references in the function - -*************** Finishing PHASE Morph array ops [no changes] - -*************** Starting PHASE Mark local vars - -*************** In lvaMarkLocalVars() -*** lvaComputeRefCounts *** - -*** lvaComputePreciseRefCounts -- explicit counts *** - -*** marking local variables in block BB01 (weight=1) -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000384] -----+----- * JTRUE void - [000002] J----+-N--- \--* GE int - [000000] -----+----- +--* LCL_VAR int V02 arg2 - [000001] -----+----- \--* CNS_INT int 0 -New refCnts for V02: refCnt = 1, refCntWtd = 1 - -*** marking local variables in block BB52 (weight=0.50) -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - [000387] --CXG+----- * CALL void - [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref - [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref - -*** marking local variables in block BB57 (weight=1) -STMT00003 ( 0x05D[E--] ... 0x063 ) - [000034] -----+----- * JTRUE void - [000033] J----+-N--- \--* GE int - [000031] -----+----- +--* LCL_VAR int V02 arg2 - [000032] -----+----- \--* CNS_INT int 2 vector element count -New refCnts for V02: refCnt = 2, refCntWtd = 2 - -*** marking local variables in block BB09 (weight=0.50) -STMT00005 ( 0x068[E--] ... 0x06D ) - [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000050] -----+----- \--* ADD long - [000047] -----+----- +--* CAST long <- int - [000046] -----+----- | \--* LCL_VAR int V02 arg2 - [000049] -----+----- \--* CNS_INT long -1 -New refCnts for V04: refCnt = 1, refCntWtd = 0.50 -V04 needs explicit zero init. Disqualified as a single-def register candidate. -New refCnts for V02: refCnt = 3, refCntWtd = 2.50 -STMT00090 ( 0x1E7[E--] ... ??? ) - ( 7, 6) [000535] ----------- * JTRUE void - ( 5, 4) [000536] J------N--- \--* LT int - ( 3, 2) [000537] ----------- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000538] ----------- \--* CNS_INT int 8 -New refCnts for V02: refCnt = 4, refCntWtd = 3 - -*** marking local variables in block BB68 (weight=0.50) - -*** marking local variables in block BB10 (weight=4) -STMT00007 ( 0x073[E--] ... 0x076 ) - [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000058] -----+----- \--* ADD int - [000056] -----+----- +--* LCL_VAR int V02 arg2 - [000057] -----+----- \--* CNS_INT int -8 -New refCnts for V02: refCnt = 5, refCntWtd = 7 -V02 needs explicit zero init. Disqualified as a single-def register candidate. -New refCnts for V02: refCnt = 6, refCntWtd = 11 -STMT00010 ( 0x078[E--] ... ??? ) - [000073] ---XG+----- * JTRUE void - [000401] J--XG+-N--- \--* NE int - [000065] ---XG+----- +--* IND long - [000064] -----+----- | \--* ADD byref - [000060] -----+----- | +--* LCL_VAR byref V00 arg0 - [000063] -----+----- | \--* LSH long - [000061] -----+----- | +--* LCL_VAR long V04 loc1 - [000062] -----+----- | \--* CNS_INT long 3 - [000066] -----+----- \--* LCL_VAR long V01 arg1 -New refCnts for V00: refCnt = 1, refCntWtd = 4 -New refCnts for V04: refCnt = 2, refCntWtd = 4.50 -New refCnts for V01: refCnt = 1, refCntWtd = 4 - -*** marking local variables in block BB12 (weight=4) -STMT00013 ( 0x0A0[E--] ... ??? ) - [000090] ---XG+----- * JTRUE void - [000408] J--XG+-N--- \--* NE int - [000082] ---XG+----- +--* IND long - [000081] -----+----- | \--* ADD byref - [000074] -----+----- | +--* LCL_VAR byref V00 arg0 - [000080] -----+----- | \--* ADD long - [000078] -----+----- | +--* LSH long - [000075] -----+----- | | +--* LCL_VAR long V04 loc1 - [000077] -----+----- | | \--* CNS_INT long 3 - [000079] -----+----- | \--* CNS_INT long -8 - [000083] -----+----- \--* LCL_VAR long V01 arg1 -New refCnts for V00: refCnt = 2, refCntWtd = 8 -New refCnts for V04: refCnt = 3, refCntWtd = 8.50 -New refCnts for V01: refCnt = 2, refCntWtd = 8 - -*** marking local variables in block BB14 (weight=4) -STMT00016 ( 0x0CE[E--] ... ??? ) - [000107] ---XG+----- * JTRUE void - [000415] J--XG+-N--- \--* NE int - [000099] ---XG+----- +--* IND long - [000098] -----+----- | \--* ADD byref - [000091] -----+----- | +--* LCL_VAR byref V00 arg0 - [000097] -----+----- | \--* ADD long - [000095] -----+----- | +--* LSH long - [000092] -----+----- | | +--* LCL_VAR long V04 loc1 - [000094] -----+----- | | \--* CNS_INT long 3 - [000096] -----+----- | \--* CNS_INT long -16 - [000100] -----+----- \--* LCL_VAR long V01 arg1 -New refCnts for V00: refCnt = 3, refCntWtd = 12 -New refCnts for V04: refCnt = 4, refCntWtd = 12.50 -New refCnts for V01: refCnt = 3, refCntWtd = 12 - -*** marking local variables in block BB16 (weight=4) -STMT00019 ( 0x0FC[E--] ... ??? ) - [000124] ---XG+----- * JTRUE void - [000422] J--XG+-N--- \--* NE int - [000116] ---XG+----- +--* IND long - [000115] -----+----- | \--* ADD byref - [000108] -----+----- | +--* LCL_VAR byref V00 arg0 - [000114] -----+----- | \--* ADD long - [000112] -----+----- | +--* LSH long - [000109] -----+----- | | +--* LCL_VAR long V04 loc1 - [000111] -----+----- | | \--* CNS_INT long 3 - [000113] -----+----- | \--* CNS_INT long -24 - [000117] -----+----- \--* LCL_VAR long V01 arg1 -New refCnts for V00: refCnt = 4, refCntWtd = 16 -New refCnts for V04: refCnt = 5, refCntWtd = 16.50 -New refCnts for V01: refCnt = 4, refCntWtd = 16 - -*** marking local variables in block BB18 (weight=4) -STMT00022 ( 0x12A[E--] ... ??? ) - [000141] ---XG+----- * JTRUE void - [000429] J--XG+-N--- \--* NE int - [000133] ---XG+----- +--* IND long - [000132] -----+----- | \--* ADD byref - [000125] -----+----- | +--* LCL_VAR byref V00 arg0 - [000131] -----+----- | \--* ADD long - [000129] -----+----- | +--* LSH long - [000126] -----+----- | | +--* LCL_VAR long V04 loc1 - [000128] -----+----- | | \--* CNS_INT long 3 - [000130] -----+----- | \--* CNS_INT long -32 - [000134] -----+----- \--* LCL_VAR long V01 arg1 -New refCnts for V00: refCnt = 5, refCntWtd = 20 -New refCnts for V04: refCnt = 6, refCntWtd = 20.50 -New refCnts for V01: refCnt = 5, refCntWtd = 20 - -*** marking local variables in block BB20 (weight=4) -STMT00025 ( 0x158[E--] ... ??? ) - [000158] ---XG+----- * JTRUE void - [000436] J--XG+-N--- \--* NE int - [000150] ---XG+----- +--* IND long - [000149] -----+----- | \--* ADD byref - [000142] -----+----- | +--* LCL_VAR byref V00 arg0 - [000148] -----+----- | \--* ADD long - [000146] -----+----- | +--* LSH long - [000143] -----+----- | | +--* LCL_VAR long V04 loc1 - [000145] -----+----- | | \--* CNS_INT long 3 - [000147] -----+----- | \--* CNS_INT long -40 - [000151] -----+----- \--* LCL_VAR long V01 arg1 -New refCnts for V00: refCnt = 6, refCntWtd = 24 -New refCnts for V04: refCnt = 7, refCntWtd = 24.50 -New refCnts for V01: refCnt = 6, refCntWtd = 24 - -*** marking local variables in block BB22 (weight=4) -STMT00028 ( 0x186[E--] ... ??? ) - [000175] ---XG+----- * JTRUE void - [000443] J--XG+-N--- \--* NE int - [000167] ---XG+----- +--* IND long - [000166] -----+----- | \--* ADD byref - [000159] -----+----- | +--* LCL_VAR byref V00 arg0 - [000165] -----+----- | \--* ADD long - [000163] -----+----- | +--* LSH long - [000160] -----+----- | | +--* LCL_VAR long V04 loc1 - [000162] -----+----- | | \--* CNS_INT long 3 - [000164] -----+----- | \--* CNS_INT long -48 - [000168] -----+----- \--* LCL_VAR long V01 arg1 -New refCnts for V00: refCnt = 7, refCntWtd = 28 -New refCnts for V04: refCnt = 8, refCntWtd = 28.50 -New refCnts for V01: refCnt = 7, refCntWtd = 28 - -*** marking local variables in block BB24 (weight=4) -STMT00031 ( 0x1B4[E--] ... ??? ) - [000192] ---XG+----- * JTRUE void - [000450] J--XG+-N--- \--* NE int - [000184] ---XG+----- +--* IND long - [000183] -----+----- | \--* ADD byref - [000176] -----+----- | +--* LCL_VAR byref V00 arg0 - [000182] -----+----- | \--* ADD long - [000180] -----+----- | +--* LSH long - [000177] -----+----- | | +--* LCL_VAR long V04 loc1 - [000179] -----+----- | | \--* CNS_INT long 3 - [000181] -----+----- | \--* CNS_INT long -56 - [000185] -----+----- \--* LCL_VAR long V01 arg1 -New refCnts for V00: refCnt = 8, refCntWtd = 32 -New refCnts for V04: refCnt = 9, refCntWtd = 32.50 -New refCnts for V01: refCnt = 8, refCntWtd = 32 - -*** marking local variables in block BB26 (weight=4) -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000196] -----+----- \--* ADD long - [000193] -----+----- +--* LCL_VAR long V04 loc1 - [000195] -----+----- \--* CNS_INT long -8 -New refCnts for V04: refCnt = 10, refCntWtd = 36.50 -New refCnts for V04: refCnt = 11, refCntWtd = 40.50 -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - ( 7, 6) [000055] -----+----- * JTRUE void - ( 5, 4) [000054] J----+-N--- \--* GE int - ( 3, 2) [000052] -----+----- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 -New refCnts for V02: refCnt = 7, refCntWtd = 15 - -*** marking local variables in block BB61 (weight=0.25) - -*** marking local variables in block BB62 (weight=0.25) - -*** marking local variables in block BB11 (weight=0.50) -STMT00040 ( 0x09D[E--] ... 0x09F ) - [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000240] -----+----- \--* LCL_VAR int V04 loc1 -New refCnts for V34: refCnt = 1, refCntWtd = 1 -V34 needs explicit zero init. Disqualified as a single-def register candidate. -New refCnts for V04: refCnt = 12, refCntWtd = 41 - -*** marking local variables in block BB63 (weight=0.25) - -*** marking local variables in block BB13 (weight=0.50) -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000237] -----+----- \--* ADD int - [000234] -----+----- +--* LCL_VAR int V04 loc1 - [000519] -----+----- \--* CNS_INT int -1 -New refCnts for V34: refCnt = 2, refCntWtd = 2 -New refCnts for V04: refCnt = 13, refCntWtd = 41.50 - -*** marking local variables in block BB64 (weight=0.25) - -*** marking local variables in block BB15 (weight=0.50) -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000231] -----+----- \--* ADD int - [000228] -----+----- +--* LCL_VAR int V04 loc1 - [000516] -----+----- \--* CNS_INT int -2 -New refCnts for V34: refCnt = 3, refCntWtd = 3 -New refCnts for V04: refCnt = 14, refCntWtd = 42 - -*** marking local variables in block BB65 (weight=0.25) - -*** marking local variables in block BB17 (weight=0.50) -STMT00037 ( 0x124[E--] ... 0x129 ) - [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000225] -----+----- \--* ADD int - [000222] -----+----- +--* LCL_VAR int V04 loc1 - [000513] -----+----- \--* CNS_INT int -3 -New refCnts for V34: refCnt = 4, refCntWtd = 4 -New refCnts for V04: refCnt = 15, refCntWtd = 42.50 - -*** marking local variables in block BB19 (weight=0.50) -STMT00036 ( 0x152[E--] ... 0x157 ) - [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000219] -----+----- \--* ADD int - [000216] -----+----- +--* LCL_VAR int V04 loc1 - [000510] -----+----- \--* CNS_INT int -4 -New refCnts for V34: refCnt = 5, refCntWtd = 5 -New refCnts for V04: refCnt = 16, refCntWtd = 43 - -*** marking local variables in block BB21 (weight=0.50) -STMT00035 ( 0x180[E--] ... 0x185 ) - [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000213] -----+----- \--* ADD int - [000210] -----+----- +--* LCL_VAR int V04 loc1 - [000507] -----+----- \--* CNS_INT int -5 -New refCnts for V34: refCnt = 6, refCntWtd = 6 -New refCnts for V04: refCnt = 17, refCntWtd = 43.50 - -*** marking local variables in block BB23 (weight=0.50) -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) - [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000207] -----+----- \--* ADD int - [000204] -----+----- +--* LCL_VAR int V04 loc1 - [000504] -----+----- \--* CNS_INT int -6 -New refCnts for V34: refCnt = 7, refCntWtd = 7 -New refCnts for V04: refCnt = 18, refCntWtd = 44 - -*** marking local variables in block BB25 (weight=0.50) -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) - [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 - [000201] -----+----- \--* ADD int - [000198] -----+----- +--* LCL_VAR int V04 loc1 - [000501] -----+----- \--* CNS_INT int -7 -New refCnts for V34: refCnt = 8, refCntWtd = 8 -New refCnts for V04: refCnt = 19, refCntWtd = 44.50 - -*** marking local variables in block BB28 (weight=0.50) - -*** marking local variables in block BB69 (weight=0.50) -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) - [000246] -----+----- * JTRUE void - [000245] J----+-N--- \--* LT int - [000243] -----+----- +--* LCL_VAR int V02 arg2 - [000244] -----+----- \--* CNS_INT int 4 -New refCnts for V02: refCnt = 8, refCntWtd = 15.50 - -*** marking local variables in block BB29 (weight=0.50) -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) - [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000281] -----+----- \--* ADD int - [000279] -----+----- +--* LCL_VAR int V02 arg2 - [000280] -----+----- \--* CNS_INT int -4 -New refCnts for V02: refCnt = 9, refCntWtd = 16 -New refCnts for V02: refCnt = 10, refCntWtd = 16.50 -STMT00053 ( 0x1FA[E--] ... ??? ) - [000296] ---XG+----- * JTRUE void - [000457] J--XG+-N--- \--* EQ int - [000288] ---XG+----- +--* IND long - [000287] -----+----- | \--* ADD byref - [000283] -----+----- | +--* LCL_VAR byref V00 arg0 - [000286] -----+----- | \--* LSH long - [000284] -----+----- | +--* LCL_VAR long V04 loc1 - [000285] -----+----- | \--* CNS_INT long 3 - [000289] -----+----- \--* LCL_VAR long V01 arg1 -New refCnts for V00: refCnt = 9, refCntWtd = 32.50 -New refCnts for V04: refCnt = 20, refCntWtd = 45 -New refCnts for V01: refCnt = 9, refCntWtd = 32.50 - -*** marking local variables in block BB31 (weight=0.50) -STMT00056 ( 0x222[E--] ... ??? ) - [000313] ---XG+----- * JTRUE void - [000464] J--XG+-N--- \--* NE int - [000305] ---XG+----- +--* IND long - [000304] -----+----- | \--* ADD byref - [000297] -----+----- | +--* LCL_VAR byref V00 arg0 - [000303] -----+----- | \--* ADD long - [000301] -----+----- | +--* LSH long - [000298] -----+----- | | +--* LCL_VAR long V04 loc1 - [000300] -----+----- | | \--* CNS_INT long 3 - [000302] -----+----- | \--* CNS_INT long -8 - [000306] -----+----- \--* LCL_VAR long V01 arg1 -New refCnts for V00: refCnt = 10, refCntWtd = 33 -New refCnts for V04: refCnt = 21, refCntWtd = 45.50 -New refCnts for V01: refCnt = 10, refCntWtd = 33 - -*** marking local variables in block BB32 (weight=0.50) - -*** marking local variables in block BB33 (weight=0.50) -STMT00059 ( 0x250[E--] ... ??? ) - [000330] ---XG+----- * JTRUE void - [000471] J--XG+-N--- \--* NE int - [000322] ---XG+----- +--* IND long - [000321] -----+----- | \--* ADD byref - [000314] -----+----- | +--* LCL_VAR byref V00 arg0 - [000320] -----+----- | \--* ADD long - [000318] -----+----- | +--* LSH long - [000315] -----+----- | | +--* LCL_VAR long V04 loc1 - [000317] -----+----- | | \--* CNS_INT long 3 - [000319] -----+----- | \--* CNS_INT long -16 - [000323] -----+----- \--* LCL_VAR long V01 arg1 -New refCnts for V00: refCnt = 11, refCntWtd = 33.50 -New refCnts for V04: refCnt = 22, refCntWtd = 46 -New refCnts for V01: refCnt = 11, refCntWtd = 33.50 - -*** marking local variables in block BB34 (weight=0.50) - -*** marking local variables in block BB35 (weight=0.50) -STMT00062 ( 0x27E[E--] ... ??? ) - [000347] ---XG+----- * JTRUE void - [000478] J--XG+-N--- \--* NE int - [000339] ---XG+----- +--* IND long - [000338] -----+----- | \--* ADD byref - [000331] -----+----- | +--* LCL_VAR byref V00 arg0 - [000337] -----+----- | \--* ADD long - [000335] -----+----- | +--* LSH long - [000332] -----+----- | | +--* LCL_VAR long V04 loc1 - [000334] -----+----- | | \--* CNS_INT long 3 - [000336] -----+----- | \--* CNS_INT long -24 - [000340] -----+----- \--* LCL_VAR long V01 arg1 -New refCnts for V00: refCnt = 12, refCntWtd = 34 -New refCnts for V04: refCnt = 23, refCntWtd = 46.50 -New refCnts for V01: refCnt = 12, refCntWtd = 34 - -*** marking local variables in block BB36 (weight=0.50) - -*** marking local variables in block BB37 (weight=0.50) -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) - [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000351] -----+----- \--* ADD long - [000348] -----+----- +--* LCL_VAR long V04 loc1 - [000350] -----+----- \--* CNS_INT long -4 -New refCnts for V04: refCnt = 24, refCntWtd = 47 -New refCnts for V04: refCnt = 25, refCntWtd = 47.50 - -*** marking local variables in block BB38 (weight=4) -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) - [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 - [000253] -----+----- \--* ADD int - [000251] -----+----- +--* LCL_VAR int V02 arg2 - [000252] -----+----- \--* CNS_INT int -1 -New refCnts for V02: refCnt = 11, refCntWtd = 20.50 -New refCnts for V02: refCnt = 12, refCntWtd = 24.50 -STMT00046 ( 0x2B8[E--] ... ??? ) - [000268] ---XG+----- * JTRUE void - [000485] J--XG+-N--- \--* EQ int - [000260] ---XG+----- +--* IND long - [000259] -----+----- | \--* ADD byref - [000255] -----+----- | +--* LCL_VAR byref V00 arg0 - [000258] -----+----- | \--* LSH long - [000256] -----+----- | +--* LCL_VAR long V04 loc1 - [000257] -----+----- | \--* CNS_INT long 3 - [000261] -----+----- \--* LCL_VAR long V01 arg1 -New refCnts for V00: refCnt = 13, refCntWtd = 38 -New refCnts for V04: refCnt = 26, refCntWtd = 51.50 -New refCnts for V01: refCnt = 13, refCntWtd = 38 - -*** marking local variables in block BB40 (weight=4) -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 - [000272] -----+----- \--* ADD long - [000269] -----+----- +--* LCL_VAR long V04 loc1 - [000271] -----+----- \--* CNS_INT long -1 -New refCnts for V04: refCnt = 27, refCntWtd = 55.50 -New refCnts for V04: refCnt = 28, refCntWtd = 59.50 -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - ( 7, 6) [000250] -----+----- * JTRUE void - ( 5, 4) [000249] J----+-N--- \--* GT int - ( 3, 2) [000247] -----+----- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 -New refCnts for V02: refCnt = 13, refCntWtd = 28.50 - -*** marking local variables in block BB60 (weight=0.75) -STMT00089 ( 0x2E5[E--] ... ??? ) - ( 7, 6) [000531] ----------- * JTRUE void - ( 5, 4) [000532] J------N--- \--* LE int - ( 3, 2) [000533] ----------- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000534] ----------- \--* CNS_INT int 0 -New refCnts for V02: refCnt = 14, refCntWtd = 29.25 - -*** marking local variables in block BB66 (weight=0.75) - -*** marking local variables in block BB42 (weight=0.50) - -*** marking local variables in block BB67 (weight=0.50) -STMT00088 ( ??? ... ??? ) - [000493] -----+----- * RETURN int - [000277] -----+----- \--* CNS_INT int -1 - -*** marking local variables in block BB43 (weight=0.50) -STMT00004 ( 0x31B[E--] ... 0x323 ) - [000044] --CXG+----- * CALL void - [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 - [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 - [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 -New refCnts for V00: refCnt = 14, refCntWtd = 38.50 -New refCnts for V01: refCnt = 14, refCntWtd = 38.50 -New refCnts for V02: refCnt = 15, refCntWtd = 29.75 - -*** marking local variables in block BB58 (weight=0.50) -STMT00087 ( ??? ... ??? ) - [000492] -----+----- * RETURN int - [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 -New refCnts for V34: refCnt = 9, refCntWtd = 9 - -*** lvaComputePreciseRefCounts -- implicit counts *** -New refCnts for V00: refCnt = 15, refCntWtd = 39.50 -New refCnts for V00: refCnt = 16, refCntWtd = 40.50 -New refCnts for V01: refCnt = 15, refCntWtd = 39.50 -New refCnts for V01: refCnt = 16, refCntWtd = 40.50 -New refCnts for V02: refCnt = 16, refCntWtd = 30.75 -New refCnts for V02: refCnt = 17, refCntWtd = 31.75 - -*************** Finishing PHASE Mark local vars [no changes] - -*************** Starting PHASE Find oper order -*************** In fgFindOperOrder() - -*************** Finishing PHASE Find oper order -Trees after Find oper order - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(0.5),BB68(0.5) ( cond ) i -BB68 [0095] 1 BB09 0.50 [???..???)-> BB10(1) (always) i -BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target -BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd -BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd -BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd -BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd -BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal -BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal -BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i -BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal -BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i -BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal -BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i -BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal -BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i -BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i -BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i -BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i -BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i -BB28 [0027] 1 BB26 0.50 [???..???)-> BB69(1) (always) i -BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB69 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i -BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i -BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i -BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i -BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd -BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal -BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal -BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i -BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall -BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - ( 5, 5) [000384] -----+----- * JTRUE void - ( 3, 3) [000002] J----+-N--- \--* GE int - ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - ( 16, 15) [000387] --CXG+----- * CALL void - ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref - ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) - ( 5, 5) [000034] -----+----- * JTRUE void - ( 3, 3) [000033] J----+-N--- \--* GE int - ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count - ------------- BB09 [0008] [068..073) -> BB69(0.5),BB68(0.5) (cond), preds={BB57} succs={BB68,BB69} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) - ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 - ( 4, 5) [000050] -----+----- \--* ADD long - ( 2, 3) [000047] -----+----- +--* CAST long <- int - ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 - ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 - -***** BB09 [0008] -STMT00090 ( 0x1E7[E--] ... ??? ) - ( 5, 5) [000535] ----------- * JTRUE void - ( 3, 3) [000536] J------N--- \--* LT int - ( 1, 1) [000537] ----------- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000538] ----------- \--* CNS_INT int 8 - ------------- BB68 [0095] [???..???) -> BB10(1) (always), preds={BB09} succs={BB10} - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB26,BB68} succs={BB62,BB12} - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) - ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 - ( 3, 3) [000058] -----+----- \--* ADD int - ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) - ( 9, 8) [000073] ---XG+----- * JTRUE void - ( 7, 6) [000401] J--XG+-N--- \--* NE int - ( 5, 4) [000065] ---XG+----- +--* IND long - ( 3, 3) [000064] -----+-N--- | \--* ADD byref - ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 - ( 2, 2) [000063] -----+-N--- | \--* LSH long - ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 - ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 - ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) - ( 9, 9) [000090] ---XG+----- * JTRUE void - ( 7, 7) [000408] J--XG+-N--- \--* NE int - ( 5, 5) [000082] ---XG+----- +--* IND long - ( 4, 4) [000081] -----+-N--- | \--* ADD byref - ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 - ( 3, 3) [000080] -----+-N--- | \--* ADD long - ( 2, 2) [000078] -----+-N--- | +--* LSH long - ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 - ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 - ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 - ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) - ( 9, 9) [000107] ---XG+----- * JTRUE void - ( 7, 7) [000415] J--XG+-N--- \--* NE int - ( 5, 5) [000099] ---XG+----- +--* IND long - ( 4, 4) [000098] -----+-N--- | \--* ADD byref - ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 - ( 3, 3) [000097] -----+-N--- | \--* ADD long - ( 2, 2) [000095] -----+-N--- | +--* LSH long - ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 - ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 - ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 - ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) - ( 9, 9) [000124] ---XG+----- * JTRUE void - ( 7, 7) [000422] J--XG+-N--- \--* NE int - ( 5, 5) [000116] ---XG+----- +--* IND long - ( 4, 4) [000115] -----+-N--- | \--* ADD byref - ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 - ( 3, 3) [000114] -----+-N--- | \--* ADD long - ( 2, 2) [000112] -----+-N--- | +--* LSH long - ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 - ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 - ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 - ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) - ( 9, 9) [000141] ---XG+----- * JTRUE void - ( 7, 7) [000429] J--XG+-N--- \--* NE int - ( 5, 5) [000133] ---XG+----- +--* IND long - ( 4, 4) [000132] -----+-N--- | \--* ADD byref - ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 - ( 3, 3) [000131] -----+-N--- | \--* ADD long - ( 2, 2) [000129] -----+-N--- | +--* LSH long - ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 - ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 - ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 - ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) - ( 9, 9) [000158] ---XG+----- * JTRUE void - ( 7, 7) [000436] J--XG+-N--- \--* NE int - ( 5, 5) [000150] ---XG+----- +--* IND long - ( 4, 4) [000149] -----+-N--- | \--* ADD byref - ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 - ( 3, 3) [000148] -----+-N--- | \--* ADD long - ( 2, 2) [000146] -----+-N--- | +--* LSH long - ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 - ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 - ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 - ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) - ( 9, 9) [000175] ---XG+----- * JTRUE void - ( 7, 7) [000443] J--XG+-N--- \--* NE int - ( 5, 5) [000167] ---XG+----- +--* IND long - ( 4, 4) [000166] -----+-N--- | \--* ADD byref - ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 - ( 3, 3) [000165] -----+-N--- | \--* ADD long - ( 2, 2) [000163] -----+-N--- | +--* LSH long - ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 - ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 - ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 - ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) - ( 9, 9) [000192] ---XG+----- * JTRUE void - ( 7, 7) [000450] J--XG+-N--- \--* NE int - ( 5, 5) [000184] ---XG+----- +--* IND long - ( 4, 4) [000183] -----+-N--- | \--* ADD byref - ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 - ( 3, 3) [000182] -----+-N--- | \--* ADD long - ( 2, 2) [000180] -----+-N--- | +--* LSH long - ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 - ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 - ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 - ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB26 [0025] [1E2..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB24} succs={BB28,BB10} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) - ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 - ( 3, 3) [000196] -----+----- \--* ADD long - ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 - ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 - -***** BB26 [0025] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) - ( 5, 5) [000055] -----+----- * JTRUE void - ( 3, 3) [000054] J----+-N--- \--* GE int - ( 1, 1) [000052] -----+----- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 - ------------- BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} - ------------- BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} - ------------- BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) - ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 - ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 - ------------- BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} - ------------- BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) - ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 - ( 3, 3) [000237] -----+----- \--* ADD int - ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 - ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 - ------------- BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} - ------------- BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) - ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 - ( 3, 3) [000231] -----+----- \--* ADD int - ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 - ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 - ------------- BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} - ------------- BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) - ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 - ( 3, 3) [000225] -----+----- \--* ADD int - ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 - ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 - ------------- BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) - ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 - ( 3, 3) [000219] -----+----- \--* ADD int - ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 - ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 - ------------- BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) - ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 - ( 3, 3) [000213] -----+----- \--* ADD int - ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 - ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 - ------------- BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) - ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 - ( 3, 3) [000207] -----+----- \--* ADD int - ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 - ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 - ------------- BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) - ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 - ( 3, 3) [000201] -----+----- \--* ADD int - ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 - ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 - ------------- BB28 [0027] [???..???) -> BB69(1) (always), preds={BB26} succs={BB69} - ------------- BB69 [0096] [1EE..1F5) -> BB60(0.5),BB29(0.5) (cond), preds={BB09,BB28} succs={BB29,BB60} - -***** BB69 [0096] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) - ( 5, 5) [000246] -----+----- * JTRUE void - ( 3, 3) [000245] J----+-N--- \--* LT int - ( 1, 1) [000243] -----+----- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000244] -----+----- \--* CNS_INT int 4 - ------------- BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB69} succs={BB31,BB11} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) - ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 - ( 3, 3) [000281] -----+----- \--* ADD int - ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) - ( 9, 8) [000296] ---XG+----- * JTRUE void - ( 7, 6) [000457] J--XG+-N--- \--* EQ int - ( 5, 4) [000288] ---XG+----- +--* IND long - ( 3, 3) [000287] -----+-N--- | \--* ADD byref - ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 - ( 2, 2) [000286] -----+-N--- | \--* LSH long - ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 - ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 - ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) - ( 9, 9) [000313] ---XG+----- * JTRUE void - ( 7, 7) [000464] J--XG+-N--- \--* NE int - ( 5, 5) [000305] ---XG+----- +--* IND long - ( 4, 4) [000304] -----+-N--- | \--* ADD byref - ( 1, 1) [000297] -----+----- | +--* LCL_VAR byref V00 arg0 - ( 3, 3) [000303] -----+-N--- | \--* ADD long - ( 2, 2) [000301] -----+-N--- | +--* LSH long - ( 1, 1) [000298] -----+----- | | +--* LCL_VAR long V04 loc1 - ( 1, 1) [000300] -----+----- | | \--* CNS_INT long 3 - ( 1, 1) [000302] -----+----- | \--* CNS_INT long -8 - ( 1, 1) [000306] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) - ( 9, 9) [000330] ---XG+----- * JTRUE void - ( 7, 7) [000471] J--XG+-N--- \--* NE int - ( 5, 5) [000322] ---XG+----- +--* IND long - ( 4, 4) [000321] -----+-N--- | \--* ADD byref - ( 1, 1) [000314] -----+----- | +--* LCL_VAR byref V00 arg0 - ( 3, 3) [000320] -----+-N--- | \--* ADD long - ( 2, 2) [000318] -----+-N--- | +--* LSH long - ( 1, 1) [000315] -----+----- | | +--* LCL_VAR long V04 loc1 - ( 1, 1) [000317] -----+----- | | \--* CNS_INT long 3 - ( 1, 1) [000319] -----+----- | \--* CNS_INT long -16 - ( 1, 1) [000323] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) - ( 9, 9) [000347] ---XG+----- * JTRUE void - ( 7, 7) [000478] J--XG+-N--- \--* NE int - ( 5, 5) [000339] ---XG+----- +--* IND long - ( 4, 4) [000338] -----+-N--- | \--* ADD byref - ( 1, 1) [000331] -----+----- | +--* LCL_VAR byref V00 arg0 - ( 3, 3) [000337] -----+-N--- | \--* ADD long - ( 2, 2) [000335] -----+-N--- | +--* LSH long - ( 1, 1) [000332] -----+----- | | +--* LCL_VAR long V04 loc1 - ( 1, 1) [000334] -----+----- | | \--* CNS_INT long 3 - ( 1, 1) [000336] -----+----- | \--* CNS_INT long -24 - ( 1, 1) [000340] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} - ------------- BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) - ( 3, 3) [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 - ( 3, 3) [000351] -----+----- \--* ADD long - ( 1, 1) [000348] -----+----- +--* LCL_VAR long V04 loc1 - ( 1, 1) [000350] -----+----- \--* CNS_INT long -4 - ------------- BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB40,BB66} succs={BB40,BB61} - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) - ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 - ( 3, 3) [000253] -----+----- \--* ADD int - ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) - ( 9, 8) [000268] ---XG+----- * JTRUE void - ( 7, 6) [000485] J--XG+-N--- \--* EQ int - ( 5, 4) [000260] ---XG+----- +--* IND long - ( 3, 3) [000259] -----+-N--- | \--* ADD byref - ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 - ( 2, 2) [000258] -----+-N--- | \--* LSH long - ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 - ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 - ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) - ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 - ( 3, 3) [000272] -----+----- \--* ADD long - ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 - ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 - -***** BB40 [0039] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) - ( 5, 5) [000250] -----+----- * JTRUE void - ( 3, 3) [000249] J----+-N--- \--* GT int - ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 - ------------- BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB37,BB69} succs={BB66,BB67} - -***** BB60 [0087] -STMT00089 ( 0x2E5[E--] ... ??? ) - ( 5, 5) [000531] ----------- * JTRUE void - ( 3, 3) [000532] J------N--- \--* LE int - ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 - ( 1, 1) [000534] ----------- \--* CNS_INT int 0 - ------------- BB66 [0093] [???..???) -> BB38(1) (always), preds={BB60} succs={BB38} - ------------- BB42 [0041] [???..???) -> BB67(1) (always), preds={BB40} succs={BB67} - ------------- BB67 [0094] [2E9..2EB) (return), preds={BB42,BB60} succs={} - -***** BB67 [0094] -STMT00088 ( ??? ... ??? ) - ( 2, 2) [000493] -----+----- * RETURN int - ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) - ( 17, 11) [000044] --CXG+----- * CALL void - ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 - ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 - ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 - ------------- BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) - ( 2, 2) [000492] -----+----- * RETURN int - ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Set block order -*************** In fgSetBlockOrder() -Found a cycle that does not go through a GC safe point: -BB38 <- BB40 <- BB38 -Marking method as fully interruptible -The biggest BB has 11 tree nodes - -*************** Finishing PHASE Set block order -Trees after Set block order - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(0.5),BB68(0.5) ( cond ) i -BB68 [0095] 1 BB09 0.50 [???..???)-> BB10(1) (always) i -BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target -BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd -BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd -BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd -BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd -BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal -BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal -BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i -BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal -BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i -BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal -BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i -BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal -BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i -BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i -BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i -BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i -BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i -BB28 [0027] 1 BB26 0.50 [???..???)-> BB69(1) (always) i -BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB69 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i -BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i -BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i -BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i -BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd -BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal -BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal -BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i -BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall -BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N004 ( 5, 5) [000384] -----+----- * JTRUE void -N003 ( 3, 3) [000002] J----+-N--- \--* GE int -N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 -N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N003 ( 16, 15) [000387] --CXG+----- * CALL void -N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref -N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) -N004 ( 5, 5) [000034] -----+----- * JTRUE void -N003 ( 3, 3) [000033] J----+-N--- \--* GE int -N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 -N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count - ------------- BB09 [0008] [068..073) -> BB69(0.5),BB68(0.5) (cond), preds={BB57} succs={BB68,BB69} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) -N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 -N004 ( 4, 5) [000050] -----+----- \--* ADD long -N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int -N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 -N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 - -***** BB09 [0008] -STMT00090 ( 0x1E7[E--] ... ??? ) -N004 ( 5, 5) [000535] ----------- * JTRUE void -N003 ( 3, 3) [000536] J------N--- \--* LT int -N001 ( 1, 1) [000537] ----------- +--* LCL_VAR int V02 arg2 -N002 ( 1, 1) [000538] ----------- \--* CNS_INT int 8 - ------------- BB68 [0095] [???..???) -> BB10(1) (always), preds={BB09} succs={BB10} - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB26,BB68} succs={BB62,BB12} - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) -N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 -N003 ( 3, 3) [000058] -----+----- \--* ADD int -N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 -N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) -N009 ( 9, 8) [000073] ---XG+----- * JTRUE void -N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int -N006 ( 5, 4) [000065] ---XG+----- +--* IND long -N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 -N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long -N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 -N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 -N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) -N011 ( 9, 9) [000090] ---XG+----- * JTRUE void -N010 ( 7, 7) [000408] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000082] ---XG+----- +--* IND long -N007 ( 4, 4) [000081] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 -N006 ( 3, 3) [000080] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000078] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 -N003 ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 -N009 ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) -N011 ( 9, 9) [000107] ---XG+----- * JTRUE void -N010 ( 7, 7) [000415] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000099] ---XG+----- +--* IND long -N007 ( 4, 4) [000098] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 -N006 ( 3, 3) [000097] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000095] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 -N003 ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 -N009 ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) -N011 ( 9, 9) [000124] ---XG+----- * JTRUE void -N010 ( 7, 7) [000422] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000116] ---XG+----- +--* IND long -N007 ( 4, 4) [000115] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 -N006 ( 3, 3) [000114] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000112] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 -N003 ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 -N009 ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) -N011 ( 9, 9) [000141] ---XG+----- * JTRUE void -N010 ( 7, 7) [000429] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000133] ---XG+----- +--* IND long -N007 ( 4, 4) [000132] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 -N006 ( 3, 3) [000131] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000129] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 -N003 ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 -N009 ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) -N011 ( 9, 9) [000158] ---XG+----- * JTRUE void -N010 ( 7, 7) [000436] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000150] ---XG+----- +--* IND long -N007 ( 4, 4) [000149] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 -N006 ( 3, 3) [000148] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000146] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 -N003 ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 -N009 ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) -N011 ( 9, 9) [000175] ---XG+----- * JTRUE void -N010 ( 7, 7) [000443] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000167] ---XG+----- +--* IND long -N007 ( 4, 4) [000166] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 -N006 ( 3, 3) [000165] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000163] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 -N003 ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 -N009 ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) -N011 ( 9, 9) [000192] ---XG+----- * JTRUE void -N010 ( 7, 7) [000450] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000184] ---XG+----- +--* IND long -N007 ( 4, 4) [000183] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 -N006 ( 3, 3) [000182] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000180] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 -N003 ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 -N009 ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB26 [0025] [1E2..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB24} succs={BB28,BB10} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) -N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 -N003 ( 3, 3) [000196] -----+----- \--* ADD long -N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 -N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 - -***** BB26 [0025] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) -N004 ( 5, 5) [000055] -----+----- * JTRUE void -N003 ( 3, 3) [000054] J----+-N--- \--* GE int -N001 ( 1, 1) [000052] -----+----- +--* LCL_VAR int V02 arg2 -N002 ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 - ------------- BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} - ------------- BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} - ------------- BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) -N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 -N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 - ------------- BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} - ------------- BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) -N004 ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 -N003 ( 3, 3) [000237] -----+----- \--* ADD int -N001 ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 -N002 ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 - ------------- BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} - ------------- BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) -N004 ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 -N003 ( 3, 3) [000231] -----+----- \--* ADD int -N001 ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 -N002 ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 - ------------- BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} - ------------- BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) -N004 ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 -N003 ( 3, 3) [000225] -----+----- \--* ADD int -N001 ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 -N002 ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 - ------------- BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) -N004 ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 -N003 ( 3, 3) [000219] -----+----- \--* ADD int -N001 ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 -N002 ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 - ------------- BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) -N004 ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 -N003 ( 3, 3) [000213] -----+----- \--* ADD int -N001 ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 -N002 ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 - ------------- BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) -N004 ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 -N003 ( 3, 3) [000207] -----+----- \--* ADD int -N001 ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 -N002 ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 - ------------- BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) -N004 ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 -N003 ( 3, 3) [000201] -----+----- \--* ADD int -N001 ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 -N002 ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 - ------------- BB28 [0027] [???..???) -> BB69(1) (always), preds={BB26} succs={BB69} - ------------- BB69 [0096] [1EE..1F5) -> BB60(0.5),BB29(0.5) (cond), preds={BB09,BB28} succs={BB29,BB60} - -***** BB69 [0096] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) -N004 ( 5, 5) [000246] -----+----- * JTRUE void -N003 ( 3, 3) [000245] J----+-N--- \--* LT int -N001 ( 1, 1) [000243] -----+----- +--* LCL_VAR int V02 arg2 -N002 ( 1, 1) [000244] -----+----- \--* CNS_INT int 4 - ------------- BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB69} succs={BB31,BB11} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) -N004 ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 -N003 ( 3, 3) [000281] -----+----- \--* ADD int -N001 ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 -N002 ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) -N009 ( 9, 8) [000296] ---XG+----- * JTRUE void -N008 ( 7, 6) [000457] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000288] ---XG+----- +--* IND long -N005 ( 3, 3) [000287] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 -N004 ( 2, 2) [000286] -----+-N--- | \--* LSH long -N002 ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 -N003 ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 -N007 ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) -N011 ( 9, 9) [000313] ---XG+----- * JTRUE void -N010 ( 7, 7) [000464] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000305] ---XG+----- +--* IND long -N007 ( 4, 4) [000304] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000297] -----+----- | +--* LCL_VAR byref V00 arg0 -N006 ( 3, 3) [000303] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000301] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000298] -----+----- | | +--* LCL_VAR long V04 loc1 -N003 ( 1, 1) [000300] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000302] -----+----- | \--* CNS_INT long -8 -N009 ( 1, 1) [000306] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) -N011 ( 9, 9) [000330] ---XG+----- * JTRUE void -N010 ( 7, 7) [000471] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000322] ---XG+----- +--* IND long -N007 ( 4, 4) [000321] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000314] -----+----- | +--* LCL_VAR byref V00 arg0 -N006 ( 3, 3) [000320] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000318] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000315] -----+----- | | +--* LCL_VAR long V04 loc1 -N003 ( 1, 1) [000317] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000319] -----+----- | \--* CNS_INT long -16 -N009 ( 1, 1) [000323] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) -N011 ( 9, 9) [000347] ---XG+----- * JTRUE void -N010 ( 7, 7) [000478] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000339] ---XG+----- +--* IND long -N007 ( 4, 4) [000338] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000331] -----+----- | +--* LCL_VAR byref V00 arg0 -N006 ( 3, 3) [000337] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000335] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000332] -----+----- | | +--* LCL_VAR long V04 loc1 -N003 ( 1, 1) [000334] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000336] -----+----- | \--* CNS_INT long -24 -N009 ( 1, 1) [000340] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} - ------------- BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) -N004 ( 3, 3) [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 -N003 ( 3, 3) [000351] -----+----- \--* ADD long -N001 ( 1, 1) [000348] -----+----- +--* LCL_VAR long V04 loc1 -N002 ( 1, 1) [000350] -----+----- \--* CNS_INT long -4 - ------------- BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB40,BB66} succs={BB40,BB61} - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) -N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 -N003 ( 3, 3) [000253] -----+----- \--* ADD int -N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 -N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) -N009 ( 9, 8) [000268] ---XG+----- * JTRUE void -N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000260] ---XG+----- +--* IND long -N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 -N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long -N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 -N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 -N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 - ------------- BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) -N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 -N003 ( 3, 3) [000272] -----+----- \--* ADD long -N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 -N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 - -***** BB40 [0039] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) -N004 ( 5, 5) [000250] -----+----- * JTRUE void -N003 ( 3, 3) [000249] J----+-N--- \--* GT int -N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 -N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 - ------------- BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB37,BB69} succs={BB66,BB67} - -***** BB60 [0087] -STMT00089 ( 0x2E5[E--] ... ??? ) -N004 ( 5, 5) [000531] ----------- * JTRUE void -N003 ( 3, 3) [000532] J------N--- \--* LE int -N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 -N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 - ------------- BB66 [0093] [???..???) -> BB38(1) (always), preds={BB60} succs={BB38} - ------------- BB42 [0041] [???..???) -> BB67(1) (always), preds={BB40} succs={BB67} - ------------- BB67 [0094] [2E9..2EB) (return), preds={BB42,BB60} succs={} - -***** BB67 [0094] -STMT00088 ( ??? ... ??? ) -N002 ( 2, 2) [000493] -----+----- * RETURN int -N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) -N004 ( 17, 11) [000044] --CXG+----- * CALL void -N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 -N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 -N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 - ------------- BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) -N002 ( 2, 2) [000492] -----+----- * RETURN int -N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Build SSA representation -*************** In SsaBuilder::Build() -*************** In Liveness::Run() -In Liveness::Init - -Local V05 should not be enregistered because: struct size does not match reg size -Tracked variable (5 out of 35) table: -V04 loc1 [ long]: refCnt = 28, refCntWtd = 59.50 -V00 arg0 [ byref]: refCnt = 16, refCntWtd = 40.50 -V01 arg1 [ long]: refCnt = 16, refCntWtd = 40.50 -V02 arg2 [ int]: refCnt = 17, refCntWtd = 31.75 -V34 tmp29 [ int]: refCnt = 9, refCntWtd = 9 - -*************** In Liveness::PerBlockLocalVarLiveness() -BB01 USE(1)={V02} - DEF(0)={ } - -BB52 USE(0)={} + ByrefExposed + GcHeap - DEF(0)={} + ByrefExposed* + GcHeap* - -BB57 USE(1)={V02} - DEF(0)={ } - -BB09 USE(1)={ V02} - DEF(1)={V04 } - -BB68 USE(0)={} - DEF(0)={} - -BB10 USE(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - DEF(1)={ V02} - -BB12 USE(3)={V04 V00 V01} + ByrefExposed + GcHeap - DEF(0)={ } - -BB14 USE(3)={V04 V00 V01} + ByrefExposed + GcHeap - DEF(0)={ } - -BB16 USE(3)={V04 V00 V01} + ByrefExposed + GcHeap - DEF(0)={ } - -BB18 USE(3)={V04 V00 V01} + ByrefExposed + GcHeap - DEF(0)={ } - -BB20 USE(3)={V04 V00 V01} + ByrefExposed + GcHeap - DEF(0)={ } - -BB22 USE(3)={V04 V00 V01} + ByrefExposed + GcHeap - DEF(0)={ } - -BB24 USE(3)={V04 V00 V01} + ByrefExposed + GcHeap - DEF(0)={ } - -BB26 USE(2)={V04 V02} - DEF(1)={V04 } - -BB61 USE(0)={} - DEF(0)={} - -BB62 USE(0)={} - DEF(0)={} - -BB11 USE(1)={V04 } - DEF(1)={ V34} - -BB63 USE(0)={} - DEF(0)={} - -BB13 USE(1)={V04 } - DEF(1)={ V34} - -BB64 USE(0)={} - DEF(0)={} - -BB15 USE(1)={V04 } - DEF(1)={ V34} - -BB65 USE(0)={} - DEF(0)={} - -BB17 USE(1)={V04 } - DEF(1)={ V34} - -BB19 USE(1)={V04 } - DEF(1)={ V34} - -BB21 USE(1)={V04 } - DEF(1)={ V34} - -BB23 USE(1)={V04 } - DEF(1)={ V34} - -BB25 USE(1)={V04 } - DEF(1)={ V34} - -BB28 USE(0)={} - DEF(0)={} - -BB69 USE(1)={V02} - DEF(0)={ } - -BB29 USE(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - DEF(1)={ V02} - -BB31 USE(3)={V04 V00 V01} + ByrefExposed + GcHeap - DEF(0)={ } - -BB32 USE(0)={} - DEF(0)={} - -BB33 USE(3)={V04 V00 V01} + ByrefExposed + GcHeap - DEF(0)={ } - -BB34 USE(0)={} - DEF(0)={} - -BB35 USE(3)={V04 V00 V01} + ByrefExposed + GcHeap - DEF(0)={ } - -BB36 USE(0)={} - DEF(0)={} - -BB37 USE(1)={V04} - DEF(1)={V04} - -BB38 USE(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - DEF(1)={ V02} - -BB40 USE(2)={V04 V02} - DEF(1)={V04 } - -BB60 USE(1)={V02} - DEF(0)={ } - -BB66 USE(0)={} - DEF(0)={} - -BB42 USE(0)={} - DEF(0)={} - -BB67 USE(0)={} - DEF(0)={} - -BB43 USE(3)={V00 V01 V02} + ByrefExposed + GcHeap - DEF(0)={ } + ByrefExposed* + GcHeap* - -BB58 USE(1)={V34} - DEF(0)={ } - -** Memory liveness computed, GcHeap states and ByrefExposed states match -*************** IngInterBlockLocalVarLiveness() - -BB liveness after DoLiveVarAnalysis(): - -BB01 IN (3)={V00 V01 V02} + ByrefExposed + GcHeap - OUT(3)={V00 V01 V02} + ByrefExposed + GcHeap - -BB52 IN (3)={V00 V01 V02} + ByrefExposed + GcHeap - OUT(3)={V00 V01 V02} + ByrefExposed + GcHeap - -BB57 IN (3)={V00 V01 V02} + ByrefExposed + GcHeap - OUT(3)={V00 V01 V02} + ByrefExposed + GcHeap - -BB09 IN (3)={ V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB68 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB10 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB12 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB14 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB16 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB18 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB20 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB22 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB24 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB26 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB61 IN (1)={V04} - OUT(1)={V04} - -BB62 IN (1)={V04} - OUT(1)={V04} - -BB11 IN (1)={V04 } - OUT(1)={ V34} - -BB63 IN (1)={V04} - OUT(1)={V04} - -BB13 IN (1)={V04 } - OUT(1)={ V34} - -BB64 IN (1)={V04} - OUT(1)={V04} - -BB15 IN (1)={V04 } - OUT(1)={ V34} - -BB65 IN (1)={V04} - OUT(1)={V04} - -BB17 IN (1)={V04 } - OUT(1)={ V34} - -BB19 IN (1)={V04 } - OUT(1)={ V34} - -BB21 IN (1)={V04 } - OUT(1)={ V34} - -BB23 IN (1)={V04 } - OUT(1)={ V34} - -BB25 IN (1)={V04 } - OUT(1)={ V34} - -BB28 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB69 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB29 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB31 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB32 IN (1)={V04} - OUT(1)={V04} - -BB33 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB34 IN (1)={V04} - OUT(1)={V04} - -BB35 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB36 IN (1)={V04} - OUT(1)={V04} - -BB37 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB38 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB40 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB60 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB66 IN (4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - OUT(4)={V04 V00 V01 V02} + ByrefExposed + GcHeap - -BB42 IN (0)={} - OUT(0)={} - -BB67 IN (0)={} - OUT(0)={} - -BB43 IN (3)={V00 V01 V02} + ByrefExposed + GcHeap - OUT(0)={ } - -BB58 IN (1)={V34} - OUT(0)={ } - -*************** In optRemoveRedundantZeroInits() -Analyzing BB01 -*************** In SsaBuilder::InsertPhiFunctions() -Inserting phi functions: -Added PHI definition for V34 at start of BB58. -Added PHI definition for V04 at start of BB38. -Added PHI definition for V04 at start of BB11. -Added PHI definition for V02 at start of BB38. -Added PHI definition for V04 at start of BB60. -Added PHI definition for V02 at start of BB60. -Added PHI definition for V04 at start of BB69. -Added PHI definition for V04 at start of BB10. -Added PHI definition for V04 at start of BB13. -Added PHI definition for V04 at start of BB15. -Added PHI definition for V04 at start of BB17. -Added PHI definition for V02 at start of BB69. -Added PHI definition for V02 at start of BB10. -Inserting phi definition for ByrefExposed at start of BB57. -*************** In SsaBuilder::RenameVariables() -V00.1: defined in BB00 14 uses (global) -V01.1: defined in BB00 14 uses (global) -V02.1: defined in BB00 7 uses (global), has phi uses -V02.2: defined in BB10 1 uses (local) -V02.3: defined in BB10 3 uses (global), has phi uses -V02.4: defined in BB69 3 uses (global), has phi uses -V02.5: defined in BB29 1 uses (global), has phi uses -V02.6: defined in BB60 2 uses (global), has phi uses -V02.7: defined in BB38 1 uses (local) -V02.8: defined in BB38 2 uses (global), has phi uses -V04.1: defined in BB09 2 uses (global), has phi uses -V04.2: defined in BB10 17 uses (global), has phi uses -V04.3: defined in BB26 2 uses (global), has phi uses -V04.4: defined in BB69 10 uses (global), has phi uses -V04.5: defined in BB37 1 uses (global), has phi uses -V04.6: defined in BB60 1 uses (global), has phi uses -V04.7: defined in BB38 3 uses (global), has phi uses -V04.8: defined in BB40 1 uses (global), has phi uses -V04.9: defined in BB17 1 uses (local) -V04.10: defined in BB15 1 uses (local) -V04.11: defined in BB13 1 uses (local) -V04.12: defined in BB11 1 uses (local) -V34.1: defined in BB25 1 uses (global), has phi uses -V34.2: defined in BB23 1 uses (global), has phi uses -V34.3: defined in BB21 1 uses (global), has phi uses -V34.4: defined in BB19 1 uses (global), has phi uses -V34.5: defined in BB17 1 uses (global), has phi uses -V34.6: defined in BB15 1 uses (global), has phi uses -V34.7: defined in BB13 1 uses (global), has phi uses -V34.8: defined in BB11 1 uses (global), has phi uses -V34.9: defined in BB58 1 uses (local) - -*************** Finishing PHASE Build SSA representation -Trees after Build SSA representation - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(0.5),BB68(0.5) ( cond ) i -BB68 [0095] 1 BB09 0.50 [???..???)-> BB10(1) (always) i -BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target -BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd -BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd -BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd -BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd -BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal -BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal -BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i -BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal -BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i -BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal -BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i -BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal -BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i -BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i -BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i -BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i -BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i -BB28 [0027] 1 BB26 0.50 [???..???)-> BB69(1) (always) i -BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB69 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i -BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i -BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i -BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i -BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd -BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal -BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal -BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i -BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall -BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} -SSA MEM: ByrefExposed, GcHeap = m:1 - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N004 ( 5, 5) [000384] -----+----- * JTRUE void -N003 ( 3, 3) [000002] J----+-N--- \--* GE int -N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 -N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 - -SSA MEM: ByrefExposed, GcHeap = m:1 - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} -SSA MEM: ByrefExposed, GcHeap = m:1 - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N003 ( 16, 15) [000387] --CXG+----- * CALL void -N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref -N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref - -SSA MEM: ByrefExposed, GcHeap = m:2 - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} -SSA MEM: ByrefExposed, GcHeap = phi(m:2, m:1) - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) -N004 ( 5, 5) [000034] -----+----- * JTRUE void -N003 ( 3, 3) [000033] J----+-N--- \--* GE int -N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 -N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB09 [0008] [068..073) -> BB69(0.5),BB68(0.5) (cond), preds={BB57} succs={BB68,BB69} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) -N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 -N004 ( 4, 5) [000050] -----+----- \--* ADD long -N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int -N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 -N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 - -***** BB09 [0008] -STMT00090 ( 0x1E7[E--] ... ??? ) -N004 ( 5, 5) [000535] ----------- * JTRUE void -N003 ( 3, 3) [000536] J------N--- \--* LT int -N001 ( 1, 1) [000537] ----------- +--* LCL_VAR int V02 arg2 u:1 -N002 ( 1, 1) [000538] ----------- \--* CNS_INT int 8 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB68 [0095] [???..???) -> BB10(1) (always), preds={BB09} succs={BB10} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB26,BB68} succs={BB62,BB12} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB10 [0009] -STMT00103 ( ??? ... ??? ) -N004 ( 0, 0) [000564] DA--------- * STORE_LCL_VAR int V02 arg2 d:2 -N003 ( 0, 0) [000563] ----------- \--* PHI int -N001 ( 0, 0) [000569] ----------- pred BB26 +--* PHI_ARG int V02 arg2 u:3 -N002 ( 0, 0) [000567] ----------- pred BB68 \--* PHI_ARG int V02 arg2 u:1 - -***** BB10 [0009] -STMT00098 ( ??? ... ??? ) -N004 ( 0, 0) [000554] DA--------- * STORE_LCL_VAR long V04 loc1 d:2 -N003 ( 0, 0) [000553] ----------- \--* PHI long -N001 ( 0, 0) [000570] ----------- pred BB26 +--* PHI_ARG long V04 loc1 u:3 -N002 ( 0, 0) [000568] ----------- pred BB68 \--* PHI_ARG long V04 loc1 u:1 - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) -N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 d:3 -N003 ( 3, 3) [000058] -----+----- \--* ADD int -N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 u:2 (last use) -N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) -N009 ( 9, 8) [000073] ---XG+----- * JTRUE void -N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int -N006 ( 5, 4) [000065] ---XG+----- +--* IND long -N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long -N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 u:2 -N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 -N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) -N011 ( 9, 9) [000090] ---XG+----- * JTRUE void -N010 ( 7, 7) [000408] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000082] ---XG+----- +--* IND long -N007 ( 4, 4) [000081] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N006 ( 3, 3) [000080] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000078] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 -N003 ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 -N009 ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) -N011 ( 9, 9) [000107] ---XG+----- * JTRUE void -N010 ( 7, 7) [000415] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000099] ---XG+----- +--* IND long -N007 ( 4, 4) [000098] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N006 ( 3, 3) [000097] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000095] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 -N003 ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 -N009 ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) -N011 ( 9, 9) [000124] ---XG+----- * JTRUE void -N010 ( 7, 7) [000422] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000116] ---XG+----- +--* IND long -N007 ( 4, 4) [000115] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N006 ( 3, 3) [000114] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000112] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 -N003 ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 -N009 ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) -N011 ( 9, 9) [000141] ---XG+----- * JTRUE void -N010 ( 7, 7) [000429] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000133] ---XG+----- +--* IND long -N007 ( 4, 4) [000132] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N006 ( 3, 3) [000131] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000129] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 -N003 ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 -N009 ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) -N011 ( 9, 9) [000158] ---XG+----- * JTRUE void -N010 ( 7, 7) [000436] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000150] ---XG+----- +--* IND long -N007 ( 4, 4) [000149] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N006 ( 3, 3) [000148] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000146] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 -N003 ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 -N009 ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) -N011 ( 9, 9) [000175] ---XG+----- * JTRUE void -N010 ( 7, 7) [000443] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000167] ---XG+----- +--* IND long -N007 ( 4, 4) [000166] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N006 ( 3, 3) [000165] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000163] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 -N003 ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 -N009 ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) -N011 ( 9, 9) [000192] ---XG+----- * JTRUE void -N010 ( 7, 7) [000450] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000184] ---XG+----- +--* IND long -N007 ( 4, 4) [000183] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N006 ( 3, 3) [000182] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000180] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 -N003 ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 -N009 ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB26 [0025] [1E2..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB24} succs={BB28,BB10} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) -N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 d:3 -N003 ( 3, 3) [000196] -----+----- \--* ADD long -N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 u:2 (last use) -N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 - -***** BB26 [0025] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) -N004 ( 5, 5) [000055] -----+----- * JTRUE void -N003 ( 3, 3) [000054] J----+-N--- \--* GE int -N001 ( 1, 1) [000052] -----+----- +--* LCL_VAR int V02 arg2 u:3 -N002 ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB11 [0010] -STMT00093 ( ??? ... ??? ) -N005 ( 0, 0) [000544] DA--------- * STORE_LCL_VAR long V04 loc1 d:12 -N004 ( 0, 0) [000543] ----------- \--* PHI long -N001 ( 0, 0) [000591] ----------- pred BB61 +--* PHI_ARG long V04 loc1 u:7 -N002 ( 0, 0) [000583] ----------- pred BB29 +--* PHI_ARG long V04 loc1 u:4 -N003 ( 0, 0) [000580] ----------- pred BB62 \--* PHI_ARG long V04 loc1 u:2 - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) -N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 -N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB13 [0012] -STMT00099 ( ??? ... ??? ) -N004 ( 0, 0) [000556] DA--------- * STORE_LCL_VAR long V04 loc1 d:11 -N003 ( 0, 0) [000555] ----------- \--* PHI long -N001 ( 0, 0) [000588] ----------- pred BB32 +--* PHI_ARG long V04 loc1 u:4 -N002 ( 0, 0) [000579] ----------- pred BB63 \--* PHI_ARG long V04 loc1 u:2 - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) -N004 ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:7 -N003 ( 3, 3) [000237] -----+----- \--* ADD int -N001 ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 u:11 (last use) -N002 ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB15 [0014] -STMT00100 ( ??? ... ??? ) -N004 ( 0, 0) [000558] DA--------- * STORE_LCL_VAR long V04 loc1 d:10 -N003 ( 0, 0) [000557] ----------- \--* PHI long -N001 ( 0, 0) [000587] ----------- pred BB34 +--* PHI_ARG long V04 loc1 u:4 -N002 ( 0, 0) [000578] ----------- pred BB64 \--* PHI_ARG long V04 loc1 u:2 - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) -N004 ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:6 -N003 ( 3, 3) [000231] -----+----- \--* ADD int -N001 ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 u:10 (last use) -N002 ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB17 [0016] -STMT00101 ( ??? ... ??? ) -N004 ( 0, 0) [000560] DA--------- * STORE_LCL_VAR long V04 loc1 d:9 -N003 ( 0, 0) [000559] ----------- \--* PHI long -N001 ( 0, 0) [000586] ----------- pred BB36 +--* PHI_ARG long V04 loc1 u:4 -N002 ( 0, 0) [000577] ----------- pred BB65 \--* PHI_ARG long V04 loc1 u:2 - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) -N004 ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:5 -N003 ( 3, 3) [000225] -----+----- \--* ADD int -N001 ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 u:9 (last use) -N002 ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) -N004 ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:4 -N003 ( 3, 3) [000219] -----+----- \--* ADD int -N001 ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) -N002 ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) -N004 ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:3 -N003 ( 3, 3) [000213] -----+----- \--* ADD int -N001 ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) -N002 ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) -N004 ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:2 -N003 ( 3, 3) [000207] -----+----- \--* ADD int -N001 ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) -N002 ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) -N004 ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:1 -N003 ( 3, 3) [000201] -----+----- \--* ADD int -N001 ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) -N002 ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB28 [0027] [???..???) -> BB69(1) (always), preds={BB26} succs={BB69} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB69 [0096] [1EE..1F5) -> BB60(0.5),BB29(0.5) (cond), preds={BB09,BB28} succs={BB29,BB60} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB69 [0096] -STMT00102 ( ??? ... ??? ) -N004 ( 0, 0) [000562] DA--------- * STORE_LCL_VAR int V02 arg2 d:4 -N003 ( 0, 0) [000561] ----------- \--* PHI int -N001 ( 0, 0) [000571] ----------- pred BB28 +--* PHI_ARG int V02 arg2 u:3 -N002 ( 0, 0) [000565] ----------- pred BB09 \--* PHI_ARG int V02 arg2 u:1 - -***** BB69 [0096] -STMT00097 ( ??? ... ??? ) -N004 ( 0, 0) [000552] DA--------- * STORE_LCL_VAR long V04 loc1 d:4 -N003 ( 0, 0) [000551] ----------- \--* PHI long -N001 ( 0, 0) [000572] ----------- pred BB28 +--* PHI_ARG long V04 loc1 u:3 -N002 ( 0, 0) [000566] ----------- pred BB09 \--* PHI_ARG long V04 loc1 u:1 - -***** BB69 [0096] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) -N004 ( 5, 5) [000246] -----+----- * JTRUE void -N003 ( 3, 3) [000245] J----+-N--- \--* LT int -N001 ( 1, 1) [000243] -----+----- +--* LCL_VAR int V02 arg2 u:4 -N002 ( 1, 1) [000244] -----+----- \--* CNS_INT int 4 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB69} succs={BB31,BB11} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) -N004 ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 d:5 -N003 ( 3, 3) [000281] -----+----- \--* ADD int -N001 ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 u:4 (last use) -N002 ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) -N009 ( 9, 8) [000296] ---XG+----- * JTRUE void -N008 ( 7, 6) [000457] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000288] ---XG+----- +--* IND long -N005 ( 3, 3) [000287] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N004 ( 2, 2) [000286] -----+-N--- | \--* LSH long -N002 ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 u:4 -N003 ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 -N007 ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) -N011 ( 9, 9) [000313] ---XG+----- * JTRUE void -N010 ( 7, 7) [000464] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000305] ---XG+----- +--* IND long -N007 ( 4, 4) [000304] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000297] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N006 ( 3, 3) [000303] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000301] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000298] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 -N003 ( 1, 1) [000300] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000302] -----+----- | \--* CNS_INT long -8 -N009 ( 1, 1) [000306] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) -N011 ( 9, 9) [000330] ---XG+----- * JTRUE void -N010 ( 7, 7) [000471] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000322] ---XG+----- +--* IND long -N007 ( 4, 4) [000321] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000314] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N006 ( 3, 3) [000320] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000318] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000315] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 -N003 ( 1, 1) [000317] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000319] -----+----- | \--* CNS_INT long -16 -N009 ( 1, 1) [000323] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) -N011 ( 9, 9) [000347] ---XG+----- * JTRUE void -N010 ( 7, 7) [000478] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000339] ---XG+----- +--* IND long -N007 ( 4, 4) [000338] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000331] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N006 ( 3, 3) [000337] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000335] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000332] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 -N003 ( 1, 1) [000334] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000336] -----+----- | \--* CNS_INT long -24 -N009 ( 1, 1) [000340] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) -N004 ( 3, 3) [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 d:5 -N003 ( 3, 3) [000351] -----+----- \--* ADD long -N001 ( 1, 1) [000348] -----+----- +--* LCL_VAR long V04 loc1 u:4 (last use) -N002 ( 1, 1) [000350] -----+----- \--* CNS_INT long -4 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB40,BB66} succs={BB40,BB61} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB38 [0037] -STMT00094 ( ??? ... ??? ) -N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 -N003 ( 0, 0) [000545] ----------- \--* PHI int -N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 -N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 - -***** BB38 [0037] -STMT00092 ( ??? ... ??? ) -N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 -N003 ( 0, 0) [000541] ----------- \--* PHI long -N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 -N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) -N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 -N003 ( 3, 3) [000253] -----+----- \--* ADD int -N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) -N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) -N009 ( 9, 8) [000268] ---XG+----- * JTRUE void -N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000260] ---XG+----- +--* IND long -N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long -N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 -N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 -N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) -N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 -N003 ( 3, 3) [000272] -----+----- \--* ADD long -N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) -N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 - -***** BB40 [0039] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) -N004 ( 5, 5) [000250] -----+----- * JTRUE void -N003 ( 3, 3) [000249] J----+-N--- \--* GT int -N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 -N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB37,BB69} succs={BB66,BB67} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB60 [0087] -STMT00096 ( ??? ... ??? ) -N004 ( 0, 0) [000550] DA--------- * STORE_LCL_VAR int V02 arg2 d:6 -N003 ( 0, 0) [000549] ----------- \--* PHI int -N001 ( 0, 0) [000584] ----------- pred BB37 +--* PHI_ARG int V02 arg2 u:5 -N002 ( 0, 0) [000581] ----------- pred BB69 \--* PHI_ARG int V02 arg2 u:4 - -***** BB60 [0087] -STMT00095 ( ??? ... ??? ) -N004 ( 0, 0) [000548] DA--------- * STORE_LCL_VAR long V04 loc1 d:6 -N003 ( 0, 0) [000547] ----------- \--* PHI long -N001 ( 0, 0) [000585] ----------- pred BB37 +--* PHI_ARG long V04 loc1 u:5 -N002 ( 0, 0) [000582] ----------- pred BB69 \--* PHI_ARG long V04 loc1 u:4 - -***** BB60 [0087] -STMT00089 ( 0x2E5[E--] ... ??? ) -N004 ( 5, 5) [000531] ----------- * JTRUE void -N003 ( 3, 3) [000532] J------N--- \--* LE int -N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 -N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB66 [0093] [???..???) -> BB38(1) (always), preds={BB60} succs={BB38} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB42 [0041] [???..???) -> BB67(1) (always), preds={BB40} succs={BB67} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB67 [0094] [2E9..2EB) (return), preds={BB42,BB60} succs={} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB67 [0094] -STMT00088 ( ??? ... ??? ) -N002 ( 2, 2) [000493] -----+----- * RETURN int -N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) -N004 ( 17, 11) [000044] --CXG+----- * CALL void -N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) -N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) -N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) - -SSA MEM: ByrefExposed, GcHeap = m:4 - ------------- BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB58 [0085] -STMT00091 ( ??? ... ??? ) -N010 ( 0, 0) [000540] DA--------- * STORE_LCL_VAR int V34 tmp29 d:9 -N009 ( 0, 0) [000539] ----------- \--* PHI int -N001 ( 0, 0) [000597] ----------- pred BB11 +--* PHI_ARG int V34 tmp29 u:8 -N002 ( 0, 0) [000596] ----------- pred BB13 +--* PHI_ARG int V34 tmp29 u:7 -N003 ( 0, 0) [000595] ----------- pred BB15 +--* PHI_ARG int V34 tmp29 u:6 -N004 ( 0, 0) [000594] ----------- pred BB17 +--* PHI_ARG int V34 tmp29 u:5 -N005 ( 0, 0) [000576] ----------- pred BB19 +--* PHI_ARG int V34 tmp29 u:4 -N006 ( 0, 0) [000575] ----------- pred BB21 +--* PHI_ARG int V34 tmp29 u:3 -N007 ( 0, 0) [000574] ----------- pred BB23 +--* PHI_ARG int V34 tmp29 u:2 -N008 ( 0, 0) [000573] ----------- pred BB25 \--* PHI_ARG int V34 tmp29 u:1 - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) -N002 ( 2, 2) [000492] -----+----- * RETURN int -N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) - -SSA MEM: ByrefExposed, GcHeap = m:3 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -SSA checks completed successfully -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Early Value Propagation -no arrays or null checks in the method - -*************** Finishing PHASE Early Value Propagation [no changes] - -*************** Starting PHASE Do value numbering - -*************** In fgValueNumber() -optComputeLoopSideEffectsOfBlock BB10, mostNestedLoop L00 -optComputeLoopSideEffectsOfBlock BB12, mostNestedLoop L00 -optComputeLoopSideEffectsOfBlock BB14, mostNestedLoop L00 -optComputeLoopSideEffectsOfBlock BB16, mostNestedLoop L00 -optComputeLoopSideEffectsOfBlock BB18, mostNestedLoop L00 -optComputeLoopSideEffectsOfBlock BB20, mostNestedLoop L00 -optComputeLoopSideEffectsOfBlock BB22, mostNestedLoop L00 -optComputeLoopSideEffectsOfBlock BB24, mostNestedLoop L00 -optComputeLoopSideEffectsOfBlock BB26, mostNestedLoop L00 -optComputeLoopSideEffectsOfBlock BB38, mostNestedLoop L01 -optComputeLoopSideEffectsOfBlock BB40, mostNestedLoop L01 -Memory Initial Value in BB01 is: $140 -Visiting BB01 -The SSA definition for ByrefExposed (#1) at start of BB01 is $140 {InitVal($43)} -The SSA definition for GcHeap (#1) at start of BB01 is $140 {InitVal($43)} - -***** BB01, STMT00069(before) -N004 ( 5, 5) [000384] -----+----- * JTRUE void -N003 ( 3, 3) [000002] J----+-N--- \--* GE int -N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 -N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 - -N001 [000000] LCL_VAR V02 arg2 u:1 => $100 {InitVal($42)} -N002 [000001] CNS_INT 0 => $40 {IntCns 0} -N003 [000002] GE => $180 {GE($100, $40)} -N004 [000384] JTRUE => $VN.Void - -***** BB01, STMT00069(after) -N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000002] J----+-N--- \--* GE int $180 -N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 $40 - -Visiting BB52 - Reachable through pred BB01 -The SSA definition for ByrefExposed (#1) at start of BB52 is $140 {InitVal($43)} -The SSA definition for GcHeap (#1) at start of BB52 is $140 {InitVal($43)} - -***** BB52, STMT00070(before) -N003 ( 16, 15) [000387] --CXG+----- * CALL void -N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref -N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref - -N001 [000497] CNS_INT(h) => $1c0 {Hnd const: 0x4000000000443870 GTF_ICON_OBJ_HDL} -N002 [000498] CNS_INT(h) => $1c1 {Hnd const: 0x40000000004207C0 GTF_ICON_OBJ_HDL} - fgCurMemoryVN[GcHeap] assigned for CALL at [000387] to VN: $141. -N003 [000387] CALL => $VN.Void - -***** BB52, STMT00070(after) -N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void -N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref $1c0 -N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref $1c1 - -Visiting BB57 - Reachable through pred BB01 - Building memory phi def for block BB57. -The SSA definition for GcHeap (#3) at start of BB57 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB57, STMT00003(before) -N004 ( 5, 5) [000034] -----+----- * JTRUE void -N003 ( 3, 3) [000033] J----+-N--- \--* GE int -N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 -N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count - -N001 [000031] LCL_VAR V02 arg2 u:1 => $100 {InitVal($42)} -N002 [000032] CNS_INT 2 vector element count => $42 {IntCns 2} -N003 [000033] GE => $181 {GE($100, $42)} -N004 [000034] JTRUE => $VN.Void - -***** BB57, STMT00003(after) -N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000033] J----+-N--- \--* GE int $181 -N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 - -Visiting BB43 - Reachable through pred BB57 -The SSA definition for ByrefExposed (#3) at start of BB43 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB43 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB43, STMT00004(before) -N004 ( 17, 11) [000044] --CXG+----- * CALL void -N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) -N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) -N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) - -N001 [000041] LCL_VAR V00 arg0 u:1 (last use) => $80 {InitVal($40)} -N002 [000042] LCL_VAR V01 arg1 u:1 (last use) => $c0 {InitVal($41)} -N003 [000043] LCL_VAR V02 arg2 u:1 (last use) => $100 {InitVal($42)} - fgCurMemoryVN[GcHeap] assigned for CALL at [000044] to VN: $142. -N004 [000044] CALL => $VN.Void - -***** BB43, STMT00004(after) -N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void -N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) $80 -N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) $c0 -N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) $100 - -Visiting BB09 - Reachable through pred BB57 -The SSA definition for ByrefExposed (#3) at start of BB09 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB09 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB09, STMT00005(before) -N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 -N004 ( 4, 5) [000050] -----+----- \--* ADD long -N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int -N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 -N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 - -N001 [000046] LCL_VAR V02 arg2 u:1 => $100 {InitVal($42)} -N002 [000047] CAST => $240 {$100, long <- int} -N003 [000049] CNS_INT -1 => $280 {LngCns -1} -N004 [000050] ADD => $241 {ADD($240, $280)} -Tree [000051] assigned VN to local var V04/1: $241 {ADD($240, $280)} -N005 [000051] STORE_LCL_VAR V04 loc1 d:1 => $VN.Void - -***** BB09, STMT00005(after) -N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void -N004 ( 4, 5) [000050] -----+----- \--* ADD long $241 -N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int $240 -N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 $100 -N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 $280 - ---------- - -***** BB09, STMT00090(before) -N004 ( 5, 5) [000535] ----------- * JTRUE void -N003 ( 3, 3) [000536] J------N--- \--* LT int -N001 ( 1, 1) [000537] ----------- +--* LCL_VAR int V02 arg2 u:1 -N002 ( 1, 1) [000538] ----------- \--* CNS_INT int 8 - -N001 [000537] LCL_VAR V02 arg2 u:1 => $100 {InitVal($42)} -N002 [000538] CNS_INT 8 => $45 {IntCns 8} -N003 [000536] LT => $182 {LT($100, $45)} -N004 [000535] JTRUE => $VN.Void - -***** BB09, STMT00090(after) -N004 ( 5, 5) [000535] ----------- * JTRUE void $VN.Void -N003 ( 3, 3) [000536] J------N--- \--* LT int $182 -N001 ( 1, 1) [000537] ----------- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000538] ----------- \--* CNS_INT int 8 $45 - -Visiting BB68 - Reachable through pred BB09 -The SSA definition for ByrefExposed (#3) at start of BB68 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB68 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -Visiting BB10 - Reachable through pred BB26 - -***** BB10, STMT00103(before) -N004 ( 0, 0) [000564] DA--------- * STORE_LCL_VAR int V02 arg2 d:2 -N003 ( 0, 0) [000563] ----------- \--* PHI int -N001 ( 0, 0) [000569] ----------- pred BB26 +--* PHI_ARG int V02 arg2 u:3 -N002 ( 0, 0) [000567] ----------- pred BB68 \--* PHI_ARG int V02 arg2 u:1 - -SSA PHI definition: set VN of local 2/2 to $2c0 {PhiDef(V02 d:2, u:3, u:1)} . - -***** BB10, STMT00103(after) -N004 ( 0, 0) [000564] DA--------- * STORE_LCL_VAR int V02 arg2 d:2 $VN.Void -N003 ( 0, 0) [000563] ----------- \--* PHI int $2c0 -N001 ( 0, 0) [000569] ----------- pred BB26 +--* PHI_ARG int V02 arg2 u:3 -N002 ( 0, 0) [000567] ----------- pred BB68 \--* PHI_ARG int V02 arg2 u:1 $100 - ---------- - -***** BB10, STMT00098(before) -N004 ( 0, 0) [000554] DA--------- * STORE_LCL_VAR long V04 loc1 d:2 -N003 ( 0, 0) [000553] ----------- \--* PHI long -N001 ( 0, 0) [000570] ----------- pred BB26 +--* PHI_ARG long V04 loc1 u:3 -N002 ( 0, 0) [000568] ----------- pred BB68 \--* PHI_ARG long V04 loc1 u:1 - -SSA PHI definition: set VN of local 4/2 to $300 {PhiDef(V04 d:2, u:3, u:1)} . - -***** BB10, STMT00098(after) -N004 ( 0, 0) [000554] DA--------- * STORE_LCL_VAR long V04 loc1 d:2 $VN.Void -N003 ( 0, 0) [000553] ----------- \--* PHI long $300 -N001 ( 0, 0) [000570] ----------- pred BB26 +--* PHI_ARG long V04 loc1 u:3 -N002 ( 0, 0) [000568] ----------- pred BB68 \--* PHI_ARG long V04 loc1 u:1 $241 - ---------- -The SSA definition for ByrefExposed (#3) at start of BB10 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB10 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB10, STMT00007(before) -N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 d:3 -N003 ( 3, 3) [000058] -----+----- \--* ADD int -N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 u:2 (last use) -N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 - -N001 [000056] LCL_VAR V02 arg2 u:2 (last use) => $2c0 {PhiDef(V02 d:2, u:3, u:1)} -N002 [000057] CNS_INT -8 => $46 {IntCns -8} -N003 [000058] ADD => $183 {ADD($2c0, $46)} -Tree [000059] assigned VN to local var V02/3: $183 {ADD($2c0, $46)} -N004 [000059] STORE_LCL_VAR V02 arg2 d:3 => $VN.Void - -***** BB10, STMT00007(after) -N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 d:3 $VN.Void -N003 ( 3, 3) [000058] -----+----- \--* ADD int $183 -N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 u:2 (last use) $2c0 -N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 $46 - ---------- - -***** BB10, STMT00010(before) -N009 ( 9, 8) [000073] ---XG+----- * JTRUE void -N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int -N006 ( 5, 4) [000065] ---XG+----- +--* IND long -N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long -N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 u:2 -N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 -N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -N001 [000060] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} -N002 [000061] LCL_VAR V04 loc1 u:2 => $300 {PhiDef(V04 d:2, u:3, u:1)} -N003 [000062] CNS_INT 3 => $282 {LngCns 3} -N004 [000063] LSH => $242 {LSH($300, $282)} -N005 [000064] ADD => $340 {ADD($80, $242)} -N006 [000065] IND => -N007 [000066] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} -N008 [000401] NE => -N009 [000073] JTRUE => $401 {norm=$VN.Void, exc=$400 {NullPtrExc($340)}} - -***** BB10, STMT00010(after) -N009 ( 9, 8) [000073] ---XG+----- * JTRUE void $401 -N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int -N006 ( 5, 4) [000065] ---XG+----- +--* IND long -N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref $340 -N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long $242 -N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -Visiting BB12 - Reachable through pred BB10 -The SSA definition for ByrefExposed (#3) at start of BB12 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB12 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB12, STMT00013(before) -N011 ( 9, 9) [000090] ---XG+----- * JTRUE void -N010 ( 7, 7) [000408] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000082] ---XG+----- +--* IND long -N007 ( 4, 4) [000081] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N006 ( 3, 3) [000080] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000078] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 -N003 ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 -N009 ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -N001 [000074] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} -N002 [000075] LCL_VAR V04 loc1 u:2 => $300 {PhiDef(V04 d:2, u:3, u:1)} -N003 [000077] CNS_INT 3 => $282 {LngCns 3} -N004 [000078] LSH => $242 {LSH($300, $282)} -N005 [000079] CNS_INT -8 => $283 {LngCns -8} -N006 [000080] ADD => $245 {ADD($242, $283)} -N007 [000081] ADD => $341 {ADD($80, $245)} -N008 [000082] IND => -N009 [000083] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} -N010 [000408] NE => -N011 [000090] JTRUE => $403 {norm=$VN.Void, exc=$402 {NullPtrExc($341)}} - -***** BB12, STMT00013(after) -N011 ( 9, 9) [000090] ---XG+----- * JTRUE void $403 -N010 ( 7, 7) [000408] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000082] ---XG+----- +--* IND long -N007 ( 4, 4) [000081] -----+-N--- | \--* ADD byref $341 -N001 ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000080] -----+-N--- | \--* ADD long $245 -N004 ( 2, 2) [000078] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 $283 -N009 ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -Visiting BB14 - Reachable through pred BB12 -The SSA definition for ByrefExposed (#3) at start of BB14 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB14 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB14, STMT00016(before) -N011 ( 9, 9) [000107] ---XG+----- * JTRUE void -N010 ( 7, 7) [000415] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000099] ---XG+----- +--* IND long -N007 ( 4, 4) [000098] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N006 ( 3, 3) [000097] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000095] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 -N003 ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 -N009 ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -N001 [000091] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} -N002 [000092] LCL_VAR V04 loc1 u:2 => $300 {PhiDef(V04 d:2, u:3, u:1)} -N003 [000094] CNS_INT 3 => $282 {LngCns 3} -N004 [000095] LSH => $242 {LSH($300, $282)} -N005 [000096] CNS_INT -16 => $284 {LngCns -16} -N006 [000097] ADD => $248 {ADD($242, $284)} -N007 [000098] ADD => $342 {ADD($80, $248)} -N008 [000099] IND => -N009 [000100] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} -N010 [000415] NE => -N011 [000107] JTRUE => $405 {norm=$VN.Void, exc=$404 {NullPtrExc($342)}} - -***** BB14, STMT00016(after) -N011 ( 9, 9) [000107] ---XG+----- * JTRUE void $405 -N010 ( 7, 7) [000415] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000099] ---XG+----- +--* IND long -N007 ( 4, 4) [000098] -----+-N--- | \--* ADD byref $342 -N001 ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000097] -----+-N--- | \--* ADD long $248 -N004 ( 2, 2) [000095] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 $284 -N009 ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -Visiting BB16 - Reachable through pred BB14 -The SSA definition for ByrefExposed (#3) at start of BB16 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB16 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB16, STMT00019(before) -N011 ( 9, 9) [000124] ---XG+----- * JTRUE void -N010 ( 7, 7) [000422] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000116] ---XG+----- +--* IND long -N007 ( 4, 4) [000115] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N006 ( 3, 3) [000114] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000112] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 -N003 ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 -N009 ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -N001 [000108] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} -N002 [000109] LCL_VAR V04 loc1 u:2 => $300 {PhiDef(V04 d:2, u:3, u:1)} -N003 [000111] CNS_INT 3 => $282 {LngCns 3} -N004 [000112] LSH => $242 {LSH($300, $282)} -N005 [000113] CNS_INT -24 => $285 {LngCns -24} -N006 [000114] ADD => $24b {ADD($242, $285)} -N007 [000115] ADD => $343 {ADD($80, $24b)} -N008 [000116] IND => -N009 [000117] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} -N010 [000422] NE => -N011 [000124] JTRUE => $407 {norm=$VN.Void, exc=$406 {NullPtrExc($343)}} - -***** BB16, STMT00019(after) -N011 ( 9, 9) [000124] ---XG+----- * JTRUE void $407 -N010 ( 7, 7) [000422] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000116] ---XG+----- +--* IND long -N007 ( 4, 4) [000115] -----+-N--- | \--* ADD byref $343 -N001 ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000114] -----+-N--- | \--* ADD long $24b -N004 ( 2, 2) [000112] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 $285 -N009 ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -Visiting BB18 - Reachable through pred BB16 -The SSA definition for ByrefExposed (#3) at start of BB18 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB18 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB18, STMT00022(before) -N011 ( 9, 9) [000141] ---XG+----- * JTRUE void -N010 ( 7, 7) [000429] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000133] ---XG+----- +--* IND long -N007 ( 4, 4) [000132] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N006 ( 3, 3) [000131] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000129] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 -N003 ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 -N009 ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -N001 [000125] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} -N002 [000126] LCL_VAR V04 loc1 u:2 => $300 {PhiDef(V04 d:2, u:3, u:1)} -N003 [000128] CNS_INT 3 => $282 {LngCns 3} -N004 [000129] LSH => $242 {LSH($300, $282)} -N005 [000130] CNS_INT -32 => $286 {LngCns -32} -N006 [000131] ADD => $24e {ADD($242, $286)} -N007 [000132] ADD => $344 {ADD($80, $24e)} -N008 [000133] IND => -N009 [000134] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} -N010 [000429] NE => -N011 [000141] JTRUE => $409 {norm=$VN.Void, exc=$408 {NullPtrExc($344)}} - -***** BB18, STMT00022(after) -N011 ( 9, 9) [000141] ---XG+----- * JTRUE void $409 -N010 ( 7, 7) [000429] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000133] ---XG+----- +--* IND long -N007 ( 4, 4) [000132] -----+-N--- | \--* ADD byref $344 -N001 ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000131] -----+-N--- | \--* ADD long $24e -N004 ( 2, 2) [000129] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 $286 -N009 ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -Visiting BB20 - Reachable through pred BB18 -The SSA definition for ByrefExposed (#3) at start of BB20 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB20 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB20, STMT00025(before) -N011 ( 9, 9) [000158] ---XG+----- * JTRUE void -N010 ( 7, 7) [000436] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000150] ---XG+----- +--* IND long -N007 ( 4, 4) [000149] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N006 ( 3, 3) [000148] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000146] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 -N003 ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 -N009 ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -N001 [000142] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} -N002 [000143] LCL_VAR V04 loc1 u:2 => $300 {PhiDef(V04 d:2, u:3, u:1)} -N003 [000145] CNS_INT 3 => $282 {LngCns 3} -N004 [000146] LSH => $242 {LSH($300, $282)} -N005 [000147] CNS_INT -40 => $287 {LngCns -40} -N006 [000148] ADD => $251 {ADD($242, $287)} -N007 [000149] ADD => $345 {ADD($80, $251)} -N008 [000150] IND => -N009 [000151] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} -N010 [000436] NE => -N011 [000158] JTRUE => $40b {norm=$VN.Void, exc=$40a {NullPtrExc($345)}} - -***** BB20, STMT00025(after) -N011 ( 9, 9) [000158] ---XG+----- * JTRUE void $40b -N010 ( 7, 7) [000436] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000150] ---XG+----- +--* IND long -N007 ( 4, 4) [000149] -----+-N--- | \--* ADD byref $345 -N001 ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000148] -----+-N--- | \--* ADD long $251 -N004 ( 2, 2) [000146] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 $287 -N009 ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -Visiting BB22 - Reachable through pred BB20 -The SSA definition for ByrefExposed (#3) at start of BB22 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB22 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB22, STMT00028(before) -N011 ( 9, 9) [000175] ---XG+----- * JTRUE void -N010 ( 7, 7) [000443] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000167] ---XG+----- +--* IND long -N007 ( 4, 4) [000166] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N006 ( 3, 3) [000165] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000163] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 -N003 ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 -N009 ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -N001 [000159] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} -N002 [000160] LCL_VAR V04 loc1 u:2 => $300 {PhiDef(V04 d:2, u:3, u:1)} -N003 [000162] CNS_INT 3 => $282 {LngCns 3} -N004 [000163] LSH => $242 {LSH($300, $282)} -N005 [000164] CNS_INT -48 => $288 {LngCns -48} -N006 [000165] ADD => $254 {ADD($242, $288)} -N007 [000166] ADD => $346 {ADD($80, $254)} -N008 [000167] IND => -N009 [000168] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} -N010 [000443] NE => -N011 [000175] JTRUE => $40d {norm=$VN.Void, exc=$40c {NullPtrExc($346)}} - -***** BB22, STMT00028(after) -N011 ( 9, 9) [000175] ---XG+----- * JTRUE void $40d -N010 ( 7, 7) [000443] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000167] ---XG+----- +--* IND long -N007 ( 4, 4) [000166] -----+-N--- | \--* ADD byref $346 -N001 ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000165] -----+-N--- | \--* ADD long $254 -N004 ( 2, 2) [000163] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 $288 -N009 ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -Visiting BB24 - Reachable through pred BB22 -The SSA definition for ByrefExposed (#3) at start of BB24 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB24 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB24, STMT00031(before) -N011 ( 9, 9) [000192] ---XG+----- * JTRUE void -N010 ( 7, 7) [000450] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000184] ---XG+----- +--* IND long -N007 ( 4, 4) [000183] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N006 ( 3, 3) [000182] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000180] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 -N003 ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 -N009 ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -N001 [000176] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} -N002 [000177] LCL_VAR V04 loc1 u:2 => $300 {PhiDef(V04 d:2, u:3, u:1)} -N003 [000179] CNS_INT 3 => $282 {LngCns 3} -N004 [000180] LSH => $242 {LSH($300, $282)} -N005 [000181] CNS_INT -56 => $289 {LngCns -56} -N006 [000182] ADD => $257 {ADD($242, $289)} -N007 [000183] ADD => $347 {ADD($80, $257)} -N008 [000184] IND => -N009 [000185] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} -N010 [000450] NE => -N011 [000192] JTRUE => $40f {norm=$VN.Void, exc=$40e {NullPtrExc($347)}} - -***** BB24, STMT00031(after) -N011 ( 9, 9) [000192] ---XG+----- * JTRUE void $40f -N010 ( 7, 7) [000450] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000184] ---XG+----- +--* IND long -N007 ( 4, 4) [000183] -----+-N--- | \--* ADD byref $347 -N001 ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000182] -----+-N--- | \--* ADD long $257 -N004 ( 2, 2) [000180] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 $289 -N009 ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -Visiting BB26 - Reachable through pred BB24 -The SSA definition for ByrefExposed (#3) at start of BB26 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB26 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB26, STMT00032(before) -N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 d:3 -N003 ( 3, 3) [000196] -----+----- \--* ADD long -N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 u:2 (last use) -N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 - -N001 [000193] LCL_VAR V04 loc1 u:2 (last use) => $300 {PhiDef(V04 d:2, u:3, u:1)} -N002 [000195] CNS_INT -8 => $283 {LngCns -8} -N003 [000196] ADD => $25a {ADD($300, $283)} -Tree [000197] assigned VN to local var V04/3: $25a {ADD($300, $283)} -N004 [000197] STORE_LCL_VAR V04 loc1 d:3 => $VN.Void - -***** BB26, STMT00032(after) -N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 d:3 $VN.Void -N003 ( 3, 3) [000196] -----+----- \--* ADD long $25a -N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 u:2 (last use) $300 -N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 $283 - ---------- - -***** BB26, STMT00006(before) -N004 ( 5, 5) [000055] -----+----- * JTRUE void -N003 ( 3, 3) [000054] J----+-N--- \--* GE int -N001 ( 1, 1) [000052] -----+----- +--* LCL_VAR int V02 arg2 u:3 -N002 ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 - -N001 [000052] LCL_VAR V02 arg2 u:3 => $183 {ADD($2c0, $46)} -N002 [000053] CNS_INT 8 => $45 {IntCns 8} -N003 [000054] GE => $1a4 {GE($183, $45)} -N004 [000055] JTRUE => $VN.Void - -***** BB26, STMT00006(after) -N004 ( 5, 5) [000055] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000054] J----+-N--- \--* GE int $1a4 -N001 ( 1, 1) [000052] -----+----- +--* LCL_VAR int V02 arg2 u:3 $183 -N002 ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 $45 - -Can't update phi arg [000569] with $183 -- varies in L00 -SSA PHI definition: set VN of local 2/2 to $2c0 {PhiDef(V02 d:2, u:3, u:1)} . -Can't update phi arg [000570] with $25a -- varies in L00 -SSA PHI definition: set VN of local 4/2 to $300 {PhiDef(V04 d:2, u:3, u:1)} . -Visiting BB28 - Reachable through pred BB26 -The SSA definition for ByrefExposed (#3) at start of BB28 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB28 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -Visiting BB69 - Reachable through pred BB09 - -***** BB69, STMT00102(before) -N004 ( 0, 0) [000562] DA--------- * STORE_LCL_VAR int V02 arg2 d:4 -N003 ( 0, 0) [000561] ----------- \--* PHI int -N001 ( 0, 0) [000571] ----------- pred BB28 +--* PHI_ARG int V02 arg2 u:3 -N002 ( 0, 0) [000565] ----------- pred BB09 \--* PHI_ARG int V02 arg2 u:1 - -SSA PHI definition: set VN of local 2/4 to $2c1 {PhiDef(V02 d:4, u:3, u:1)} . - -***** BB69, STMT00102(after) -N004 ( 0, 0) [000562] DA--------- * STORE_LCL_VAR int V02 arg2 d:4 $VN.Void -N003 ( 0, 0) [000561] ----------- \--* PHI int $2c1 -N001 ( 0, 0) [000571] ----------- pred BB28 +--* PHI_ARG int V02 arg2 u:3 $183 -N002 ( 0, 0) [000565] ----------- pred BB09 \--* PHI_ARG int V02 arg2 u:1 $100 - ---------- - -***** BB69, STMT00097(before) -N004 ( 0, 0) [000552] DA--------- * STORE_LCL_VAR long V04 loc1 d:4 -N003 ( 0, 0) [000551] ----------- \--* PHI long -N001 ( 0, 0) [000572] ----------- pred BB28 +--* PHI_ARG long V04 loc1 u:3 -N002 ( 0, 0) [000566] ----------- pred BB09 \--* PHI_ARG long V04 loc1 u:1 - -SSA PHI definition: set VN of local 4/4 to $301 {PhiDef(V04 d:4, u:3, u:1)} . - -***** BB69, STMT00097(after) -N004 ( 0, 0) [000552] DA--------- * STORE_LCL_VAR long V04 loc1 d:4 $VN.Void -N003 ( 0, 0) [000551] ----------- \--* PHI long $301 -N001 ( 0, 0) [000572] ----------- pred BB28 +--* PHI_ARG long V04 loc1 u:3 $25a -N002 ( 0, 0) [000566] ----------- pred BB09 \--* PHI_ARG long V04 loc1 u:1 $241 - ---------- -The SSA definition for ByrefExposed (#3) at start of BB69 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB69 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB69, STMT00041(before) -N004 ( 5, 5) [000246] -----+----- * JTRUE void -N003 ( 3, 3) [000245] J----+-N--- \--* LT int -N001 ( 1, 1) [000243] -----+----- +--* LCL_VAR int V02 arg2 u:4 -N002 ( 1, 1) [000244] -----+----- \--* CNS_INT int 4 - -N001 [000243] LCL_VAR V02 arg2 u:4 => $2c1 {PhiDef(V02 d:4, u:3, u:1)} -N002 [000244] CNS_INT 4 => $47 {IntCns 4} -N003 [000245] LT => $1a5 {LT($2c1, $47)} -N004 [000246] JTRUE => $VN.Void - -***** BB69, STMT00041(after) -N004 ( 5, 5) [000246] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000245] J----+-N--- \--* LT int $1a5 -N001 ( 1, 1) [000243] -----+----- +--* LCL_VAR int V02 arg2 u:4 $2c1 -N002 ( 1, 1) [000244] -----+----- \--* CNS_INT int 4 $47 - -Visiting BB29 - Reachable through pred BB69 -The SSA definition for ByrefExposed (#3) at start of BB29 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB29 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB29, STMT00050(before) -N004 ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 d:5 -N003 ( 3, 3) [000281] -----+----- \--* ADD int -N001 ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 u:4 (last use) -N002 ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 - -N001 [000279] LCL_VAR V02 arg2 u:4 (last use) => $2c1 {PhiDef(V02 d:4, u:3, u:1)} -N002 [000280] CNS_INT -4 => $48 {IntCns -4} -N003 [000281] ADD => $1a6 {ADD($2c1, $48)} -Tree [000282] assigned VN to local var V02/5: $1a6 {ADD($2c1, $48)} -N004 [000282] STORE_LCL_VAR V02 arg2 d:5 => $VN.Void - -***** BB29, STMT00050(after) -N004 ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 d:5 $VN.Void -N003 ( 3, 3) [000281] -----+----- \--* ADD int $1a6 -N001 ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 u:4 (last use) $2c1 -N002 ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 $48 - ---------- - -***** BB29, STMT00053(before) -N009 ( 9, 8) [000296] ---XG+----- * JTRUE void -N008 ( 7, 6) [000457] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000288] ---XG+----- +--* IND long -N005 ( 3, 3) [000287] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N004 ( 2, 2) [000286] -----+-N--- | \--* LSH long -N002 ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 u:4 -N003 ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 -N007 ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -N001 [000283] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} -N002 [000284] LCL_VAR V04 loc1 u:4 => $301 {PhiDef(V04 d:4, u:3, u:1)} -N003 [000285] CNS_INT 3 => $282 {LngCns 3} -N004 [000286] LSH => $25b {LSH($301, $282)} -N005 [000287] ADD => $348 {ADD($80, $25b)} -N006 [000288] IND => -N007 [000289] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} -N008 [000457] EQ => -N009 [000296] JTRUE => $411 {norm=$VN.Void, exc=$410 {NullPtrExc($348)}} - -***** BB29, STMT00053(after) -N009 ( 9, 8) [000296] ---XG+----- * JTRUE void $411 -N008 ( 7, 6) [000457] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000288] ---XG+----- +--* IND long -N005 ( 3, 3) [000287] -----+-N--- | \--* ADD byref $348 -N001 ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000286] -----+-N--- | \--* LSH long $25b -N002 ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -Visiting BB31 - Reachable through pred BB29 -The SSA definition for ByrefExposed (#3) at start of BB31 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB31 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB31, STMT00056(before) -N011 ( 9, 9) [000313] ---XG+----- * JTRUE void -N010 ( 7, 7) [000464] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000305] ---XG+----- +--* IND long -N007 ( 4, 4) [000304] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000297] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N006 ( 3, 3) [000303] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000301] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000298] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 -N003 ( 1, 1) [000300] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000302] -----+----- | \--* CNS_INT long -8 -N009 ( 1, 1) [000306] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -N001 [000297] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} -N002 [000298] LCL_VAR V04 loc1 u:4 => $301 {PhiDef(V04 d:4, u:3, u:1)} -N003 [000300] CNS_INT 3 => $282 {LngCns 3} -N004 [000301] LSH => $25b {LSH($301, $282)} -N005 [000302] CNS_INT -8 => $283 {LngCns -8} -N006 [000303] ADD => $25e {ADD($25b, $283)} -N007 [000304] ADD => $349 {ADD($80, $25e)} -N008 [000305] IND => -N009 [000306] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} -N010 [000464] NE => -N011 [000313] JTRUE => $413 {norm=$VN.Void, exc=$412 {NullPtrExc($349)}} - -***** BB31, STMT00056(after) -N011 ( 9, 9) [000313] ---XG+----- * JTRUE void $413 -N010 ( 7, 7) [000464] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000305] ---XG+----- +--* IND long -N007 ( 4, 4) [000304] -----+-N--- | \--* ADD byref $349 -N001 ( 1, 1) [000297] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000303] -----+-N--- | \--* ADD long $25e -N004 ( 2, 2) [000301] -----+-N--- | +--* LSH long $25b -N002 ( 1, 1) [000298] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000300] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000302] -----+----- | \--* CNS_INT long -8 $283 -N009 ( 1, 1) [000306] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -Visiting BB33 - Reachable through pred BB31 -The SSA definition for ByrefExposed (#3) at start of BB33 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB33 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB33, STMT00059(before) -N011 ( 9, 9) [000330] ---XG+----- * JTRUE void -N010 ( 7, 7) [000471] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000322] ---XG+----- +--* IND long -N007 ( 4, 4) [000321] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000314] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N006 ( 3, 3) [000320] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000318] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000315] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 -N003 ( 1, 1) [000317] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000319] -----+----- | \--* CNS_INT long -16 -N009 ( 1, 1) [000323] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -N001 [000314] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} -N002 [000315] LCL_VAR V04 loc1 u:4 => $301 {PhiDef(V04 d:4, u:3, u:1)} -N003 [000317] CNS_INT 3 => $282 {LngCns 3} -N004 [000318] LSH => $25b {LSH($301, $282)} -N005 [000319] CNS_INT -16 => $284 {LngCns -16} -N006 [000320] ADD => $261 {ADD($25b, $284)} -N007 [000321] ADD => $34a {ADD($80, $261)} -N008 [000322] IND => -N009 [000323] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} -N010 [000471] NE => -N011 [000330] JTRUE => $415 {norm=$VN.Void, exc=$414 {NullPtrExc($34a)}} - -***** BB33, STMT00059(after) -N011 ( 9, 9) [000330] ---XG+----- * JTRUE void $415 -N010 ( 7, 7) [000471] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000322] ---XG+----- +--* IND long -N007 ( 4, 4) [000321] -----+-N--- | \--* ADD byref $34a -N001 ( 1, 1) [000314] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000320] -----+-N--- | \--* ADD long $261 -N004 ( 2, 2) [000318] -----+-N--- | +--* LSH long $25b -N002 ( 1, 1) [000315] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000317] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000319] -----+----- | \--* CNS_INT long -16 $284 -N009 ( 1, 1) [000323] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -Visiting BB35 - Reachable through pred BB33 -The SSA definition for ByrefExposed (#3) at start of BB35 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB35 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB35, STMT00062(before) -N011 ( 9, 9) [000347] ---XG+----- * JTRUE void -N010 ( 7, 7) [000478] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000339] ---XG+----- +--* IND long -N007 ( 4, 4) [000338] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000331] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N006 ( 3, 3) [000337] -----+-N--- | \--* ADD long -N004 ( 2, 2) [000335] -----+-N--- | +--* LSH long -N002 ( 1, 1) [000332] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 -N003 ( 1, 1) [000334] -----+----- | | \--* CNS_INT long 3 -N005 ( 1, 1) [000336] -----+----- | \--* CNS_INT long -24 -N009 ( 1, 1) [000340] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -N001 [000331] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} -N002 [000332] LCL_VAR V04 loc1 u:4 => $301 {PhiDef(V04 d:4, u:3, u:1)} -N003 [000334] CNS_INT 3 => $282 {LngCns 3} -N004 [000335] LSH => $25b {LSH($301, $282)} -N005 [000336] CNS_INT -24 => $285 {LngCns -24} -N006 [000337] ADD => $264 {ADD($25b, $285)} -N007 [000338] ADD => $34b {ADD($80, $264)} -N008 [000339] IND => -N009 [000340] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} -N010 [000478] NE => -N011 [000347] JTRUE => $417 {norm=$VN.Void, exc=$416 {NullPtrExc($34b)}} - -***** BB35, STMT00062(after) -N011 ( 9, 9) [000347] ---XG+----- * JTRUE void $417 -N010 ( 7, 7) [000478] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000339] ---XG+----- +--* IND long -N007 ( 4, 4) [000338] -----+-N--- | \--* ADD byref $34b -N001 ( 1, 1) [000331] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000337] -----+-N--- | \--* ADD long $264 -N004 ( 2, 2) [000335] -----+-N--- | +--* LSH long $25b -N002 ( 1, 1) [000332] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000334] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000336] -----+----- | \--* CNS_INT long -24 $285 -N009 ( 1, 1) [000340] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -Visiting BB37 - Reachable through pred BB35 -The SSA definition for ByrefExposed (#3) at start of BB37 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB37 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB37, STMT00063(before) -N004 ( 3, 3) [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 d:5 -N003 ( 3, 3) [000351] -----+----- \--* ADD long -N001 ( 1, 1) [000348] -----+----- +--* LCL_VAR long V04 loc1 u:4 (last use) -N002 ( 1, 1) [000350] -----+----- \--* CNS_INT long -4 - -N001 [000348] LCL_VAR V04 loc1 u:4 (last use) => $301 {PhiDef(V04 d:4, u:3, u:1)} -N002 [000350] CNS_INT -4 => $28a {LngCns -4} -N003 [000351] ADD => $267 {ADD($301, $28a)} -Tree [000352] assigned VN to local var V04/5: $267 {ADD($301, $28a)} -N004 [000352] STORE_LCL_VAR V04 loc1 d:5 => $VN.Void - -***** BB37, STMT00063(after) -N004 ( 3, 3) [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 d:5 $VN.Void -N003 ( 3, 3) [000351] -----+----- \--* ADD long $267 -N001 ( 1, 1) [000348] -----+----- +--* LCL_VAR long V04 loc1 u:4 (last use) $301 -N002 ( 1, 1) [000350] -----+----- \--* CNS_INT long -4 $28a - -Visiting BB60 - Reachable through pred BB37 - -***** BB60, STMT00096(before) -N004 ( 0, 0) [000550] DA--------- * STORE_LCL_VAR int V02 arg2 d:6 -N003 ( 0, 0) [000549] ----------- \--* PHI int -N001 ( 0, 0) [000584] ----------- pred BB37 +--* PHI_ARG int V02 arg2 u:5 -N002 ( 0, 0) [000581] ----------- pred BB69 \--* PHI_ARG int V02 arg2 u:4 - -SSA PHI definition: set VN of local 2/6 to $2c2 {PhiDef(V02 d:6, u:5, u:4)} . - -***** BB60, STMT00096(after) -N004 ( 0, 0) [000550] DA--------- * STORE_LCL_VAR int V02 arg2 d:6 $VN.Void -N003 ( 0, 0) [000549] ----------- \--* PHI int $2c2 -N001 ( 0, 0) [000584] ----------- pred BB37 +--* PHI_ARG int V02 arg2 u:5 $1a6 -N002 ( 0, 0) [000581] ----------- pred BB69 \--* PHI_ARG int V02 arg2 u:4 $2c1 - ---------- - -***** BB60, STMT00095(before) -N004 ( 0, 0) [000548] DA--------- * STORE_LCL_VAR long V04 loc1 d:6 -N003 ( 0, 0) [000547] ----------- \--* PHI long -N001 ( 0, 0) [000585] ----------- pred BB37 +--* PHI_ARG long V04 loc1 u:5 -N002 ( 0, 0) [000582] ----------- pred BB69 \--* PHI_ARG long V04 loc1 u:4 - -SSA PHI definition: set VN of local 4/6 to $302 {PhiDef(V04 d:6, u:5, u:4)} . - -***** BB60, STMT00095(after) -N004 ( 0, 0) [000548] DA--------- * STORE_LCL_VAR long V04 loc1 d:6 $VN.Void -N003 ( 0, 0) [000547] ----------- \--* PHI long $302 -N001 ( 0, 0) [000585] ----------- pred BB37 +--* PHI_ARG long V04 loc1 u:5 $267 -N002 ( 0, 0) [000582] ----------- pred BB69 \--* PHI_ARG long V04 loc1 u:4 $301 - ---------- -The SSA definition for ByrefExposed (#3) at start of BB60 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB60 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB60, STMT00089(before) -N004 ( 5, 5) [000531] ----------- * JTRUE void -N003 ( 3, 3) [000532] J------N--- \--* LE int -N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 -N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 - -N001 [000533] LCL_VAR V02 arg2 u:6 => $2c2 {PhiDef(V02 d:6, u:5, u:4)} -N002 [000534] CNS_INT 0 => $40 {IntCns 0} -N003 [000532] LE => $1b7 {LE($2c2, $40)} -N004 [000531] JTRUE => $VN.Void - -***** BB60, STMT00089(after) -N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void -N003 ( 3, 3) [000532] J------N--- \--* LE int $1b7 -N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 -N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 - -Visiting BB66 - Reachable through pred BB60 -The SSA definition for ByrefExposed (#3) at start of BB66 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB66 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -Visiting BB38 - Reachable through pred BB40 - -***** BB38, STMT00094(before) -N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 -N003 ( 0, 0) [000545] ----------- \--* PHI int -N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 -N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 - -SSA PHI definition: set VN of local 2/7 to $2c3 {PhiDef(V02 d:7, u:8, u:6)} . - -***** BB38, STMT00094(after) -N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 $VN.Void -N003 ( 0, 0) [000545] ----------- \--* PHI int $2c3 -N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 -N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 $2c2 - ---------- - -***** BB38, STMT00092(before) -N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 -N003 ( 0, 0) [000541] ----------- \--* PHI long -N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 -N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 - -SSA PHI definition: set VN of local 4/7 to $303 {PhiDef(V04 d:7, u:8, u:6)} . - -***** BB38, STMT00092(after) -N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 $VN.Void -N003 ( 0, 0) [000541] ----------- \--* PHI long $303 -N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 -N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 $302 - ---------- -The SSA definition for ByrefExposed (#3) at start of BB38 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB38 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB38, STMT00043(before) -N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 -N003 ( 3, 3) [000253] -----+----- \--* ADD int -N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) -N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 - -N001 [000251] LCL_VAR V02 arg2 u:7 (last use) => $2c3 {PhiDef(V02 d:7, u:8, u:6)} -N002 [000252] CNS_INT -1 => $43 {IntCns -1} -N003 [000253] ADD => $1b8 {ADD($2c3, $43)} -Tree [000254] assigned VN to local var V02/8: $1b8 {ADD($2c3, $43)} -N004 [000254] STORE_LCL_VAR V02 arg2 d:8 => $VN.Void - -***** BB38, STMT00043(after) -N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void -N003 ( 3, 3) [000253] -----+----- \--* ADD int $1b8 -N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) $2c3 -N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 $43 - ---------- - -***** BB38, STMT00046(before) -N009 ( 9, 8) [000268] ---XG+----- * JTRUE void -N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000260] ---XG+----- +--* IND long -N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref -N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 -N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long -N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 -N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 -N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 - -N001 [000255] LCL_VAR V00 arg0 u:1 => $80 {InitVal($40)} -N002 [000256] LCL_VAR V04 loc1 u:7 => $303 {PhiDef(V04 d:7, u:8, u:6)} -N003 [000257] CNS_INT 3 => $282 {LngCns 3} -N004 [000258] LSH => $268 {LSH($303, $282)} -N005 [000259] ADD => $34c {ADD($80, $268)} -N006 [000260] IND => -N007 [000261] LCL_VAR V01 arg1 u:1 => $c0 {InitVal($41)} -N008 [000485] EQ => -N009 [000268] JTRUE => $419 {norm=$VN.Void, exc=$418 {NullPtrExc($34c)}} - -***** BB38, STMT00046(after) -N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 -N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000260] ---XG+----- +--* IND long -N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref $34c -N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long $268 -N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 $303 -N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -Visiting BB40 - Reachable through pred BB38 -The SSA definition for ByrefExposed (#3) at start of BB40 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB40 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB40, STMT00047(before) -N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 -N003 ( 3, 3) [000272] -----+----- \--* ADD long -N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) -N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 - -N001 [000269] LCL_VAR V04 loc1 u:7 (last use) => $303 {PhiDef(V04 d:7, u:8, u:6)} -N002 [000271] CNS_INT -1 => $280 {LngCns -1} -N003 [000272] ADD => $26b {ADD($303, $280)} -Tree [000273] assigned VN to local var V04/8: $26b {ADD($303, $280)} -N004 [000273] STORE_LCL_VAR V04 loc1 d:8 => $VN.Void - -***** BB40, STMT00047(after) -N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void -N003 ( 3, 3) [000272] -----+----- \--* ADD long $26b -N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) $303 -N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 $280 - ---------- - -***** BB40, STMT00042(before) -N004 ( 5, 5) [000250] -----+----- * JTRUE void -N003 ( 3, 3) [000249] J----+-N--- \--* GT int -N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 -N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 - -N001 [000247] LCL_VAR V02 arg2 u:8 => $1b8 {ADD($2c3, $43)} -N002 [000248] CNS_INT 0 => $40 {IntCns 0} -N003 [000249] GT => $1bd {GT($1b8, $40)} -N004 [000250] JTRUE => $VN.Void - -***** BB40, STMT00042(after) -N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000249] J----+-N--- \--* GT int $1bd -N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 $1b8 -N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 $40 - -Can't update phi arg [000592] with $1b8 -- varies in L01 -SSA PHI definition: set VN of local 2/7 to $2c3 {PhiDef(V02 d:7, u:8, u:6)} . -Can't update phi arg [000593] with $26b -- varies in L01 -SSA PHI definition: set VN of local 4/7 to $303 {PhiDef(V04 d:7, u:8, u:6)} . -Visiting BB61 - Reachable through pred BB38 -The SSA definition for ByrefExposed (#3) at start of BB61 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB61 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -Visiting BB42 - Reachable through pred BB40 -The SSA definition for ByrefExposed (#3) at start of BB42 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB42 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -Visiting BB67 - Reachable through pred BB42 -The SSA definition for ByrefExposed (#3) at start of BB67 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB67 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB67, STMT00088(before) -N002 ( 2, 2) [000493] -----+----- * RETURN int -N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 - -N001 [000277] CNS_INT -1 => $43 {IntCns -1} -N002 [000493] RETURN => $VN.Void - -***** BB67, STMT00088(after) -N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void -N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 $43 - -Visiting BB36 - Reachable through pred BB35 -The SSA definition for ByrefExposed (#3) at start of BB36 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB36 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -Visiting BB34 - Reachable through pred BB33 -The SSA definition for ByrefExposed (#3) at start of BB34 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB34 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -Visiting BB32 - Reachable through pred BB31 -The SSA definition for ByrefExposed (#3) at start of BB32 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB32 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -Visiting BB25 - Reachable through pred BB24 -The SSA definition for ByrefExposed (#3) at start of BB25 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB25 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB25, STMT00033(before) -N004 ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:1 -N003 ( 3, 3) [000201] -----+----- \--* ADD int -N001 ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) -N002 ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 - -N001 [000198] LCL_VAR V04 loc1 u:2 (last use) => $1be {$300, int <- long} -N002 [000501] CNS_INT -7 => $4a {IntCns -7} -N003 [000201] ADD => $1bf {ADD($1be, $4a)} -Tree [000502] assigned VN to local var V34/1: $1bf {ADD($1be, $4a)} -N004 [000502] STORE_LCL_VAR V34 tmp29 d:1 => $VN.Void - -***** BB25, STMT00033(after) -N004 ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:1 $VN.Void -N003 ( 3, 3) [000201] -----+----- \--* ADD int $1bf -N001 ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 $4a - -Visiting BB23 - Reachable through pred BB22 -The SSA definition for ByrefExposed (#3) at start of BB23 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB23 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB23, STMT00034(before) -N004 ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:2 -N003 ( 3, 3) [000207] -----+----- \--* ADD int -N001 ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) -N002 ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 - -N001 [000204] LCL_VAR V04 loc1 u:2 (last use) => $1be {$300, int <- long} -N002 [000504] CNS_INT -6 => $4b {IntCns -6} -N003 [000207] ADD => $440 {ADD($1be, $4b)} -Tree [000505] assigned VN to local var V34/2: $440 {ADD($1be, $4b)} -N004 [000505] STORE_LCL_VAR V34 tmp29 d:2 => $VN.Void - -***** BB23, STMT00034(after) -N004 ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:2 $VN.Void -N003 ( 3, 3) [000207] -----+----- \--* ADD int $440 -N001 ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 $4b - -Visiting BB21 - Reachable through pred BB20 -The SSA definition for ByrefExposed (#3) at start of BB21 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB21 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB21, STMT00035(before) -N004 ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:3 -N003 ( 3, 3) [000213] -----+----- \--* ADD int -N001 ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) -N002 ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 - -N001 [000210] LCL_VAR V04 loc1 u:2 (last use) => $1be {$300, int <- long} -N002 [000507] CNS_INT -5 => $4c {IntCns -5} -N003 [000213] ADD => $441 {ADD($1be, $4c)} -Tree [000508] assigned VN to local var V34/3: $441 {ADD($1be, $4c)} -N004 [000508] STORE_LCL_VAR V34 tmp29 d:3 => $VN.Void - -***** BB21, STMT00035(after) -N004 ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:3 $VN.Void -N003 ( 3, 3) [000213] -----+----- \--* ADD int $441 -N001 ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 $4c - -Visiting BB19 - Reachable through pred BB18 -The SSA definition for ByrefExposed (#3) at start of BB19 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB19 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB19, STMT00036(before) -N004 ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:4 -N003 ( 3, 3) [000219] -----+----- \--* ADD int -N001 ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) -N002 ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 - -N001 [000216] LCL_VAR V04 loc1 u:2 (last use) => $1be {$300, int <- long} -N002 [000510] CNS_INT -4 => $48 {IntCns -4} -N003 [000219] ADD => $442 {ADD($1be, $48)} -Tree [000511] assigned VN to local var V34/4: $442 {ADD($1be, $48)} -N004 [000511] STORE_LCL_VAR V34 tmp29 d:4 => $VN.Void - -***** BB19, STMT00036(after) -N004 ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:4 $VN.Void -N003 ( 3, 3) [000219] -----+----- \--* ADD int $442 -N001 ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 $48 - -Visiting BB65 - Reachable through pred BB16 -The SSA definition for ByrefExposed (#3) at start of BB65 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB65 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -Visiting BB17 - Reachable through pred BB36 - -***** BB17, STMT00101(before) -N004 ( 0, 0) [000560] DA--------- * STORE_LCL_VAR long V04 loc1 d:9 -N003 ( 0, 0) [000559] ----------- \--* PHI long -N001 ( 0, 0) [000586] ----------- pred BB36 +--* PHI_ARG long V04 loc1 u:4 -N002 ( 0, 0) [000577] ----------- pred BB65 \--* PHI_ARG long V04 loc1 u:2 - -SSA PHI definition: set VN of local 4/9 to $304 {PhiDef(V04 d:9, u:4, u:2)} . - -***** BB17, STMT00101(after) -N004 ( 0, 0) [000560] DA--------- * STORE_LCL_VAR long V04 loc1 d:9 $VN.Void -N003 ( 0, 0) [000559] ----------- \--* PHI long $304 -N001 ( 0, 0) [000586] ----------- pred BB36 +--* PHI_ARG long V04 loc1 u:4 $301 -N002 ( 0, 0) [000577] ----------- pred BB65 \--* PHI_ARG long V04 loc1 u:2 $300 - ---------- -The SSA definition for ByrefExposed (#3) at start of BB17 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB17 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB17, STMT00037(before) -N004 ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:5 -N003 ( 3, 3) [000225] -----+----- \--* ADD int -N001 ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 u:9 (last use) -N002 ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 - -N001 [000222] LCL_VAR V04 loc1 u:9 (last use) => $443 {$304, int <- long} -N002 [000513] CNS_INT -3 => $4d {IntCns -3} -N003 [000225] ADD => $444 {ADD($443, $4d)} -Tree [000514] assigned VN to local var V34/5: $444 {ADD($443, $4d)} -N004 [000514] STORE_LCL_VAR V34 tmp29 d:5 => $VN.Void - -***** BB17, STMT00037(after) -N004 ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:5 $VN.Void -N003 ( 3, 3) [000225] -----+----- \--* ADD int $444 -N001 ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 u:9 (last use) $443 -N002 ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 $4d - -Visiting BB64 - Reachable through pred BB14 -The SSA definition for ByrefExposed (#3) at start of BB64 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB64 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -Visiting BB15 - Reachable through pred BB34 - -***** BB15, STMT00100(before) -N004 ( 0, 0) [000558] DA--------- * STORE_LCL_VAR long V04 loc1 d:10 -N003 ( 0, 0) [000557] ----------- \--* PHI long -N001 ( 0, 0) [000587] ----------- pred BB34 +--* PHI_ARG long V04 loc1 u:4 -N002 ( 0, 0) [000578] ----------- pred BB64 \--* PHI_ARG long V04 loc1 u:2 - -SSA PHI definition: set VN of local 4/10 to $305 {PhiDef(V04 d:10, u:4, u:2)} . - -***** BB15, STMT00100(after) -N004 ( 0, 0) [000558] DA--------- * STORE_LCL_VAR long V04 loc1 d:10 $VN.Void -N003 ( 0, 0) [000557] ----------- \--* PHI long $305 -N001 ( 0, 0) [000587] ----------- pred BB34 +--* PHI_ARG long V04 loc1 u:4 $301 -N002 ( 0, 0) [000578] ----------- pred BB64 \--* PHI_ARG long V04 loc1 u:2 $300 - ---------- -The SSA definition for ByrefExposed (#3) at start of BB15 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB15 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB15, STMT00038(before) -N004 ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:6 -N003 ( 3, 3) [000231] -----+----- \--* ADD int -N001 ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 u:10 (last use) -N002 ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 - -N001 [000228] LCL_VAR V04 loc1 u:10 (last use) => $445 {$305, int <- long} -N002 [000516] CNS_INT -2 => $4e {IntCns -2} -N003 [000231] ADD => $446 {ADD($445, $4e)} -Tree [000517] assigned VN to local var V34/6: $446 {ADD($445, $4e)} -N004 [000517] STORE_LCL_VAR V34 tmp29 d:6 => $VN.Void - -***** BB15, STMT00038(after) -N004 ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:6 $VN.Void -N003 ( 3, 3) [000231] -----+----- \--* ADD int $446 -N001 ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 u:10 (last use) $445 -N002 ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 $4e - -Visiting BB63 - Reachable through pred BB12 -The SSA definition for ByrefExposed (#3) at start of BB63 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB63 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -Visiting BB13 - Reachable through pred BB32 - -***** BB13, STMT00099(before) -N004 ( 0, 0) [000556] DA--------- * STORE_LCL_VAR long V04 loc1 d:11 -N003 ( 0, 0) [000555] ----------- \--* PHI long -N001 ( 0, 0) [000588] ----------- pred BB32 +--* PHI_ARG long V04 loc1 u:4 -N002 ( 0, 0) [000579] ----------- pred BB63 \--* PHI_ARG long V04 loc1 u:2 - -SSA PHI definition: set VN of local 4/11 to $306 {PhiDef(V04 d:11, u:4, u:2)} . - -***** BB13, STMT00099(after) -N004 ( 0, 0) [000556] DA--------- * STORE_LCL_VAR long V04 loc1 d:11 $VN.Void -N003 ( 0, 0) [000555] ----------- \--* PHI long $306 -N001 ( 0, 0) [000588] ----------- pred BB32 +--* PHI_ARG long V04 loc1 u:4 $301 -N002 ( 0, 0) [000579] ----------- pred BB63 \--* PHI_ARG long V04 loc1 u:2 $300 - ---------- -The SSA definition for ByrefExposed (#3) at start of BB13 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB13 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB13, STMT00039(before) -N004 ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:7 -N003 ( 3, 3) [000237] -----+----- \--* ADD int -N001 ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 u:11 (last use) -N002 ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 - -N001 [000234] LCL_VAR V04 loc1 u:11 (last use) => $447 {$306, int <- long} -N002 [000519] CNS_INT -1 => $43 {IntCns -1} -N003 [000237] ADD => $448 {ADD($447, $43)} -Tree [000520] assigned VN to local var V34/7: $448 {ADD($447, $43)} -N004 [000520] STORE_LCL_VAR V34 tmp29 d:7 => $VN.Void - -***** BB13, STMT00039(after) -N004 ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:7 $VN.Void -N003 ( 3, 3) [000237] -----+----- \--* ADD int $448 -N001 ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 u:11 (last use) $447 -N002 ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 $43 - -Visiting BB62 - Reachable through pred BB10 -The SSA definition for ByrefExposed (#3) at start of BB62 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB62 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -Visiting BB11 - Reachable through pred BB29 - -***** BB11, STMT00093(before) -N005 ( 0, 0) [000544] DA--------- * STORE_LCL_VAR long V04 loc1 d:12 -N004 ( 0, 0) [000543] ----------- \--* PHI long -N001 ( 0, 0) [000591] ----------- pred BB61 +--* PHI_ARG long V04 loc1 u:7 -N002 ( 0, 0) [000583] ----------- pred BB29 +--* PHI_ARG long V04 loc1 u:4 -N003 ( 0, 0) [000580] ----------- pred BB62 \--* PHI_ARG long V04 loc1 u:2 - -SSA PHI definition: set VN of local 4/12 to $307 {PhiDef(V04 d:12, u:7, u:4, u:2)} . - -***** BB11, STMT00093(after) -N005 ( 0, 0) [000544] DA--------- * STORE_LCL_VAR long V04 loc1 d:12 $VN.Void -N004 ( 0, 0) [000543] ----------- \--* PHI long $307 -N001 ( 0, 0) [000591] ----------- pred BB61 +--* PHI_ARG long V04 loc1 u:7 $303 -N002 ( 0, 0) [000583] ----------- pred BB29 +--* PHI_ARG long V04 loc1 u:4 $301 -N003 ( 0, 0) [000580] ----------- pred BB62 \--* PHI_ARG long V04 loc1 u:2 $300 - ---------- -The SSA definition for ByrefExposed (#3) at start of BB11 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB11 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB11, STMT00040(before) -N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 -N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) - -N001 [000240] LCL_VAR V04 loc1 u:12 (last use) => $449 {$307, int <- long} -Tree [000521] assigned VN to local var V34/8: $449 {$307, int <- long} -N002 [000521] STORE_LCL_VAR V34 tmp29 d:8 => $VN.Void - -***** BB11, STMT00040(after) -N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void -N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) $449 - -Visiting BB58 - Reachable through pred BB11 - -***** BB58, STMT00091(before) -N010 ( 0, 0) [000540] DA--------- * STORE_LCL_VAR int V34 tmp29 d:9 -N009 ( 0, 0) [000539] ----------- \--* PHI int -N001 ( 0, 0) [000597] ----------- pred BB11 +--* PHI_ARG int V34 tmp29 u:8 -N002 ( 0, 0) [000596] ----------- pred BB13 +--* PHI_ARG int V34 tmp29 u:7 -N003 ( 0, 0) [000595] ----------- pred BB15 +--* PHI_ARG int V34 tmp29 u:6 -N004 ( 0, 0) [000594] ----------- pred BB17 +--* PHI_ARG int V34 tmp29 u:5 -N005 ( 0, 0) [000576] ----------- pred BB19 +--* PHI_ARG int V34 tmp29 u:4 -N006 ( 0, 0) [000575] ----------- pred BB21 +--* PHI_ARG int V34 tmp29 u:3 -N007 ( 0, 0) [000574] ----------- pred BB23 +--* PHI_ARG int V34 tmp29 u:2 -N008 ( 0, 0) [000573] ----------- pred BB25 \--* PHI_ARG int V34 tmp29 u:1 - -SSA PHI definition: set VN of local 34/9 to $2c4 {PhiDef(V34 d:9, u:8, u:7, u:6, u:5, u:4, u:3, u:2, u:1)} . - -***** BB58, STMT00091(after) -N010 ( 0, 0) [000540] DA--------- * STORE_LCL_VAR int V34 tmp29 d:9 $VN.Void -N009 ( 0, 0) [000539] ----------- \--* PHI int $2c4 -N001 ( 0, 0) [000597] ----------- pred BB11 +--* PHI_ARG int V34 tmp29 u:8 $449 -N002 ( 0, 0) [000596] ----------- pred BB13 +--* PHI_ARG int V34 tmp29 u:7 $448 -N003 ( 0, 0) [000595] ----------- pred BB15 +--* PHI_ARG int V34 tmp29 u:6 $446 -N004 ( 0, 0) [000594] ----------- pred BB17 +--* PHI_ARG int V34 tmp29 u:5 $444 -N005 ( 0, 0) [000576] ----------- pred BB19 +--* PHI_ARG int V34 tmp29 u:4 $442 -N006 ( 0, 0) [000575] ----------- pred BB21 +--* PHI_ARG int V34 tmp29 u:3 $441 -N007 ( 0, 0) [000574] ----------- pred BB23 +--* PHI_ARG int V34 tmp29 u:2 $440 -N008 ( 0, 0) [000573] ----------- pred BB25 \--* PHI_ARG int V34 tmp29 u:1 $1bf - ---------- -The SSA definition for ByrefExposed (#3) at start of BB58 is $200 {MemoryPhiDef(BB57, m:2, m:1)} -The SSA definition for GcHeap (#3) at start of BB58 is $200 {MemoryPhiDef(BB57, m:2, m:1)} - -***** BB58, STMT00087(before) -N002 ( 2, 2) [000492] -----+----- * RETURN int -N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) - -N001 [000491] LCL_VAR V34 tmp29 u:9 (last use) => $2c4 {PhiDef(V34 d:9, u:8, u:7, u:6, u:5, u:4, u:3, u:2, u:1)} -N002 [000492] RETURN => $VN.Void - -***** BB58, STMT00087(after) -N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void -N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) $2c4 - - -*************** Finishing PHASE Do value numbering -Trees after Do value numbering - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(0.5),BB68(0.5) ( cond ) i -BB68 [0095] 1 BB09 0.50 [???..???)-> BB10(1) (always) i -BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target -BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd -BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd -BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd -BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd -BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal -BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal -BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i -BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal -BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i -BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal -BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i -BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal -BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i -BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i -BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i -BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i -BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i -BB28 [0027] 1 BB26 0.50 [???..???)-> BB69(1) (always) i -BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB69 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i -BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i -BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i -BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i -BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd -BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal -BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal -BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i -BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall -BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} -SSA MEM: ByrefExposed, GcHeap = m:1 - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000002] J----+-N--- \--* GE int $180 -N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 $40 - -SSA MEM: ByrefExposed, GcHeap = m:1 - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} -SSA MEM: ByrefExposed, GcHeap = m:1 - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void -N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref $1c0 -N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref $1c1 - -SSA MEM: ByrefExposed, GcHeap = m:2 - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} -SSA MEM: ByrefExposed, GcHeap = phi(m:2, m:1) - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) -N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000033] J----+-N--- \--* GE int $181 -N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB09 [0008] [068..073) -> BB69(0.5),BB68(0.5) (cond), preds={BB57} succs={BB68,BB69} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) -N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void -N004 ( 4, 5) [000050] -----+----- \--* ADD long $241 -N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int $240 -N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 $100 -N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 $280 - -***** BB09 [0008] -STMT00090 ( 0x1E7[E--] ... ??? ) -N004 ( 5, 5) [000535] ----------- * JTRUE void $VN.Void -N003 ( 3, 3) [000536] J------N--- \--* LT int $182 -N001 ( 1, 1) [000537] ----------- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000538] ----------- \--* CNS_INT int 8 $45 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB68 [0095] [???..???) -> BB10(1) (always), preds={BB09} succs={BB10} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB26,BB68} succs={BB62,BB12} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB10 [0009] -STMT00103 ( ??? ... ??? ) -N004 ( 0, 0) [000564] DA--------- * STORE_LCL_VAR int V02 arg2 d:2 $VN.Void -N003 ( 0, 0) [000563] ----------- \--* PHI int $2c0 -N001 ( 0, 0) [000569] ----------- pred BB26 +--* PHI_ARG int V02 arg2 u:3 -N002 ( 0, 0) [000567] ----------- pred BB68 \--* PHI_ARG int V02 arg2 u:1 $100 - -***** BB10 [0009] -STMT00098 ( ??? ... ??? ) -N004 ( 0, 0) [000554] DA--------- * STORE_LCL_VAR long V04 loc1 d:2 $VN.Void -N003 ( 0, 0) [000553] ----------- \--* PHI long $300 -N001 ( 0, 0) [000570] ----------- pred BB26 +--* PHI_ARG long V04 loc1 u:3 -N002 ( 0, 0) [000568] ----------- pred BB68 \--* PHI_ARG long V04 loc1 u:1 $241 - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) -N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 d:3 $VN.Void -N003 ( 3, 3) [000058] -----+----- \--* ADD int $183 -N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 u:2 (last use) $2c0 -N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 $46 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) -N009 ( 9, 8) [000073] ---XG+----- * JTRUE void $401 -N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int -N006 ( 5, 4) [000065] ---XG+----- +--* IND long -N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref $340 -N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long $242 -N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) -N011 ( 9, 9) [000090] ---XG+----- * JTRUE void $403 -N010 ( 7, 7) [000408] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000082] ---XG+----- +--* IND long -N007 ( 4, 4) [000081] -----+-N--- | \--* ADD byref $341 -N001 ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000080] -----+-N--- | \--* ADD long $245 -N004 ( 2, 2) [000078] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 $283 -N009 ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) -N011 ( 9, 9) [000107] ---XG+----- * JTRUE void $405 -N010 ( 7, 7) [000415] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000099] ---XG+----- +--* IND long -N007 ( 4, 4) [000098] -----+-N--- | \--* ADD byref $342 -N001 ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000097] -----+-N--- | \--* ADD long $248 -N004 ( 2, 2) [000095] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 $284 -N009 ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) -N011 ( 9, 9) [000124] ---XG+----- * JTRUE void $407 -N010 ( 7, 7) [000422] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000116] ---XG+----- +--* IND long -N007 ( 4, 4) [000115] -----+-N--- | \--* ADD byref $343 -N001 ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000114] -----+-N--- | \--* ADD long $24b -N004 ( 2, 2) [000112] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 $285 -N009 ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) -N011 ( 9, 9) [000141] ---XG+----- * JTRUE void $409 -N010 ( 7, 7) [000429] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000133] ---XG+----- +--* IND long -N007 ( 4, 4) [000132] -----+-N--- | \--* ADD byref $344 -N001 ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000131] -----+-N--- | \--* ADD long $24e -N004 ( 2, 2) [000129] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 $286 -N009 ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) -N011 ( 9, 9) [000158] ---XG+----- * JTRUE void $40b -N010 ( 7, 7) [000436] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000150] ---XG+----- +--* IND long -N007 ( 4, 4) [000149] -----+-N--- | \--* ADD byref $345 -N001 ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000148] -----+-N--- | \--* ADD long $251 -N004 ( 2, 2) [000146] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 $287 -N009 ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) -N011 ( 9, 9) [000175] ---XG+----- * JTRUE void $40d -N010 ( 7, 7) [000443] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000167] ---XG+----- +--* IND long -N007 ( 4, 4) [000166] -----+-N--- | \--* ADD byref $346 -N001 ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000165] -----+-N--- | \--* ADD long $254 -N004 ( 2, 2) [000163] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 $288 -N009 ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) -N011 ( 9, 9) [000192] ---XG+----- * JTRUE void $40f -N010 ( 7, 7) [000450] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000184] ---XG+----- +--* IND long -N007 ( 4, 4) [000183] -----+-N--- | \--* ADD byref $347 -N001 ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000182] -----+-N--- | \--* ADD long $257 -N004 ( 2, 2) [000180] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 $289 -N009 ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB26 [0025] [1E2..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB24} succs={BB28,BB10} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) -N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 d:3 $VN.Void -N003 ( 3, 3) [000196] -----+----- \--* ADD long $25a -N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 u:2 (last use) $300 -N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 $283 - -***** BB26 [0025] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) -N004 ( 5, 5) [000055] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000054] J----+-N--- \--* GE int $1a4 -N001 ( 1, 1) [000052] -----+----- +--* LCL_VAR int V02 arg2 u:3 $183 -N002 ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 $45 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB11 [0010] -STMT00093 ( ??? ... ??? ) -N005 ( 0, 0) [000544] DA--------- * STORE_LCL_VAR long V04 loc1 d:12 $VN.Void -N004 ( 0, 0) [000543] ----------- \--* PHI long $307 -N001 ( 0, 0) [000591] ----------- pred BB61 +--* PHI_ARG long V04 loc1 u:7 $303 -N002 ( 0, 0) [000583] ----------- pred BB29 +--* PHI_ARG long V04 loc1 u:4 $301 -N003 ( 0, 0) [000580] ----------- pred BB62 \--* PHI_ARG long V04 loc1 u:2 $300 - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) -N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void -N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) $449 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB13 [0012] -STMT00099 ( ??? ... ??? ) -N004 ( 0, 0) [000556] DA--------- * STORE_LCL_VAR long V04 loc1 d:11 $VN.Void -N003 ( 0, 0) [000555] ----------- \--* PHI long $306 -N001 ( 0, 0) [000588] ----------- pred BB32 +--* PHI_ARG long V04 loc1 u:4 $301 -N002 ( 0, 0) [000579] ----------- pred BB63 \--* PHI_ARG long V04 loc1 u:2 $300 - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) -N004 ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:7 $VN.Void -N003 ( 3, 3) [000237] -----+----- \--* ADD int $448 -N001 ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 u:11 (last use) $447 -N002 ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 $43 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB15 [0014] -STMT00100 ( ??? ... ??? ) -N004 ( 0, 0) [000558] DA--------- * STORE_LCL_VAR long V04 loc1 d:10 $VN.Void -N003 ( 0, 0) [000557] ----------- \--* PHI long $305 -N001 ( 0, 0) [000587] ----------- pred BB34 +--* PHI_ARG long V04 loc1 u:4 $301 -N002 ( 0, 0) [000578] ----------- pred BB64 \--* PHI_ARG long V04 loc1 u:2 $300 - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) -N004 ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:6 $VN.Void -N003 ( 3, 3) [000231] -----+----- \--* ADD int $446 -N001 ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 u:10 (last use) $445 -N002 ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 $4e - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB17 [0016] -STMT00101 ( ??? ... ??? ) -N004 ( 0, 0) [000560] DA--------- * STORE_LCL_VAR long V04 loc1 d:9 $VN.Void -N003 ( 0, 0) [000559] ----------- \--* PHI long $304 -N001 ( 0, 0) [000586] ----------- pred BB36 +--* PHI_ARG long V04 loc1 u:4 $301 -N002 ( 0, 0) [000577] ----------- pred BB65 \--* PHI_ARG long V04 loc1 u:2 $300 - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) -N004 ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:5 $VN.Void -N003 ( 3, 3) [000225] -----+----- \--* ADD int $444 -N001 ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 u:9 (last use) $443 -N002 ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 $4d - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) -N004 ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:4 $VN.Void -N003 ( 3, 3) [000219] -----+----- \--* ADD int $442 -N001 ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 $48 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) -N004 ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:3 $VN.Void -N003 ( 3, 3) [000213] -----+----- \--* ADD int $441 -N001 ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 $4c - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) -N004 ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:2 $VN.Void -N003 ( 3, 3) [000207] -----+----- \--* ADD int $440 -N001 ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 $4b - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) -N004 ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:1 $VN.Void -N003 ( 3, 3) [000201] -----+----- \--* ADD int $1bf -N001 ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 $4a - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB28 [0027] [???..???) -> BB69(1) (always), preds={BB26} succs={BB69} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB69 [0096] [1EE..1F5) -> BB60(0.5),BB29(0.5) (cond), preds={BB09,BB28} succs={BB29,BB60} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB69 [0096] -STMT00102 ( ??? ... ??? ) -N004 ( 0, 0) [000562] DA--------- * STORE_LCL_VAR int V02 arg2 d:4 $VN.Void -N003 ( 0, 0) [000561] ----------- \--* PHI int $2c1 -N001 ( 0, 0) [000571] ----------- pred BB28 +--* PHI_ARG int V02 arg2 u:3 $183 -N002 ( 0, 0) [000565] ----------- pred BB09 \--* PHI_ARG int V02 arg2 u:1 $100 - -***** BB69 [0096] -STMT00097 ( ??? ... ??? ) -N004 ( 0, 0) [000552] DA--------- * STORE_LCL_VAR long V04 loc1 d:4 $VN.Void -N003 ( 0, 0) [000551] ----------- \--* PHI long $301 -N001 ( 0, 0) [000572] ----------- pred BB28 +--* PHI_ARG long V04 loc1 u:3 $25a -N002 ( 0, 0) [000566] ----------- pred BB09 \--* PHI_ARG long V04 loc1 u:1 $241 - -***** BB69 [0096] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) -N004 ( 5, 5) [000246] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000245] J----+-N--- \--* LT int $1a5 -N001 ( 1, 1) [000243] -----+----- +--* LCL_VAR int V02 arg2 u:4 $2c1 -N002 ( 1, 1) [000244] -----+----- \--* CNS_INT int 4 $47 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB69} succs={BB31,BB11} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) -N004 ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 d:5 $VN.Void -N003 ( 3, 3) [000281] -----+----- \--* ADD int $1a6 -N001 ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 u:4 (last use) $2c1 -N002 ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 $48 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) -N009 ( 9, 8) [000296] ---XG+----- * JTRUE void $411 -N008 ( 7, 6) [000457] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000288] ---XG+----- +--* IND long -N005 ( 3, 3) [000287] -----+-N--- | \--* ADD byref $348 -N001 ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000286] -----+-N--- | \--* LSH long $25b -N002 ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) -N011 ( 9, 9) [000313] ---XG+----- * JTRUE void $413 -N010 ( 7, 7) [000464] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000305] ---XG+----- +--* IND long -N007 ( 4, 4) [000304] -----+-N--- | \--* ADD byref $349 -N001 ( 1, 1) [000297] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000303] -----+-N--- | \--* ADD long $25e -N004 ( 2, 2) [000301] -----+-N--- | +--* LSH long $25b -N002 ( 1, 1) [000298] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000300] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000302] -----+----- | \--* CNS_INT long -8 $283 -N009 ( 1, 1) [000306] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) -N011 ( 9, 9) [000330] ---XG+----- * JTRUE void $415 -N010 ( 7, 7) [000471] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000322] ---XG+----- +--* IND long -N007 ( 4, 4) [000321] -----+-N--- | \--* ADD byref $34a -N001 ( 1, 1) [000314] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000320] -----+-N--- | \--* ADD long $261 -N004 ( 2, 2) [000318] -----+-N--- | +--* LSH long $25b -N002 ( 1, 1) [000315] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000317] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000319] -----+----- | \--* CNS_INT long -16 $284 -N009 ( 1, 1) [000323] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) -N011 ( 9, 9) [000347] ---XG+----- * JTRUE void $417 -N010 ( 7, 7) [000478] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000339] ---XG+----- +--* IND long -N007 ( 4, 4) [000338] -----+-N--- | \--* ADD byref $34b -N001 ( 1, 1) [000331] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000337] -----+-N--- | \--* ADD long $264 -N004 ( 2, 2) [000335] -----+-N--- | +--* LSH long $25b -N002 ( 1, 1) [000332] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000334] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000336] -----+----- | \--* CNS_INT long -24 $285 -N009 ( 1, 1) [000340] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) -N004 ( 3, 3) [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 d:5 $VN.Void -N003 ( 3, 3) [000351] -----+----- \--* ADD long $267 -N001 ( 1, 1) [000348] -----+----- +--* LCL_VAR long V04 loc1 u:4 (last use) $301 -N002 ( 1, 1) [000350] -----+----- \--* CNS_INT long -4 $28a - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB40,BB66} succs={BB40,BB61} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB38 [0037] -STMT00094 ( ??? ... ??? ) -N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 $VN.Void -N003 ( 0, 0) [000545] ----------- \--* PHI int $2c3 -N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 -N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 $2c2 - -***** BB38 [0037] -STMT00092 ( ??? ... ??? ) -N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 $VN.Void -N003 ( 0, 0) [000541] ----------- \--* PHI long $303 -N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 -N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 $302 - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) -N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void -N003 ( 3, 3) [000253] -----+----- \--* ADD int $1b8 -N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) $2c3 -N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 $43 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) -N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 -N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000260] ---XG+----- +--* IND long -N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref $34c -N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long $268 -N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 $303 -N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) -N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void -N003 ( 3, 3) [000272] -----+----- \--* ADD long $26b -N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) $303 -N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 $280 - -***** BB40 [0039] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) -N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000249] J----+-N--- \--* GT int $1bd -N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 $1b8 -N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 $40 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB37,BB69} succs={BB66,BB67} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB60 [0087] -STMT00096 ( ??? ... ??? ) -N004 ( 0, 0) [000550] DA--------- * STORE_LCL_VAR int V02 arg2 d:6 $VN.Void -N003 ( 0, 0) [000549] ----------- \--* PHI int $2c2 -N001 ( 0, 0) [000584] ----------- pred BB37 +--* PHI_ARG int V02 arg2 u:5 $1a6 -N002 ( 0, 0) [000581] ----------- pred BB69 \--* PHI_ARG int V02 arg2 u:4 $2c1 - -***** BB60 [0087] -STMT00095 ( ??? ... ??? ) -N004 ( 0, 0) [000548] DA--------- * STORE_LCL_VAR long V04 loc1 d:6 $VN.Void -N003 ( 0, 0) [000547] ----------- \--* PHI long $302 -N001 ( 0, 0) [000585] ----------- pred BB37 +--* PHI_ARG long V04 loc1 u:5 $267 -N002 ( 0, 0) [000582] ----------- pred BB69 \--* PHI_ARG long V04 loc1 u:4 $301 - -***** BB60 [0087] -STMT00089 ( 0x2E5[E--] ... ??? ) -N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void -N003 ( 3, 3) [000532] J------N--- \--* LE int $1b7 -N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 -N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB66 [0093] [???..???) -> BB38(1) (always), preds={BB60} succs={BB38} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB42 [0041] [???..???) -> BB67(1) (always), preds={BB40} succs={BB67} -SSA MEM: ByrefExposed, GcHeap = m:3 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB67 [0094] [2E9..2EB) (return), preds={BB42,BB60} succs={} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB67 [0094] -STMT00088 ( ??? ... ??? ) -N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void -N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 $43 - -SSA MEM: ByrefExposed, GcHeap = m:3 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) -N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void -N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) $80 -N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) $c0 -N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) $100 - -SSA MEM: ByrefExposed, GcHeap = m:4 - ------------- BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} -SSA MEM: ByrefExposed, GcHeap = m:3 - -***** BB58 [0085] -STMT00091 ( ??? ... ??? ) -N010 ( 0, 0) [000540] DA--------- * STORE_LCL_VAR int V34 tmp29 d:9 $VN.Void -N009 ( 0, 0) [000539] ----------- \--* PHI int $2c4 -N001 ( 0, 0) [000597] ----------- pred BB11 +--* PHI_ARG int V34 tmp29 u:8 $449 -N002 ( 0, 0) [000596] ----------- pred BB13 +--* PHI_ARG int V34 tmp29 u:7 $448 -N003 ( 0, 0) [000595] ----------- pred BB15 +--* PHI_ARG int V34 tmp29 u:6 $446 -N004 ( 0, 0) [000594] ----------- pred BB17 +--* PHI_ARG int V34 tmp29 u:5 $444 -N005 ( 0, 0) [000576] ----------- pred BB19 +--* PHI_ARG int V34 tmp29 u:4 $442 -N006 ( 0, 0) [000575] ----------- pred BB21 +--* PHI_ARG int V34 tmp29 u:3 $441 -N007 ( 0, 0) [000574] ----------- pred BB23 +--* PHI_ARG int V34 tmp29 u:2 $440 -N008 ( 0, 0) [000573] ----------- pred BB25 \--* PHI_ARG int V34 tmp29 u:1 $1bf - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) -N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void -N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) $2c4 - -SSA MEM: ByrefExposed, GcHeap = m:3 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -SSA checks completed successfully -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Hoist loop code - -*************** In optHoistLoopCode() - -*************** Exception Handling table is empty -optHoistThisLoop processing L01 header: BB38 - Members (2): [BB38..BB40] - Entry: BB66 -> BB38 - Exit: BB38 -> BB61; BB40 -> BB42 - Back: BB40 -> BB38 - Loop body does not contain a call - - USEDEF (4)={V00 V01 V02 V04} - INOUT (4)={V00 V01 V02 V04} - LOOPVARS(4)={V00 V01 V02 V04} - Considering hoisting in entry block BB38 because L01 has more than one exit - -- BB38 (header block) - - HoistBlock BB38 (weight= 4 ) of loop L01 (head: BB38) ------ PreOrderVisit for [000254] STORE_LCL_VAR ------ PreOrderVisit for [000253] ADD ------ PreOrderVisit for [000251] LCL_VAR ------ PostOrderVisit for [000251] LCL_VAR - [000251] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop ------ PreOrderVisit for [000252] CNS_INT ------ PostOrderVisit for [000252] CNS_INT -CONST CSE is disabled -Standard CSE Heuristic ------ PostOrderVisit for [000253] ADD ------ PostOrderVisit for [000254] STORE_LCL_VAR - [000254] not invariant: variant child ------ PreOrderVisit for [000268] JTRUE ------ PreOrderVisit for [000485] EQ ------ PreOrderVisit for [000260] IND ------ PreOrderVisit for [000259] ADD ------ PreOrderVisit for [000255] LCL_VAR ------ PostOrderVisit for [000255] LCL_VAR - [000255] LCL_VAR: not hoistable: not handled by hoisting or CSE ------ PreOrderVisit for [000258] LSH ------ PreOrderVisit for [000256] LCL_VAR ------ PostOrderVisit for [000256] LCL_VAR - [000256] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop ------ PreOrderVisit for [000257] CNS_INT ------ PostOrderVisit for [000257] CNS_INT ------ PostOrderVisit for [000258] LSH ------ PostOrderVisit for [000259] ADD ------ PostOrderVisit for [000260] IND ------ PreOrderVisit for [000261] LCL_VAR ------ PostOrderVisit for [000261] LCL_VAR - [000261] LCL_VAR: not hoistable: not handled by hoisting or CSE ------ PostOrderVisit for [000485] EQ ------ PostOrderVisit for [000268] JTRUE - [000268] not invariant: variant child - - HoistBlock BB40 (weight= 4 ) of loop L01 (head: BB38) ------ PreOrderVisit for [000273] STORE_LCL_VAR ------ PreOrderVisit for [000272] ADD ------ PreOrderVisit for [000269] LCL_VAR ------ PostOrderVisit for [000269] LCL_VAR - [000269] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop ------ PreOrderVisit for [000271] CNS_INT ------ PostOrderVisit for [000271] CNS_INT ------ PostOrderVisit for [000272] ADD ------ PostOrderVisit for [000273] STORE_LCL_VAR - [000273] not invariant: variant child ------ PreOrderVisit for [000250] JTRUE ------ PreOrderVisit for [000249] GT ------ PreOrderVisit for [000247] LCL_VAR ------ PostOrderVisit for [000247] LCL_VAR - [000247] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop ------ PreOrderVisit for [000248] CNS_INT ------ PostOrderVisit for [000248] CNS_INT ------ PostOrderVisit for [000249] GT ------ PostOrderVisit for [000250] JTRUE - [000250] not invariant: variant child -Resetting m_pHoistedInCurLoop -optHoistThisLoop processing L00 header: BB10 - Members (9): [BB10..BB26] - Entry: BB68 -> BB10 - Exit: BB10 -> BB62; BB12 -> BB63; BB14 -> BB64; BB16 -> BB65; BB18 -> BB19; BB20 -> BB21; BB22 -> BB23; BB24 -> BB25; BB26 -> BB28 - Back: BB26 -> BB10 - Loop body does not contain a call - - USEDEF (4)={V00 V01 V02 V04} - INOUT (4)={V00 V01 V02 V04} - LOOPVARS(4)={V00 V01 V02 V04} - Considering hoisting in entry block BB10 because L00 has more than one exit - -- BB10 (header block) - - HoistBlock BB10 (weight= 4 ) of loop L00 (head: BB10) ------ PreOrderVisit for [000059] STORE_LCL_VAR ------ PreOrderVisit for [000058] ADD ------ PreOrderVisit for [000056] LCL_VAR ------ PostOrderVisit for [000056] LCL_VAR - [000056] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop ------ PreOrderVisit for [000057] CNS_INT ------ PostOrderVisit for [000057] CNS_INT ------ PostOrderVisit for [000058] ADD ------ PostOrderVisit for [000059] STORE_LCL_VAR - [000059] not invariant: variant child ------ PreOrderVisit for [000073] JTRUE ------ PreOrderVisit for [000401] NE ------ PreOrderVisit for [000065] IND ------ PreOrderVisit for [000064] ADD ------ PreOrderVisit for [000060] LCL_VAR ------ PostOrderVisit for [000060] LCL_VAR - [000060] LCL_VAR: not hoistable: not handled by hoisting or CSE ------ PreOrderVisit for [000063] LSH ------ PreOrderVisit for [000061] LCL_VAR ------ PostOrderVisit for [000061] LCL_VAR - [000061] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop ------ PreOrderVisit for [000062] CNS_INT ------ PostOrderVisit for [000062] CNS_INT ------ PostOrderVisit for [000063] LSH ------ PostOrderVisit for [000064] ADD ------ PostOrderVisit for [000065] IND ------ PreOrderVisit for [000066] LCL_VAR ------ PostOrderVisit for [000066] LCL_VAR - [000066] LCL_VAR: not hoistable: not handled by hoisting or CSE ------ PostOrderVisit for [000401] NE ------ PostOrderVisit for [000073] JTRUE - [000073] not invariant: variant child - - HoistBlock BB12 (weight= 4 ) of loop L00 (head: BB10) ------ PreOrderVisit for [000090] JTRUE ------ PreOrderVisit for [000408] NE ------ PreOrderVisit for [000082] IND ------ PreOrderVisit for [000081] ADD ------ PreOrderVisit for [000074] LCL_VAR ------ PostOrderVisit for [000074] LCL_VAR - [000074] LCL_VAR: not hoistable: not handled by hoisting or CSE ------ PreOrderVisit for [000080] ADD ------ PreOrderVisit for [000078] LSH ------ PreOrderVisit for [000075] LCL_VAR ------ PostOrderVisit for [000075] LCL_VAR - [000075] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop ------ PreOrderVisit for [000077] CNS_INT ------ PostOrderVisit for [000077] CNS_INT ------ PostOrderVisit for [000078] LSH ------ PreOrderVisit for [000079] CNS_INT ------ PostOrderVisit for [000079] CNS_INT ------ PostOrderVisit for [000080] ADD ------ PostOrderVisit for [000081] ADD ------ PostOrderVisit for [000082] IND ------ PreOrderVisit for [000083] LCL_VAR ------ PostOrderVisit for [000083] LCL_VAR - [000083] LCL_VAR: not hoistable: not handled by hoisting or CSE ------ PostOrderVisit for [000408] NE ------ PostOrderVisit for [000090] JTRUE - [000090] not invariant: variant child - - HoistBlock BB14 (weight= 4 ) of loop L00 (head: BB10) ------ PreOrderVisit for [000107] JTRUE ------ PreOrderVisit for [000415] NE ------ PreOrderVisit for [000099] IND ------ PreOrderVisit for [000098] ADD ------ PreOrderVisit for [000091] LCL_VAR ------ PostOrderVisit for [000091] LCL_VAR - [000091] LCL_VAR: not hoistable: not handled by hoisting or CSE ------ PreOrderVisit for [000097] ADD ------ PreOrderVisit for [000095] LSH ------ PreOrderVisit for [000092] LCL_VAR ------ PostOrderVisit for [000092] LCL_VAR - [000092] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop ------ PreOrderVisit for [000094] CNS_INT ------ PostOrderVisit for [000094] CNS_INT ------ PostOrderVisit for [000095] LSH ------ PreOrderVisit for [000096] CNS_INT ------ PostOrderVisit for [000096] CNS_INT ------ PostOrderVisit for [000097] ADD ------ PostOrderVisit for [000098] ADD ------ PostOrderVisit for [000099] IND ------ PreOrderVisit for [000100] LCL_VAR ------ PostOrderVisit for [000100] LCL_VAR - [000100] LCL_VAR: not hoistable: not handled by hoisting or CSE ------ PostOrderVisit for [000415] NE ------ PostOrderVisit for [000107] JTRUE - [000107] not invariant: variant child - - HoistBlock BB16 (weight= 4 ) of loop L00 (head: BB10) ------ PreOrderVisit for [000124] JTRUE ------ PreOrderVisit for [000422] NE ------ PreOrderVisit for [000116] IND ------ PreOrderVisit for [000115] ADD ------ PreOrderVisit for [000108] LCL_VAR ------ PostOrderVisit for [000108] LCL_VAR - [000108] LCL_VAR: not hoistable: not handled by hoisting or CSE ------ PreOrderVisit for [000114] ADD ------ PreOrderVisit for [000112] LSH ------ PreOrderVisit for [000109] LCL_VAR ------ PostOrderVisit for [000109] LCL_VAR - [000109] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop ------ PreOrderVisit for [000111] CNS_INT ------ PostOrderVisit for [000111] CNS_INT ------ PostOrderVisit for [000112] LSH ------ PreOrderVisit for [000113] CNS_INT ------ PostOrderVisit for [000113] CNS_INT ------ PostOrderVisit for [000114] ADD ------ PostOrderVisit for [000115] ADD ------ PostOrderVisit for [000116] IND ------ PreOrderVisit for [000117] LCL_VAR ------ PostOrderVisit for [000117] LCL_VAR - [000117] LCL_VAR: not hoistable: not handled by hoisting or CSE ------ PostOrderVisit for [000422] NE ------ PostOrderVisit for [000124] JTRUE - [000124] not invariant: variant child - - HoistBlock BB18 (weight= 4 ) of loop L00 (head: BB10) ------ PreOrderVisit for [000141] JTRUE ------ PreOrderVisit for [000429] NE ------ PreOrderVisit for [000133] IND ------ PreOrderVisit for [000132] ADD ------ PreOrderVisit for [000125] LCL_VAR ------ PostOrderVisit for [000125] LCL_VAR - [000125] LCL_VAR: not hoistable: not handled by hoisting or CSE ------ PreOrderVisit for [000131] ADD ------ PreOrderVisit for [000129] LSH ------ PreOrderVisit for [000126] LCL_VAR ------ PostOrderVisit for [000126] LCL_VAR - [000126] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop ------ PreOrderVisit for [000128] CNS_INT ------ PostOrderVisit for [000128] CNS_INT ------ PostOrderVisit for [000129] LSH ------ PreOrderVisit for [000130] CNS_INT ------ PostOrderVisit for [000130] CNS_INT ------ PostOrderVisit for [000131] ADD ------ PostOrderVisit for [000132] ADD ------ PostOrderVisit for [000133] IND ------ PreOrderVisit for [000134] LCL_VAR ------ PostOrderVisit for [000134] LCL_VAR - [000134] LCL_VAR: not hoistable: not handled by hoisting or CSE ------ PostOrderVisit for [000429] NE ------ PostOrderVisit for [000141] JTRUE - [000141] not invariant: variant child - - HoistBlock BB20 (weight= 4 ) of loop L00 (head: BB10) ------ PreOrderVisit for [000158] JTRUE ------ PreOrderVisit for [000436] NE ------ PreOrderVisit for [000150] IND ------ PreOrderVisit for [000149] ADD ------ PreOrderVisit for [000142] LCL_VAR ------ PostOrderVisit for [000142] LCL_VAR - [000142] LCL_VAR: not hoistable: not handled by hoisting or CSE ------ PreOrderVisit for [000148] ADD ------ PreOrderVisit for [000146] LSH ------ PreOrderVisit for [000143] LCL_VAR ------ PostOrderVisit for [000143] LCL_VAR - [000143] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop ------ PreOrderVisit for [000145] CNS_INT ------ PostOrderVisit for [000145] CNS_INT ------ PostOrderVisit for [000146] LSH ------ PreOrderVisit for [000147] CNS_INT ------ PostOrderVisit for [000147] CNS_INT ------ PostOrderVisit for [000148] ADD ------ PostOrderVisit for [000149] ADD ------ PostOrderVisit for [000150] IND ------ PreOrderVisit for [000151] LCL_VAR ------ PostOrderVisit for [000151] LCL_VAR - [000151] LCL_VAR: not hoistable: not handled by hoisting or CSE ------ PostOrderVisit for [000436] NE ------ PostOrderVisit for [000158] JTRUE - [000158] not invariant: variant child - - HoistBlock BB22 (weight= 4 ) of loop L00 (head: BB10) ------ PreOrderVisit for [000175] JTRUE ------ PreOrderVisit for [000443] NE ------ PreOrderVisit for [000167] IND ------ PreOrderVisit for [000166] ADD ------ PreOrderVisit for [000159] LCL_VAR ------ PostOrderVisit for [000159] LCL_VAR - [000159] LCL_VAR: not hoistable: not handled by hoisting or CSE ------ PreOrderVisit for [000165] ADD ------ PreOrderVisit for [000163] LSH ------ PreOrderVisit for [000160] LCL_VAR ------ PostOrderVisit for [000160] LCL_VAR - [000160] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop ------ PreOrderVisit for [000162] CNS_INT ------ PostOrderVisit for [000162] CNS_INT ------ PostOrderVisit for [000163] LSH ------ PreOrderVisit for [000164] CNS_INT ------ PostOrderVisit for [000164] CNS_INT ------ PostOrderVisit for [000165] ADD ------ PostOrderVisit for [000166] ADD ------ PostOrderVisit for [000167] IND ------ PreOrderVisit for [000168] LCL_VAR ------ PostOrderVisit for [000168] LCL_VAR - [000168] LCL_VAR: not hoistable: not handled by hoisting or CSE ------ PostOrderVisit for [000443] NE ------ PostOrderVisit for [000175] JTRUE - [000175] not invariant: variant child - - HoistBlock BB24 (weight= 4 ) of loop L00 (head: BB10) ------ PreOrderVisit for [000192] JTRUE ------ PreOrderVisit for [000450] NE ------ PreOrderVisit for [000184] IND ------ PreOrderVisit for [000183] ADD ------ PreOrderVisit for [000176] LCL_VAR ------ PostOrderVisit for [000176] LCL_VAR - [000176] LCL_VAR: not hoistable: not handled by hoisting or CSE ------ PreOrderVisit for [000182] ADD ------ PreOrderVisit for [000180] LSH ------ PreOrderVisit for [000177] LCL_VAR ------ PostOrderVisit for [000177] LCL_VAR - [000177] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop ------ PreOrderVisit for [000179] CNS_INT ------ PostOrderVisit for [000179] CNS_INT ------ PostOrderVisit for [000180] LSH ------ PreOrderVisit for [000181] CNS_INT ------ PostOrderVisit for [000181] CNS_INT ------ PostOrderVisit for [000182] ADD ------ PostOrderVisit for [000183] ADD ------ PostOrderVisit for [000184] IND ------ PreOrderVisit for [000185] LCL_VAR ------ PostOrderVisit for [000185] LCL_VAR - [000185] LCL_VAR: not hoistable: not handled by hoisting or CSE ------ PostOrderVisit for [000450] NE ------ PostOrderVisit for [000192] JTRUE - [000192] not invariant: variant child - - HoistBlock BB26 (weight= 4 ) of loop L00 (head: BB10) ------ PreOrderVisit for [000197] STORE_LCL_VAR ------ PreOrderVisit for [000196] ADD ------ PreOrderVisit for [000193] LCL_VAR ------ PostOrderVisit for [000193] LCL_VAR - [000193] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop ------ PreOrderVisit for [000195] CNS_INT ------ PostOrderVisit for [000195] CNS_INT ------ PostOrderVisit for [000196] ADD ------ PostOrderVisit for [000197] STORE_LCL_VAR - [000197] not invariant: variant child ------ PreOrderVisit for [000055] JTRUE ------ PreOrderVisit for [000054] GE ------ PreOrderVisit for [000052] LCL_VAR ------ PostOrderVisit for [000052] LCL_VAR - [000052] LCL_VAR: not invariant: local, not rvalue / not in SSA / defined within current loop ------ PreOrderVisit for [000053] CNS_INT ------ PostOrderVisit for [000053] CNS_INT ------ PostOrderVisit for [000054] GE ------ PostOrderVisit for [000055] JTRUE - [000055] not invariant: variant child -Resetting m_pHoistedInCurLoop - -*************** Finishing PHASE Hoist loop code [no changes] - -*************** Starting PHASE VN based copy prop -Copy Assertion for BB01 - curSsaName stack: { } - -Copy Assertion for BB52 - curSsaName stack: { [000000]:V02/1 } - -Copy Assertion for BB57 - curSsaName stack: { [000000]:V02/1 } - -Copy Assertion for BB43 - curSsaName stack: { [000000]:V02/1 } - - Live vars after [000041]: {V00 V01 V02} -{V00} => {V01 V02} -orig [000041] copy [000000] VNs proved equivalent - Live vars after [000042]: {V01 V02} -{V01} => {V02} -orig [000042] copy [000041] VNs proved equivalent -orig [000042] copy [000000] VNs proved equivalent - Live vars after [000043]: {V02} -{V02} => {} -orig [000043] copy [000041] VNs proved equivalent -orig [000043] copy [000042] VNs proved equivalent -Copy Assertion for BB09 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000000]:V02/1 } - -orig [000046] copy [000041] VNs proved equivalent -orig [000046] copy [000042] VNs proved equivalent - Live vars after [000051]: {V00 V01 V02} +{V04} => {V00 V01 V02 V04} -orig [000537] copy [000041] VNs proved equivalent -orig [000537] copy [000042] VNs proved equivalent -orig [000537] copy [000051] VNs proved equivalent -Copy Assertion for BB68 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000000]:V02/1 [000051]:V04/1 } - -Copy Assertion for BB10 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000000]:V02/1 [000051]:V04/1 } - - Live vars after [000056]: {V00 V01 V02 V04} -{V02} => {V00 V01 V04} -orig [000056] copy [000041] VNs proved equivalent -orig [000056] copy [000042] VNs proved equivalent -orig [000056] copy [000554] VNs proved equivalent - Live vars after [000059]: {V00 V01 V04} +{V02} => {V00 V01 V02 V04} -orig [000060] copy [000042] VNs proved equivalent -orig [000060] copy [000059] VNs proved equivalent -orig [000060] copy [000554] VNs proved equivalent -orig [000061] copy [000041] VNs proved equivalent -orig [000061] copy [000042] VNs proved equivalent -orig [000061] copy [000059] VNs proved equivalent -orig [000066] copy [000041] VNs proved equivalent -orig [000066] copy [000059] VNs proved equivalent -orig [000066] copy [000554] VNs proved equivalent -Copy Assertion for BB12 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } - -orig [000074] copy [000042] VNs proved equivalent -orig [000074] copy [000059] VNs proved equivalent -orig [000074] copy [000554] VNs proved equivalent -orig [000075] copy [000041] VNs proved equivalent -orig [000075] copy [000042] VNs proved equivalent -orig [000075] copy [000059] VNs proved equivalent -orig [000083] copy [000041] VNs proved equivalent -orig [000083] copy [000059] VNs proved equivalent -orig [000083] copy [000554] VNs proved equivalent -Copy Assertion for BB14 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } - -orig [000091] copy [000042] VNs proved equivalent -orig [000091] copy [000059] VNs proved equivalent -orig [000091] copy [000554] VNs proved equivalent -orig [000092] copy [000041] VNs proved equivalent -orig [000092] copy [000042] VNs proved equivalent -orig [000092] copy [000059] VNs proved equivalent -orig [000100] copy [000041] VNs proved equivalent -orig [000100] copy [000059] VNs proved equivalent -orig [000100] copy [000554] VNs proved equivalent -Copy Assertion for BB16 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } - -orig [000108] copy [000042] VNs proved equivalent -orig [000108] copy [000059] VNs proved equivalent -orig [000108] copy [000554] VNs proved equivalent -orig [000109] copy [000041] VNs proved equivalent -orig [000109] copy [000042] VNs proved equivalent -orig [000109] copy [000059] VNs proved equivalent -orig [000117] copy [000041] VNs proved equivalent -orig [000117] copy [000059] VNs proved equivalent -orig [000117] copy [000554] VNs proved equivalent -Copy Assertion for BB18 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } - -orig [000125] copy [000042] VNs proved equivalent -orig [000125] copy [000059] VNs proved equivalent -orig [000125] copy [000554] VNs proved equivalent -orig [000126] copy [000041] VNs proved equivalent -orig [000126] copy [000042] VNs proved equivalent -orig [000126] copy [000059] VNs proved equivalent -orig [000134] copy [000041] VNs proved equivalent -orig [000134] copy [000059] VNs proved equivalent -orig [000134] copy [000554] VNs proved equivalent -Copy Assertion for BB20 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } - -orig [000142] copy [000042] VNs proved equivalent -orig [000142] copy [000059] VNs proved equivalent -orig [000142] copy [000554] VNs proved equivalent -orig [000143] copy [000041] VNs proved equivalent -orig [000143] copy [000042] VNs proved equivalent -orig [000143] copy [000059] VNs proved equivalent -orig [000151] copy [000041] VNs proved equivalent -orig [000151] copy [000059] VNs proved equivalent -orig [000151] copy [000554] VNs proved equivalent -Copy Assertion for BB22 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } - -orig [000159] copy [000042] VNs proved equivalent -orig [000159] copy [000059] VNs proved equivalent -orig [000159] copy [000554] VNs proved equivalent -orig [000160] copy [000041] VNs proved equivalent -orig [000160] copy [000042] VNs proved equivalent -orig [000160] copy [000059] VNs proved equivalent -orig [000168] copy [000041] VNs proved equivalent -orig [000168] copy [000059] VNs proved equivalent -orig [000168] copy [000554] VNs proved equivalent -Copy Assertion for BB24 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } - -orig [000176] copy [000042] VNs proved equivalent -orig [000176] copy [000059] VNs proved equivalent -orig [000176] copy [000554] VNs proved equivalent -orig [000177] copy [000041] VNs proved equivalent -orig [000177] copy [000042] VNs proved equivalent -orig [000177] copy [000059] VNs proved equivalent -orig [000185] copy [000041] VNs proved equivalent -orig [000185] copy [000059] VNs proved equivalent -orig [000185] copy [000554] VNs proved equivalent -Copy Assertion for BB26 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } - - Live vars after [000193]: {V00 V01 V02 V04} -{V04} => {V00 V01 V02} -orig [000193] copy [000041] VNs proved equivalent -orig [000193] copy [000042] VNs proved equivalent -orig [000193] copy [000059] VNs proved equivalent - Live vars after [000197]: {V00 V01 V02} +{V04} => {V00 V01 V02 V04} -orig [000052] copy [000041] VNs proved equivalent -orig [000052] copy [000042] VNs proved equivalent -orig [000052] copy [000197] VNs proved equivalent -Copy Assertion for BB28 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000197]:V04/3 } - -Copy Assertion for BB25 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } - - Live vars after [000198]: {V04} -{V04} => {} -orig [000198] copy [000041] VNs proved equivalent -orig [000198] copy [000042] VNs proved equivalent -orig [000198] copy [000059] VNs proved equivalent - Live vars after [000502]: {} +{V34} => {V34} -Copy Assertion for BB23 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } - - Live vars after [000204]: {V04} -{V04} => {} -orig [000204] copy [000041] VNs proved equivalent -orig [000204] copy [000042] VNs proved equivalent -orig [000204] copy [000059] VNs proved equivalent - Live vars after [000505]: {} +{V34} => {V34} -Copy Assertion for BB21 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } - - Live vars after [000210]: {V04} -{V04} => {} -orig [000210] copy [000041] VNs proved equivalent -orig [000210] copy [000042] VNs proved equivalent -orig [000210] copy [000059] VNs proved equivalent - Live vars after [000508]: {} +{V34} => {V34} -Copy Assertion for BB19 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } - - Live vars after [000216]: {V04} -{V04} => {} -orig [000216] copy [000041] VNs proved equivalent -orig [000216] copy [000042] VNs proved equivalent -orig [000216] copy [000059] VNs proved equivalent - Live vars after [000511]: {} +{V34} => {V34} -Copy Assertion for BB65 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } - -Copy Assertion for BB64 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } - -Copy Assertion for BB63 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } - -Copy Assertion for BB62 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000059]:V02/3 [000554]:V04/2 } - -Copy Assertion for BB69 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000000]:V02/1 [000051]:V04/1 } - -orig [000243] copy [000041] VNs proved equivalent -orig [000243] copy [000042] VNs proved equivalent -orig [000243] copy [000552] VNs proved equivalent -Copy Assertion for BB29 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000562]:V02/4 [000552]:V04/4 } - - Live vars after [000279]: {V00 V01 V02 V04} -{V02} => {V00 V01 V04} -orig [000279] copy [000041] VNs proved equivalent -orig [000279] copy [000042] VNs proved equivalent -orig [000279] copy [000552] VNs proved equivalent - Live vars after [000282]: {V00 V01 V04} +{V02} => {V00 V01 V02 V04} -orig [000283] copy [000042] VNs proved equivalent -orig [000283] copy [000282] VNs proved equivalent -orig [000283] copy [000552] VNs proved equivalent -orig [000284] copy [000041] VNs proved equivalent -orig [000284] copy [000042] VNs proved equivalent -orig [000284] copy [000282] VNs proved equivalent -orig [000289] copy [000041] VNs proved equivalent -orig [000289] copy [000282] VNs proved equivalent -orig [000289] copy [000552] VNs proved equivalent -Copy Assertion for BB31 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000282]:V02/5 [000552]:V04/4 } - -orig [000297] copy [000042] VNs proved equivalent -orig [000297] copy [000282] VNs proved equivalent -orig [000297] copy [000552] VNs proved equivalent -orig [000298] copy [000041] VNs proved equivalent -orig [000298] copy [000042] VNs proved equivalent -orig [000298] copy [000282] VNs proved equivalent -orig [000306] copy [000041] VNs proved equivalent -orig [000306] copy [000282] VNs proved equivalent -orig [000306] copy [000552] VNs proved equivalent -Copy Assertion for BB33 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000282]:V02/5 [000552]:V04/4 } - -orig [000314] copy [000042] VNs proved equivalent -orig [000314] copy [000282] VNs proved equivalent -orig [000314] copy [000552] VNs proved equivalent -orig [000315] copy [000041] VNs proved equivalent -orig [000315] copy [000042] VNs proved equivalent -orig [000315] copy [000282] VNs proved equivalent -orig [000323] copy [000041] VNs proved equivalent -orig [000323] copy [000282] VNs proved equivalent -orig [000323] copy [000552] VNs proved equivalent -Copy Assertion for BB35 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000282]:V02/5 [000552]:V04/4 } - -orig [000331] copy [000042] VNs proved equivalent -orig [000331] copy [000282] VNs proved equivalent -orig [000331] copy [000552] VNs proved equivalent -orig [000332] copy [000041] VNs proved equivalent -orig [000332] copy [000042] VNs proved equivalent -orig [000332] copy [000282] VNs proved equivalent -orig [000340] copy [000041] VNs proved equivalent -orig [000340] copy [000282] VNs proved equivalent -orig [000340] copy [000552] VNs proved equivalent -Copy Assertion for BB37 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000282]:V02/5 [000552]:V04/4 } - - Live vars after [000348]: {V00 V01 V02 V04} -{V04} => {V00 V01 V02} -orig [000348] copy [000041] VNs proved equivalent -orig [000348] copy [000042] VNs proved equivalent -orig [000348] copy [000282] VNs proved equivalent - Live vars after [000352]: {V00 V01 V02} +{V04} => {V00 V01 V02 V04} -Copy Assertion for BB36 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000282]:V02/5 [000552]:V04/4 } - -Copy Assertion for BB34 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000282]:V02/5 [000552]:V04/4 } - -Copy Assertion for BB32 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000282]:V02/5 [000552]:V04/4 } - -Copy Assertion for BB60 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000562]:V02/4 [000552]:V04/4 } - -orig [000533] copy [000041] VNs proved equivalent -orig [000533] copy [000042] VNs proved equivalent -orig [000533] copy [000548] VNs proved equivalent -Copy Assertion for BB66 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000550]:V02/6 [000548]:V04/6 } - -Copy Assertion for BB38 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000550]:V02/6 [000548]:V04/6 } - - Live vars after [000251]: {V00 V01 V02 V04} -{V02} => {V00 V01 V04} -orig [000251] copy [000041] VNs proved equivalent -orig [000251] copy [000042] VNs proved equivalent -orig [000251] copy [000542] VNs proved equivalent - Live vars after [000254]: {V00 V01 V04} +{V02} => {V00 V01 V02 V04} -orig [000255] copy [000042] VNs proved equivalent -orig [000255] copy [000254] VNs proved equivalent -orig [000255] copy [000542] VNs proved equivalent -orig [000256] copy [000041] VNs proved equivalent -orig [000256] copy [000042] VNs proved equivalent -orig [000256] copy [000254] VNs proved equivalent -orig [000261] copy [000041] VNs proved equivalent -orig [000261] copy [000254] VNs proved equivalent -orig [000261] copy [000542] VNs proved equivalent -Copy Assertion for BB61 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000254]:V02/8 [000542]:V04/7 } - -Copy Assertion for BB40 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000254]:V02/8 [000542]:V04/7 } - - Live vars after [000269]: {V00 V01 V02 V04} -{V04} => {V00 V01 V02} -orig [000269] copy [000041] VNs proved equivalent -orig [000269] copy [000042] VNs proved equivalent -orig [000269] copy [000254] VNs proved equivalent - Live vars after [000273]: {V00 V01 V02} +{V04} => {V00 V01 V02 V04} -orig [000247] copy [000041] VNs proved equivalent -orig [000247] copy [000042] VNs proved equivalent -orig [000247] copy [000273] VNs proved equivalent -Copy Assertion for BB42 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000254]:V02/8 [000273]:V04/8 } - -Copy Assertion for BB67 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000550]:V02/6 [000548]:V04/6 } - -Copy Assertion for BB17 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000000]:V02/1 [000051]:V04/1 } - - Live vars after [000222]: {V04} -{V04} => {} -orig [000222] copy [000041] VNs proved equivalent -orig [000222] copy [000042] VNs proved equivalent -orig [000222] copy [000000] VNs proved equivalent - Live vars after [000514]: {} +{V34} => {V34} -Copy Assertion for BB15 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000000]:V02/1 [000051]:V04/1 } - - Live vars after [000228]: {V04} -{V04} => {} -orig [000228] copy [000041] VNs proved equivalent -orig [000228] copy [000042] VNs proved equivalent -orig [000228] copy [000000] VNs proved equivalent - Live vars after [000517]: {} +{V34} => {V34} -Copy Assertion for BB13 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000000]:V02/1 [000051]:V04/1 } - - Live vars after [000234]: {V04} -{V04} => {} -orig [000234] copy [000041] VNs proved equivalent -orig [000234] copy [000042] VNs proved equivalent -orig [000234] copy [000000] VNs proved equivalent - Live vars after [000520]: {} +{V34} => {V34} -Copy Assertion for BB11 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000000]:V02/1 [000051]:V04/1 } - - Live vars after [000240]: {V04} -{V04} => {} -orig [000240] copy [000041] VNs proved equivalent -orig [000240] copy [000042] VNs proved equivalent -orig [000240] copy [000000] VNs proved equivalent - Live vars after [000521]: {} +{V34} => {V34} -Copy Assertion for BB58 - curSsaName stack: { [000041]:V00/1 [000042]:V01/1 [000000]:V02/1 [000051]:V04/1 } - - Live vars after [000491]: {V34} -{V34} => {} -orig [000491] copy [000041] VNs proved equivalent -orig [000491] copy [000042] VNs proved equivalent -orig [000491] copy [000000] VNs proved equivalent -orig [000491] copy [000051] VNs proved equivalent - -*************** Finishing PHASE VN based copy prop [no changes] - -*************** Starting PHASE Redundant branch opts - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(0.5),BB68(0.5) ( cond ) i -BB68 [0095] 1 BB09 0.50 [???..???)-> BB10(1) (always) i -BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target -BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd -BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd -BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd -BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd -BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal -BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal -BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i -BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal -BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i -BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal -BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i -BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal -BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i -BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i -BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i -BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i -BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i -BB28 [0027] 1 BB26 0.50 [???..???)-> BB69(1) (always) i -BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB69 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i -BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i -BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i -BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i -BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd -BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal -BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal -BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i -BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall -BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -optRedundantRelop in BB26; jump tree is -N004 ( 5, 5) [000055] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000054] J----+-N--- \--* GE int $1a4 -N001 ( 1, 1) [000052] -----+----- +--* LCL_VAR int V02 arg2 u:3 $183 -N002 ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 $45 - ... checking previous tree -N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 d:3 $VN.Void -N003 ( 3, 3) [000196] -----+----- \--* ADD long $25a -N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 u:2 (last use) $300 -N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 $283 - -- prev tree VN is not related - ---- Trying RBO in BB26 --- -Relop [000054] BB26 value unknown, trying inference -BB26 has side effects; no threading - ---- Trying RBO in BB24 --- -Relop [000450] BB24 value unknown, trying inference -BB24 has side effects; no threading - ---- Trying RBO in BB22 --- -Relop [000443] BB22 value unknown, trying inference -BB22 has side effects; no threading - ---- Trying RBO in BB20 --- -Relop [000436] BB20 value unknown, trying inference -BB20 has side effects; no threading - ---- Trying RBO in BB18 --- -Relop [000429] BB18 value unknown, trying inference -BB18 has side effects; no threading - ---- Trying RBO in BB16 --- -Relop [000422] BB16 value unknown, trying inference -BB16 has side effects; no threading - ---- Trying RBO in BB14 --- -Relop [000415] BB14 value unknown, trying inference -BB14 has side effects; no threading - ---- Trying RBO in BB12 --- -Relop [000408] BB12 value unknown, trying inference -BB12 has side effects; no threading - -optRedundantRelop in BB10; jump tree is -N009 ( 9, 8) [000073] ---XG+----- * JTRUE void $401 -N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int -N006 ( 5, 4) [000065] ---XG+----- +--* IND long -N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref $340 -N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long $242 -N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ... checking previous tree -N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 d:3 $VN.Void -N003 ( 3, 3) [000058] -----+----- \--* ADD int $183 -N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 u:2 (last use) $2c0 -N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 $46 - -- prev tree VN is not related - ... checking previous tree -N004 ( 0, 0) [000554] DA--------- * STORE_LCL_VAR long V04 loc1 d:2 $VN.Void -N003 ( 0, 0) [000553] ----------- \--* PHI long $300 -N001 ( 0, 0) [000570] ----------- pred BB26 +--* PHI_ARG long V04 loc1 u:3 -N002 ( 0, 0) [000568] ----------- pred BB68 \--* PHI_ARG long V04 loc1 u:1 $241 - -- prev tree is a phi - ---- Trying RBO in BB10 --- -Relop [000401] BB10 value unknown, trying inference -BB10 has global phi for V04.2; must look for phi uses -BB10 has side effects; no threading - ---- Trying RBO in BB35 --- -Relop [000478] BB35 value unknown, trying inference -BB35 has side effects; no threading - ---- Trying RBO in BB33 --- -Relop [000471] BB33 value unknown, trying inference -BB33 has side effects; no threading - ---- Trying RBO in BB31 --- -Relop [000464] BB31 value unknown, trying inference -BB31 has side effects; no threading - -optRedundantRelop in BB29; jump tree is -N009 ( 9, 8) [000296] ---XG+----- * JTRUE void $411 -N008 ( 7, 6) [000457] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000288] ---XG+----- +--* IND long -N005 ( 3, 3) [000287] -----+-N--- | \--* ADD byref $348 -N001 ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000286] -----+-N--- | \--* LSH long $25b -N002 ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ... checking previous tree -N004 ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 d:5 $VN.Void -N003 ( 3, 3) [000281] -----+----- \--* ADD int $1a6 -N001 ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 u:4 (last use) $2c1 -N002 ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 $48 - -- prev tree VN is not related - ---- Trying RBO in BB29 --- -Relop [000457] BB29 value unknown, trying inference -BB29 has side effects; no threading - -optRedundantRelop in BB40; jump tree is -N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000249] J----+-N--- \--* GT int $1bd -N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 $1b8 -N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 $40 - ... checking previous tree -N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void -N003 ( 3, 3) [000272] -----+----- \--* ADD long $26b -N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) $303 -N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 $280 - -- prev tree VN is not related - ---- Trying RBO in BB40 --- -Relop [000249] BB40 value unknown, trying inference -BB40 has side effects; no threading - -optRedundantRelop in BB38; jump tree is -N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 -N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000260] ---XG+----- +--* IND long -N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref $34c -N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long $268 -N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 $303 -N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ... checking previous tree -N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void -N003 ( 3, 3) [000253] -----+----- \--* ADD int $1b8 -N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) $2c3 -N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 $43 - -- prev tree VN is not related - ... checking previous tree -N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 $VN.Void -N003 ( 0, 0) [000541] ----------- \--* PHI long $303 -N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 -N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 $302 - -- prev tree is a phi - ---- Trying RBO in BB38 --- -Relop [000485] BB38 value unknown, trying inference -BB38 has global phi for V04.7; must look for phi uses -BB38 has side effects; no threading - -optRedundantRelop in BB60; jump tree is -N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void -N003 ( 3, 3) [000532] J------N--- \--* LE int $1b7 -N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 -N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 - ... checking previous tree -N004 ( 0, 0) [000548] DA--------- * STORE_LCL_VAR long V04 loc1 d:6 $VN.Void -N003 ( 0, 0) [000547] ----------- \--* PHI long $302 -N001 ( 0, 0) [000585] ----------- pred BB37 +--* PHI_ARG long V04 loc1 u:5 $267 -N002 ( 0, 0) [000582] ----------- pred BB69 \--* PHI_ARG long V04 loc1 u:4 $301 - -- prev tree is a phi - ---- Trying RBO in BB60 --- -Relop [000532] BB60 value unknown, trying inference -BB60 has global phi for V02.6; must look for phi uses -BB60 has global phi for V04.6; must look for phi uses -... JT-PHI [interestingVN] in BB60 relop first operand VN is PhiDef for V02 -N003 ( 3, 3) [000532] J------N--- * LE int $1b7 -N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 -N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 -Found local PHI [000550] for V02 -... substituting ($1a6,$40) for ($2c2,$40) in $1b7 gives $47d -BB37 is an ambiguous pred -... substituting ($2c1,$40) for ($2c2,$40) in $1b7 gives $47e -BB69 is an ambiguous pred -Could not find all uses for V02.6 in BB60 or its successors -BB60 has global phi uses we cannot safely account for; no phi-based threading -Checking BB60 for redundant dominating branches -failed -- BB69 does not share a successor with BB60 - -optRedundantRelop in BB69; jump tree is -N004 ( 5, 5) [000246] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000245] J----+-N--- \--* LT int $1a5 -N001 ( 1, 1) [000243] -----+----- +--* LCL_VAR int V02 arg2 u:4 $2c1 -N002 ( 1, 1) [000244] -----+----- \--* CNS_INT int 4 $47 - ... checking previous tree -N004 ( 0, 0) [000552] DA--------- * STORE_LCL_VAR long V04 loc1 d:4 $VN.Void -N003 ( 0, 0) [000551] ----------- \--* PHI long $301 -N001 ( 0, 0) [000572] ----------- pred BB28 +--* PHI_ARG long V04 loc1 u:3 $25a -N002 ( 0, 0) [000566] ----------- pred BB09 \--* PHI_ARG long V04 loc1 u:1 $241 - -- prev tree is a phi - ---- Trying RBO in BB69 --- -Relop [000245] BB69 value unknown, trying inference -BB69 has global phi for V02.4; must look for phi uses -BB69 has global phi for V04.4; must look for phi uses -... JT-PHI [interestingVN] in BB69 relop first operand VN is PhiDef for V02 -N003 ( 3, 3) [000245] J----+-N--- * LT int $1a5 -N001 ( 1, 1) [000243] -----+----- +--* LCL_VAR int V02 arg2 u:4 $2c1 -N002 ( 1, 1) [000244] -----+----- \--* CNS_INT int 4 $47 -Found local PHI [000562] for V02 -... substituting ($100,$47) for ($2c1,$47) in $1a5 gives $47f -BB09 is an ambiguous pred -... substituting ($183,$47) for ($2c1,$47) in $1a5 gives $480 -BB28 is an ambiguous pred -Could not find all uses for V02.4 in BB69 or its successors -BB69 has global phi uses we cannot safely account for; no phi-based threading -Checking BB69 for redundant dominating branches -failed -- BB09 does not share a successor with BB69 - -optRedundantRelop in BB09; jump tree is -N004 ( 5, 5) [000535] ----------- * JTRUE void $VN.Void -N003 ( 3, 3) [000536] J------N--- \--* LT int $182 -N001 ( 1, 1) [000537] ----------- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000538] ----------- \--* CNS_INT int 8 $45 - ... checking previous tree -N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void -N004 ( 4, 5) [000050] -----+----- \--* ADD long $241 -N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int $240 -N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 $100 -N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 $280 - -- prev tree VN is not related - ---- Trying RBO in BB09 --- -Relop [000536] BB09 value unknown, trying inference - -Dominator BB57 of BB09 can infer value of dominated relop -N003 ( 3, 3) [000033] J----+-N--- * GE int $181 -N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 - Redundant compare; current relop: -N003 ( 3, 3) [000536] J------N--- * LT int $182 -N001 ( 1, 1) [000537] ----------- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000538] ----------- \--* CNS_INT int 8 $45 -False successor BB09 of BB57 reaches, relop [000536] must be true - -Redundant branch opt in BB09: - -removing useless STMT00090 ( 0x1E7[E--] ... ??? ) -N004 ( 5, 5) [000535] ----------- * JTRUE void $VN.Void -N003 ( 3, 3) [000536] ----------- \--* CNS_INT int 1 - from BB09 -setting likelihood of BB09 -> BB69 from 0.5 to 1 - -Conditional folded at BB09 -BB09 becomes a BBJ_ALWAYS to BB69 -Compiler::optRedundantBranch removed tree: -N004 ( 5, 5) [000535] ----------- * JTRUE void $VN.Void -N003 ( 3, 3) [000536] ----------- \--* CNS_INT int 1 - -Will retry RBO in BB10; pred BB68 now unreachable - ---- Trying RBO in BB10 --- -Relop [000401] BB10 value unknown, trying inference -BB10 has global phi for V04.2; must look for phi uses -BB10 has side effects; no threading - ---- Trying RBO in BB57 --- -Relop [000033] BB57 value unknown, trying inference - -Dominator BB01 of BB57 can infer value of dominated relop -N003 ( 3, 3) [000002] J----+-N--- * GE int $180 -N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 $40 - Redundant compare; current relop: -N003 ( 3, 3) [000033] J----+-N--- * GE int $181 -N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 -inference failed -- will keep looking higher -No usable PhiDef VNs -Checking BB57 for redundant dominating branches -failed -- BB01 does not share a successor with BB57 - ---- Trying RBO in BB01 --- -Checking BB01 for redundant dominating branches -failed -- no dominator - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(1) (always) i -BB68 [0095] 0 0.50 [???..???)-> BB10(1) (always) i -BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target -BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd -BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd -BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd -BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd -BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal -BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal -BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i -BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal -BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i -BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal -BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i -BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal -BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i -BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i -BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i -BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i -BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i -BB28 [0027] 1 BB26 0.50 [???..???)-> BB69(1) (always) i -BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB69 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i -BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i -BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i -BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i -BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd -BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal -BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal -BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i -BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall -BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Finishing PHASE Redundant branch opts -Trees after Redundant branch opts - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(1) (always) i -BB68 [0095] 0 0.50 [???..???)-> BB10(1) (always) i -BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target -BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd -BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd -BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd -BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd -BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal -BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal -BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i -BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal -BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i -BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal -BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i -BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal -BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i -BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i -BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i -BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i -BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i -BB28 [0027] 1 BB26 0.50 [???..???)-> BB69(1) (always) i -BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB69 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i -BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i -BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i -BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i -BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd -BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal -BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal -BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i -BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall -BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000002] J----+-N--- \--* GE int $180 -N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 $40 - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void -N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref $1c0 -N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref $1c1 - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) -N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000033] J----+-N--- \--* GE int $181 -N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 - ------------- BB09 [0008] [068..073) -> BB69(1) (always), preds={BB57} succs={BB69} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) -N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void -N004 ( 4, 5) [000050] -----+----- \--* ADD long $241 -N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int $240 -N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 $100 -N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 $280 - ------------- BB68 [0095] [???..???) -> BB10(1) (always), preds={} succs={BB10} - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB26,BB68} succs={BB62,BB12} - -***** BB10 [0009] -STMT00103 ( ??? ... ??? ) -N004 ( 0, 0) [000564] DA--------- * STORE_LCL_VAR int V02 arg2 d:2 $VN.Void -N003 ( 0, 0) [000563] ----------- \--* PHI int $2c0 -N001 ( 0, 0) [000569] ----------- pred BB26 +--* PHI_ARG int V02 arg2 u:3 -N002 ( 0, 0) [000567] ----------- pred BB68 \--* PHI_ARG int V02 arg2 u:1 $100 - -***** BB10 [0009] -STMT00098 ( ??? ... ??? ) -N004 ( 0, 0) [000554] DA--------- * STORE_LCL_VAR long V04 loc1 d:2 $VN.Void -N003 ( 0, 0) [000553] ----------- \--* PHI long $300 -N001 ( 0, 0) [000570] ----------- pred BB26 +--* PHI_ARG long V04 loc1 u:3 -N002 ( 0, 0) [000568] ----------- pred BB68 \--* PHI_ARG long V04 loc1 u:1 $241 - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) -N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 d:3 $VN.Void -N003 ( 3, 3) [000058] -----+----- \--* ADD int $183 -N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 u:2 (last use) $2c0 -N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 $46 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) -N009 ( 9, 8) [000073] ---XG+----- * JTRUE void $401 -N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int -N006 ( 5, 4) [000065] ---XG+----- +--* IND long -N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref $340 -N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long $242 -N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) -N011 ( 9, 9) [000090] ---XG+----- * JTRUE void $403 -N010 ( 7, 7) [000408] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000082] ---XG+----- +--* IND long -N007 ( 4, 4) [000081] -----+-N--- | \--* ADD byref $341 -N001 ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000080] -----+-N--- | \--* ADD long $245 -N004 ( 2, 2) [000078] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 $283 -N009 ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) -N011 ( 9, 9) [000107] ---XG+----- * JTRUE void $405 -N010 ( 7, 7) [000415] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000099] ---XG+----- +--* IND long -N007 ( 4, 4) [000098] -----+-N--- | \--* ADD byref $342 -N001 ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000097] -----+-N--- | \--* ADD long $248 -N004 ( 2, 2) [000095] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 $284 -N009 ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) -N011 ( 9, 9) [000124] ---XG+----- * JTRUE void $407 -N010 ( 7, 7) [000422] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000116] ---XG+----- +--* IND long -N007 ( 4, 4) [000115] -----+-N--- | \--* ADD byref $343 -N001 ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000114] -----+-N--- | \--* ADD long $24b -N004 ( 2, 2) [000112] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 $285 -N009 ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) -N011 ( 9, 9) [000141] ---XG+----- * JTRUE void $409 -N010 ( 7, 7) [000429] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000133] ---XG+----- +--* IND long -N007 ( 4, 4) [000132] -----+-N--- | \--* ADD byref $344 -N001 ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000131] -----+-N--- | \--* ADD long $24e -N004 ( 2, 2) [000129] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 $286 -N009 ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) -N011 ( 9, 9) [000158] ---XG+----- * JTRUE void $40b -N010 ( 7, 7) [000436] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000150] ---XG+----- +--* IND long -N007 ( 4, 4) [000149] -----+-N--- | \--* ADD byref $345 -N001 ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000148] -----+-N--- | \--* ADD long $251 -N004 ( 2, 2) [000146] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 $287 -N009 ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) -N011 ( 9, 9) [000175] ---XG+----- * JTRUE void $40d -N010 ( 7, 7) [000443] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000167] ---XG+----- +--* IND long -N007 ( 4, 4) [000166] -----+-N--- | \--* ADD byref $346 -N001 ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000165] -----+-N--- | \--* ADD long $254 -N004 ( 2, 2) [000163] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 $288 -N009 ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) -N011 ( 9, 9) [000192] ---XG+----- * JTRUE void $40f -N010 ( 7, 7) [000450] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000184] ---XG+----- +--* IND long -N007 ( 4, 4) [000183] -----+-N--- | \--* ADD byref $347 -N001 ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000182] -----+-N--- | \--* ADD long $257 -N004 ( 2, 2) [000180] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 $289 -N009 ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB26 [0025] [1E2..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB24} succs={BB28,BB10} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) -N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 d:3 $VN.Void -N003 ( 3, 3) [000196] -----+----- \--* ADD long $25a -N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 u:2 (last use) $300 -N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 $283 - -***** BB26 [0025] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) -N004 ( 5, 5) [000055] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000054] J----+-N--- \--* GE int $1a4 -N001 ( 1, 1) [000052] -----+----- +--* LCL_VAR int V02 arg2 u:3 $183 -N002 ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 $45 - ------------- BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} - ------------- BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} - ------------- BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} - -***** BB11 [0010] -STMT00093 ( ??? ... ??? ) -N005 ( 0, 0) [000544] DA--------- * STORE_LCL_VAR long V04 loc1 d:12 $VN.Void -N004 ( 0, 0) [000543] ----------- \--* PHI long $307 -N001 ( 0, 0) [000591] ----------- pred BB61 +--* PHI_ARG long V04 loc1 u:7 $303 -N002 ( 0, 0) [000583] ----------- pred BB29 +--* PHI_ARG long V04 loc1 u:4 $301 -N003 ( 0, 0) [000580] ----------- pred BB62 \--* PHI_ARG long V04 loc1 u:2 $300 - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) -N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void -N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) $449 - ------------- BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} - ------------- BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} - -***** BB13 [0012] -STMT00099 ( ??? ... ??? ) -N004 ( 0, 0) [000556] DA--------- * STORE_LCL_VAR long V04 loc1 d:11 $VN.Void -N003 ( 0, 0) [000555] ----------- \--* PHI long $306 -N001 ( 0, 0) [000588] ----------- pred BB32 +--* PHI_ARG long V04 loc1 u:4 $301 -N002 ( 0, 0) [000579] ----------- pred BB63 \--* PHI_ARG long V04 loc1 u:2 $300 - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) -N004 ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:7 $VN.Void -N003 ( 3, 3) [000237] -----+----- \--* ADD int $448 -N001 ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 u:11 (last use) $447 -N002 ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 $43 - ------------- BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} - ------------- BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} - -***** BB15 [0014] -STMT00100 ( ??? ... ??? ) -N004 ( 0, 0) [000558] DA--------- * STORE_LCL_VAR long V04 loc1 d:10 $VN.Void -N003 ( 0, 0) [000557] ----------- \--* PHI long $305 -N001 ( 0, 0) [000587] ----------- pred BB34 +--* PHI_ARG long V04 loc1 u:4 $301 -N002 ( 0, 0) [000578] ----------- pred BB64 \--* PHI_ARG long V04 loc1 u:2 $300 - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) -N004 ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:6 $VN.Void -N003 ( 3, 3) [000231] -----+----- \--* ADD int $446 -N001 ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 u:10 (last use) $445 -N002 ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 $4e - ------------- BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} - ------------- BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} - -***** BB17 [0016] -STMT00101 ( ??? ... ??? ) -N004 ( 0, 0) [000560] DA--------- * STORE_LCL_VAR long V04 loc1 d:9 $VN.Void -N003 ( 0, 0) [000559] ----------- \--* PHI long $304 -N001 ( 0, 0) [000586] ----------- pred BB36 +--* PHI_ARG long V04 loc1 u:4 $301 -N002 ( 0, 0) [000577] ----------- pred BB65 \--* PHI_ARG long V04 loc1 u:2 $300 - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) -N004 ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:5 $VN.Void -N003 ( 3, 3) [000225] -----+----- \--* ADD int $444 -N001 ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 u:9 (last use) $443 -N002 ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 $4d - ------------- BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) -N004 ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:4 $VN.Void -N003 ( 3, 3) [000219] -----+----- \--* ADD int $442 -N001 ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 $48 - ------------- BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) -N004 ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:3 $VN.Void -N003 ( 3, 3) [000213] -----+----- \--* ADD int $441 -N001 ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 $4c - ------------- BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) -N004 ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:2 $VN.Void -N003 ( 3, 3) [000207] -----+----- \--* ADD int $440 -N001 ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 $4b - ------------- BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) -N004 ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:1 $VN.Void -N003 ( 3, 3) [000201] -----+----- \--* ADD int $1bf -N001 ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 $4a - ------------- BB28 [0027] [???..???) -> BB69(1) (always), preds={BB26} succs={BB69} - ------------- BB69 [0096] [1EE..1F5) -> BB60(0.5),BB29(0.5) (cond), preds={BB09,BB28} succs={BB29,BB60} - -***** BB69 [0096] -STMT00102 ( ??? ... ??? ) -N004 ( 0, 0) [000562] DA--------- * STORE_LCL_VAR int V02 arg2 d:4 $VN.Void -N003 ( 0, 0) [000561] ----------- \--* PHI int $2c1 -N001 ( 0, 0) [000571] ----------- pred BB28 +--* PHI_ARG int V02 arg2 u:3 $183 -N002 ( 0, 0) [000565] ----------- pred BB09 \--* PHI_ARG int V02 arg2 u:1 $100 - -***** BB69 [0096] -STMT00097 ( ??? ... ??? ) -N004 ( 0, 0) [000552] DA--------- * STORE_LCL_VAR long V04 loc1 d:4 $VN.Void -N003 ( 0, 0) [000551] ----------- \--* PHI long $301 -N001 ( 0, 0) [000572] ----------- pred BB28 +--* PHI_ARG long V04 loc1 u:3 $25a -N002 ( 0, 0) [000566] ----------- pred BB09 \--* PHI_ARG long V04 loc1 u:1 $241 - -***** BB69 [0096] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) -N004 ( 5, 5) [000246] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000245] J----+-N--- \--* LT int $1a5 -N001 ( 1, 1) [000243] -----+----- +--* LCL_VAR int V02 arg2 u:4 $2c1 -N002 ( 1, 1) [000244] -----+----- \--* CNS_INT int 4 $47 - ------------- BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB69} succs={BB31,BB11} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) -N004 ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 d:5 $VN.Void -N003 ( 3, 3) [000281] -----+----- \--* ADD int $1a6 -N001 ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 u:4 (last use) $2c1 -N002 ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 $48 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) -N009 ( 9, 8) [000296] ---XG+----- * JTRUE void $411 -N008 ( 7, 6) [000457] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000288] ---XG+----- +--* IND long -N005 ( 3, 3) [000287] -----+-N--- | \--* ADD byref $348 -N001 ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000286] -----+-N--- | \--* LSH long $25b -N002 ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) -N011 ( 9, 9) [000313] ---XG+----- * JTRUE void $413 -N010 ( 7, 7) [000464] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000305] ---XG+----- +--* IND long -N007 ( 4, 4) [000304] -----+-N--- | \--* ADD byref $349 -N001 ( 1, 1) [000297] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000303] -----+-N--- | \--* ADD long $25e -N004 ( 2, 2) [000301] -----+-N--- | +--* LSH long $25b -N002 ( 1, 1) [000298] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000300] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000302] -----+----- | \--* CNS_INT long -8 $283 -N009 ( 1, 1) [000306] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) -N011 ( 9, 9) [000330] ---XG+----- * JTRUE void $415 -N010 ( 7, 7) [000471] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000322] ---XG+----- +--* IND long -N007 ( 4, 4) [000321] -----+-N--- | \--* ADD byref $34a -N001 ( 1, 1) [000314] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000320] -----+-N--- | \--* ADD long $261 -N004 ( 2, 2) [000318] -----+-N--- | +--* LSH long $25b -N002 ( 1, 1) [000315] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000317] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000319] -----+----- | \--* CNS_INT long -16 $284 -N009 ( 1, 1) [000323] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) -N011 ( 9, 9) [000347] ---XG+----- * JTRUE void $417 -N010 ( 7, 7) [000478] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000339] ---XG+----- +--* IND long -N007 ( 4, 4) [000338] -----+-N--- | \--* ADD byref $34b -N001 ( 1, 1) [000331] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000337] -----+-N--- | \--* ADD long $264 -N004 ( 2, 2) [000335] -----+-N--- | +--* LSH long $25b -N002 ( 1, 1) [000332] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000334] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000336] -----+----- | \--* CNS_INT long -24 $285 -N009 ( 1, 1) [000340] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} - ------------- BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) -N004 ( 3, 3) [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 d:5 $VN.Void -N003 ( 3, 3) [000351] -----+----- \--* ADD long $267 -N001 ( 1, 1) [000348] -----+----- +--* LCL_VAR long V04 loc1 u:4 (last use) $301 -N002 ( 1, 1) [000350] -----+----- \--* CNS_INT long -4 $28a - ------------- BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB40,BB66} succs={BB40,BB61} - -***** BB38 [0037] -STMT00094 ( ??? ... ??? ) -N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 $VN.Void -N003 ( 0, 0) [000545] ----------- \--* PHI int $2c3 -N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 -N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 $2c2 - -***** BB38 [0037] -STMT00092 ( ??? ... ??? ) -N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 $VN.Void -N003 ( 0, 0) [000541] ----------- \--* PHI long $303 -N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 -N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 $302 - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) -N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void -N003 ( 3, 3) [000253] -----+----- \--* ADD int $1b8 -N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) $2c3 -N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 $43 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) -N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 -N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000260] ---XG+----- +--* IND long -N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref $34c -N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long $268 -N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 $303 -N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) -N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void -N003 ( 3, 3) [000272] -----+----- \--* ADD long $26b -N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) $303 -N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 $280 - -***** BB40 [0039] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) -N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000249] J----+-N--- \--* GT int $1bd -N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 $1b8 -N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 $40 - ------------- BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB37,BB69} succs={BB66,BB67} - -***** BB60 [0087] -STMT00096 ( ??? ... ??? ) -N004 ( 0, 0) [000550] DA--------- * STORE_LCL_VAR int V02 arg2 d:6 $VN.Void -N003 ( 0, 0) [000549] ----------- \--* PHI int $2c2 -N001 ( 0, 0) [000584] ----------- pred BB37 +--* PHI_ARG int V02 arg2 u:5 $1a6 -N002 ( 0, 0) [000581] ----------- pred BB69 \--* PHI_ARG int V02 arg2 u:4 $2c1 - -***** BB60 [0087] -STMT00095 ( ??? ... ??? ) -N004 ( 0, 0) [000548] DA--------- * STORE_LCL_VAR long V04 loc1 d:6 $VN.Void -N003 ( 0, 0) [000547] ----------- \--* PHI long $302 -N001 ( 0, 0) [000585] ----------- pred BB37 +--* PHI_ARG long V04 loc1 u:5 $267 -N002 ( 0, 0) [000582] ----------- pred BB69 \--* PHI_ARG long V04 loc1 u:4 $301 - -***** BB60 [0087] -STMT00089 ( 0x2E5[E--] ... ??? ) -N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void -N003 ( 3, 3) [000532] J------N--- \--* LE int $1b7 -N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 -N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 - ------------- BB66 [0093] [???..???) -> BB38(1) (always), preds={BB60} succs={BB38} - ------------- BB42 [0041] [???..???) -> BB67(1) (always), preds={BB40} succs={BB67} - ------------- BB67 [0094] [2E9..2EB) (return), preds={BB42,BB60} succs={} - -***** BB67 [0094] -STMT00088 ( ??? ... ??? ) -N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void -N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 $43 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) -N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void -N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) $80 -N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) $c0 -N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) $100 - ------------- BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} - -***** BB58 [0085] -STMT00091 ( ??? ... ??? ) -N010 ( 0, 0) [000540] DA--------- * STORE_LCL_VAR int V34 tmp29 d:9 $VN.Void -N009 ( 0, 0) [000539] ----------- \--* PHI int $2c4 -N001 ( 0, 0) [000597] ----------- pred BB11 +--* PHI_ARG int V34 tmp29 u:8 $449 -N002 ( 0, 0) [000596] ----------- pred BB13 +--* PHI_ARG int V34 tmp29 u:7 $448 -N003 ( 0, 0) [000595] ----------- pred BB15 +--* PHI_ARG int V34 tmp29 u:6 $446 -N004 ( 0, 0) [000594] ----------- pred BB17 +--* PHI_ARG int V34 tmp29 u:5 $444 -N005 ( 0, 0) [000576] ----------- pred BB19 +--* PHI_ARG int V34 tmp29 u:4 $442 -N006 ( 0, 0) [000575] ----------- pred BB21 +--* PHI_ARG int V34 tmp29 u:3 $441 -N007 ( 0, 0) [000574] ----------- pred BB23 +--* PHI_ARG int V34 tmp29 u:2 $440 -N008 ( 0, 0) [000573] ----------- pred BB25 \--* PHI_ARG int V34 tmp29 u:1 $1bf - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) -N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void -N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) $2c4 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Optimize Valnum CSEs -Standard CSE Heuristic - -*************** Finishing PHASE Optimize Valnum CSEs -Trees after Optimize Valnum CSEs - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(1) (always) i -BB68 [0095] 0 0.50 [???..???)-> BB10(1) (always) i -BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target -BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd -BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd -BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd -BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(0.5),BB28(0.5) ( cond ) i bwd -BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal -BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal -BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i -BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal -BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i -BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal -BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i -BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal -BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i -BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i -BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i -BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i -BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i -BB28 [0027] 1 BB26 0.50 [???..???)-> BB69(1) (always) i -BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(0.5),BB29(0.5) ( cond ) i -BB29 [0028] 1 BB69 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i -BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i -BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i -BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i -BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd -BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal -BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal -BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i -BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall -BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000002] J----+-N--- \--* GE int $180 -N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 $40 - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void -N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref $1c0 -N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref $1c1 - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) -N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000033] J----+-N--- \--* GE int $181 -N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 - ------------- BB09 [0008] [068..073) -> BB69(1) (always), preds={BB57} succs={BB69} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) -N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void -N004 ( 4, 5) [000050] -----+----- \--* ADD long $241 -N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int $240 -N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 $100 -N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 $280 - ------------- BB68 [0095] [???..???) -> BB10(1) (always), preds={} succs={BB10} - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB26,BB68} succs={BB62,BB12} - -***** BB10 [0009] -STMT00103 ( ??? ... ??? ) -N004 ( 0, 0) [000564] DA--------- * STORE_LCL_VAR int V02 arg2 d:2 $VN.Void -N003 ( 0, 0) [000563] ----------- \--* PHI int $2c0 -N001 ( 0, 0) [000569] ----------- pred BB26 +--* PHI_ARG int V02 arg2 u:3 -N002 ( 0, 0) [000567] ----------- pred BB68 \--* PHI_ARG int V02 arg2 u:1 $100 - -***** BB10 [0009] -STMT00098 ( ??? ... ??? ) -N004 ( 0, 0) [000554] DA--------- * STORE_LCL_VAR long V04 loc1 d:2 $VN.Void -N003 ( 0, 0) [000553] ----------- \--* PHI long $300 -N001 ( 0, 0) [000570] ----------- pred BB26 +--* PHI_ARG long V04 loc1 u:3 -N002 ( 0, 0) [000568] ----------- pred BB68 \--* PHI_ARG long V04 loc1 u:1 $241 - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) -N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 d:3 $VN.Void -N003 ( 3, 3) [000058] -----+----- \--* ADD int $183 -N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 u:2 (last use) $2c0 -N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 $46 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) -N009 ( 9, 8) [000073] ---XG+----- * JTRUE void $401 -N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int -N006 ( 5, 4) [000065] ---XG+----- +--* IND long -N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref $340 -N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long $242 -N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) -N011 ( 9, 9) [000090] ---XG+----- * JTRUE void $403 -N010 ( 7, 7) [000408] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000082] ---XG+----- +--* IND long -N007 ( 4, 4) [000081] -----+-N--- | \--* ADD byref $341 -N001 ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000080] -----+-N--- | \--* ADD long $245 -N004 ( 2, 2) [000078] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 $283 -N009 ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) -N011 ( 9, 9) [000107] ---XG+----- * JTRUE void $405 -N010 ( 7, 7) [000415] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000099] ---XG+----- +--* IND long -N007 ( 4, 4) [000098] -----+-N--- | \--* ADD byref $342 -N001 ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000097] -----+-N--- | \--* ADD long $248 -N004 ( 2, 2) [000095] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 $284 -N009 ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) -N011 ( 9, 9) [000124] ---XG+----- * JTRUE void $407 -N010 ( 7, 7) [000422] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000116] ---XG+----- +--* IND long -N007 ( 4, 4) [000115] -----+-N--- | \--* ADD byref $343 -N001 ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000114] -----+-N--- | \--* ADD long $24b -N004 ( 2, 2) [000112] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 $285 -N009 ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) -N011 ( 9, 9) [000141] ---XG+----- * JTRUE void $409 -N010 ( 7, 7) [000429] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000133] ---XG+----- +--* IND long -N007 ( 4, 4) [000132] -----+-N--- | \--* ADD byref $344 -N001 ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000131] -----+-N--- | \--* ADD long $24e -N004 ( 2, 2) [000129] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 $286 -N009 ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) -N011 ( 9, 9) [000158] ---XG+----- * JTRUE void $40b -N010 ( 7, 7) [000436] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000150] ---XG+----- +--* IND long -N007 ( 4, 4) [000149] -----+-N--- | \--* ADD byref $345 -N001 ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000148] -----+-N--- | \--* ADD long $251 -N004 ( 2, 2) [000146] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 $287 -N009 ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) -N011 ( 9, 9) [000175] ---XG+----- * JTRUE void $40d -N010 ( 7, 7) [000443] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000167] ---XG+----- +--* IND long -N007 ( 4, 4) [000166] -----+-N--- | \--* ADD byref $346 -N001 ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000165] -----+-N--- | \--* ADD long $254 -N004 ( 2, 2) [000163] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 $288 -N009 ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) -N011 ( 9, 9) [000192] ---XG+----- * JTRUE void $40f -N010 ( 7, 7) [000450] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000184] ---XG+----- +--* IND long -N007 ( 4, 4) [000183] -----+-N--- | \--* ADD byref $347 -N001 ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000182] -----+-N--- | \--* ADD long $257 -N004 ( 2, 2) [000180] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 $289 -N009 ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB26 [0025] [1E2..1EE) -> BB10(0.5),BB28(0.5) (cond), preds={BB24} succs={BB28,BB10} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) -N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 d:3 $VN.Void -N003 ( 3, 3) [000196] -----+----- \--* ADD long $25a -N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 u:2 (last use) $300 -N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 $283 - -***** BB26 [0025] -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) -N004 ( 5, 5) [000055] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000054] J----+-N--- \--* GE int $1a4 -N001 ( 1, 1) [000052] -----+----- +--* LCL_VAR int V02 arg2 u:3 $183 -N002 ( 1, 1) [000053] -----+----- \--* CNS_INT int 8 $45 - ------------- BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} - ------------- BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} - ------------- BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} - -***** BB11 [0010] -STMT00093 ( ??? ... ??? ) -N005 ( 0, 0) [000544] DA--------- * STORE_LCL_VAR long V04 loc1 d:12 $VN.Void -N004 ( 0, 0) [000543] ----------- \--* PHI long $307 -N001 ( 0, 0) [000591] ----------- pred BB61 +--* PHI_ARG long V04 loc1 u:7 $303 -N002 ( 0, 0) [000583] ----------- pred BB29 +--* PHI_ARG long V04 loc1 u:4 $301 -N003 ( 0, 0) [000580] ----------- pred BB62 \--* PHI_ARG long V04 loc1 u:2 $300 - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) -N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void -N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) $449 - ------------- BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} - ------------- BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} - -***** BB13 [0012] -STMT00099 ( ??? ... ??? ) -N004 ( 0, 0) [000556] DA--------- * STORE_LCL_VAR long V04 loc1 d:11 $VN.Void -N003 ( 0, 0) [000555] ----------- \--* PHI long $306 -N001 ( 0, 0) [000588] ----------- pred BB32 +--* PHI_ARG long V04 loc1 u:4 $301 -N002 ( 0, 0) [000579] ----------- pred BB63 \--* PHI_ARG long V04 loc1 u:2 $300 - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) -N004 ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:7 $VN.Void -N003 ( 3, 3) [000237] -----+----- \--* ADD int $448 -N001 ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 u:11 (last use) $447 -N002 ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 $43 - ------------- BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} - ------------- BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} - -***** BB15 [0014] -STMT00100 ( ??? ... ??? ) -N004 ( 0, 0) [000558] DA--------- * STORE_LCL_VAR long V04 loc1 d:10 $VN.Void -N003 ( 0, 0) [000557] ----------- \--* PHI long $305 -N001 ( 0, 0) [000587] ----------- pred BB34 +--* PHI_ARG long V04 loc1 u:4 $301 -N002 ( 0, 0) [000578] ----------- pred BB64 \--* PHI_ARG long V04 loc1 u:2 $300 - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) -N004 ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:6 $VN.Void -N003 ( 3, 3) [000231] -----+----- \--* ADD int $446 -N001 ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 u:10 (last use) $445 -N002 ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 $4e - ------------- BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} - ------------- BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} - -***** BB17 [0016] -STMT00101 ( ??? ... ??? ) -N004 ( 0, 0) [000560] DA--------- * STORE_LCL_VAR long V04 loc1 d:9 $VN.Void -N003 ( 0, 0) [000559] ----------- \--* PHI long $304 -N001 ( 0, 0) [000586] ----------- pred BB36 +--* PHI_ARG long V04 loc1 u:4 $301 -N002 ( 0, 0) [000577] ----------- pred BB65 \--* PHI_ARG long V04 loc1 u:2 $300 - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) -N004 ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:5 $VN.Void -N003 ( 3, 3) [000225] -----+----- \--* ADD int $444 -N001 ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 u:9 (last use) $443 -N002 ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 $4d - ------------- BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) -N004 ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:4 $VN.Void -N003 ( 3, 3) [000219] -----+----- \--* ADD int $442 -N001 ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 $48 - ------------- BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) -N004 ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:3 $VN.Void -N003 ( 3, 3) [000213] -----+----- \--* ADD int $441 -N001 ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 $4c - ------------- BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) -N004 ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:2 $VN.Void -N003 ( 3, 3) [000207] -----+----- \--* ADD int $440 -N001 ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 $4b - ------------- BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) -N004 ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:1 $VN.Void -N003 ( 3, 3) [000201] -----+----- \--* ADD int $1bf -N001 ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 $4a - ------------- BB28 [0027] [???..???) -> BB69(1) (always), preds={BB26} succs={BB69} - ------------- BB69 [0096] [1EE..1F5) -> BB60(0.5),BB29(0.5) (cond), preds={BB09,BB28} succs={BB29,BB60} - -***** BB69 [0096] -STMT00102 ( ??? ... ??? ) -N004 ( 0, 0) [000562] DA--------- * STORE_LCL_VAR int V02 arg2 d:4 $VN.Void -N003 ( 0, 0) [000561] ----------- \--* PHI int $2c1 -N001 ( 0, 0) [000571] ----------- pred BB28 +--* PHI_ARG int V02 arg2 u:3 $183 -N002 ( 0, 0) [000565] ----------- pred BB09 \--* PHI_ARG int V02 arg2 u:1 $100 - -***** BB69 [0096] -STMT00097 ( ??? ... ??? ) -N004 ( 0, 0) [000552] DA--------- * STORE_LCL_VAR long V04 loc1 d:4 $VN.Void -N003 ( 0, 0) [000551] ----------- \--* PHI long $301 -N001 ( 0, 0) [000572] ----------- pred BB28 +--* PHI_ARG long V04 loc1 u:3 $25a -N002 ( 0, 0) [000566] ----------- pred BB09 \--* PHI_ARG long V04 loc1 u:1 $241 - -***** BB69 [0096] -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) -N004 ( 5, 5) [000246] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000245] J----+-N--- \--* LT int $1a5 -N001 ( 1, 1) [000243] -----+----- +--* LCL_VAR int V02 arg2 u:4 $2c1 -N002 ( 1, 1) [000244] -----+----- \--* CNS_INT int 4 $47 - ------------- BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={BB69} succs={BB31,BB11} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) -N004 ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 d:5 $VN.Void -N003 ( 3, 3) [000281] -----+----- \--* ADD int $1a6 -N001 ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 u:4 (last use) $2c1 -N002 ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 $48 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) -N009 ( 9, 8) [000296] ---XG+----- * JTRUE void $411 -N008 ( 7, 6) [000457] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000288] ---XG+----- +--* IND long -N005 ( 3, 3) [000287] -----+-N--- | \--* ADD byref $348 -N001 ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000286] -----+-N--- | \--* LSH long $25b -N002 ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) -N011 ( 9, 9) [000313] ---XG+----- * JTRUE void $413 -N010 ( 7, 7) [000464] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000305] ---XG+----- +--* IND long -N007 ( 4, 4) [000304] -----+-N--- | \--* ADD byref $349 -N001 ( 1, 1) [000297] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000303] -----+-N--- | \--* ADD long $25e -N004 ( 2, 2) [000301] -----+-N--- | +--* LSH long $25b -N002 ( 1, 1) [000298] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000300] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000302] -----+----- | \--* CNS_INT long -8 $283 -N009 ( 1, 1) [000306] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) -N011 ( 9, 9) [000330] ---XG+----- * JTRUE void $415 -N010 ( 7, 7) [000471] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000322] ---XG+----- +--* IND long -N007 ( 4, 4) [000321] -----+-N--- | \--* ADD byref $34a -N001 ( 1, 1) [000314] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000320] -----+-N--- | \--* ADD long $261 -N004 ( 2, 2) [000318] -----+-N--- | +--* LSH long $25b -N002 ( 1, 1) [000315] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000317] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000319] -----+----- | \--* CNS_INT long -16 $284 -N009 ( 1, 1) [000323] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) -N011 ( 9, 9) [000347] ---XG+----- * JTRUE void $417 -N010 ( 7, 7) [000478] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000339] ---XG+----- +--* IND long -N007 ( 4, 4) [000338] -----+-N--- | \--* ADD byref $34b -N001 ( 1, 1) [000331] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000337] -----+-N--- | \--* ADD long $264 -N004 ( 2, 2) [000335] -----+-N--- | +--* LSH long $25b -N002 ( 1, 1) [000332] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000334] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000336] -----+----- | \--* CNS_INT long -24 $285 -N009 ( 1, 1) [000340] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} - ------------- BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) -N004 ( 3, 3) [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 d:5 $VN.Void -N003 ( 3, 3) [000351] -----+----- \--* ADD long $267 -N001 ( 1, 1) [000348] -----+----- +--* LCL_VAR long V04 loc1 u:4 (last use) $301 -N002 ( 1, 1) [000350] -----+----- \--* CNS_INT long -4 $28a - ------------- BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB40,BB66} succs={BB40,BB61} - -***** BB38 [0037] -STMT00094 ( ??? ... ??? ) -N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 $VN.Void -N003 ( 0, 0) [000545] ----------- \--* PHI int $2c3 -N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 -N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 $2c2 - -***** BB38 [0037] -STMT00092 ( ??? ... ??? ) -N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 $VN.Void -N003 ( 0, 0) [000541] ----------- \--* PHI long $303 -N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 -N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 $302 - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) -N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void -N003 ( 3, 3) [000253] -----+----- \--* ADD int $1b8 -N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) $2c3 -N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 $43 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) -N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 -N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000260] ---XG+----- +--* IND long -N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref $34c -N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long $268 -N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 $303 -N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) -N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void -N003 ( 3, 3) [000272] -----+----- \--* ADD long $26b -N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) $303 -N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 $280 - -***** BB40 [0039] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) -N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000249] J----+-N--- \--* GT int $1bd -N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 $1b8 -N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 $40 - ------------- BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB37,BB69} succs={BB66,BB67} - -***** BB60 [0087] -STMT00096 ( ??? ... ??? ) -N004 ( 0, 0) [000550] DA--------- * STORE_LCL_VAR int V02 arg2 d:6 $VN.Void -N003 ( 0, 0) [000549] ----------- \--* PHI int $2c2 -N001 ( 0, 0) [000584] ----------- pred BB37 +--* PHI_ARG int V02 arg2 u:5 $1a6 -N002 ( 0, 0) [000581] ----------- pred BB69 \--* PHI_ARG int V02 arg2 u:4 $2c1 - -***** BB60 [0087] -STMT00095 ( ??? ... ??? ) -N004 ( 0, 0) [000548] DA--------- * STORE_LCL_VAR long V04 loc1 d:6 $VN.Void -N003 ( 0, 0) [000547] ----------- \--* PHI long $302 -N001 ( 0, 0) [000585] ----------- pred BB37 +--* PHI_ARG long V04 loc1 u:5 $267 -N002 ( 0, 0) [000582] ----------- pred BB69 \--* PHI_ARG long V04 loc1 u:4 $301 - -***** BB60 [0087] -STMT00089 ( 0x2E5[E--] ... ??? ) -N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void -N003 ( 3, 3) [000532] J------N--- \--* LE int $1b7 -N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 -N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 - ------------- BB66 [0093] [???..???) -> BB38(1) (always), preds={BB60} succs={BB38} - ------------- BB42 [0041] [???..???) -> BB67(1) (always), preds={BB40} succs={BB67} - ------------- BB67 [0094] [2E9..2EB) (return), preds={BB42,BB60} succs={} - -***** BB67 [0094] -STMT00088 ( ??? ... ??? ) -N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void -N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 $43 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) -N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void -N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) $80 -N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) $c0 -N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) $100 - ------------- BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} - -***** BB58 [0085] -STMT00091 ( ??? ... ??? ) -N010 ( 0, 0) [000540] DA--------- * STORE_LCL_VAR int V34 tmp29 d:9 $VN.Void -N009 ( 0, 0) [000539] ----------- \--* PHI int $2c4 -N001 ( 0, 0) [000597] ----------- pred BB11 +--* PHI_ARG int V34 tmp29 u:8 $449 -N002 ( 0, 0) [000596] ----------- pred BB13 +--* PHI_ARG int V34 tmp29 u:7 $448 -N003 ( 0, 0) [000595] ----------- pred BB15 +--* PHI_ARG int V34 tmp29 u:6 $446 -N004 ( 0, 0) [000594] ----------- pred BB17 +--* PHI_ARG int V34 tmp29 u:5 $444 -N005 ( 0, 0) [000576] ----------- pred BB19 +--* PHI_ARG int V34 tmp29 u:4 $442 -N006 ( 0, 0) [000575] ----------- pred BB21 +--* PHI_ARG int V34 tmp29 u:3 $441 -N007 ( 0, 0) [000574] ----------- pred BB23 +--* PHI_ARG int V34 tmp29 u:2 $440 -N008 ( 0, 0) [000573] ----------- pred BB25 \--* PHI_ARG int V34 tmp29 u:1 $1bf - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) -N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void -N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) $2c4 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Assertion prop -GenTreeNode creates assertion: -N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void -In BB01 New Global #01 VN $100 >= 0 -GenTreeNode creates assertion: -N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void -In BB01 New Global #02 VN $100 < 0 -GenTreeNode creates assertion: -N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void -In BB57 New Global #03 VN $100 >= 2 -GenTreeNode creates assertion: -N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void -In BB57 New Global #04 VN $100 < 2 -GenTreeNode creates assertion: -N004 ( 5, 5) [000055] -----+----- * JTRUE void $VN.Void -In BB26 New Global #05 VN $183 >= 8 -GenTreeNode creates assertion: -N004 ( 5, 5) [000055] -----+----- * JTRUE void $VN.Void -In BB26 New Global #06 VN $183 < 8 -GenTreeNode creates assertion: -N004 ( 5, 5) [000246] -----+----- * JTRUE void $VN.Void -In BB69 New Global #07 VN $2c1 < 4 -GenTreeNode creates assertion: -N004 ( 5, 5) [000246] -----+----- * JTRUE void $VN.Void -In BB69 New Global #08 VN $2c1 >= 4 -GenTreeNode creates assertion: -N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void -In BB40 New Global #09 VN $1b8 > 0 -GenTreeNode creates assertion: -N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void -In BB40 New Global #10 VN $1b8 <= 0 -GenTreeNode creates assertion: -N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void -In BB60 New Global #11 VN $2c2 <= 0 -GenTreeNode creates assertion: -N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void -In BB60 New Global #12 VN $2c2 > 0 - -BB01 valueGen = #02 => BB57 valueGen = #01 -BB52 valueGen = #NA -BB57 valueGen = #04 => BB43 valueGen = #03 -BB09 valueGen = #NA -BB68 valueGen = #NA -BB10 valueGen = #NA => BB12 valueGen = #NA -BB12 valueGen = #NA => BB14 valueGen = #NA -BB14 valueGen = #NA => BB16 valueGen = #NA -BB16 valueGen = #NA => BB18 valueGen = #NA -BB18 valueGen = #NA => BB20 valueGen = #NA -BB20 valueGen = #NA => BB22 valueGen = #NA -BB22 valueGen = #NA => BB24 valueGen = #NA -BB24 valueGen = #NA => BB26 valueGen = #NA -BB26 valueGen = #06 => BB10 valueGen = #05 -BB61 valueGen = #NA -BB62 valueGen = #NA -BB11 valueGen = #NA -BB63 valueGen = #NA -BB13 valueGen = #NA -BB64 valueGen = #NA -BB15 valueGen = #NA -BB65 valueGen = #NA -BB17 valueGen = #NA -BB19 valueGen = #NA -BB21 valueGen = #NA -BB23 valueGen = #NA -BB25 valueGen = #NA -BB28 valueGen = #NA -BB69 valueGen = #08 => BB60 valueGen = #07 -BB29 valueGen = #NA => BB11 valueGen = #NA -BB31 valueGen = #NA => BB33 valueGen = #NA -BB32 valueGen = #NA -BB33 valueGen = #NA => BB35 valueGen = #NA -BB34 valueGen = #NA -BB35 valueGen = #NA => BB37 valueGen = #NA -BB36 valueGen = #NA -BB37 valueGen = #NA -BB38 valueGen = #NA => BB61 valueGen = #NA -BB40 valueGen = #10 => BB38 valueGen = #09 -BB60 valueGen = #12 => BB67 valueGen = #11 -BB66 valueGen = #NA -BB42 valueGen = #NA -BB67 valueGen = #NA -BB43 valueGen = #NA -BB58 valueGen = #NA - -BB01: - in = #NA - out = #02 - BB57 = #01 -BB52: - in = #02 - out = #02 -BB57: - in = #NA - out = #04 - BB43 = #03 -BB09: - in = #04 - out = #04 -BB68: - in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 -BB10: - in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - BB12 = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 -BB12: - in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - BB14 = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 -BB14: - in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - BB16 = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 -BB16: - in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - BB18 = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 -BB18: - in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - BB20 = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 -BB20: - in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - BB22 = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 -BB22: - in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - BB24 = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 -BB24: - in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - BB26 = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 -BB26: - in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - BB10 = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 -BB61: - in = #04 #12 - out = #04 #12 -BB62: - in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 -BB11: - in = #04 - out = #04 -BB63: - in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 -BB13: - in = #04 #08 - out = #04 #08 -BB64: - in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 -BB15: - in = #04 #08 - out = #04 #08 -BB65: - in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 -BB17: - in = #04 #08 - out = #04 #08 -BB19: - in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 -BB21: - in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 -BB23: - in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 -BB25: - in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 -BB28: - in = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 - out = #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 -BB69: - in = #04 - out = #04 #08 - BB60 = #04 #07 -BB29: - in = #04 #08 - out = #04 #08 - BB11 = #04 #08 -BB31: - in = #04 #08 - out = #04 #08 - BB33 = #04 #08 -BB32: - in = #04 #08 - out = #04 #08 -BB33: - in = #04 #08 - out = #04 #08 - BB35 = #04 #08 -BB34: - in = #04 #08 - out = #04 #08 -BB35: - in = #04 #08 - out = #04 #08 - BB37 = #04 #08 -BB36: - in = #04 #08 - out = #04 #08 -BB37: - in = #04 #08 - out = #04 #08 -BB38: - in = #04 #12 - out = #04 #12 - BB61 = #04 #12 -BB40: - in = #04 #12 - out = #04 #10 #12 - BB38 = #04 #09 #12 -BB60: - in = #04 - out = #04 #12 - BB67 = #04 #11 -BB66: - in = #04 #12 - out = #04 #12 -BB42: - in = #04 #10 #12 - out = #04 #10 #12 -BB67: - in = #04 - out = #04 -BB43: - in = #03 - out = #03 -BB58: - in = #04 - out = #04 - -Propagating #NA for BB01, stmt STMT00069, tree [000000], tree -> #NA -Propagating #NA for BB01, stmt STMT00069, tree [000001], tree -> #NA -Propagating #NA for BB01, stmt STMT00069, tree [000002], tree -> #NA -Propagating #NA for BB01, stmt STMT00069, tree [000384], tree -> #01 -Propagating #02 for BB52, stmt STMT00070, tree [000497], tree -> #NA -Propagating #02 for BB52, stmt STMT00070, tree [000498], tree -> #NA -Propagating #02 for BB52, stmt STMT00070, tree [000387], tree -> #NA -Propagating #NA for BB57, stmt STMT00003, tree [000031], tree -> #NA -Propagating #NA for BB57, stmt STMT00003, tree [000032], tree -> #NA -Propagating #NA for BB57, stmt STMT00003, tree [000033], tree -> #NA -Propagating #NA for BB57, stmt STMT00003, tree [000034], tree -> #03 -Propagating #04 for BB09, stmt STMT00005, tree [000046], tree -> #NA -Propagating #04 for BB09, stmt STMT00005, tree [000047], tree -> #NA -#04 VN $100 < 2 -Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [] into [<-2147483648, 1>] -#04 VN $100 < 2 -Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [] into [<-2147483648, 1>] -Propagating #04 for BB09, stmt STMT00005, tree [000049], tree -> #NA -Propagating #04 for BB09, stmt STMT00005, tree [000050], tree -> #NA -Propagating #04 for BB09, stmt STMT00005, tree [000051], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00007, tree [000056], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00007, tree [000057], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00007, tree [000058], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00007, tree [000059], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00010, tree [000060], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00010, tree [000061], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00010, tree [000062], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00010, tree [000063], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00010, tree [000064], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00010, tree [000065], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00010, tree [000066], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00010, tree [000401], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB10, stmt STMT00010, tree [000073], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000074], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000075], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000077], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000078], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000079], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000080], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000081], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000082], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000083], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000408], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB12, stmt STMT00013, tree [000090], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000091], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000092], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000094], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000095], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000096], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000097], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000098], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000099], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000100], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000415], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB14, stmt STMT00016, tree [000107], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000108], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000109], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000111], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000112], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000113], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000114], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000115], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000116], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000117], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000422], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB16, stmt STMT00019, tree [000124], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000125], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000126], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000128], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000129], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000130], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000131], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000132], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000133], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000134], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000429], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB18, stmt STMT00022, tree [000141], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000142], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000143], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000145], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000146], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000147], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000148], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000149], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000150], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000151], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000436], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB20, stmt STMT00025, tree [000158], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000159], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000160], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000162], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000163], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000164], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000165], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000166], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000167], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000168], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000443], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB22, stmt STMT00028, tree [000175], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000176], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000177], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000179], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000180], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000181], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000182], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000183], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000184], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000185], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000450], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB24, stmt STMT00031, tree [000192], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB26, stmt STMT00032, tree [000193], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB26, stmt STMT00032, tree [000195], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB26, stmt STMT00032, tree [000196], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB26, stmt STMT00032, tree [000197], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB26, stmt STMT00006, tree [000052], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB26, stmt STMT00006, tree [000053], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB26, stmt STMT00006, tree [000054], tree -> #NA -Found matching assertion #04 for tree 000054.. Folded into: - [000598] ----------- * CNS_INT int 1 -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB26, stmt STMT00006, tree [000055], tree -> #05 -Re-morphing this stmt: -STMT00006 ( 0x1E7[E--] ... 0x1E9 ) -N004 ( 5, 5) [000055] -----+----- * JTRUE void $VN.Void - [000598] ----------- \--* CNS_INT int 1 - - -removing useless STMT00006 ( 0x1E7[E--] ... 0x1E9 ) -N004 ( 5, 5) [000055] ----------- * JTRUE void $VN.Void - [000598] ----------- \--* CNS_INT int 1 - from BB26 -setting likelihood of BB26 -> BB10 from 0.5 to 1 - -Conditional folded at BB26 -BB26 becomes a BBJ_ALWAYS to BB10 -optAssertionPropMain removed tree: -N004 ( 5, 5) [000055] ----------- * JTRUE void $VN.Void - [000598] ----------- \--* CNS_INT int 1 - -Propagating #04 for BB11, stmt STMT00040, tree [000240], tree -> #NA -Propagating #04 for BB11, stmt STMT00040, tree [000521], tree -> #NA -Propagating #04 #08 for BB13, stmt STMT00039, tree [000234], tree -> #NA -Propagating #04 #08 for BB13, stmt STMT00039, tree [000519], tree -> #NA -Propagating #04 #08 for BB13, stmt STMT00039, tree [000237], tree -> #NA -Propagating #04 #08 for BB13, stmt STMT00039, tree [000520], tree -> #NA -Propagating #04 #08 for BB15, stmt STMT00038, tree [000228], tree -> #NA -Propagating #04 #08 for BB15, stmt STMT00038, tree [000516], tree -> #NA -Propagating #04 #08 for BB15, stmt STMT00038, tree [000231], tree -> #NA -Propagating #04 #08 for BB15, stmt STMT00038, tree [000517], tree -> #NA -Propagating #04 #08 for BB17, stmt STMT00037, tree [000222], tree -> #NA -Propagating #04 #08 for BB17, stmt STMT00037, tree [000513], tree -> #NA -Propagating #04 #08 for BB17, stmt STMT00037, tree [000225], tree -> #NA -Propagating #04 #08 for BB17, stmt STMT00037, tree [000514], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB19, stmt STMT00036, tree [000216], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB19, stmt STMT00036, tree [000510], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB19, stmt STMT00036, tree [000219], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB19, stmt STMT00036, tree [000511], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB21, stmt STMT00035, tree [000210], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB21, stmt STMT00035, tree [000507], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB21, stmt STMT00035, tree [000213], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB21, stmt STMT00035, tree [000508], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB23, stmt STMT00034, tree [000204], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB23, stmt STMT00034, tree [000504], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB23, stmt STMT00034, tree [000207], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB23, stmt STMT00034, tree [000505], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB25, stmt STMT00033, tree [000198], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB25, stmt STMT00033, tree [000501], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB25, stmt STMT00033, tree [000201], tree -> #NA -Propagating #01 #02 #03 #04 #05 #06 #07 #08 #09 #10 #11 #12 for BB25, stmt STMT00033, tree [000502], tree -> #NA -Propagating #04 for BB69, stmt STMT00041, tree [000243], tree -> #NA -Propagating #04 for BB69, stmt STMT00041, tree [000244], tree -> #NA -Propagating #04 for BB69, stmt STMT00041, tree [000245], tree -> #NA -... optVisitReachingAssertions in BB69: phi-pred BB28 is unreachable, ignoring -#04 VN $100 < 2 -Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [] into [<-2147483648, 1>] -Propagating #04 for BB69, stmt STMT00041, tree [000246], tree -> #07 -Re-morphing this stmt: -STMT00041 ( 0x1EE[E--] ... 0x1F0 ) -N004 ( 5, 5) [000246] -----+----- * JTRUE void $VN.Void - [000599] ----------- \--* CNS_INT int 1 - - -removing useless STMT00041 ( 0x1EE[E--] ... 0x1F0 ) -N004 ( 5, 5) [000246] ----------- * JTRUE void $VN.Void - [000599] ----------- \--* CNS_INT int 1 - from BB69 -setting likelihood of BB69 -> BB60 from 0.5 to 1 - -Conditional folded at BB69 -BB69 becomes a BBJ_ALWAYS to BB60 -optAssertionPropMain removed tree: -N004 ( 5, 5) [000246] ----------- * JTRUE void $VN.Void - [000599] ----------- \--* CNS_INT int 1 - -Propagating #04 #08 for BB29, stmt STMT00050, tree [000279], tree -> #NA -Propagating #04 #08 for BB29, stmt STMT00050, tree [000280], tree -> #NA -Propagating #04 #08 for BB29, stmt STMT00050, tree [000281], tree -> #NA -Propagating #04 #08 for BB29, stmt STMT00050, tree [000282], tree -> #NA -Propagating #04 #08 for BB29, stmt STMT00053, tree [000283], tree -> #NA -Propagating #04 #08 for BB29, stmt STMT00053, tree [000284], tree -> #NA -Propagating #04 #08 for BB29, stmt STMT00053, tree [000285], tree -> #NA -Propagating #04 #08 for BB29, stmt STMT00053, tree [000286], tree -> #NA -Propagating #04 #08 for BB29, stmt STMT00053, tree [000287], tree -> #NA -Propagating #04 #08 for BB29, stmt STMT00053, tree [000288], tree -> #NA -Propagating #04 #08 for BB29, stmt STMT00053, tree [000289], tree -> #NA -Propagating #04 #08 for BB29, stmt STMT00053, tree [000457], tree -> #NA -Propagating #04 #08 for BB29, stmt STMT00053, tree [000296], tree -> #NA -Propagating #04 #08 for BB31, stmt STMT00056, tree [000297], tree -> #NA -Propagating #04 #08 for BB31, stmt STMT00056, tree [000298], tree -> #NA -Propagating #04 #08 for BB31, stmt STMT00056, tree [000300], tree -> #NA -Propagating #04 #08 for BB31, stmt STMT00056, tree [000301], tree -> #NA -Propagating #04 #08 for BB31, stmt STMT00056, tree [000302], tree -> #NA -Propagating #04 #08 for BB31, stmt STMT00056, tree [000303], tree -> #NA -Propagating #04 #08 for BB31, stmt STMT00056, tree [000304], tree -> #NA -Propagating #04 #08 for BB31, stmt STMT00056, tree [000305], tree -> #NA -Propagating #04 #08 for BB31, stmt STMT00056, tree [000306], tree -> #NA -Propagating #04 #08 for BB31, stmt STMT00056, tree [000464], tree -> #NA -Propagating #04 #08 for BB31, stmt STMT00056, tree [000313], tree -> #NA -Propagating #04 #08 for BB33, stmt STMT00059, tree [000314], tree -> #NA -Propagating #04 #08 for BB33, stmt STMT00059, tree [000315], tree -> #NA -Propagating #04 #08 for BB33, stmt STMT00059, tree [000317], tree -> #NA -Propagating #04 #08 for BB33, stmt STMT00059, tree [000318], tree -> #NA -Propagating #04 #08 for BB33, stmt STMT00059, tree [000319], tree -> #NA -Propagating #04 #08 for BB33, stmt STMT00059, tree [000320], tree -> #NA -Propagating #04 #08 for BB33, stmt STMT00059, tree [000321], tree -> #NA -Propagating #04 #08 for BB33, stmt STMT00059, tree [000322], tree -> #NA -Propagating #04 #08 for BB33, stmt STMT00059, tree [000323], tree -> #NA -Propagating #04 #08 for BB33, stmt STMT00059, tree [000471], tree -> #NA -Propagating #04 #08 for BB33, stmt STMT00059, tree [000330], tree -> #NA -Propagating #04 #08 for BB35, stmt STMT00062, tree [000331], tree -> #NA -Propagating #04 #08 for BB35, stmt STMT00062, tree [000332], tree -> #NA -Propagating #04 #08 for BB35, stmt STMT00062, tree [000334], tree -> #NA -Propagating #04 #08 for BB35, stmt STMT00062, tree [000335], tree -> #NA -Propagating #04 #08 for BB35, stmt STMT00062, tree [000336], tree -> #NA -Propagating #04 #08 for BB35, stmt STMT00062, tree [000337], tree -> #NA -Propagating #04 #08 for BB35, stmt STMT00062, tree [000338], tree -> #NA -Propagating #04 #08 for BB35, stmt STMT00062, tree [000339], tree -> #NA -Propagating #04 #08 for BB35, stmt STMT00062, tree [000340], tree -> #NA -Propagating #04 #08 for BB35, stmt STMT00062, tree [000478], tree -> #NA -Propagating #04 #08 for BB35, stmt STMT00062, tree [000347], tree -> #NA -Propagating #04 #08 for BB37, stmt STMT00063, tree [000348], tree -> #NA -Propagating #04 #08 for BB37, stmt STMT00063, tree [000350], tree -> #NA -Propagating #04 #08 for BB37, stmt STMT00063, tree [000351], tree -> #NA -Propagating #04 #08 for BB37, stmt STMT00063, tree [000352], tree -> #NA -Propagating #04 #12 for BB38, stmt STMT00043, tree [000251], tree -> #NA -Propagating #04 #12 for BB38, stmt STMT00043, tree [000252], tree -> #NA -Propagating #04 #12 for BB38, stmt STMT00043, tree [000253], tree -> #NA -Propagating #04 #12 for BB38, stmt STMT00043, tree [000254], tree -> #NA -Propagating #04 #12 for BB38, stmt STMT00046, tree [000255], tree -> #NA -Propagating #04 #12 for BB38, stmt STMT00046, tree [000256], tree -> #NA -Propagating #04 #12 for BB38, stmt STMT00046, tree [000257], tree -> #NA -Propagating #04 #12 for BB38, stmt STMT00046, tree [000258], tree -> #NA -Propagating #04 #12 for BB38, stmt STMT00046, tree [000259], tree -> #NA -Propagating #04 #12 for BB38, stmt STMT00046, tree [000260], tree -> #NA -Propagating #04 #12 for BB38, stmt STMT00046, tree [000261], tree -> #NA -Propagating #04 #12 for BB38, stmt STMT00046, tree [000485], tree -> #NA -Propagating #04 #12 for BB38, stmt STMT00046, tree [000268], tree -> #NA -Propagating #04 #12 for BB40, stmt STMT00047, tree [000269], tree -> #NA -Propagating #04 #12 for BB40, stmt STMT00047, tree [000271], tree -> #NA -Propagating #04 #12 for BB40, stmt STMT00047, tree [000272], tree -> #NA -Propagating #04 #12 for BB40, stmt STMT00047, tree [000273], tree -> #NA -Propagating #04 #12 for BB40, stmt STMT00042, tree [000247], tree -> #NA -Propagating #04 #12 for BB40, stmt STMT00042, tree [000248], tree -> #NA -Propagating #04 #12 for BB40, stmt STMT00042, tree [000249], tree -> #NA -#09 VN $1b8 > 0 -Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [<1, Unknown>] into [<1, 2147483647>] -... optVisitReachingAssertions in BB69: phi-pred BB28 is unreachable, ignoring -#04 VN $100 < 2 -Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [] into [<-2147483648, 1>] -#08 VN $2c1 >= 4 -Tightening pRange: [<-2147483648, 1>] with assertedRange: [<4, Unknown>] into [<4, 1>] -invalid range after tightening -#12 VN $2c2 > 0 -Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [<1, Unknown>] into [<1, 2147483647>] -#09 VN $1b8 > 0 -Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [<1, Unknown>] into [<1, 2147483647>] -... optVisitReachingAssertions in BB69: phi-pred BB28 is unreachable, ignoring -#04 VN $100 < 2 -Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [] into [<-2147483648, 1>] -#08 VN $2c1 >= 4 -Tightening pRange: [<-2147483648, 1>] with assertedRange: [<4, Unknown>] into [<4, 1>] -invalid range after tightening -#12 VN $2c2 > 0 -Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [<1, Unknown>] into [<1, 2147483647>] -Propagating #04 #12 for BB40, stmt STMT00042, tree [000250], tree -> #09 -Propagating #04 for BB60, stmt STMT00089, tree [000533], tree -> #NA -Propagating #04 for BB60, stmt STMT00089, tree [000534], tree -> #NA -Propagating #04 for BB60, stmt STMT00089, tree [000532], tree -> #NA -... optVisitReachingAssertions in BB69: phi-pred BB28 is unreachable, ignoring -#04 VN $100 < 2 -Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [] into [<-2147483648, 1>] -#08 VN $2c1 >= 4 -Tightening pRange: [<-2147483648, 1>] with assertedRange: [<4, Unknown>] into [<4, 1>] -invalid range after tightening -... optVisitReachingAssertions in BB69: phi-pred BB28 is unreachable, ignoring -#04 VN $100 < 2 -Tightening pRange: [<-2147483648, 2147483647>] with assertedRange: [] into [<-2147483648, 1>] -#08 VN $2c1 >= 4 -Tightening pRange: [<-2147483648, 1>] with assertedRange: [<4, Unknown>] into [<4, 1>] -invalid range after tightening -Propagating #04 for BB60, stmt STMT00089, tree [000531], tree -> #11 -Propagating #04 for BB67, stmt STMT00088, tree [000277], tree -> #NA -Propagating #04 for BB67, stmt STMT00088, tree [000493], tree -> #NA -Propagating #03 for BB43, stmt STMT00004, tree [000041], tree -> #NA -Propagating #03 for BB43, stmt STMT00004, tree [000042], tree -> #NA -Propagating #03 for BB43, stmt STMT00004, tree [000043], tree -> #NA -Propagating #03 for BB43, stmt STMT00004, tree [000044], tree -> #NA -Propagating #04 for BB58, stmt STMT00087, tree [000491], tree -> #NA -Propagating #04 for BB58, stmt STMT00087, tree [000492], tree -> #NA - -*************** Finishing PHASE Assertion prop -Trees after Assertion prop - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 0.50 [068..073)-> BB69(1) (always) i -BB68 [0095] 0 0.50 [???..???)-> BB10(1) (always) i -BB10 [0009] 2 BB26,BB68 4 [073..09D)-> BB12(0.5),BB62(0.5) ( cond ) i bwd bwd-target -BB12 [0011] 1 BB10 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd -BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd -BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd -BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB26 [0025] 1 BB24 4 [1E2..1EE)-> BB10(1) (always) i bwd -BB61 [0088] 1 BB38 0.25 [09D..???)-> BB11(1) (always) internal -BB62 [0089] 1 BB10 0.25 [09D..???)-> BB11(1) (always) internal -BB11 [0010] 3 BB29,BB61,BB62 0.50 [09D..0A0)-> BB58(1) (always) i -BB63 [0090] 1 BB12 0.25 [0C8..???)-> BB13(1) (always) internal -BB13 [0012] 2 BB32,BB63 0.50 [0C8..0CE)-> BB58(1) (always) i -BB64 [0091] 1 BB14 0.25 [0F6..???)-> BB15(1) (always) internal -BB15 [0014] 2 BB34,BB64 0.50 [0F6..0FC)-> BB58(1) (always) i -BB65 [0092] 1 BB16 0.25 [124..???)-> BB17(1) (always) internal -BB17 [0016] 2 BB36,BB65 0.50 [124..12A)-> BB58(1) (always) i -BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i -BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i -BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i -BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i -BB28 [0027] 0 0.50 [???..???)-> BB69(1) (always) i -BB69 [0096] 2 BB09,BB28 0.50 [1EE..1F5)-> BB60(1) (always) i -BB29 [0028] 0 0.50 [1F5..21F)-> BB11(0.5),BB31(0.5) ( cond ) i -BB31 [0030] 1 BB29 0.50 [222..24A)-> BB33(0.5),BB32(0.5) ( cond ) i -BB32 [0031] 1 BB31 0.50 [24A..250)-> BB13(1) (always) i -BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 0.50 [278..27E)-> BB15(1) (always) i -BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB17(1) (always) i -BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB60(1) (always) i -BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB61(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd -BB60 [0087] 2 BB37,BB69 0.75 [2E5..???)-> BB67(0.5),BB66(0.5) ( cond ) internal -BB66 [0093] 1 BB60 0.75 [???..???)-> BB38(1) (always) internal -BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i -BB67 [0094] 2 BB42,BB60 0.50 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall -BB58 [0085] 8 BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25 0.50 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000002] J----+-N--- \--* GE int $180 -N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 $40 - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void -N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref $1c0 -N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref $1c1 - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) -N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000033] J----+-N--- \--* GE int $181 -N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 - ------------- BB09 [0008] [068..073) -> BB69(1) (always), preds={BB57} succs={BB69} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) -N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void -N004 ( 4, 5) [000050] -----+----- \--* ADD long $241 -N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int $240 -N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 $100 -N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 $280 - ------------- BB68 [0095] [???..???) -> BB10(1) (always), preds={} succs={BB10} - ------------- BB10 [0009] [073..09D) -> BB12(0.5),BB62(0.5) (cond), preds={BB26,BB68} succs={BB62,BB12} - -***** BB10 [0009] -STMT00103 ( ??? ... ??? ) -N004 ( 0, 0) [000564] DA--------- * STORE_LCL_VAR int V02 arg2 d:2 $VN.Void -N003 ( 0, 0) [000563] ----------- \--* PHI int $2c0 -N001 ( 0, 0) [000569] ----------- pred BB26 +--* PHI_ARG int V02 arg2 u:3 -N002 ( 0, 0) [000567] ----------- pred BB68 \--* PHI_ARG int V02 arg2 u:1 $100 - -***** BB10 [0009] -STMT00098 ( ??? ... ??? ) -N004 ( 0, 0) [000554] DA--------- * STORE_LCL_VAR long V04 loc1 d:2 $VN.Void -N003 ( 0, 0) [000553] ----------- \--* PHI long $300 -N001 ( 0, 0) [000570] ----------- pred BB26 +--* PHI_ARG long V04 loc1 u:3 -N002 ( 0, 0) [000568] ----------- pred BB68 \--* PHI_ARG long V04 loc1 u:1 $241 - -***** BB10 [0009] -STMT00007 ( 0x073[E--] ... 0x076 ) -N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 d:3 $VN.Void -N003 ( 3, 3) [000058] -----+----- \--* ADD int $183 -N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 u:2 (last use) $2c0 -N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 $46 - -***** BB10 [0009] -STMT00010 ( 0x078[E--] ... ??? ) -N009 ( 9, 8) [000073] ---XG+----- * JTRUE void $401 -N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int -N006 ( 5, 4) [000065] ---XG+----- +--* IND long -N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref $340 -N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long $242 -N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB10} succs={BB63,BB14} - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) -N011 ( 9, 9) [000090] ---XG+----- * JTRUE void $403 -N010 ( 7, 7) [000408] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000082] ---XG+----- +--* IND long -N007 ( 4, 4) [000081] -----+-N--- | \--* ADD byref $341 -N001 ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000080] -----+-N--- | \--* ADD long $245 -N004 ( 2, 2) [000078] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 $283 -N009 ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) -N011 ( 9, 9) [000107] ---XG+----- * JTRUE void $405 -N010 ( 7, 7) [000415] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000099] ---XG+----- +--* IND long -N007 ( 4, 4) [000098] -----+-N--- | \--* ADD byref $342 -N001 ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000097] -----+-N--- | \--* ADD long $248 -N004 ( 2, 2) [000095] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 $284 -N009 ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) -N011 ( 9, 9) [000124] ---XG+----- * JTRUE void $407 -N010 ( 7, 7) [000422] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000116] ---XG+----- +--* IND long -N007 ( 4, 4) [000115] -----+-N--- | \--* ADD byref $343 -N001 ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000114] -----+-N--- | \--* ADD long $24b -N004 ( 2, 2) [000112] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 $285 -N009 ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) -N011 ( 9, 9) [000141] ---XG+----- * JTRUE void $409 -N010 ( 7, 7) [000429] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000133] ---XG+----- +--* IND long -N007 ( 4, 4) [000132] -----+-N--- | \--* ADD byref $344 -N001 ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000131] -----+-N--- | \--* ADD long $24e -N004 ( 2, 2) [000129] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 $286 -N009 ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) -N011 ( 9, 9) [000158] ---XG+----- * JTRUE void $40b -N010 ( 7, 7) [000436] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000150] ---XG+----- +--* IND long -N007 ( 4, 4) [000149] -----+-N--- | \--* ADD byref $345 -N001 ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000148] -----+-N--- | \--* ADD long $251 -N004 ( 2, 2) [000146] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 $287 -N009 ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) -N011 ( 9, 9) [000175] ---XG+----- * JTRUE void $40d -N010 ( 7, 7) [000443] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000167] ---XG+----- +--* IND long -N007 ( 4, 4) [000166] -----+-N--- | \--* ADD byref $346 -N001 ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000165] -----+-N--- | \--* ADD long $254 -N004 ( 2, 2) [000163] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 $288 -N009 ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) -N011 ( 9, 9) [000192] ---XG+----- * JTRUE void $40f -N010 ( 7, 7) [000450] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000184] ---XG+----- +--* IND long -N007 ( 4, 4) [000183] -----+-N--- | \--* ADD byref $347 -N001 ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000182] -----+-N--- | \--* ADD long $257 -N004 ( 2, 2) [000180] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 $289 -N009 ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB26 [0025] [1E2..1EE) -> BB10(1) (always), preds={BB24} succs={BB10} - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) -N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 d:3 $VN.Void -N003 ( 3, 3) [000196] -----+----- \--* ADD long $25a -N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 u:2 (last use) $300 -N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 $283 - ------------- BB61 [0088] [09D..???) -> BB11(1) (always), preds={BB38} succs={BB11} - ------------- BB62 [0089] [09D..???) -> BB11(1) (always), preds={BB10} succs={BB11} - ------------- BB11 [0010] [09D..0A0) -> BB58(1) (always), preds={BB29,BB61,BB62} succs={BB58} - -***** BB11 [0010] -STMT00093 ( ??? ... ??? ) -N005 ( 0, 0) [000544] DA--------- * STORE_LCL_VAR long V04 loc1 d:12 $VN.Void -N004 ( 0, 0) [000543] ----------- \--* PHI long $307 -N001 ( 0, 0) [000591] ----------- pred BB61 +--* PHI_ARG long V04 loc1 u:7 $303 -N002 ( 0, 0) [000583] ----------- pred BB29 +--* PHI_ARG long V04 loc1 u:4 $301 -N003 ( 0, 0) [000580] ----------- pred BB62 \--* PHI_ARG long V04 loc1 u:2 $300 - -***** BB11 [0010] -STMT00040 ( 0x09D[E--] ... 0x09F ) -N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void -N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) $449 - ------------- BB63 [0090] [0C8..???) -> BB13(1) (always), preds={BB12} succs={BB13} - ------------- BB13 [0012] [0C8..0CE) -> BB58(1) (always), preds={BB32,BB63} succs={BB58} - -***** BB13 [0012] -STMT00099 ( ??? ... ??? ) -N004 ( 0, 0) [000556] DA--------- * STORE_LCL_VAR long V04 loc1 d:11 $VN.Void -N003 ( 0, 0) [000555] ----------- \--* PHI long $306 -N001 ( 0, 0) [000588] ----------- pred BB32 +--* PHI_ARG long V04 loc1 u:4 $301 -N002 ( 0, 0) [000579] ----------- pred BB63 \--* PHI_ARG long V04 loc1 u:2 $300 - -***** BB13 [0012] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) -N004 ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:7 $VN.Void -N003 ( 3, 3) [000237] -----+----- \--* ADD int $448 -N001 ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 u:11 (last use) $447 -N002 ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 $43 - ------------- BB64 [0091] [0F6..???) -> BB15(1) (always), preds={BB14} succs={BB15} - ------------- BB15 [0014] [0F6..0FC) -> BB58(1) (always), preds={BB34,BB64} succs={BB58} - -***** BB15 [0014] -STMT00100 ( ??? ... ??? ) -N004 ( 0, 0) [000558] DA--------- * STORE_LCL_VAR long V04 loc1 d:10 $VN.Void -N003 ( 0, 0) [000557] ----------- \--* PHI long $305 -N001 ( 0, 0) [000587] ----------- pred BB34 +--* PHI_ARG long V04 loc1 u:4 $301 -N002 ( 0, 0) [000578] ----------- pred BB64 \--* PHI_ARG long V04 loc1 u:2 $300 - -***** BB15 [0014] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) -N004 ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:6 $VN.Void -N003 ( 3, 3) [000231] -----+----- \--* ADD int $446 -N001 ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 u:10 (last use) $445 -N002 ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 $4e - ------------- BB65 [0092] [124..???) -> BB17(1) (always), preds={BB16} succs={BB17} - ------------- BB17 [0016] [124..12A) -> BB58(1) (always), preds={BB36,BB65} succs={BB58} - -***** BB17 [0016] -STMT00101 ( ??? ... ??? ) -N004 ( 0, 0) [000560] DA--------- * STORE_LCL_VAR long V04 loc1 d:9 $VN.Void -N003 ( 0, 0) [000559] ----------- \--* PHI long $304 -N001 ( 0, 0) [000586] ----------- pred BB36 +--* PHI_ARG long V04 loc1 u:4 $301 -N002 ( 0, 0) [000577] ----------- pred BB65 \--* PHI_ARG long V04 loc1 u:2 $300 - -***** BB17 [0016] -STMT00037 ( 0x124[E--] ... 0x129 ) -N004 ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:5 $VN.Void -N003 ( 3, 3) [000225] -----+----- \--* ADD int $444 -N001 ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 u:9 (last use) $443 -N002 ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 $4d - ------------- BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) -N004 ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:4 $VN.Void -N003 ( 3, 3) [000219] -----+----- \--* ADD int $442 -N001 ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 $48 - ------------- BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) -N004 ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:3 $VN.Void -N003 ( 3, 3) [000213] -----+----- \--* ADD int $441 -N001 ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 $4c - ------------- BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) -N004 ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:2 $VN.Void -N003 ( 3, 3) [000207] -----+----- \--* ADD int $440 -N001 ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 $4b - ------------- BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) -N004 ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:1 $VN.Void -N003 ( 3, 3) [000201] -----+----- \--* ADD int $1bf -N001 ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 $4a - ------------- BB28 [0027] [???..???) -> BB69(1) (always), preds={} succs={BB69} - ------------- BB69 [0096] [1EE..1F5) -> BB60(1) (always), preds={BB09,BB28} succs={BB60} - -***** BB69 [0096] -STMT00102 ( ??? ... ??? ) -N004 ( 0, 0) [000562] DA--------- * STORE_LCL_VAR int V02 arg2 d:4 $VN.Void -N003 ( 0, 0) [000561] ----------- \--* PHI int $2c1 -N001 ( 0, 0) [000571] ----------- pred BB28 +--* PHI_ARG int V02 arg2 u:3 $183 -N002 ( 0, 0) [000565] ----------- pred BB09 \--* PHI_ARG int V02 arg2 u:1 $100 - -***** BB69 [0096] -STMT00097 ( ??? ... ??? ) -N004 ( 0, 0) [000552] DA--------- * STORE_LCL_VAR long V04 loc1 d:4 $VN.Void -N003 ( 0, 0) [000551] ----------- \--* PHI long $301 -N001 ( 0, 0) [000572] ----------- pred BB28 +--* PHI_ARG long V04 loc1 u:3 $25a -N002 ( 0, 0) [000566] ----------- pred BB09 \--* PHI_ARG long V04 loc1 u:1 $241 - ------------- BB29 [0028] [1F5..21F) -> BB11(0.5),BB31(0.5) (cond), preds={} succs={BB31,BB11} - -***** BB29 [0028] -STMT00050 ( 0x1F5[E--] ... 0x1F8 ) -N004 ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 d:5 $VN.Void -N003 ( 3, 3) [000281] -----+----- \--* ADD int $1a6 -N001 ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 u:4 (last use) $2c1 -N002 ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 $48 - -***** BB29 [0028] -STMT00053 ( 0x1FA[E--] ... ??? ) -N009 ( 9, 8) [000296] ---XG+----- * JTRUE void $411 -N008 ( 7, 6) [000457] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000288] ---XG+----- +--* IND long -N005 ( 3, 3) [000287] -----+-N--- | \--* ADD byref $348 -N001 ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000286] -----+-N--- | \--* LSH long $25b -N002 ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB31 [0030] [222..24A) -> BB33(0.5),BB32(0.5) (cond), preds={BB29} succs={BB32,BB33} - -***** BB31 [0030] -STMT00056 ( 0x222[E--] ... ??? ) -N011 ( 9, 9) [000313] ---XG+----- * JTRUE void $413 -N010 ( 7, 7) [000464] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000305] ---XG+----- +--* IND long -N007 ( 4, 4) [000304] -----+-N--- | \--* ADD byref $349 -N001 ( 1, 1) [000297] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000303] -----+-N--- | \--* ADD long $25e -N004 ( 2, 2) [000301] -----+-N--- | +--* LSH long $25b -N002 ( 1, 1) [000298] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000300] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000302] -----+----- | \--* CNS_INT long -8 $283 -N009 ( 1, 1) [000306] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB32 [0031] [24A..250) -> BB13(1) (always), preds={BB31} succs={BB13} - ------------- BB33 [0032] [250..278) -> BB35(0.5),BB34(0.5) (cond), preds={BB31} succs={BB34,BB35} - -***** BB33 [0032] -STMT00059 ( 0x250[E--] ... ??? ) -N011 ( 9, 9) [000330] ---XG+----- * JTRUE void $415 -N010 ( 7, 7) [000471] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000322] ---XG+----- +--* IND long -N007 ( 4, 4) [000321] -----+-N--- | \--* ADD byref $34a -N001 ( 1, 1) [000314] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000320] -----+-N--- | \--* ADD long $261 -N004 ( 2, 2) [000318] -----+-N--- | +--* LSH long $25b -N002 ( 1, 1) [000315] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000317] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000319] -----+----- | \--* CNS_INT long -16 $284 -N009 ( 1, 1) [000323] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB34 [0033] [278..27E) -> BB15(1) (always), preds={BB33} succs={BB15} - ------------- BB35 [0034] [27E..2A6) -> BB37(0.5),BB36(0.5) (cond), preds={BB33} succs={BB36,BB37} - -***** BB35 [0034] -STMT00062 ( 0x27E[E--] ... ??? ) -N011 ( 9, 9) [000347] ---XG+----- * JTRUE void $417 -N010 ( 7, 7) [000478] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000339] ---XG+----- +--* IND long -N007 ( 4, 4) [000338] -----+-N--- | \--* ADD byref $34b -N001 ( 1, 1) [000331] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000337] -----+-N--- | \--* ADD long $264 -N004 ( 2, 2) [000335] -----+-N--- | +--* LSH long $25b -N002 ( 1, 1) [000332] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000334] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000336] -----+----- | \--* CNS_INT long -24 $285 -N009 ( 1, 1) [000340] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB36 [0035] [2A6..2AC) -> BB17(1) (always), preds={BB35} succs={BB17} - ------------- BB37 [0036] [2AC..2B3) -> BB60(1) (always), preds={BB35} succs={BB60} - -***** BB37 [0036] -STMT00063 ( 0x2AC[E--] ... 0x2B0 ) -N004 ( 3, 3) [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 d:5 $VN.Void -N003 ( 3, 3) [000351] -----+----- \--* ADD long $267 -N001 ( 1, 1) [000348] -----+----- +--* LCL_VAR long V04 loc1 u:4 (last use) $301 -N002 ( 1, 1) [000350] -----+----- \--* CNS_INT long -4 $28a - ------------- BB38 [0037] [2B3..2DD) -> BB61(0.5),BB40(0.5) (cond), preds={BB40,BB66} succs={BB40,BB61} - -***** BB38 [0037] -STMT00094 ( ??? ... ??? ) -N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 $VN.Void -N003 ( 0, 0) [000545] ----------- \--* PHI int $2c3 -N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 -N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 $2c2 - -***** BB38 [0037] -STMT00092 ( ??? ... ??? ) -N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 $VN.Void -N003 ( 0, 0) [000541] ----------- \--* PHI long $303 -N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 -N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 $302 - -***** BB38 [0037] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) -N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void -N003 ( 3, 3) [000253] -----+----- \--* ADD int $1b8 -N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) $2c3 -N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 $43 - -***** BB38 [0037] -STMT00046 ( 0x2B8[E--] ... ??? ) -N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 -N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000260] ---XG+----- +--* IND long -N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref $34c -N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long $268 -N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 $303 -N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB40 [0039] [2E0..2E9) -> BB38(0.5),BB42(0.5) (cond), preds={BB38} succs={BB42,BB38} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) -N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void -N003 ( 3, 3) [000272] -----+----- \--* ADD long $26b -N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) $303 -N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 $280 - -***** BB40 [0039] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) -N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000249] J----+-N--- \--* GT int $1bd -N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 $1b8 -N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 $40 - ------------- BB60 [0087] [2E5..???) -> BB67(0.5),BB66(0.5) (cond), preds={BB37,BB69} succs={BB66,BB67} - -***** BB60 [0087] -STMT00096 ( ??? ... ??? ) -N004 ( 0, 0) [000550] DA--------- * STORE_LCL_VAR int V02 arg2 d:6 $VN.Void -N003 ( 0, 0) [000549] ----------- \--* PHI int $2c2 -N001 ( 0, 0) [000584] ----------- pred BB37 +--* PHI_ARG int V02 arg2 u:5 $1a6 -N002 ( 0, 0) [000581] ----------- pred BB69 \--* PHI_ARG int V02 arg2 u:4 $2c1 - -***** BB60 [0087] -STMT00095 ( ??? ... ??? ) -N004 ( 0, 0) [000548] DA--------- * STORE_LCL_VAR long V04 loc1 d:6 $VN.Void -N003 ( 0, 0) [000547] ----------- \--* PHI long $302 -N001 ( 0, 0) [000585] ----------- pred BB37 +--* PHI_ARG long V04 loc1 u:5 $267 -N002 ( 0, 0) [000582] ----------- pred BB69 \--* PHI_ARG long V04 loc1 u:4 $301 - -***** BB60 [0087] -STMT00089 ( 0x2E5[E--] ... ??? ) -N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void -N003 ( 3, 3) [000532] J------N--- \--* LE int $1b7 -N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 -N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 - ------------- BB66 [0093] [???..???) -> BB38(1) (always), preds={BB60} succs={BB38} - ------------- BB42 [0041] [???..???) -> BB67(1) (always), preds={BB40} succs={BB67} - ------------- BB67 [0094] [2E9..2EB) (return), preds={BB42,BB60} succs={} - -***** BB67 [0094] -STMT00088 ( ??? ... ??? ) -N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void -N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 $43 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) -N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void -N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) $80 -N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) $c0 -N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) $100 - ------------- BB58 [0085] [???..???) (return), preds={BB11,BB13,BB15,BB17,BB19,BB21,BB23,BB25} succs={} - -***** BB58 [0085] -STMT00091 ( ??? ... ??? ) -N010 ( 0, 0) [000540] DA--------- * STORE_LCL_VAR int V34 tmp29 d:9 $VN.Void -N009 ( 0, 0) [000539] ----------- \--* PHI int $2c4 -N001 ( 0, 0) [000597] ----------- pred BB11 +--* PHI_ARG int V34 tmp29 u:8 $449 -N002 ( 0, 0) [000596] ----------- pred BB13 +--* PHI_ARG int V34 tmp29 u:7 $448 -N003 ( 0, 0) [000595] ----------- pred BB15 +--* PHI_ARG int V34 tmp29 u:6 $446 -N004 ( 0, 0) [000594] ----------- pred BB17 +--* PHI_ARG int V34 tmp29 u:5 $444 -N005 ( 0, 0) [000576] ----------- pred BB19 +--* PHI_ARG int V34 tmp29 u:4 $442 -N006 ( 0, 0) [000575] ----------- pred BB21 +--* PHI_ARG int V34 tmp29 u:3 $441 -N007 ( 0, 0) [000574] ----------- pred BB23 +--* PHI_ARG int V34 tmp29 u:2 $440 -N008 ( 0, 0) [000573] ----------- pred BB25 \--* PHI_ARG int V34 tmp29 u:1 $1bf - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) -N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void -N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) $2c4 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Optimize index checks - -*************** Finishing PHASE Optimize index checks [no changes] - -*************** Starting PHASE Optimize Induction Variables -*************** In optInductionVariables() -After computing the dominance tree: -BB01 : BB52 BB57 -BB57 : BB43 BB09 -BB09 : BB69 -BB69 : BB60 -BB60 : BB66 BB67 -BB66 : BB38 -BB38 : BB61 BB40 -BB61 : BB11 -BB11 : BB58 -BB40 : BB42 - -Identifying loops in DFS tree with following reverse post order: -RPO -> BB [pre, post] -00 -> BB01[0, 14] -01 -> BB52[1, 13] -02 -> BB57[2, 12] -03 -> BB43[14, 11] -04 -> BB09[3, 10] -05 -> BB69[4, 9] -06 -> BB60[5, 8] -07 -> BB66[6, 7] -08 -> BB38[7, 6] -09 -> BB61[11, 5] -10 -> BB11[12, 4] -11 -> BB58[13, 3] -12 -> BB40[8, 2] -13 -> BB42[9, 1] -14 -> BB67[10, 0] - -BB40 -> BB38 is a backedge -BB38 is the header of a DFS loop with 1 back edges -Loop has 2 blocks -BB38 -> BB61 is an exit edge -BB40 -> BB42 is an exit edge -BB66 -> BB38 is an entry edge -Added loop L00 with header BB38 - -Found 1 loops - -*************** Natural loop graph -L00 header: BB38 - Members (2): [BB38..BB40] - Entry: BB66 -> BB38 - Exit: BB38 -> BB61; BB40 -> BB42 - Back: BB40 -> BB38 - -Optimizing induction variables: -Processing L00 header: BB38 - Members (2): [BB38..BB40] - Entry: BB66 -> BB38 - Exit: BB38 -> BB61; BB40 -> BB42 - Back: BB40 -> BB38 -Considering L00 for strength reduction... - L00 exits when: - <= 0 - Does not overflow past the test - Need to prove 0 <= (V02.6 + -1): unknown - Bound on backedge taken count is - - Considering primary IVs -STMT00094 ( ??? ... ??? ) -N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 $VN.Void -N003 ( 0, 0) [000545] ----------- \--* PHI int $2c3 -N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 -N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 $2c2 - => - Could not create cursors for all loop uses of primary IV -STMT00092 ( ??? ... ??? ) -N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 $VN.Void -N003 ( 0, 0) [000541] ----------- \--* PHI long $303 -N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 -N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 $302 - => - Has non-loop uses -Checking if we should make L00 downwards counted - Considering exiting block BB40 - No; operand of condition [000249] is already 0 - Considering exiting block BB38 - No; exit node has side effects -Considering primary IVs of L00 for widening - -STMT00094 ( ??? ... ??? ) -N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 $VN.Void -N003 ( 0, 0) [000545] ----------- \--* PHI int $2c3 -N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 -N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 $2c2 - => - V02 is a primary induction variable in L00 - Exit BB61 does not need a sink; V02 is not live-in - Exit BB42 does not need a sink; V02 is not live-in - Estimated cycle improvement: -1.5 cycles per invocation - Estimated size improvement: -3 bytes - Widening is not profitable - -STMT00092 ( ??? ... ??? ) -N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 $VN.Void -N003 ( 0, 0) [000541] ----------- \--* PHI long $303 -N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 -N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 $302 - => - V04 is a primary induction variable in L00 - Type is long, no widening to be done - Now looking for unnecessary primary IVs - V02 has essential uses, cannot remove - V04 has non-loop uses, cannot remove - -*************** Finishing PHASE Optimize Induction Variables [no changes] - -*************** Starting PHASE VN-based dead store removal -Considering [000564] for removal... - -- no; last def not in the same block -Considering [000059] for removal... - -- no; not redundant -Considering [000562] for removal... - -- no; last def not in the same block -Considering [000282] for removal... - -- no; last def not in the same block -Considering [000550] for removal... - -- no; last def not in the same block -Considering [000546] for removal... - -- no; last def not in the same block -Considering [000254] for removal... - -- no; not redundant -Considering [000554] for removal... - -- no; last def not in the same block -Considering [000197] for removal... - -- no; last def not in the same block -Considering [000552] for removal... - -- no; last def not in the same block -Considering [000352] for removal... - -- no; last def not in the same block -Considering [000548] for removal... - -- no; last def not in the same block -Considering [000542] for removal... - -- no; last def not in the same block -Considering [000273] for removal... - -- no; last def not in the same block -Considering [000560] for removal... - -- no; last def not in the same block -Considering [000558] for removal... - -- no; last def not in the same block -Considering [000556] for removal... - -- no; last def not in the same block -Considering [000544] for removal... - -- no; last def not in the same block -Considering [000505] for removal... - -- no; last def not in the same block -Considering [000508] for removal... - -- no; last def not in the same block -Considering [000511] for removal... - -- no; last def not in the same block -Considering [000514] for removal... - -- no; last def not in the same block -Considering [000517] for removal... - -- no; last def not in the same block -Considering [000520] for removal... - -- no; last def not in the same block -Considering [000521] for removal... - -- no; last def not in the same block -Considering [000540] for removal... - -- no; last def not in the same block - -*************** Finishing PHASE VN-based dead store removal [no changes] - -*************** Starting PHASE Clone blocks with range checks -Current method has no bounds checks - -*************** Finishing PHASE Clone blocks with range checks [no changes] - -*************** Starting PHASE VN based intrinsic expansion - -*************** Finishing PHASE VN based intrinsic expansion [no changes] - -*************** Starting PHASE Update flow graph opt pass - -Optimizing a jump to an unconditional jump (BB09 -> BB69 -> BB60) - -Compacting BB10 into BB68: -Second block has 1 other incoming edges -*************** In fgDebugCheckBBlist - -Compacting BB68 into BB26: -*************** In fgDebugCheckBBlist - -Compacting BB11 into BB61: -Second block has 2 other incoming edges -setting likelihood of BB61 -> BB58 from 1 to 1 -*************** In fgDebugCheckBBlist - -Compacting BB61 into BB62: -Second block has 2 other incoming edges -setting likelihood of BB62 -> BB58 from 1 to 1 -*************** In fgDebugCheckBBlist - -Compacting BB13 into BB63: -Second block has 1 other incoming edges -setting likelihood of BB63 -> BB58 from 1 to 1 -*************** In fgDebugCheckBBlist - -Compacting BB15 into BB64: -Second block has 1 other incoming edges -setting likelihood of BB64 -> BB58 from 1 to 1 -*************** In fgDebugCheckBBlist - -Compacting BB17 into BB65: -Second block has 1 other incoming edges -setting likelihood of BB65 -> BB58 from 1 to 1 -*************** In fgDebugCheckBBlist - -Compacting BB69 into BB28: -setting likelihood of BB28 -> BB60 from 1 to 1 -*************** In fgDebugCheckBBlist - -Compacting BB60 into BB28: -Second block has 2 other incoming edges -*************** In fgDebugCheckBBlist -fgRemoveBlock BB29, unreachable=true - -Removing unreachable BB29 - -removing useless STMT00050 ( 0x1F5[E--] ... 0x1F8 ) -N004 ( 3, 3) [000282] DA---+----- * STORE_LCL_VAR int V02 arg2 d:5 $VN.Void -N003 ( 3, 3) [000281] -----+----- \--* ADD int $1a6 -N001 ( 1, 1) [000279] -----+----- +--* LCL_VAR int V02 arg2 u:4 (last use) $2c1 -N002 ( 1, 1) [000280] -----+----- \--* CNS_INT int -4 $48 - from BB29 - -removing useless STMT00053 ( 0x1FA[E--] ... ??? ) -N009 ( 9, 8) [000296] ---XG+----- * JTRUE void $411 -N008 ( 7, 6) [000457] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000288] ---XG+----- +--* IND long -N005 ( 3, 3) [000287] -----+-N--- | \--* ADD byref $348 -N001 ( 1, 1) [000283] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000286] -----+-N--- | \--* LSH long $25b -N002 ( 1, 1) [000284] -----+----- | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000285] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000289] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - from BB29 - -BB29 becomes empty - -Reversing a conditional jump around an unconditional jump (BB31 -> BB33, BB32 -> BB63) - -After reversing the jump: - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 0.50 [068..073)-> BB28(1) (always) i -BB12 [0011] 1 BB26 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd -BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd -BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd -BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB26 [0025] 1 BB24 4 [073..1EE)-> BB12(0.5),BB62(0.5) ( cond ) i bwd -BB62 [0089] 2 BB26,BB38 0.50 [09D..0A0)-> BB58(1) (always) i -BB63 [0090] 2 BB12,BB31 0.50 [0C8..0CE)-> BB58(1) (always) i -BB64 [0091] 2 BB14,BB34 0.50 [0F6..0FC)-> BB58(1) (always) i -BB65 [0092] 2 BB16,BB36 0.50 [124..12A)-> BB58(1) (always) i -BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i -BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i -BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i -BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i -BB28 [0027] 2 BB09,BB37 0.75 [1EE..1F5)-> BB67(0.5),BB66(0.5) ( cond ) i -BB31 [0030] 0 0.50 [222..24A)-> BB63(0.5),BB33(0.5) ( cond ) i -BB33 [0032] 1 BB31 0.50 [250..278)-> BB35(0.5),BB34(0.5) ( cond ) i -BB34 [0033] 1 BB33 0.50 [278..27E)-> BB64(1) (always) i -BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB65(1) (always) i -BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB28(1) (always) i -BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd -BB66 [0093] 1 BB28 0.75 [???..???)-> BB38(1) (always) internal -BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i -BB67 [0094] 2 BB28,BB42 0.50 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall -BB58 [0085] 8 BB19,BB21,BB23,BB25,BB62,BB63,BB64,BB65 0.50 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -fgRemoveBlock BB31, unreachable=true - -Removing unreachable BB31 - -removing useless STMT00056 ( 0x222[E--] ... ??? ) -N011 ( 9, 9) [000313] ---XG+----- * JTRUE void $413 -N010 ( 7, 7) [000464] J--XG+-N--- \--* EQ int -N008 ( 5, 5) [000305] ---XG+----- +--* IND long -N007 ( 4, 4) [000304] -----+-N--- | \--* ADD byref $349 -N001 ( 1, 1) [000297] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000303] -----+-N--- | \--* ADD long $25e -N004 ( 2, 2) [000301] -----+-N--- | +--* LSH long $25b -N002 ( 1, 1) [000298] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000300] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000302] -----+----- | \--* CNS_INT long -8 $283 -N009 ( 1, 1) [000306] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - from BB31 - -BB31 becomes empty - -Reversing a conditional jump around an unconditional jump (BB33 -> BB35, BB34 -> BB64) - -After reversing the jump: - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 0.50 [068..073)-> BB28(1) (always) i -BB12 [0011] 1 BB26 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd -BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd -BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd -BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB26 [0025] 1 BB24 4 [073..1EE)-> BB12(0.5),BB62(0.5) ( cond ) i bwd -BB62 [0089] 2 BB26,BB38 0.50 [09D..0A0)-> BB58(1) (always) i -BB63 [0090] 1 BB12 0.50 [0C8..0CE)-> BB58(1) (always) i -BB64 [0091] 2 BB14,BB33 0.50 [0F6..0FC)-> BB58(1) (always) i -BB65 [0092] 2 BB16,BB36 0.50 [124..12A)-> BB58(1) (always) i -BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i -BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i -BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i -BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i -BB28 [0027] 2 BB09,BB37 0.75 [1EE..1F5)-> BB67(0.5),BB66(0.5) ( cond ) i -BB33 [0032] 0 0.50 [250..278)-> BB64(0.5),BB35(0.5) ( cond ) i -BB35 [0034] 1 BB33 0.50 [27E..2A6)-> BB37(0.5),BB36(0.5) ( cond ) i -BB36 [0035] 1 BB35 0.50 [2A6..2AC)-> BB65(1) (always) i -BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB28(1) (always) i -BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd -BB66 [0093] 1 BB28 0.75 [???..???)-> BB38(1) (always) internal -BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i -BB67 [0094] 2 BB28,BB42 0.50 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall -BB58 [0085] 8 BB19,BB21,BB23,BB25,BB62,BB63,BB64,BB65 0.50 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -fgRemoveBlock BB33, unreachable=true - -Removing unreachable BB33 - -removing useless STMT00059 ( 0x250[E--] ... ??? ) -N011 ( 9, 9) [000330] ---XG+----- * JTRUE void $415 -N010 ( 7, 7) [000471] J--XG+-N--- \--* EQ int -N008 ( 5, 5) [000322] ---XG+----- +--* IND long -N007 ( 4, 4) [000321] -----+-N--- | \--* ADD byref $34a -N001 ( 1, 1) [000314] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000320] -----+-N--- | \--* ADD long $261 -N004 ( 2, 2) [000318] -----+-N--- | +--* LSH long $25b -N002 ( 1, 1) [000315] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000317] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000319] -----+----- | \--* CNS_INT long -16 $284 -N009 ( 1, 1) [000323] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - from BB33 - -BB33 becomes empty - -Reversing a conditional jump around an unconditional jump (BB35 -> BB37, BB36 -> BB65) - -After reversing the jump: - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 0.50 [068..073)-> BB28(1) (always) i -BB12 [0011] 1 BB26 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd -BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd -BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd -BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB26 [0025] 1 BB24 4 [073..1EE)-> BB12(0.5),BB62(0.5) ( cond ) i bwd -BB62 [0089] 2 BB26,BB38 0.50 [09D..0A0)-> BB58(1) (always) i -BB63 [0090] 1 BB12 0.50 [0C8..0CE)-> BB58(1) (always) i -BB64 [0091] 1 BB14 0.50 [0F6..0FC)-> BB58(1) (always) i -BB65 [0092] 2 BB16,BB35 0.50 [124..12A)-> BB58(1) (always) i -BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i -BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i -BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i -BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i -BB28 [0027] 2 BB09,BB37 0.75 [1EE..1F5)-> BB67(0.5),BB66(0.5) ( cond ) i -BB35 [0034] 0 0.50 [27E..2A6)-> BB65(0.5),BB37(0.5) ( cond ) i -BB37 [0036] 1 BB35 0.50 [2AC..2B3)-> BB28(1) (always) i -BB38 [0037] 2 BB40,BB66 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i bwd bwd-target -BB40 [0039] 1 BB38 4 [2E0..2E9)-> BB38(0.5),BB42(0.5) ( cond ) i bwd -BB66 [0093] 1 BB28 0.75 [???..???)-> BB38(1) (always) internal -BB42 [0041] 1 BB40 0.50 [???..???)-> BB67(1) (always) i -BB67 [0094] 2 BB28,BB42 0.50 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall -BB58 [0085] 8 BB19,BB21,BB23,BB25,BB62,BB63,BB64,BB65 0.50 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -fgRemoveBlock BB35, unreachable=true - -Removing unreachable BB35 - -removing useless STMT00062 ( 0x27E[E--] ... ??? ) -N011 ( 9, 9) [000347] ---XG+----- * JTRUE void $417 -N010 ( 7, 7) [000478] J--XG+-N--- \--* EQ int -N008 ( 5, 5) [000339] ---XG+----- +--* IND long -N007 ( 4, 4) [000338] -----+-N--- | \--* ADD byref $34b -N001 ( 1, 1) [000331] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000337] -----+-N--- | \--* ADD long $264 -N004 ( 2, 2) [000335] -----+-N--- | +--* LSH long $25b -N002 ( 1, 1) [000332] -----+----- | | +--* LCL_VAR long V04 loc1 u:4 $301 -N003 ( 1, 1) [000334] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000336] -----+----- | \--* CNS_INT long -24 $285 -N009 ( 1, 1) [000340] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - from BB35 - -BB35 becomes empty -fgRemoveBlock BB37, unreachable=true - -Removing unreachable BB37 - -removing useless STMT00063 ( 0x2AC[E--] ... 0x2B0 ) -N004 ( 3, 3) [000352] DA---+----- * STORE_LCL_VAR long V04 loc1 d:5 $VN.Void -N003 ( 3, 3) [000351] -----+----- \--* ADD long $267 -N001 ( 1, 1) [000348] -----+----- +--* LCL_VAR long V04 loc1 u:4 (last use) $301 -N002 ( 1, 1) [000350] -----+----- \--* CNS_INT long -4 $28a - from BB37 - -BB37 becomes empty - -Compacting BB38 into BB66: -Second block has 1 other incoming edges -*************** In fgDebugCheckBBlist - -Compacting BB67 into BB42: -Second block has 1 other incoming edges -*************** In fgDebugCheckBBlist - -Compacting BB28 into BB09: -*************** In fgDebugCheckBBlist - -*************** Finishing PHASE Update flow graph opt pass -Trees after Update flow graph opt pass - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i -BB12 [0011] 1 BB26 4 [0A0..0C8)-> BB14(0.5),BB63(0.5) ( cond ) i bwd -BB14 [0013] 1 BB12 4 [0CE..0F6)-> BB16(0.5),BB64(0.5) ( cond ) i bwd -BB16 [0015] 1 BB14 4 [0FC..124)-> BB18(0.5),BB65(0.5) ( cond ) i bwd -BB18 [0017] 1 BB16 4 [12A..152)-> BB20(0.5),BB19(0.5) ( cond ) i bwd -BB20 [0019] 1 BB18 4 [158..180)-> BB22(0.5),BB21(0.5) ( cond ) i bwd -BB22 [0021] 1 BB20 4 [186..1AE)-> BB24(0.5),BB23(0.5) ( cond ) i bwd -BB24 [0023] 1 BB22 4 [1B4..1DC)-> BB26(0.5),BB25(0.5) ( cond ) i bwd -BB26 [0025] 1 BB24 4 [073..1EE)-> BB12(0.5),BB62(0.5) ( cond ) i bwd -BB62 [0089] 2 BB26,BB66 0.50 [09D..0A0)-> BB58(1) (always) i -BB63 [0090] 1 BB12 0.50 [0C8..0CE)-> BB58(1) (always) i -BB64 [0091] 1 BB14 0.50 [0F6..0FC)-> BB58(1) (always) i -BB65 [0092] 1 BB16 0.50 [124..12A)-> BB58(1) (always) i -BB19 [0018] 1 BB18 0.50 [152..158)-> BB58(1) (always) i -BB21 [0020] 1 BB20 0.50 [180..186)-> BB58(1) (always) i -BB23 [0022] 1 BB22 0.50 [1AE..1B4)-> BB58(1) (always) i -BB25 [0024] 1 BB24 0.50 [1DC..1E2)-> BB58(1) (always) i -BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i bwd -BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i bwd -BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall -BB58 [0085] 8 BB19,BB21,BB23,BB25,BB62,BB63,BB64,BB65 0.50 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000002] J----+-N--- \--* GE int $180 -N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 $40 - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void -N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref $1c0 -N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref $1c1 - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) -N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000033] J----+-N--- \--* GE int $181 -N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 - ------------- BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} - -***** BB09 [0008] -STMT00102 ( ??? ... ??? ) -N004 ( 0, 0) [000562] DA--------- * STORE_LCL_VAR int V02 arg2 d:4 $VN.Void -N003 ( 0, 0) [000561] ----------- \--* PHI int $2c1 -N001 ( 0, 0) [000571] ----------- pred BB28 +--* PHI_ARG int V02 arg2 u:3 $183 -N002 ( 0, 0) [000565] ----------- pred BB09 \--* PHI_ARG int V02 arg2 u:1 $100 - -***** BB09 [0008] -STMT00097 ( ??? ... ??? ) -N004 ( 0, 0) [000552] DA--------- * STORE_LCL_VAR long V04 loc1 d:4 $VN.Void -N003 ( 0, 0) [000551] ----------- \--* PHI long $301 -N001 ( 0, 0) [000572] ----------- pred BB28 +--* PHI_ARG long V04 loc1 u:3 $25a -N002 ( 0, 0) [000566] ----------- pred BB09 \--* PHI_ARG long V04 loc1 u:1 $241 - -***** BB09 [0008] -STMT00096 ( ??? ... ??? ) -N004 ( 0, 0) [000550] DA--------- * STORE_LCL_VAR int V02 arg2 d:6 $VN.Void -N003 ( 0, 0) [000549] ----------- \--* PHI int $2c2 -N001 ( 0, 0) [000584] ----------- pred BB37 +--* PHI_ARG int V02 arg2 u:5 $1a6 -N002 ( 0, 0) [000581] ----------- pred BB69 \--* PHI_ARG int V02 arg2 u:4 $2c1 - -***** BB09 [0008] -STMT00095 ( ??? ... ??? ) -N004 ( 0, 0) [000548] DA--------- * STORE_LCL_VAR long V04 loc1 d:6 $VN.Void -N003 ( 0, 0) [000547] ----------- \--* PHI long $302 -N001 ( 0, 0) [000585] ----------- pred BB37 +--* PHI_ARG long V04 loc1 u:5 $267 -N002 ( 0, 0) [000582] ----------- pred BB69 \--* PHI_ARG long V04 loc1 u:4 $301 - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) -N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void -N004 ( 4, 5) [000050] -----+----- \--* ADD long $241 -N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int $240 -N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 $100 -N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 $280 - -***** BB09 [0008] -STMT00089 ( 0x2E5[E--] ... ??? ) -N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void -N003 ( 3, 3) [000532] J------N--- \--* LE int $1b7 -N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 -N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 - ------------- BB12 [0011] [0A0..0C8) -> BB14(0.5),BB63(0.5) (cond), preds={BB26} succs={BB63,BB14} - -***** BB12 [0011] -STMT00013 ( 0x0A0[E--] ... ??? ) -N011 ( 9, 9) [000090] ---XG+----- * JTRUE void $403 -N010 ( 7, 7) [000408] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000082] ---XG+----- +--* IND long -N007 ( 4, 4) [000081] -----+-N--- | \--* ADD byref $341 -N001 ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000080] -----+-N--- | \--* ADD long $245 -N004 ( 2, 2) [000078] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 $283 -N009 ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB14 [0013] [0CE..0F6) -> BB16(0.5),BB64(0.5) (cond), preds={BB12} succs={BB64,BB16} - -***** BB14 [0013] -STMT00016 ( 0x0CE[E--] ... ??? ) -N011 ( 9, 9) [000107] ---XG+----- * JTRUE void $405 -N010 ( 7, 7) [000415] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000099] ---XG+----- +--* IND long -N007 ( 4, 4) [000098] -----+-N--- | \--* ADD byref $342 -N001 ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000097] -----+-N--- | \--* ADD long $248 -N004 ( 2, 2) [000095] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 $284 -N009 ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB16 [0015] [0FC..124) -> BB18(0.5),BB65(0.5) (cond), preds={BB14} succs={BB65,BB18} - -***** BB16 [0015] -STMT00019 ( 0x0FC[E--] ... ??? ) -N011 ( 9, 9) [000124] ---XG+----- * JTRUE void $407 -N010 ( 7, 7) [000422] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000116] ---XG+----- +--* IND long -N007 ( 4, 4) [000115] -----+-N--- | \--* ADD byref $343 -N001 ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000114] -----+-N--- | \--* ADD long $24b -N004 ( 2, 2) [000112] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 $285 -N009 ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB18 [0017] [12A..152) -> BB20(0.5),BB19(0.5) (cond), preds={BB16} succs={BB19,BB20} - -***** BB18 [0017] -STMT00022 ( 0x12A[E--] ... ??? ) -N011 ( 9, 9) [000141] ---XG+----- * JTRUE void $409 -N010 ( 7, 7) [000429] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000133] ---XG+----- +--* IND long -N007 ( 4, 4) [000132] -----+-N--- | \--* ADD byref $344 -N001 ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000131] -----+-N--- | \--* ADD long $24e -N004 ( 2, 2) [000129] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 $286 -N009 ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB20 [0019] [158..180) -> BB22(0.5),BB21(0.5) (cond), preds={BB18} succs={BB21,BB22} - -***** BB20 [0019] -STMT00025 ( 0x158[E--] ... ??? ) -N011 ( 9, 9) [000158] ---XG+----- * JTRUE void $40b -N010 ( 7, 7) [000436] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000150] ---XG+----- +--* IND long -N007 ( 4, 4) [000149] -----+-N--- | \--* ADD byref $345 -N001 ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000148] -----+-N--- | \--* ADD long $251 -N004 ( 2, 2) [000146] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 $287 -N009 ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB22 [0021] [186..1AE) -> BB24(0.5),BB23(0.5) (cond), preds={BB20} succs={BB23,BB24} - -***** BB22 [0021] -STMT00028 ( 0x186[E--] ... ??? ) -N011 ( 9, 9) [000175] ---XG+----- * JTRUE void $40d -N010 ( 7, 7) [000443] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000167] ---XG+----- +--* IND long -N007 ( 4, 4) [000166] -----+-N--- | \--* ADD byref $346 -N001 ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000165] -----+-N--- | \--* ADD long $254 -N004 ( 2, 2) [000163] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 $288 -N009 ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB24 [0023] [1B4..1DC) -> BB26(0.5),BB25(0.5) (cond), preds={BB22} succs={BB25,BB26} - -***** BB24 [0023] -STMT00031 ( 0x1B4[E--] ... ??? ) -N011 ( 9, 9) [000192] ---XG+----- * JTRUE void $40f -N010 ( 7, 7) [000450] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000184] ---XG+----- +--* IND long -N007 ( 4, 4) [000183] -----+-N--- | \--* ADD byref $347 -N001 ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000182] -----+-N--- | \--* ADD long $257 -N004 ( 2, 2) [000180] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 $289 -N009 ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB26 [0025] [073..1EE) -> BB12(0.5),BB62(0.5) (cond), preds={BB24} succs={BB62,BB12} - -***** BB26 [0025] -STMT00103 ( ??? ... ??? ) -N004 ( 0, 0) [000564] DA--------- * STORE_LCL_VAR int V02 arg2 d:2 $VN.Void -N003 ( 0, 0) [000563] ----------- \--* PHI int $2c0 -N001 ( 0, 0) [000569] ----------- pred BB26 +--* PHI_ARG int V02 arg2 u:3 -N002 ( 0, 0) [000567] ----------- pred BB68 \--* PHI_ARG int V02 arg2 u:1 $100 - -***** BB26 [0025] -STMT00098 ( ??? ... ??? ) -N004 ( 0, 0) [000554] DA--------- * STORE_LCL_VAR long V04 loc1 d:2 $VN.Void -N003 ( 0, 0) [000553] ----------- \--* PHI long $300 -N001 ( 0, 0) [000570] ----------- pred BB26 +--* PHI_ARG long V04 loc1 u:3 -N002 ( 0, 0) [000568] ----------- pred BB68 \--* PHI_ARG long V04 loc1 u:1 $241 - -***** BB26 [0025] -STMT00032 ( 0x1E2[E--] ... 0x1E6 ) -N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 d:3 $VN.Void -N003 ( 3, 3) [000196] -----+----- \--* ADD long $25a -N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 u:2 (last use) $300 -N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 $283 - -***** BB26 [0025] -STMT00007 ( 0x073[E--] ... 0x076 ) -N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 d:3 $VN.Void -N003 ( 3, 3) [000058] -----+----- \--* ADD int $183 -N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 u:2 (last use) $2c0 -N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 $46 - -***** BB26 [0025] -STMT00010 ( 0x078[E--] ... ??? ) -N009 ( 9, 8) [000073] ---XG+----- * JTRUE void $401 -N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int -N006 ( 5, 4) [000065] ---XG+----- +--* IND long -N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref $340 -N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long $242 -N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB62 [0089] [09D..0A0) -> BB58(1) (always), preds={BB26,BB66} succs={BB58} - -***** BB62 [0089] -STMT00093 ( ??? ... ??? ) -N005 ( 0, 0) [000544] DA--------- * STORE_LCL_VAR long V04 loc1 d:12 $VN.Void -N004 ( 0, 0) [000543] ----------- \--* PHI long $307 -N001 ( 0, 0) [000591] ----------- pred BB61 +--* PHI_ARG long V04 loc1 u:7 $303 -N002 ( 0, 0) [000583] ----------- pred BB29 +--* PHI_ARG long V04 loc1 u:4 $301 -N003 ( 0, 0) [000580] ----------- pred BB62 \--* PHI_ARG long V04 loc1 u:2 $300 - -***** BB62 [0089] -STMT00040 ( 0x09D[E--] ... 0x09F ) -N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void -N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) $449 - ------------- BB63 [0090] [0C8..0CE) -> BB58(1) (always), preds={BB12} succs={BB58} - -***** BB63 [0090] -STMT00099 ( ??? ... ??? ) -N004 ( 0, 0) [000556] DA--------- * STORE_LCL_VAR long V04 loc1 d:11 $VN.Void -N003 ( 0, 0) [000555] ----------- \--* PHI long $306 -N001 ( 0, 0) [000588] ----------- pred BB32 +--* PHI_ARG long V04 loc1 u:4 $301 -N002 ( 0, 0) [000579] ----------- pred BB63 \--* PHI_ARG long V04 loc1 u:2 $300 - -***** BB63 [0090] -STMT00039 ( 0x0C8[E--] ... 0x0CD ) -N004 ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:7 $VN.Void -N003 ( 3, 3) [000237] -----+----- \--* ADD int $448 -N001 ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 u:11 (last use) $447 -N002 ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 $43 - ------------- BB64 [0091] [0F6..0FC) -> BB58(1) (always), preds={BB14} succs={BB58} - -***** BB64 [0091] -STMT00100 ( ??? ... ??? ) -N004 ( 0, 0) [000558] DA--------- * STORE_LCL_VAR long V04 loc1 d:10 $VN.Void -N003 ( 0, 0) [000557] ----------- \--* PHI long $305 -N001 ( 0, 0) [000587] ----------- pred BB34 +--* PHI_ARG long V04 loc1 u:4 $301 -N002 ( 0, 0) [000578] ----------- pred BB64 \--* PHI_ARG long V04 loc1 u:2 $300 - -***** BB64 [0091] -STMT00038 ( 0x0F6[E--] ... 0x0FB ) -N004 ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:6 $VN.Void -N003 ( 3, 3) [000231] -----+----- \--* ADD int $446 -N001 ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 u:10 (last use) $445 -N002 ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 $4e - ------------- BB65 [0092] [124..12A) -> BB58(1) (always), preds={BB16} succs={BB58} - -***** BB65 [0092] -STMT00101 ( ??? ... ??? ) -N004 ( 0, 0) [000560] DA--------- * STORE_LCL_VAR long V04 loc1 d:9 $VN.Void -N003 ( 0, 0) [000559] ----------- \--* PHI long $304 -N001 ( 0, 0) [000586] ----------- pred BB36 +--* PHI_ARG long V04 loc1 u:4 $301 -N002 ( 0, 0) [000577] ----------- pred BB65 \--* PHI_ARG long V04 loc1 u:2 $300 - -***** BB65 [0092] -STMT00037 ( 0x124[E--] ... 0x129 ) -N004 ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:5 $VN.Void -N003 ( 3, 3) [000225] -----+----- \--* ADD int $444 -N001 ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 u:9 (last use) $443 -N002 ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 $4d - ------------- BB19 [0018] [152..158) -> BB58(1) (always), preds={BB18} succs={BB58} - -***** BB19 [0018] -STMT00036 ( 0x152[E--] ... 0x157 ) -N004 ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:4 $VN.Void -N003 ( 3, 3) [000219] -----+----- \--* ADD int $442 -N001 ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 $48 - ------------- BB21 [0020] [180..186) -> BB58(1) (always), preds={BB20} succs={BB58} - -***** BB21 [0020] -STMT00035 ( 0x180[E--] ... 0x185 ) -N004 ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:3 $VN.Void -N003 ( 3, 3) [000213] -----+----- \--* ADD int $441 -N001 ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 $4c - ------------- BB23 [0022] [1AE..1B4) -> BB58(1) (always), preds={BB22} succs={BB58} - -***** BB23 [0022] -STMT00034 ( 0x1AE[E--] ... 0x1B3 ) -N004 ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:2 $VN.Void -N003 ( 3, 3) [000207] -----+----- \--* ADD int $440 -N001 ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 $4b - ------------- BB25 [0024] [1DC..1E2) -> BB58(1) (always), preds={BB24} succs={BB58} - -***** BB25 [0024] -STMT00033 ( 0x1DC[E--] ... 0x1E1 ) -N004 ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:1 $VN.Void -N003 ( 3, 3) [000201] -----+----- \--* ADD int $1bf -N001 ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 $4a - ------------- BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) -N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void -N003 ( 3, 3) [000272] -----+----- \--* ADD long $26b -N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) $303 -N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 $280 - -***** BB40 [0039] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) -N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000249] J----+-N--- \--* GT int $1bd -N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 $1b8 -N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 $40 - ------------- BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} - -***** BB66 [0093] -STMT00094 ( ??? ... ??? ) -N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 $VN.Void -N003 ( 0, 0) [000545] ----------- \--* PHI int $2c3 -N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 -N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 $2c2 - -***** BB66 [0093] -STMT00092 ( ??? ... ??? ) -N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 $VN.Void -N003 ( 0, 0) [000541] ----------- \--* PHI long $303 -N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 -N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 $302 - -***** BB66 [0093] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) -N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void -N003 ( 3, 3) [000253] -----+----- \--* ADD int $1b8 -N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) $2c3 -N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 $43 - -***** BB66 [0093] -STMT00046 ( 0x2B8[E--] ... ??? ) -N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 -N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000260] ---XG+----- +--* IND long -N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref $34c -N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long $268 -N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 $303 -N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} - -***** BB42 [0041] -STMT00088 ( ??? ... ??? ) -N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void -N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 $43 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) -N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void -N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) $80 -N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) $c0 -N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) $100 - ------------- BB58 [0085] [???..???) (return), preds={BB19,BB21,BB23,BB25,BB62,BB63,BB64,BB65} succs={} - -***** BB58 [0085] -STMT00091 ( ??? ... ??? ) -N010 ( 0, 0) [000540] DA--------- * STORE_LCL_VAR int V34 tmp29 d:9 $VN.Void -N009 ( 0, 0) [000539] ----------- \--* PHI int $2c4 -N001 ( 0, 0) [000597] ----------- pred BB11 +--* PHI_ARG int V34 tmp29 u:8 $449 -N002 ( 0, 0) [000596] ----------- pred BB13 +--* PHI_ARG int V34 tmp29 u:7 $448 -N003 ( 0, 0) [000595] ----------- pred BB15 +--* PHI_ARG int V34 tmp29 u:6 $446 -N004 ( 0, 0) [000594] ----------- pred BB17 +--* PHI_ARG int V34 tmp29 u:5 $444 -N005 ( 0, 0) [000576] ----------- pred BB19 +--* PHI_ARG int V34 tmp29 u:4 $442 -N006 ( 0, 0) [000575] ----------- pred BB21 +--* PHI_ARG int V34 tmp29 u:3 $441 -N007 ( 0, 0) [000574] ----------- pred BB23 +--* PHI_ARG int V34 tmp29 u:2 $440 -N008 ( 0, 0) [000573] ----------- pred BB25 \--* PHI_ARG int V34 tmp29 u:1 $1bf - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) -N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void -N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) $2c4 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Remove unreachable blocks -15/25 blocks are unreachable and will be removed: - BB12 - BB14 - BB16 - BB18 - BB20 - BB22 - BB24 - BB26 - BB63 - BB64 - BB65 - BB19 - BB21 - BB23 - BB25 - -Removing unreachable BB12 - -removing useless STMT00013 ( 0x0A0[E--] ... ??? ) -N011 ( 9, 9) [000090] ---XG+----- * JTRUE void $403 -N010 ( 7, 7) [000408] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000082] ---XG+----- +--* IND long -N007 ( 4, 4) [000081] -----+-N--- | \--* ADD byref $341 -N001 ( 1, 1) [000074] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000080] -----+-N--- | \--* ADD long $245 -N004 ( 2, 2) [000078] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000075] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000077] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000079] -----+----- | \--* CNS_INT long -8 $283 -N009 ( 1, 1) [000083] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - from BB12 - -BB12 becomes empty - -Removing unreachable BB14 - -removing useless STMT00016 ( 0x0CE[E--] ... ??? ) -N011 ( 9, 9) [000107] ---XG+----- * JTRUE void $405 -N010 ( 7, 7) [000415] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000099] ---XG+----- +--* IND long -N007 ( 4, 4) [000098] -----+-N--- | \--* ADD byref $342 -N001 ( 1, 1) [000091] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000097] -----+-N--- | \--* ADD long $248 -N004 ( 2, 2) [000095] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000092] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000094] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000096] -----+----- | \--* CNS_INT long -16 $284 -N009 ( 1, 1) [000100] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - from BB14 - -BB14 becomes empty - -Removing unreachable BB16 - -removing useless STMT00019 ( 0x0FC[E--] ... ??? ) -N011 ( 9, 9) [000124] ---XG+----- * JTRUE void $407 -N010 ( 7, 7) [000422] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000116] ---XG+----- +--* IND long -N007 ( 4, 4) [000115] -----+-N--- | \--* ADD byref $343 -N001 ( 1, 1) [000108] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000114] -----+-N--- | \--* ADD long $24b -N004 ( 2, 2) [000112] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000109] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000111] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000113] -----+----- | \--* CNS_INT long -24 $285 -N009 ( 1, 1) [000117] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - from BB16 - -BB16 becomes empty - -Removing unreachable BB18 - -removing useless STMT00022 ( 0x12A[E--] ... ??? ) -N011 ( 9, 9) [000141] ---XG+----- * JTRUE void $409 -N010 ( 7, 7) [000429] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000133] ---XG+----- +--* IND long -N007 ( 4, 4) [000132] -----+-N--- | \--* ADD byref $344 -N001 ( 1, 1) [000125] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000131] -----+-N--- | \--* ADD long $24e -N004 ( 2, 2) [000129] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000126] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000128] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000130] -----+----- | \--* CNS_INT long -32 $286 -N009 ( 1, 1) [000134] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - from BB18 - -BB18 becomes empty - -Removing unreachable BB20 - -removing useless STMT00025 ( 0x158[E--] ... ??? ) -N011 ( 9, 9) [000158] ---XG+----- * JTRUE void $40b -N010 ( 7, 7) [000436] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000150] ---XG+----- +--* IND long -N007 ( 4, 4) [000149] -----+-N--- | \--* ADD byref $345 -N001 ( 1, 1) [000142] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000148] -----+-N--- | \--* ADD long $251 -N004 ( 2, 2) [000146] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000143] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000145] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000147] -----+----- | \--* CNS_INT long -40 $287 -N009 ( 1, 1) [000151] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - from BB20 - -BB20 becomes empty - -Removing unreachable BB22 - -removing useless STMT00028 ( 0x186[E--] ... ??? ) -N011 ( 9, 9) [000175] ---XG+----- * JTRUE void $40d -N010 ( 7, 7) [000443] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000167] ---XG+----- +--* IND long -N007 ( 4, 4) [000166] -----+-N--- | \--* ADD byref $346 -N001 ( 1, 1) [000159] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000165] -----+-N--- | \--* ADD long $254 -N004 ( 2, 2) [000163] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000160] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000162] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000164] -----+----- | \--* CNS_INT long -48 $288 -N009 ( 1, 1) [000168] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - from BB22 - -BB22 becomes empty - -Removing unreachable BB24 - -removing useless STMT00031 ( 0x1B4[E--] ... ??? ) -N011 ( 9, 9) [000192] ---XG+----- * JTRUE void $40f -N010 ( 7, 7) [000450] J--XG+-N--- \--* NE int -N008 ( 5, 5) [000184] ---XG+----- +--* IND long -N007 ( 4, 4) [000183] -----+-N--- | \--* ADD byref $347 -N001 ( 1, 1) [000176] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N006 ( 3, 3) [000182] -----+-N--- | \--* ADD long $257 -N004 ( 2, 2) [000180] -----+-N--- | +--* LSH long $242 -N002 ( 1, 1) [000177] -----+----- | | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000179] -----+----- | | \--* CNS_INT long 3 $282 -N005 ( 1, 1) [000181] -----+----- | \--* CNS_INT long -56 $289 -N009 ( 1, 1) [000185] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - from BB24 - -BB24 becomes empty - -Removing unreachable BB26 - -removing useless STMT00032 ( 0x1E2[E--] ... 0x1E6 ) -N004 ( 3, 3) [000197] DA---+----- * STORE_LCL_VAR long V04 loc1 d:3 $VN.Void -N003 ( 3, 3) [000196] -----+----- \--* ADD long $25a -N001 ( 1, 1) [000193] -----+----- +--* LCL_VAR long V04 loc1 u:2 (last use) $300 -N002 ( 1, 1) [000195] -----+----- \--* CNS_INT long -8 $283 - from BB26 - -removing useless STMT00007 ( 0x073[E--] ... 0x076 ) -N004 ( 3, 3) [000059] DA---+----- * STORE_LCL_VAR int V02 arg2 d:3 $VN.Void -N003 ( 3, 3) [000058] -----+----- \--* ADD int $183 -N001 ( 1, 1) [000056] -----+----- +--* LCL_VAR int V02 arg2 u:2 (last use) $2c0 -N002 ( 1, 1) [000057] -----+----- \--* CNS_INT int -8 $46 - from BB26 - -removing useless STMT00010 ( 0x078[E--] ... ??? ) -N009 ( 9, 8) [000073] ---XG+----- * JTRUE void $401 -N008 ( 7, 6) [000401] J--XG+-N--- \--* NE int -N006 ( 5, 4) [000065] ---XG+----- +--* IND long -N005 ( 3, 3) [000064] -----+-N--- | \--* ADD byref $340 -N001 ( 1, 1) [000060] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000063] -----+-N--- | \--* LSH long $242 -N002 ( 1, 1) [000061] -----+----- | +--* LCL_VAR long V04 loc1 u:2 $300 -N003 ( 1, 1) [000062] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000066] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - from BB26 - -BB26 becomes empty - -Removing unreachable BB63 - -removing useless STMT00039 ( 0x0C8[E--] ... 0x0CD ) -N004 ( 3, 3) [000520] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:7 $VN.Void -N003 ( 3, 3) [000237] -----+----- \--* ADD int $448 -N001 ( 1, 1) [000234] -----+----- +--* LCL_VAR int V04 loc1 u:11 (last use) $447 -N002 ( 1, 1) [000519] -----+----- \--* CNS_INT int -1 $43 - from BB63 - -BB63 becomes empty - -Removing unreachable BB64 - -removing useless STMT00038 ( 0x0F6[E--] ... 0x0FB ) -N004 ( 3, 3) [000517] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:6 $VN.Void -N003 ( 3, 3) [000231] -----+----- \--* ADD int $446 -N001 ( 1, 1) [000228] -----+----- +--* LCL_VAR int V04 loc1 u:10 (last use) $445 -N002 ( 1, 1) [000516] -----+----- \--* CNS_INT int -2 $4e - from BB64 - -BB64 becomes empty - -Removing unreachable BB65 - -removing useless STMT00037 ( 0x124[E--] ... 0x129 ) -N004 ( 3, 3) [000514] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:5 $VN.Void -N003 ( 3, 3) [000225] -----+----- \--* ADD int $444 -N001 ( 1, 1) [000222] -----+----- +--* LCL_VAR int V04 loc1 u:9 (last use) $443 -N002 ( 1, 1) [000513] -----+----- \--* CNS_INT int -3 $4d - from BB65 - -BB65 becomes empty - -Removing unreachable BB19 - -removing useless STMT00036 ( 0x152[E--] ... 0x157 ) -N004 ( 3, 3) [000511] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:4 $VN.Void -N003 ( 3, 3) [000219] -----+----- \--* ADD int $442 -N001 ( 1, 1) [000216] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000510] -----+----- \--* CNS_INT int -4 $48 - from BB19 - -BB19 becomes empty - -Removing unreachable BB21 - -removing useless STMT00035 ( 0x180[E--] ... 0x185 ) -N004 ( 3, 3) [000508] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:3 $VN.Void -N003 ( 3, 3) [000213] -----+----- \--* ADD int $441 -N001 ( 1, 1) [000210] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000507] -----+----- \--* CNS_INT int -5 $4c - from BB21 - -BB21 becomes empty - -Removing unreachable BB23 - -removing useless STMT00034 ( 0x1AE[E--] ... 0x1B3 ) -N004 ( 3, 3) [000505] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:2 $VN.Void -N003 ( 3, 3) [000207] -----+----- \--* ADD int $440 -N001 ( 1, 1) [000204] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000504] -----+----- \--* CNS_INT int -6 $4b - from BB23 - -BB23 becomes empty - -Removing unreachable BB25 - -removing useless STMT00033 ( 0x1DC[E--] ... 0x1E1 ) -N004 ( 3, 3) [000502] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:1 $VN.Void -N003 ( 3, 3) [000201] -----+----- \--* ADD int $1bf -N001 ( 1, 1) [000198] -----+----- +--* LCL_VAR int V04 loc1 u:2 (last use) $1be -N002 ( 1, 1) [000501] -----+----- \--* CNS_INT int -7 $4a - from BB25 - -BB25 becomes empty -fgRemoveBlock BB12, unreachable=true -fgRemoveBlock BB14, unreachable=true -fgRemoveBlock BB16, unreachable=true -fgRemoveBlock BB18, unreachable=true -fgRemoveBlock BB20, unreachable=true -fgRemoveBlock BB22, unreachable=true -fgRemoveBlock BB24, unreachable=true -fgRemoveBlock BB26, unreachable=true -fgRemoveBlock BB63, unreachable=true -fgRemoveBlock BB64, unreachable=true -fgRemoveBlock BB65, unreachable=true -fgRemoveBlock BB19, unreachable=true -fgRemoveBlock BB21, unreachable=true -fgRemoveBlock BB23, unreachable=true -fgRemoveBlock BB25, unreachable=true - -*************** Finishing PHASE Remove unreachable blocks -Trees after Remove unreachable blocks - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i -BB62 [0089] 1 BB66 0.50 [09D..0A0)-> BB58(1) (always) i -BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i bwd -BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i bwd -BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall -BB58 [0085] 1 BB62 0.50 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000002] J----+-N--- \--* GE int $180 -N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 $40 - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void -N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref $1c0 -N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref $1c1 - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) -N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000033] J----+-N--- \--* GE int $181 -N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 - ------------- BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} - -***** BB09 [0008] -STMT00102 ( ??? ... ??? ) -N004 ( 0, 0) [000562] DA--------- * STORE_LCL_VAR int V02 arg2 d:4 $VN.Void -N003 ( 0, 0) [000561] ----------- \--* PHI int $2c1 -N001 ( 0, 0) [000571] ----------- pred BB28 +--* PHI_ARG int V02 arg2 u:3 $183 -N002 ( 0, 0) [000565] ----------- pred BB09 \--* PHI_ARG int V02 arg2 u:1 $100 - -***** BB09 [0008] -STMT00097 ( ??? ... ??? ) -N004 ( 0, 0) [000552] DA--------- * STORE_LCL_VAR long V04 loc1 d:4 $VN.Void -N003 ( 0, 0) [000551] ----------- \--* PHI long $301 -N001 ( 0, 0) [000572] ----------- pred BB28 +--* PHI_ARG long V04 loc1 u:3 $25a -N002 ( 0, 0) [000566] ----------- pred BB09 \--* PHI_ARG long V04 loc1 u:1 $241 - -***** BB09 [0008] -STMT00096 ( ??? ... ??? ) -N004 ( 0, 0) [000550] DA--------- * STORE_LCL_VAR int V02 arg2 d:6 $VN.Void -N003 ( 0, 0) [000549] ----------- \--* PHI int $2c2 -N001 ( 0, 0) [000584] ----------- pred BB37 +--* PHI_ARG int V02 arg2 u:5 $1a6 -N002 ( 0, 0) [000581] ----------- pred BB69 \--* PHI_ARG int V02 arg2 u:4 $2c1 - -***** BB09 [0008] -STMT00095 ( ??? ... ??? ) -N004 ( 0, 0) [000548] DA--------- * STORE_LCL_VAR long V04 loc1 d:6 $VN.Void -N003 ( 0, 0) [000547] ----------- \--* PHI long $302 -N001 ( 0, 0) [000585] ----------- pred BB37 +--* PHI_ARG long V04 loc1 u:5 $267 -N002 ( 0, 0) [000582] ----------- pred BB69 \--* PHI_ARG long V04 loc1 u:4 $301 - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) -N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void -N004 ( 4, 5) [000050] -----+----- \--* ADD long $241 -N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int $240 -N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 $100 -N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 $280 - -***** BB09 [0008] -STMT00089 ( 0x2E5[E--] ... ??? ) -N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void -N003 ( 3, 3) [000532] J------N--- \--* LE int $1b7 -N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 -N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 - ------------- BB62 [0089] [09D..0A0) -> BB58(1) (always), preds={BB66} succs={BB58} - -***** BB62 [0089] -STMT00093 ( ??? ... ??? ) -N005 ( 0, 0) [000544] DA--------- * STORE_LCL_VAR long V04 loc1 d:12 $VN.Void -N004 ( 0, 0) [000543] ----------- \--* PHI long $307 -N001 ( 0, 0) [000591] ----------- pred BB61 +--* PHI_ARG long V04 loc1 u:7 $303 -N002 ( 0, 0) [000583] ----------- pred BB29 +--* PHI_ARG long V04 loc1 u:4 $301 -N003 ( 0, 0) [000580] ----------- pred BB62 \--* PHI_ARG long V04 loc1 u:2 $300 - -***** BB62 [0089] -STMT00040 ( 0x09D[E--] ... 0x09F ) -N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void -N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) $449 - ------------- BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) -N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void -N003 ( 3, 3) [000272] -----+----- \--* ADD long $26b -N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) $303 -N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 $280 - -***** BB40 [0039] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) -N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000249] J----+-N--- \--* GT int $1bd -N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 $1b8 -N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 $40 - ------------- BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} - -***** BB66 [0093] -STMT00094 ( ??? ... ??? ) -N004 ( 0, 0) [000546] DA--------- * STORE_LCL_VAR int V02 arg2 d:7 $VN.Void -N003 ( 0, 0) [000545] ----------- \--* PHI int $2c3 -N001 ( 0, 0) [000592] ----------- pred BB40 +--* PHI_ARG int V02 arg2 u:8 -N002 ( 0, 0) [000589] ----------- pred BB66 \--* PHI_ARG int V02 arg2 u:6 $2c2 - -***** BB66 [0093] -STMT00092 ( ??? ... ??? ) -N004 ( 0, 0) [000542] DA--------- * STORE_LCL_VAR long V04 loc1 d:7 $VN.Void -N003 ( 0, 0) [000541] ----------- \--* PHI long $303 -N001 ( 0, 0) [000593] ----------- pred BB40 +--* PHI_ARG long V04 loc1 u:8 -N002 ( 0, 0) [000590] ----------- pred BB66 \--* PHI_ARG long V04 loc1 u:6 $302 - -***** BB66 [0093] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) -N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void -N003 ( 3, 3) [000253] -----+----- \--* ADD int $1b8 -N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) $2c3 -N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 $43 - -***** BB66 [0093] -STMT00046 ( 0x2B8[E--] ... ??? ) -N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 -N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000260] ---XG+----- +--* IND long -N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref $34c -N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long $268 -N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 $303 -N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} - -***** BB42 [0041] -STMT00088 ( ??? ... ??? ) -N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void -N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 $43 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) -N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void -N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) $80 -N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) $c0 -N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) $100 - ------------- BB58 [0085] [???..???) (return), preds={BB62} succs={} - -***** BB58 [0085] -STMT00091 ( ??? ... ??? ) -N010 ( 0, 0) [000540] DA--------- * STORE_LCL_VAR int V34 tmp29 d:9 $VN.Void -N009 ( 0, 0) [000539] ----------- \--* PHI int $2c4 -N001 ( 0, 0) [000597] ----------- pred BB11 +--* PHI_ARG int V34 tmp29 u:8 $449 -N002 ( 0, 0) [000596] ----------- pred BB13 +--* PHI_ARG int V34 tmp29 u:7 $448 -N003 ( 0, 0) [000595] ----------- pred BB15 +--* PHI_ARG int V34 tmp29 u:6 $446 -N004 ( 0, 0) [000594] ----------- pred BB17 +--* PHI_ARG int V34 tmp29 u:5 $444 -N005 ( 0, 0) [000576] ----------- pred BB19 +--* PHI_ARG int V34 tmp29 u:4 $442 -N006 ( 0, 0) [000575] ----------- pred BB21 +--* PHI_ARG int V34 tmp29 u:3 $441 -N007 ( 0, 0) [000574] ----------- pred BB23 +--* PHI_ARG int V34 tmp29 u:2 $440 -N008 ( 0, 0) [000573] ----------- pred BB25 \--* PHI_ARG int V34 tmp29 u:1 $1bf - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) -N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void -N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) $2c4 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] -Removing PHI functions - -*************** Starting PHASE Stress gtSplitTree - -*************** Finishing PHASE Stress gtSplitTree [no changes] - -*************** Starting PHASE Remove empty finally 3 -No EH in this method, nothing to remove. - -*************** Finishing PHASE Remove empty finally 3 [no changes] - -*************** Starting PHASE Remove empty try 3 - -*************** In fgRemoveEmptyTry() -No EH in this method, nothing to remove. - -*************** Finishing PHASE Remove empty try 3 [no changes] - -*************** Starting PHASE Remove empty try-catch-fault 3 - -*************** In fgRemoveEmptyTryCatchOrTryFault() -No EH in this method, nothing to remove. - -*************** Finishing PHASE Remove empty try-catch-fault 3 [no changes] - -*************** Starting PHASE Create EH funclets - -*************** Finishing PHASE Create EH funclets [no changes] - -*************** Starting PHASE Expand casts - -*************** Finishing PHASE Expand casts [no changes] - -*************** Starting PHASE Expand runtime lookups - -*************** Finishing PHASE Expand runtime lookups [no changes] - -*************** Starting PHASE Expand static init -Nothing to expand. - -*************** Finishing PHASE Expand static init [no changes] - -*************** Starting PHASE Expand TLS access -Nothing to expand. - -*************** Finishing PHASE Expand TLS access [no changes] - -*************** Starting PHASE Expand stack array allocation - -*************** Finishing PHASE Expand stack array allocation [no changes] - -*************** Starting PHASE Insert GC Polls - -*************** Finishing PHASE Insert GC Polls [no changes] - -*************** Starting PHASE Recognize Switch - -*************** Finishing PHASE Recognize Switch [no changes] - -*************** Starting PHASE Optimize bools -*************** In optOptimizeBools() - -optimized 0 BBJ_COND cases in 1 passes - -*************** Finishing PHASE Optimize bools -Trees after Optimize bools - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i -BB62 [0089] 1 BB66 0.50 [09D..0A0)-> BB58(1) (always) i -BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i bwd -BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i bwd -BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall -BB58 [0085] 1 BB62 0.50 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000002] J----+-N--- \--* GE int $180 -N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 $40 - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void -N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref $1c0 -N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref $1c1 - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) -N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000033] J----+-N--- \--* GE int $181 -N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 - ------------- BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) -N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void -N004 ( 4, 5) [000050] -----+----- \--* ADD long $241 -N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int $240 -N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 $100 -N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 $280 - -***** BB09 [0008] -STMT00089 ( 0x2E5[E--] ... ??? ) -N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void -N003 ( 3, 3) [000532] J------N--- \--* LE int $1b7 -N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 -N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 - ------------- BB62 [0089] [09D..0A0) -> BB58(1) (always), preds={BB66} succs={BB58} - -***** BB62 [0089] -STMT00040 ( 0x09D[E--] ... 0x09F ) -N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void -N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) $449 - ------------- BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) -N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void -N003 ( 3, 3) [000272] -----+----- \--* ADD long $26b -N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) $303 -N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 $280 - -***** BB40 [0039] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) -N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000249] J----+-N--- \--* GT int $1bd -N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 $1b8 -N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 $40 - ------------- BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} - -***** BB66 [0093] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) -N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void -N003 ( 3, 3) [000253] -----+----- \--* ADD int $1b8 -N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) $2c3 -N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 $43 - -***** BB66 [0093] -STMT00046 ( 0x2B8[E--] ... ??? ) -N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 -N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000260] ---XG+----- +--* IND long -N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref $34c -N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long $268 -N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 $303 -N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} - -***** BB42 [0041] -STMT00088 ( ??? ... ??? ) -N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void -N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 $43 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) -N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void -N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) $80 -N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) $c0 -N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) $100 - ------------- BB58 [0085] [???..???) (return), preds={BB62} succs={} - -***** BB58 [0085] -STMT00087 ( ??? ... ??? ) -N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void -N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) $2c4 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE If conversion - -*************** Finishing PHASE If conversion [no changes] - -*************** Starting PHASE Optimize pre-layout - -*************** In fgUpdateFlowGraph() -Before updating the flow graph: - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i -BB62 [0089] 1 BB66 0.50 [09D..0A0)-> BB58(1) (always) i -BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i bwd -BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i bwd -BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall -BB58 [0085] 1 BB62 0.50 [???..???) (return) internal ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - - -Compacting BB58 into BB62: -*************** In fgDebugCheckBBlist - -After updating the flow graph: - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i -BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i -BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i bwd -BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i bwd -BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Exception Handling table is empty -*************** In fgDebugCheckBBlist - -*************** In fgExpandRarelyRunBlocks() - -*************** Finishing PHASE Optimize pre-layout -Trees after Optimize pre-layout - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i -BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i -BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i -BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i bwd -BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i bwd -BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i jmp hascall ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} - -***** BB01 [0000] -STMT00069 ( INL02 @ 0x000[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000002] J----+-N--- \--* GE int $180 -N001 ( 1, 1) [000000] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000001] -----+----- \--* CNS_INT int 0 $40 - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} - -***** BB52 [0051] -STMT00070 ( INL02 @ 0x003[E--] ... ??? ) <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void -N001 ( 1, 4) [000497] H----+----- arg0 rcx +--* CNS_INT(h) ref $1c0 -N002 ( 1, 4) [000498] H----+----- arg1 rdx \--* CNS_INT(h) ref $1c1 - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} - -***** BB57 [0057] -STMT00003 ( 0x05D[E--] ... 0x063 ) -N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000033] J----+-N--- \--* GE int $181 -N001 ( 1, 1) [000031] -----+----- +--* LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000032] -----+----- \--* CNS_INT int 2 vector element count $42 - ------------- BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} - -***** BB09 [0008] -STMT00005 ( 0x068[E--] ... 0x06D ) -N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void -N004 ( 4, 5) [000050] -----+----- \--* ADD long $241 -N002 ( 2, 3) [000047] -----+----- +--* CAST long <- int $240 -N001 ( 1, 1) [000046] -----+----- | \--* LCL_VAR int V02 arg2 u:1 $100 -N003 ( 1, 1) [000049] -----+----- \--* CNS_INT long -1 $280 - -***** BB09 [0008] -STMT00089 ( 0x2E5[E--] ... ??? ) -N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void -N003 ( 3, 3) [000532] J------N--- \--* LE int $1b7 -N001 ( 1, 1) [000533] ----------- +--* LCL_VAR int V02 arg2 u:6 $2c2 -N002 ( 1, 1) [000534] ----------- \--* CNS_INT int 0 $40 - ------------- BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} - -***** BB62 [0089] -STMT00040 ( 0x09D[E--] ... 0x09F ) -N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void -N001 ( 1, 1) [000240] -----+----- \--* LCL_VAR int V04 loc1 u:12 (last use) $449 - -***** BB62 [0089] -STMT00087 ( ??? ... ??? ) -N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void -N001 ( 1, 1) [000491] -----+-N--- \--* LCL_VAR int V34 tmp29 u:9 (last use) $2c4 - ------------- BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} - -***** BB40 [0039] -STMT00047 ( 0x2E0[E--] ... 0x2E4 ) -N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void -N003 ( 3, 3) [000272] -----+----- \--* ADD long $26b -N001 ( 1, 1) [000269] -----+----- +--* LCL_VAR long V04 loc1 u:7 (last use) $303 -N002 ( 1, 1) [000271] -----+----- \--* CNS_INT long -1 $280 - -***** BB40 [0039] -STMT00042 ( 0x2E5[E--] ... 0x2E7 ) -N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void -N003 ( 3, 3) [000249] J----+-N--- \--* GT int $1bd -N001 ( 1, 1) [000247] -----+----- +--* LCL_VAR int V02 arg2 u:8 $1b8 -N002 ( 1, 1) [000248] -----+----- \--* CNS_INT int 0 $40 - ------------- BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} - -***** BB66 [0093] -STMT00043 ( 0x2B3[E--] ... 0x2B6 ) -N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void -N003 ( 3, 3) [000253] -----+----- \--* ADD int $1b8 -N001 ( 1, 1) [000251] -----+----- +--* LCL_VAR int V02 arg2 u:7 (last use) $2c3 -N002 ( 1, 1) [000252] -----+----- \--* CNS_INT int -1 $43 - -***** BB66 [0093] -STMT00046 ( 0x2B8[E--] ... ??? ) -N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 -N008 ( 7, 6) [000485] J--XG+-N--- \--* EQ int -N006 ( 5, 4) [000260] ---XG+----- +--* IND long -N005 ( 3, 3) [000259] -----+-N--- | \--* ADD byref $34c -N001 ( 1, 1) [000255] -----+----- | +--* LCL_VAR byref V00 arg0 u:1 $80 -N004 ( 2, 2) [000258] -----+-N--- | \--* LSH long $268 -N002 ( 1, 1) [000256] -----+----- | +--* LCL_VAR long V04 loc1 u:7 $303 -N003 ( 1, 1) [000257] -----+----- | \--* CNS_INT long 3 $282 -N007 ( 1, 1) [000261] -----+----- \--* LCL_VAR long V01 arg1 u:1 $c0 - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} - -***** BB42 [0041] -STMT00088 ( ??? ... ??? ) -N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void -N001 ( 1, 1) [000277] -----+----- \--* CNS_INT int -1 $43 - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - -***** BB43 [0042] -STMT00004 ( 0x31B[E--] ... 0x323 ) -N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void -N001 ( 1, 1) [000041] -----+----- arg0 rcx +--* LCL_VAR byref V00 arg0 u:1 (last use) $80 -N002 ( 1, 1) [000042] -----+----- arg1 rdx +--* LCL_VAR long V01 arg1 u:1 (last use) $c0 -N003 ( 1, 1) [000043] -----+----- arg2 r8 \--* LCL_VAR int V02 arg2 u:1 (last use) $100 - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Repair profile pre-layout -No PGO data. Skipping profile repair. - -*************** Finishing PHASE Repair profile pre-layout [no changes] - -*************** Starting PHASE Rationalize IR - -*************** Finishing PHASE Rationalize IR -Trees after Rationalize IR - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i LIR -BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR -BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR -BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd -BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd -BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} - [000600] ----------- IL_OFFSET void INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N001 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000001] -----+----- t1 = CNS_INT int 0 $40 - /--* t0 int - +--* t1 int -N003 ( 3, 3) [000002] J----+-N--- t2 = * GE int $180 - /--* t2 int -N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} - [000601] ----------- IL_OFFSET void INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N001 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref $1c0 -N002 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref $1c1 - /--* t497 ref arg0 rcx - +--* t498 ref arg1 rdx -N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} - [000602] ----------- IL_OFFSET void INLRT @ 0x05D[E--] -N001 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000032] -----+----- t32 = CNS_INT int 2 vector element count $42 - /--* t31 int - +--* t32 int -N003 ( 3, 3) [000033] J----+-N--- t33 = * GE int $181 - /--* t33 int -N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void - ------------- BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} - [000603] ----------- IL_OFFSET void INLRT @ 0x068[E--] -N001 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 $100 - /--* t46 int -N002 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int $240 -N003 ( 1, 1) [000049] -----+----- t49 = CNS_INT long -1 $280 - /--* t47 long - +--* t49 long -N004 ( 4, 5) [000050] -----+----- t50 = * ADD long $241 - /--* t50 long -N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void - [000604] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] -N001 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 $2c2 -N002 ( 1, 1) [000534] ----------- t534 = CNS_INT int 0 $40 - /--* t533 int - +--* t534 int -N003 ( 3, 3) [000532] J------N--- t532 = * LE int $1b7 - /--* t532 int -N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void - ------------- BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} - [000605] ----------- IL_OFFSET void INLRT @ 0x09D[E--] -N001 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 (last use) $449 - /--* t240 int -N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void -N001 ( 1, 1) [000491] -----+-N--- t491 = LCL_VAR int V34 tmp29 u:9 (last use) $2c4 - /--* t491 int -N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void - ------------- BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} - [000606] ----------- IL_OFFSET void INLRT @ 0x2E0[E--] -N001 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 (last use) $303 -N002 ( 1, 1) [000271] -----+----- t271 = CNS_INT long -1 $280 - /--* t269 long - +--* t271 long -N003 ( 3, 3) [000272] -----+----- t272 = * ADD long $26b - /--* t272 long -N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void - [000607] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] -N001 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 $1b8 -N002 ( 1, 1) [000248] -----+----- t248 = CNS_INT int 0 $40 - /--* t247 int - +--* t248 int -N003 ( 3, 3) [000249] J----+-N--- t249 = * GT int $1bd - /--* t249 int -N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void - ------------- BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} - [000608] ----------- IL_OFFSET void INLRT @ 0x2B3[E--] -N001 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 (last use) $2c3 -N002 ( 1, 1) [000252] -----+----- t252 = CNS_INT int -1 $43 - /--* t251 int - +--* t252 int -N003 ( 3, 3) [000253] -----+----- t253 = * ADD int $1b8 - /--* t253 int -N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void - [000609] ----------- IL_OFFSET void INLRT @ 0x2B8[E--] -N001 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 $80 -N002 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 $303 -N003 ( 1, 1) [000257] -----+----- t257 = CNS_INT long 3 $282 - /--* t256 long - +--* t257 long -N004 ( 2, 2) [000258] -----+-N--- t258 = * LSH long $268 - /--* t255 byref - +--* t258 long -N005 ( 3, 3) [000259] -----+-N--- t259 = * ADD byref $34c - /--* t259 byref -N006 ( 5, 4) [000260] ---XG+----- t260 = * IND long -N007 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 $c0 - /--* t260 long - +--* t261 long -N008 ( 7, 6) [000485] J--XG+-N--- t485 = * EQ int - /--* t485 int -N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} -N001 ( 1, 1) [000277] -----+----- t277 = CNS_INT int -1 $43 - /--* t277 int -N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - [000610] ----------- IL_OFFSET void INLRT @ 0x31B[E--] -N001 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 (last use) $80 -N002 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 (last use) $c0 -N003 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 (last use) $100 - /--* t41 byref arg0 rcx - +--* t42 long arg1 rdx - +--* t43 int arg2 r8 -N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE GS Cookie -No GS security needed - -*************** Finishing PHASE GS Cookie [no changes] - -*************** Starting PHASE Lowering nodeinfo -0 parameter register to local mappings -Lowering JTRUE: -N001 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 $40 - /--* t0 int - +--* t1 int -N003 ( 3, 3) [000002] J----+-N--- t2 = * GE int $180 - /--* t2 int -N004 ( 5, 5) [000384] -----+----- * JTRUE void $VN.Void - -Lowering condition: -N001 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 $40 - /--* t0 int - +--* t1 int -N003 ( 3, 3) [000002] J----+-N--- t2 = * GE int $180 - -Lowering JTRUE Result: -N001 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 $40 - /--* t0 int - +--* t1 int -N003 ( 3, 3) [000002] -----+-N--- * CMP void -N004 ( 5, 5) [000384] -----+----- JCC void cond=SGE - -lowering call (before): -N001 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref $1c0 -N002 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref $1c1 - /--* t497 ref arg0 rcx - +--* t498 ref arg1 rdx -N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void - -Args: -====== - -Late args: -====== -Lowering arg: -N001 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref $1c0 -Passed in [00..08) reg rcx -N001 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref $1c0 - /--* t497 ref - [000611] ----------- t611 = * PUTARG_REG ref REG rcx -Lowering arg: -N002 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref $1c1 -Passed in [00..08) reg rdx -N002 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref $1c1 - /--* t498 ref - [000612] ----------- t612 = * PUTARG_REG ref REG rdx -Bumping outgoing arg space size from 0 to 32 for [000387] -lowering call (after): -N001 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref $1c0 - /--* t497 ref - [000611] ----------- t611 = * PUTARG_REG ref REG rcx -N002 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref $1c1 - /--* t498 ref - [000612] ----------- t612 = * PUTARG_REG ref REG rdx - /--* t611 ref arg0 rcx - +--* t612 ref arg1 rdx -N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void - -Lowering JTRUE: -N001 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count $42 - /--* t31 int - +--* t32 int -N003 ( 3, 3) [000033] J----+-N--- t33 = * GE int $181 - /--* t33 int -N004 ( 5, 5) [000034] -----+----- * JTRUE void $VN.Void - -Lowering condition: -N001 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count $42 - /--* t31 int - +--* t32 int -N003 ( 3, 3) [000033] J----+-N--- t33 = * GE int $181 - -Lowering JTRUE Result: -N001 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count $42 - /--* t31 int - +--* t32 int -N003 ( 3, 3) [000033] -----+-N--- * CMP void -N004 ( 5, 5) [000034] -----+----- JCC void cond=SGE - -lowering store lcl var/field (before): -N001 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 $100 - /--* t46 int -N002 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int $240 -N003 ( 1, 1) [000049] -c---+----- t49 = CNS_INT long -1 $280 - /--* t47 long - +--* t49 long -N004 ( 4, 5) [000050] -----+----- t50 = * ADD long $241 - /--* t50 long -N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void - -lowering store lcl var/field (after): -N001 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 $100 - /--* t46 int -N002 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int $240 -N003 ( 1, 1) [000049] -c---+----- t49 = CNS_INT long -1 $280 - /--* t47 long - +--* t49 long -N004 ( 4, 5) [000050] -----+----- t50 = * ADD long $241 - /--* t50 long -N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void - -Lowering JTRUE: -N001 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 $2c2 -N002 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 $40 - /--* t533 int - +--* t534 int -N003 ( 3, 3) [000532] J------N--- t532 = * LE int $1b7 - /--* t532 int -N004 ( 5, 5) [000531] ----------- * JTRUE void $VN.Void - -Lowering condition: -N001 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 $2c2 -N002 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 $40 - /--* t533 int - +--* t534 int -N003 ( 3, 3) [000532] J------N--- t532 = * LE int $1b7 - -Lowering JTRUE Result: -N001 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 $2c2 -N002 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 $40 - /--* t533 int - +--* t534 int -N003 ( 3, 3) [000532] -------N--- * CMP void -N004 ( 5, 5) [000531] ----------- JCC void cond=SLE - -lowering store lcl var/field (before): -N001 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 (last use) $449 - /--* t240 int -N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void - -lowering store lcl var/field (after): -N001 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 (last use) $449 - /--* t240 int -N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void - -lowering return node -N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void -============ -lowering store lcl var/field (before): -N001 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 (last use) $303 -N002 ( 1, 1) [000271] -c---+----- t271 = CNS_INT long -1 $280 - /--* t269 long - +--* t271 long -N003 ( 3, 3) [000272] -----+----- t272 = * ADD long $26b - /--* t272 long -N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void - -lowering store lcl var/field (after): -N001 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 (last use) $303 -N002 ( 1, 1) [000271] -c---+----- t271 = CNS_INT long -1 $280 - /--* t269 long - +--* t271 long -N003 ( 3, 3) [000272] -----+----- t272 = * ADD long $26b - /--* t272 long -N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void - -Lowering JTRUE: -N001 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 $1b8 -N002 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 $40 - /--* t247 int - +--* t248 int -N003 ( 3, 3) [000249] J----+-N--- t249 = * GT int $1bd - /--* t249 int -N004 ( 5, 5) [000250] -----+----- * JTRUE void $VN.Void - -Lowering condition: -N001 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 $1b8 -N002 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 $40 - /--* t247 int - +--* t248 int -N003 ( 3, 3) [000249] J----+-N--- t249 = * GT int $1bd - -Lowering JTRUE Result: -N001 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 $1b8 -N002 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 $40 - /--* t247 int - +--* t248 int -N003 ( 3, 3) [000249] -----+-N--- * CMP void -N004 ( 5, 5) [000250] -----+----- JCC void cond=SGT - -lowering store lcl var/field (before): -N001 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 (last use) $2c3 -N002 ( 1, 1) [000252] -c---+----- t252 = CNS_INT int -1 $43 - /--* t251 int - +--* t252 int -N003 ( 3, 3) [000253] -----+----- t253 = * ADD int $1b8 - /--* t253 int -N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void - -lowering store lcl var/field (after): -N001 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 (last use) $2c3 -N002 ( 1, 1) [000252] -c---+----- t252 = CNS_INT int -1 $43 - /--* t251 int - +--* t252 int -N003 ( 3, 3) [000253] -----+----- t253 = * ADD int $1b8 - /--* t253 int -N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void - -Addressing mode: - Base - N001 ( 1, 1) [000255] -----+----- * LCL_VAR byref V00 arg0 u:1 $80 - + Index * 8 + 0 - N002 ( 1, 1) [000256] -----+----- * LCL_VAR long V04 loc1 u:7 $303 -Removing unused node: - N004 ( 2, 2) [000258] -----+-N--- * LSH long $268 -Removing unused node: - N003 ( 1, 1) [000257] -c---+----- * CNS_INT long 3 $282 -New addressing mode node: - N005 ( 3, 3) [000259] -----+----- * LEA(b+(i*8)+0) byref - -Lowering JTRUE: -N001 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 $80 -N002 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 $303 - /--* t255 byref - +--* t256 long -N005 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref - /--* t259 byref -N006 ( 5, 4) [000260] -c-XG+----- t260 = * IND long -N007 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 $c0 - /--* t260 long - +--* t261 long -N008 ( 7, 6) [000485] J--XG+-N--- t485 = * EQ int - /--* t485 int -N009 ( 9, 8) [000268] ---XG+----- * JTRUE void $419 - -Lowering condition: -N001 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 $80 -N002 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 $303 - /--* t255 byref - +--* t256 long -N005 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref - /--* t259 byref -N006 ( 5, 4) [000260] -c-XG+----- t260 = * IND long -N007 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 $c0 - /--* t260 long - +--* t261 long -N008 ( 7, 6) [000485] J--XG+-N--- t485 = * EQ int - -Lowering JTRUE Result: -N001 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 $80 -N002 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 $303 - /--* t255 byref - +--* t256 long -N005 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref - /--* t259 byref -N006 ( 5, 4) [000260] -c-XG+----- t260 = * IND long -N007 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 $c0 - /--* t260 long - +--* t261 long -N008 ( 7, 6) [000485] ---XG+-N--- * CMP void -N009 ( 9, 8) [000268] ---XG+----- JCC void cond=UEQ - -lowering return node -N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void -============ -lowering call (before): -N001 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 (last use) $80 -N002 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 (last use) $c0 -N003 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 (last use) $100 - /--* t41 byref arg0 rcx - +--* t42 long arg1 rdx - +--* t43 int arg2 r8 -N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void - -Args: -====== - -Late args: -====== -Lowering arg: -N001 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 (last use) $80 -Passed in [00..08) reg rcx -N001 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 (last use) $80 - /--* t41 byref - [000613] ----------- t613 = * PUTARG_REG byref REG rcx -Lowering arg: -N002 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 (last use) $c0 -Passed in [00..08) reg rdx -N002 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 (last use) $c0 - /--* t42 long - [000614] ----------- t614 = * PUTARG_REG long REG rdx -Lowering arg: -N003 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 (last use) $100 -Passed in [00..04) reg r8 -N003 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 (last use) $100 - /--* t43 int - [000615] ----------- t615 = * PUTARG_REG int REG r8 -lowering call (after): -N001 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 (last use) $80 - /--* t41 byref - [000613] ----------- t613 = * PUTARG_REG byref REG rcx -N002 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 (last use) $c0 - /--* t42 long - [000614] ----------- t614 = * PUTARG_REG long REG rdx -N003 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 (last use) $100 - /--* t43 int - [000615] ----------- t615 = * PUTARG_REG int REG r8 - /--* t613 byref arg0 rcx - +--* t614 long arg1 rdx - +--* t615 int arg2 r8 -N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void - -Lower has completed modifying nodes. - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i LIR -BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR -BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR -BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd -BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd -BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} - [000600] ----------- IL_OFFSET void INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N001 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 $40 - /--* t0 int - +--* t1 int -N003 ( 3, 3) [000002] -----+-N--- * CMP void -N004 ( 5, 5) [000384] -----+----- JCC void cond=SGE - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} - [000601] ----------- IL_OFFSET void INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N001 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref $1c0 - /--* t497 ref - [000611] ----------- t611 = * PUTARG_REG ref REG rcx -N002 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref $1c1 - /--* t498 ref - [000612] ----------- t612 = * PUTARG_REG ref REG rdx - /--* t611 ref arg0 rcx - +--* t612 ref arg1 rdx -N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} - [000602] ----------- IL_OFFSET void INLRT @ 0x05D[E--] -N001 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count $42 - /--* t31 int - +--* t32 int -N003 ( 3, 3) [000033] -----+-N--- * CMP void -N004 ( 5, 5) [000034] -----+----- JCC void cond=SGE - ------------- BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} - [000603] ----------- IL_OFFSET void INLRT @ 0x068[E--] -N001 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 $100 - /--* t46 int -N002 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int $240 -N003 ( 1, 1) [000049] -c---+----- t49 = CNS_INT long -1 $280 - /--* t47 long - +--* t49 long -N004 ( 4, 5) [000050] -----+----- t50 = * ADD long $241 - /--* t50 long -N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void - [000604] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] -N001 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 $2c2 -N002 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 $40 - /--* t533 int - +--* t534 int -N003 ( 3, 3) [000532] -------N--- * CMP void -N004 ( 5, 5) [000531] ----------- JCC void cond=SLE - ------------- BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} - [000605] ----------- IL_OFFSET void INLRT @ 0x09D[E--] -N001 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 (last use) $449 - /--* t240 int -N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void -N001 ( 1, 1) [000491] -----+-N--- t491 = LCL_VAR int V34 tmp29 u:9 (last use) $2c4 - /--* t491 int -N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void - ------------- BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} - [000606] ----------- IL_OFFSET void INLRT @ 0x2E0[E--] -N001 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 (last use) $303 -N002 ( 1, 1) [000271] -c---+----- t271 = CNS_INT long -1 $280 - /--* t269 long - +--* t271 long -N003 ( 3, 3) [000272] -----+----- t272 = * ADD long $26b - /--* t272 long -N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void - [000607] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] -N001 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 $1b8 -N002 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 $40 - /--* t247 int - +--* t248 int -N003 ( 3, 3) [000249] -----+-N--- * CMP void -N004 ( 5, 5) [000250] -----+----- JCC void cond=SGT - ------------- BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} - [000608] ----------- IL_OFFSET void INLRT @ 0x2B3[E--] -N001 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 (last use) $2c3 -N002 ( 1, 1) [000252] -c---+----- t252 = CNS_INT int -1 $43 - /--* t251 int - +--* t252 int -N003 ( 3, 3) [000253] -----+----- t253 = * ADD int $1b8 - /--* t253 int -N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void - [000609] ----------- IL_OFFSET void INLRT @ 0x2B8[E--] -N001 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 $80 -N002 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 $303 - /--* t255 byref - +--* t256 long -N005 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref - /--* t259 byref -N006 ( 5, 4) [000260] -c-XG+----- t260 = * IND long -N007 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 $c0 - /--* t260 long - +--* t261 long -N008 ( 7, 6) [000485] ---XG+-N--- * CMP void -N009 ( 9, 8) [000268] ---XG+----- JCC void cond=UEQ - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} -N001 ( 1, 1) [000277] -----+----- t277 = CNS_INT int -1 $43 - /--* t277 int -N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - [000610] ----------- IL_OFFSET void INLRT @ 0x31B[E--] -N001 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 (last use) $80 - /--* t41 byref - [000613] ----------- t613 = * PUTARG_REG byref REG rcx -N002 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 (last use) $c0 - /--* t42 long - [000614] ----------- t614 = * PUTARG_REG long REG rdx -N003 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 (last use) $100 - /--* t43 int - [000615] ----------- t615 = * PUTARG_REG int REG r8 - /--* t613 byref arg0 rcx - +--* t614 long arg1 rdx - +--* t615 int arg2 r8 -N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void - -------------------------------------------------------------------------------------------------------------------- - -*** lvaComputeRefCounts *** - -*** lvaComputePreciseRefCounts -- explicit counts *** -New refCnts for V02: refCnt = 1, refCntWtd = 1 -New refCnts for V02: refCnt = 2, refCntWtd = 2 -New refCnts for V02: refCnt = 3, refCntWtd = 2.75 -New refCnts for V04: refCnt = 1, refCntWtd = 0.75 -New refCnts for V02: refCnt = 4, refCntWtd = 3.50 -New refCnts for V04: refCnt = 2, refCntWtd = 1.25 -New refCnts for V34: refCnt = 1, refCntWtd = 1 -New refCnts for V34: refCnt = 2, refCntWtd = 2 -New refCnts for V04: refCnt = 3, refCntWtd = 5.25 -New refCnts for V04: refCnt = 4, refCntWtd = 9.25 -New refCnts for V02: refCnt = 5, refCntWtd = 7.50 -New refCnts for V02: refCnt = 6, refCntWtd = 11.50 -New refCnts for V02: refCnt = 7, refCntWtd = 15.50 -New refCnts for V00: refCnt = 1, refCntWtd = 4 -New refCnts for V04: refCnt = 5, refCntWtd = 13.25 -New refCnts for V01: refCnt = 1, refCntWtd = 4 -New refCnts for V00: refCnt = 2, refCntWtd = 4.50 -New refCnts for V01: refCnt = 2, refCntWtd = 4.50 -New refCnts for V02: refCnt = 8, refCntWtd = 16 - -*** lvaComputePreciseRefCounts -- implicit counts *** -New refCnts for V00: refCnt = 3, refCntWtd = 5.50 -New refCnts for V00: refCnt = 4, refCntWtd = 6.50 -New refCnts for V01: refCnt = 3, refCntWtd = 5.50 -New refCnts for V01: refCnt = 4, refCntWtd = 6.50 -New refCnts for V02: refCnt = 9, refCntWtd = 17 -New refCnts for V02: refCnt = 10, refCntWtd = 18 -*************** In Liveness::Run() -; Initial local variable assignments -; -; V00 arg0 byref single-def -; V01 arg1 long single-def -; V02 arg2 int -; V03 loc0 ubyte -; V04 loc1 long -; V05 OutArgs struct <0> do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V06 tmp1 ubyte "Inlining Arg" -; V07 tmp2 ubyte "Inlining Arg" -; V08 tmp3 long "Inlining Arg" -; V09 tmp4 ubyte "Inlining Arg" -; V10 tmp5 long "Inlining Arg" -; V11 tmp6 ubyte "Inlining Arg" -; V12 tmp7 long "Inlining Arg" -; V13 tmp8 ubyte "Inlining Arg" -; V14 tmp9 long "Inlining Arg" -; V15 tmp10 ubyte "Inlining Arg" -; V16 tmp11 long "Inlining Arg" -; V17 tmp12 ubyte "Inlining Arg" -; V18 tmp13 long "Inlining Arg" -; V19 tmp14 ubyte "Inlining Arg" -; V20 tmp15 long "Inlining Arg" -; V21 tmp16 ubyte "Inlining Arg" -; V22 tmp17 long "Inlining Arg" -; V23 tmp18 ubyte "Inlining Arg" -; V24 tmp19 long "Inlining Arg" -; V25 tmp20 ubyte "Inlining Arg" -; V26 tmp21 long "Inlining Arg" -; V27 tmp22 ubyte "Inlining Arg" -; V28 tmp23 long "Inlining Arg" -; V29 tmp24 ubyte "Inlining Arg" -; V30 tmp25 long "Inlining Arg" -; V31 tmp26 ubyte "Inlining Arg" -; V32 tmp27 long "Inlining Arg" -; V33 tmp28 ubyte "Inlining Arg" -; V34 tmp29 int "Single return block return value" -In Liveness::Init - -Local V05 should not be enregistered because: struct size does not match reg size -Tracked variable (5 out of 35) table: -V02 arg2 [ int]: refCnt = 10, refCntWtd = 18 -V04 loc1 [ long]: refCnt = 5, refCntWtd = 13.25 -V00 arg0 [ byref]: refCnt = 4, refCntWtd = 6.50 -V01 arg1 [ long]: refCnt = 4, refCntWtd = 6.50 -V34 tmp29 [ int]: refCnt = 2, refCntWtd = 2 - -*************** In Liveness::PerBlockLocalVarLiveness() -BB01 USE(1)={V02} - DEF(0)={ } - -BB52 USE(0)={} - DEF(0)={} - -BB57 USE(1)={V02} - DEF(0)={ } - -BB09 USE(1)={V02 } - DEF(1)={ V04} - -BB62 USE(1)={V04 } - DEF(1)={ V34} - -BB40 USE(2)={V02 V04} - DEF(1)={ V04} - -BB66 USE(4)={V02 V04 V00 V01} - DEF(1)={V02 } - -BB42 USE(0)={} - DEF(0)={} - -BB43 USE(3)={V02 V00 V01} - DEF(0)={ } - -*************** IngInterBlockLocalVarLiveness() - -BB liveness after DoLiveVarAnalysis(): - -BB01 IN (3)={V02 V00 V01} - OUT(3)={V02 V00 V01} - -BB52 IN (3)={V02 V00 V01} - OUT(3)={V02 V00 V01} - -BB57 IN (3)={V02 V00 V01} - OUT(3)={V02 V00 V01} - -BB09 IN (3)={V02 V00 V01} - OUT(4)={V02 V04 V00 V01} - -BB62 IN (1)={V04} - OUT(0)={ } - -BB40 IN (4)={V02 V04 V00 V01} - OUT(4)={V02 V04 V00 V01} - -BB66 IN (4)={V02 V04 V00 V01} - OUT(4)={V02 V04 V00 V01} - -BB42 IN (0)={} - OUT(0)={} - -BB43 IN (3)={V02 V00 V01} - OUT(0)={ } - - -*************** In fgUpdateFlowGraph() -Before updating the flow graph: - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i LIR -BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR -BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR -BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd -BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd -BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** In fgDebugCheckBBlist - -*** lvaComputeRefCounts *** - -*** lvaComputePreciseRefCounts -- explicit counts *** -New refCnts for V02: refCnt = 1, refCntWtd = 1 -New refCnts for V02: refCnt = 2, refCntWtd = 2 -New refCnts for V02: refCnt = 3, refCntWtd = 2.75 -New refCnts for V04: refCnt = 1, refCntWtd = 0.75 -New refCnts for V02: refCnt = 4, refCntWtd = 3.50 -New refCnts for V04: refCnt = 2, refCntWtd = 1.25 -New refCnts for V34: refCnt = 1, refCntWtd = 1 -New refCnts for V34: refCnt = 2, refCntWtd = 2 -New refCnts for V04: refCnt = 3, refCntWtd = 5.25 -New refCnts for V04: refCnt = 4, refCntWtd = 9.25 -New refCnts for V02: refCnt = 5, refCntWtd = 7.50 -New refCnts for V02: refCnt = 6, refCntWtd = 11.50 -New refCnts for V02: refCnt = 7, refCntWtd = 15.50 -New refCnts for V00: refCnt = 1, refCntWtd = 4 -New refCnts for V04: refCnt = 5, refCntWtd = 13.25 -New refCnts for V01: refCnt = 1, refCntWtd = 4 -New refCnts for V00: refCnt = 2, refCntWtd = 4.50 -New refCnts for V01: refCnt = 2, refCntWtd = 4.50 -New refCnts for V02: refCnt = 8, refCntWtd = 16 - -*** lvaComputePreciseRefCounts -- implicit counts *** -New refCnts for V00: refCnt = 3, refCntWtd = 5.50 -New refCnts for V00: refCnt = 4, refCntWtd = 6.50 -New refCnts for V01: refCnt = 3, refCntWtd = 5.50 -New refCnts for V01: refCnt = 4, refCntWtd = 6.50 -New refCnts for V02: refCnt = 9, refCntWtd = 17 -New refCnts for V02: refCnt = 10, refCntWtd = 18 - -*************** Finishing PHASE Lowering nodeinfo -Trees after Lowering nodeinfo - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i LIR -BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR -BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR -BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd -BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd -BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} - [000600] ----------- IL_OFFSET void INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N001 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 $40 - /--* t0 int - +--* t1 int -N003 ( 3, 3) [000002] -----+-N--- * CMP void -N004 ( 5, 5) [000384] -----+----- JCC void cond=SGE - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} - [000601] ----------- IL_OFFSET void INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] -N001 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref $1c0 - /--* t497 ref - [000611] ----------- t611 = * PUTARG_REG ref REG rcx -N002 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref $1c1 - /--* t498 ref - [000612] ----------- t612 = * PUTARG_REG ref REG rdx - /--* t611 ref arg0 rcx - +--* t612 ref arg1 rdx -N003 ( 16, 15) [000387] --CXG+----- * CALL void $VN.Void - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} - [000602] ----------- IL_OFFSET void INLRT @ 0x05D[E--] -N001 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 $100 -N002 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count $42 - /--* t31 int - +--* t32 int -N003 ( 3, 3) [000033] -----+-N--- * CMP void -N004 ( 5, 5) [000034] -----+----- JCC void cond=SGE - ------------- BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} - [000603] ----------- IL_OFFSET void INLRT @ 0x068[E--] -N001 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 $100 - /--* t46 int -N002 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int $240 -N003 ( 1, 1) [000049] -c---+----- t49 = CNS_INT long -1 $280 - /--* t47 long - +--* t49 long -N004 ( 4, 5) [000050] -----+----- t50 = * ADD long $241 - /--* t50 long -N005 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 $VN.Void - [000604] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] -N001 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 $2c2 -N002 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 $40 - /--* t533 int - +--* t534 int -N003 ( 3, 3) [000532] -------N--- * CMP void -N004 ( 5, 5) [000531] ----------- JCC void cond=SLE - ------------- BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} - [000605] ----------- IL_OFFSET void INLRT @ 0x09D[E--] -N001 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 (last use) $449 - /--* t240 int -N002 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 $VN.Void -N001 ( 1, 1) [000491] -----+-N--- t491 = LCL_VAR int V34 tmp29 u:9 (last use) $2c4 - /--* t491 int -N002 ( 2, 2) [000492] -----+----- * RETURN int $VN.Void - ------------- BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} - [000606] ----------- IL_OFFSET void INLRT @ 0x2E0[E--] -N001 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 (last use) $303 -N002 ( 1, 1) [000271] -c---+----- t271 = CNS_INT long -1 $280 - /--* t269 long - +--* t271 long -N003 ( 3, 3) [000272] -----+----- t272 = * ADD long $26b - /--* t272 long -N004 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 $VN.Void - [000607] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] -N001 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 $1b8 -N002 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 $40 - /--* t247 int - +--* t248 int -N003 ( 3, 3) [000249] -----+-N--- * CMP void -N004 ( 5, 5) [000250] -----+----- JCC void cond=SGT - ------------- BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} - [000608] ----------- IL_OFFSET void INLRT @ 0x2B3[E--] -N001 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 (last use) $2c3 -N002 ( 1, 1) [000252] -c---+----- t252 = CNS_INT int -1 $43 - /--* t251 int - +--* t252 int -N003 ( 3, 3) [000253] -----+----- t253 = * ADD int $1b8 - /--* t253 int -N004 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 $VN.Void - [000609] ----------- IL_OFFSET void INLRT @ 0x2B8[E--] -N001 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 $80 -N002 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 $303 - /--* t255 byref - +--* t256 long -N005 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref - /--* t259 byref -N006 ( 5, 4) [000260] -c-XG+----- t260 = * IND long -N007 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 $c0 - /--* t260 long - +--* t261 long -N008 ( 7, 6) [000485] ---XG+-N--- * CMP void -N009 ( 9, 8) [000268] ---XG+----- JCC void cond=UEQ - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} -N001 ( 1, 1) [000277] -----+----- t277 = CNS_INT int -1 $43 - /--* t277 int -N002 ( 2, 2) [000493] -----+----- * RETURN int $VN.Void - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} - [000610] ----------- IL_OFFSET void INLRT @ 0x31B[E--] -N001 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 (last use) $80 - /--* t41 byref - [000613] ----------- t613 = * PUTARG_REG byref REG rcx -N002 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 (last use) $c0 - /--* t42 long - [000614] ----------- t614 = * PUTARG_REG long REG rdx -N003 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 (last use) $100 - /--* t43 int - [000615] ----------- t615 = * PUTARG_REG int REG r8 - /--* t613 byref arg0 rcx - +--* t614 long arg1 rdx - +--* t615 int arg2 r8 -N004 ( 17, 11) [000044] --CXG+----- * CALL void $VN.Void - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Calculate stack level slots - -*************** Finishing PHASE Calculate stack level slots [no changes] - -*************** Starting PHASE Linear scan register alloc -Clearing modified regs. - -buildIntervals ======== - ------------------ -LIVENESS: ------------------ -BB01 -use: {V02} -def: {} - in: {V00 V01 V02} -out: {V00 V01 V02} -BB52 -use: {} -def: {} - in: {V00 V01 V02} -out: {V00 V01 V02} -BB57 -use: {V02} -def: {} - in: {V00 V01 V02} -out: {V00 V01 V02} -BB09 -use: {V02} -def: {V04} - in: {V00 V01 V02} -out: {V00 V01 V02 V04} -BB62 -use: {V04} -def: {V34} - in: {V04} -out: {} -BB40 -use: {V02 V04} -def: {V04} - in: {V00 V01 V02 V04} -out: {V00 V01 V02 V04} -BB66 -use: {V00 V01 V02 V04} -def: {V02} - in: {V00 V01 V02 V04} -out: {V00 V01 V02 V04} -BB42 -use: {} -def: {} - in: {} -out: {} -BB43 -use: {V00 V01 V02} -def: {} - in: {V00 V01 V02} -out: {} -Interval 0: byref RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] - Interval 0: (V00) byref RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] -Interval 1: long RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] - Interval 1: (V01) long RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] -Interval 2: int RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] - Interval 2: (V02) int RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] -Interval 3: long RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] - Interval 3: (V04) long RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] -Interval 4: int RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] - Interval 4: (V34) int RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] - -FP callee save candidate vars: None - -floatVarCount = 0; hasLoops = true, singleExit = false -TUPLE STYLE DUMP BEFORE LSRA -Identifying loops in DFS tree with following reverse post order: -RPO -> BB [pre, post] -00 -> BB01[0, 8] -01 -> BB52[1, 7] -02 -> BB57[2, 6] -03 -> BB43[8, 5] -04 -> BB09[3, 4] -05 -> BB66[4, 3] -06 -> BB62[7, 2] -07 -> BB40[5, 1] -08 -> BB42[6, 0] - -BB40 -> BB66 is a backedge -BB66 is the header of a DFS loop with 1 back edges -Loop has 2 blocks -BB66 -> BB62 is an exit edge -BB40 -> BB42 is an exit edge -BB09 -> BB66 is an entry edge -Added loop L00 with header BB66 - -Found 1 loops - -*************** Natural loop graph -L00 header: BB66 - Members (2): [BB40..BB66] - Entry: BB09 -> BB66 - Exit: BB66 -> BB62; BB40 -> BB42 - Back: BB40 -> BB66 - -Start LSRA Block Sequence: -Current block: BB01 -Current block: BB52 -Current block: BB57 -Current block: BB43 -Current block: BB09 -Current block: BB66 -Current block: BB40 -Current block: BB62 -Current block: BB42 -Final LSRA Block Sequence: -BB01 ( 1 ) critical-out -BB52 ( 0.50) -BB57 ( 1 ) critical-in -BB43 ( 0.50) -BB09 ( 0.75) critical-out -BB66 ( 4 ) critical-in -BB40 ( 4 ) critical-out -BB62 ( 0.50) -BB42 ( 0.50) critical-in - -BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} -===== - N000. IL_OFFSET INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - N001. V02(t0) - N002. CNS_INT 0 - N003. CMP ; t0 - N004. JCC cond=SGE - -BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} -===== - N000. IL_OFFSET INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - N001. t497 = CNS_INT(h) - N000. t611 = PUTARG_REG; t497 - N002. t498 = CNS_INT(h) - N000. t612 = PUTARG_REG; t498 - N003. CALL ; t611,t612 - -BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} -===== - N000. IL_OFFSET INLRT @ 0x05D[E--] - N001. V02(t31) - N002. CNS_INT 2 vector element count - N003. CMP ; t31 - N004. JCC cond=SGE - -BB43 [0042] [2EB..324) (return), preds={BB57} succs={} -===== - N000. IL_OFFSET INLRT @ 0x31B[E--] - N001. V00(t41*) - N000. t613 = PUTARG_REG; t41* - N002. V01(t42*) - N000. t614 = PUTARG_REG; t42* - N003. V02(t43*) - N000. t615 = PUTARG_REG; t43* - N004. CALL ; t613,t614,t615 - -BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} -===== - N000. IL_OFFSET INLRT @ 0x068[E--] - N001. V02(t46) - N002. t47 = CAST ; t46 - N003. CNS_INT -1 - N004. t50 = ADD ; t47 - N005. V04(t51); t50 - N000. IL_OFFSET INLRT @ 0x2E5[E--] - N001. V02(t533) - N002. CNS_INT 0 - N003. CMP ; t533 - N004. JCC cond=SLE - -BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} -===== - N000. IL_OFFSET INLRT @ 0x2B3[E--] - N001. V02(t251*) - N002. CNS_INT -1 - N003. t253 = ADD ; t251* - N004. V02(t254); t253 - N000. IL_OFFSET INLRT @ 0x2B8[E--] - N001. V00(t255) - N002. V04(t256) - N005. t259 = LEA(b+(i*8)+0); t255,t256 - N006. t260 = IND ; t259 - N007. V01(t261) - N008. CMP ; t260,t261 - N009. JCC cond=UEQ - -BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} -===== - N000. IL_OFFSET INLRT @ 0x2E0[E--] - N001. V04(t269*) - N002. CNS_INT -1 - N003. t272 = ADD ; t269* - N004. V04(t273); t272 - N000. IL_OFFSET INLRT @ 0x2E5[E--] - N001. V02(t247) - N002. CNS_INT 0 - N003. CMP ; t247 - N004. JCC cond=SGT - -BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} -===== - N000. IL_OFFSET INLRT @ 0x09D[E--] - N001. V04(t240*) - N002. V34(t521); t240* - N001. V34(t491*) - N002. RETURN ; t491* - -BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} -===== - N001. t277 = CNS_INT -1 - N002. RETURN ; t277 - - - - -buildIntervals second part ======== -Arg V00 is live in reg rcx -Arg V01 is live in reg rdx -Arg V02 is live in reg r8 - BB00 regmask=[r8] minReg=1 fixed wt=100.00> - BB00 regmask=[rcx] minReg=1 fixed wt=100.00> - BB00 regmask=[rdx] minReg=1 fixed wt=100.00> - -NEW BLOCK BB01 - - -DefList: { } -N003 (???,???) [000600] ----------- * IL_OFFSET void INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA - -DefList: { } -N005 ( 1, 1) [000000] -----+----- * LCL_VAR int V02 arg2 u:1 NA REG NA $100 - -DefList: { } -N007 ( 1, 1) [000001] -c---+----- * CNS_INT int 0 REG NA $40 -Contained -DefList: { } -N009 ( 3, 3) [000002] -----+-N--- * CMP void REG NA - LCL_VAR BB01 regmask=[allInt] minReg=1 last wt=1800.00> - -DefList: { } -N011 ( 5, 5) [000384] -----+----- * JCC void cond=SGE REG NA - - - -CHECKING LAST USES for BB01, liveout={V00 V01 V02} -============================== -use: {V02} -def: {} - -NEW BLOCK BB52 - - -Setting BB01 as the predecessor for determining incoming variable registers of BB52 - - -DefList: { } -N015 (???,???) [000601] ----------- * IL_OFFSET void INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA - -DefList: { } -N017 ( 1, 4) [000497] H----+----- * CNS_INT(h) ref REG NA $1c0 -Interval 5: ref RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] - CNS_INT BB52 regmask=[allInt] minReg=1 wt=200.00> - -DefList: { N017.t497. CNS_INT } -N019 (???,???) [000611] ----------- * PUTARG_REG ref REG rcx - BB52 regmask=[rcx] minReg=1 wt=50.00> - BB52 regmask=[rcx] minReg=1 last fixed wt=50.00> -Interval 6: ref RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] - BB52 regmask=[rcx] minReg=1 wt=50.00> - PUTARG_REG BB52 regmask=[rcx] minReg=1 fixed wt=200.00> - -DefList: { N019.t611. PUTARG_REG } -N021 ( 1, 4) [000498] H----+----- * CNS_INT(h) ref REG NA $1c1 -Interval 7: ref RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] - CNS_INT BB52 regmask=[allInt] minReg=1 wt=200.00> - -DefList: { N019.t611. PUTARG_REG; N021.t498. CNS_INT } -N023 (???,???) [000612] ----------- * PUTARG_REG ref REG rdx - BB52 regmask=[rdx] minReg=1 wt=50.00> - BB52 regmask=[rdx] minReg=1 last fixed wt=50.00> -Interval 8: ref RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] - BB52 regmask=[rdx] minReg=1 wt=50.00> - PUTARG_REG BB52 regmask=[rdx] minReg=1 fixed wt=200.00> - -DefList: { N019.t611. PUTARG_REG; N023.t612. PUTARG_REG } -N025 ( 16, 15) [000387] --CXG+----- * CALL void REG NA $VN.Void - BB52 regmask=[rcx] minReg=1 wt=50.00> - BB52 regmask=[rcx] minReg=1 last fixed wt=50.00> - BB52 regmask=[rdx] minReg=1 wt=50.00> - BB52 regmask=[rdx] minReg=1 last fixed wt=50.00> - - - - -CHECKING LAST USES for BB52, liveout={V00 V01 V02} -============================== -use: {} -def: {} - -NEW BLOCK BB57 - - -Setting BB01 as the predecessor for determining incoming variable registers of BB57 - - -DefList: { } -N029 (???,???) [000602] ----------- * IL_OFFSET void INLRT @ 0x05D[E--] REG NA - -DefList: { } -N031 ( 1, 1) [000031] -----+----- * LCL_VAR int V02 arg2 u:1 NA REG NA $100 - -DefList: { } -N033 ( 1, 1) [000032] -c---+----- * CNS_INT int 2 vector element count REG NA $42 -Contained -DefList: { } -N035 ( 3, 3) [000033] -----+-N--- * CMP void REG NA - LCL_VAR BB57 regmask=[allInt] minReg=1 last wt=1800.00> - -DefList: { } -N037 ( 5, 5) [000034] -----+----- * JCC void cond=SGE REG NA - - - -CHECKING LAST USES for BB57, liveout={V00 V01 V02} -============================== -use: {V02} -def: {} - -NEW BLOCK BB43 - - -Setting BB57 as the predecessor for determining incoming variable registers of BB43 - - -DefList: { } -N041 (???,???) [000610] ----------- * IL_OFFSET void INLRT @ 0x31B[E--] REG NA - -DefList: { } -N043 ( 1, 1) [000041] -----+----- * LCL_VAR byref V00 arg0 u:1 NA (last use) REG NA $80 - -DefList: { } -N045 (???,???) [000613] ----------- * PUTARG_REG byref REG rcx - BB43 regmask=[rcx] minReg=1 wt=50.00> - LCL_VAR BB43 regmask=[rcx] minReg=1 last fixed wt=650.00> -Interval 9: byref RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] - BB43 regmask=[rcx] minReg=1 wt=50.00> - PUTARG_REG BB43 regmask=[rcx] minReg=1 fixed wt=200.00> - -DefList: { N045.t613. PUTARG_REG } -N047 ( 1, 1) [000042] -----+----- * LCL_VAR long V01 arg1 u:1 NA (last use) REG NA $c0 - -DefList: { N045.t613. PUTARG_REG } -N049 (???,???) [000614] ----------- * PUTARG_REG long REG rdx -Last use of V01 between PUTARG and CALL. Removing occupied arg regs from preferences: [rcx] - BB43 regmask=[rdx] minReg=1 wt=50.00> - LCL_VAR BB43 regmask=[rdx] minReg=1 last fixed wt=650.00> -Interval 10: long RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] - BB43 regmask=[rdx] minReg=1 wt=50.00> - PUTARG_REG BB43 regmask=[rdx] minReg=1 fixed wt=200.00> - -DefList: { N045.t613. PUTARG_REG; N049.t614. PUTARG_REG } -N051 ( 1, 1) [000043] -----+----- * LCL_VAR int V02 arg2 u:1 NA (last use) REG NA $100 - -DefList: { N045.t613. PUTARG_REG; N049.t614. PUTARG_REG } -N053 (???,???) [000615] ----------- * PUTARG_REG int REG r8 -Last use of V02 between PUTARG and CALL. Removing occupied arg regs from preferences: [rcx rdx] - BB43 regmask=[r8] minReg=1 wt=50.00> - LCL_VAR BB43 regmask=[r8] minReg=1 last fixed wt=1800.00> -Interval 11: int RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] - BB43 regmask=[r8] minReg=1 wt=50.00> - PUTARG_REG BB43 regmask=[r8] minReg=1 fixed wt=200.00> - -DefList: { N045.t613. PUTARG_REG; N049.t614. PUTARG_REG; N053.t615. PUTARG_REG } -N055 ( 17, 11) [000044] --CXG+----- * CALL void REG NA $VN.Void - BB43 regmask=[rcx] minReg=1 wt=50.00> - BB43 regmask=[rcx] minReg=1 last fixed wt=50.00> - BB43 regmask=[rdx] minReg=1 wt=50.00> - BB43 regmask=[rdx] minReg=1 last fixed wt=50.00> - BB43 regmask=[r8] minReg=1 wt=50.00> - BB43 regmask=[r8] minReg=1 last fixed wt=50.00> - - - - -CHECKING LAST USES for BB43, liveout={} -============================== -use: {V00 V01 V02} -def: {} - -NEW BLOCK BB09 - - -Setting BB57 as the predecessor for determining incoming variable registers of BB09 - - -DefList: { } -N059 (???,???) [000603] ----------- * IL_OFFSET void INLRT @ 0x068[E--] REG NA - -DefList: { } -N061 ( 1, 1) [000046] -----+----- * LCL_VAR int V02 arg2 u:1 NA REG NA $100 - -DefList: { } -N063 ( 2, 3) [000047] -----+----- * CAST long <- int REG NA $240 - LCL_VAR BB09 regmask=[allInt] minReg=1 last wt=1800.00> -Interval 12: long RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] - CAST BB09 regmask=[allInt] minReg=1 wt=300.00> - -DefList: { N063.t47. CAST } -N065 ( 1, 1) [000049] -c---+----- * CNS_INT long -1 REG NA $280 -Contained -DefList: { N063.t47. CAST } -N067 ( 4, 5) [000050] -----+----- * ADD long REG NA $241 - BB09 regmask=[allInt] minReg=1 last wt=75.00> -Interval 13: long RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] - ADD BB09 regmask=[allInt] minReg=1 wt=300.00> -Assigning related to - -DefList: { N067.t50. ADD } -N069 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 NA REG NA $VN.Void - BB09 regmask=[allInt] minReg=1 last wt=75.00> -Assigning related to - STORE_LCL_VAR BB09 regmask=[allInt] minReg=1 last wt=1325.00> - -DefList: { } -N071 (???,???) [000604] ----------- * IL_OFFSET void INLRT @ 0x2E5[E--] REG NA - -DefList: { } -N073 ( 1, 1) [000533] ----------- * LCL_VAR int V02 arg2 u:6 NA REG NA $2c2 - -DefList: { } -N075 ( 1, 1) [000534] -c--------- * CNS_INT int 0 REG NA $40 -Contained -DefList: { } -N077 ( 3, 3) [000532] -------N--- * CMP void REG NA - LCL_VAR BB09 regmask=[allInt] minReg=1 last wt=1800.00> - -DefList: { } -N079 ( 5, 5) [000531] ----------- * JCC void cond=SLE REG NA - - - -CHECKING LAST USES for BB09, liveout={V00 V01 V02 V04} -============================== -use: {V02} -def: {V04} - -NEW BLOCK BB66 - - -Setting BB09 as the predecessor for determining incoming variable registers of BB66 - - -DefList: { } -N083 (???,???) [000608] ----------- * IL_OFFSET void INLRT @ 0x2B3[E--] REG NA - -DefList: { } -N085 ( 1, 1) [000251] -----+----- * LCL_VAR int V02 arg2 u:7 NA (last use) REG NA $2c3 - -DefList: { } -N087 ( 1, 1) [000252] -c---+----- * CNS_INT int -1 REG NA $43 -Contained -DefList: { } -N089 ( 3, 3) [000253] -----+----- * ADD int REG NA $1b8 - LCL_VAR BB66 regmask=[allInt] minReg=1 last wt=1800.00> -Interval 14: int RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] - ADD BB66 regmask=[allInt] minReg=1 wt=1600.00> -Assigning related to - -DefList: { N089.t253. ADD } -N091 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 NA REG NA $VN.Void - BB66 regmask=[allInt] minReg=1 last wt=400.00> -Assigning related to - STORE_LCL_VAR BB66 regmask=[allInt] minReg=1 last wt=1800.00> - -DefList: { } -N093 (???,???) [000609] ----------- * IL_OFFSET void INLRT @ 0x2B8[E--] REG NA - -DefList: { } -N095 ( 1, 1) [000255] -----+----- * LCL_VAR byref V00 arg0 u:1 NA REG NA $80 - -DefList: { } -N097 ( 1, 1) [000256] -----+----- * LCL_VAR long V04 loc1 u:7 NA REG NA $303 - -DefList: { } -N099 ( 3, 3) [000259] -c---+----- * LEA(b+(i*8)+0) byref REG NA -Contained -DefList: { } -N101 ( 5, 4) [000260] -c-XG+----- * IND long REG NA -Contained -DefList: { } -N103 ( 1, 1) [000261] -----+----- * LCL_VAR long V01 arg1 u:1 NA REG NA $c0 - -DefList: { } -N105 ( 7, 6) [000485] ---XG+-N--- * CMP void REG NA - LCL_VAR BB66 regmask=[allInt] minReg=1 last wt=650.00> - LCL_VAR BB66 regmask=[allInt] minReg=1 last wt=1325.00> - LCL_VAR BB66 regmask=[allInt] minReg=1 last wt=650.00> - -DefList: { } -N107 ( 9, 8) [000268] ---XG+----- * JCC void cond=UEQ REG NA - - - -CHECKING LAST USES for BB66, liveout={V00 V01 V02 V04} -============================== -use: {V00 V01 V02 V04} -def: {V02} - -NEW BLOCK BB40 - - -Setting BB66 as the predecessor for determining incoming variable registers of BB40 - - -DefList: { } -N111 (???,???) [000606] ----------- * IL_OFFSET void INLRT @ 0x2E0[E--] REG NA - -DefList: { } -N113 ( 1, 1) [000269] -----+----- * LCL_VAR long V04 loc1 u:7 NA (last use) REG NA $303 - -DefList: { } -N115 ( 1, 1) [000271] -c---+----- * CNS_INT long -1 REG NA $280 -Contained -DefList: { } -N117 ( 3, 3) [000272] -----+----- * ADD long REG NA $26b - LCL_VAR BB40 regmask=[allInt] minReg=1 last wt=1325.00> -Interval 15: long RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] - ADD BB40 regmask=[allInt] minReg=1 wt=1600.00> -Assigning related to - -DefList: { N117.t272. ADD } -N119 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 NA REG NA $VN.Void - BB40 regmask=[allInt] minReg=1 last wt=400.00> -Assigning related to - STORE_LCL_VAR BB40 regmask=[allInt] minReg=1 last wt=1325.00> - -DefList: { } -N121 (???,???) [000607] ----------- * IL_OFFSET void INLRT @ 0x2E5[E--] REG NA - -DefList: { } -N123 ( 1, 1) [000247] -----+----- * LCL_VAR int V02 arg2 u:8 NA REG NA $1b8 - -DefList: { } -N125 ( 1, 1) [000248] -c---+----- * CNS_INT int 0 REG NA $40 -Contained -DefList: { } -N127 ( 3, 3) [000249] -----+-N--- * CMP void REG NA - LCL_VAR BB40 regmask=[allInt] minReg=1 last wt=1800.00> - -DefList: { } -N129 ( 5, 5) [000250] -----+----- * JCC void cond=SGT REG NA - -Exposed uses: - BB40 regmask=[allInt] minReg=1 wt=400.00> - BB40 regmask=[allInt] minReg=1 wt=400.00> - BB40 regmask=[allInt] minReg=1 wt=400.00> - - -CHECKING LAST USES for BB40, liveout={V00 V01 V02 V04} -============================== -use: {V02 V04} -def: {V04} - -NEW BLOCK BB62 - - -Setting BB66 as the predecessor for determining incoming variable registers of BB62 - - -DefList: { } -N133 (???,???) [000605] ----------- * IL_OFFSET void INLRT @ 0x09D[E--] REG NA - -DefList: { } -N135 ( 1, 1) [000240] -----+----- * LCL_VAR int V04 loc1 u:12 NA (last use) REG NA $449 - -DefList: { } -N137 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 NA REG NA $VN.Void - LCL_VAR BB62 regmask=[allInt] minReg=1 last wt=1325.00> - STORE_LCL_VAR BB62 regmask=[allInt] minReg=1 last wt=200.00> - -DefList: { } -N139 ( 1, 1) [000491] -----+-N--- * LCL_VAR int V34 tmp29 u:9 NA (last use) REG NA $2c4 - -DefList: { } -N141 ( 2, 2) [000492] -----+----- * RETURN int REG NA $VN.Void - BB62 regmask=[rax] minReg=1 wt=50.00> - LCL_VAR BB62 regmask=[rax] minReg=1 last fixed wt=200.00> - - - -CHECKING LAST USES for BB62, liveout={} -============================== -use: {V04} -def: {V34} - -NEW BLOCK BB42 - - -Setting BB40 as the predecessor for determining incoming variable registers of BB42 - - -DefList: { } -N145 ( 1, 1) [000277] -----+----- * CNS_INT int -1 REG NA $43 -Interval 16: int RefPositions {} physReg:NA Preferences=[allInt] Aversions=[allMask] - CNS_INT BB42 regmask=[allInt] minReg=1 wt=200.00> - -DefList: { N145.t277. CNS_INT } -N147 ( 2, 2) [000493] -----+----- * RETURN int REG NA $VN.Void - BB42 regmask=[rax] minReg=1 wt=50.00> - BB42 regmask=[rax] minReg=1 last fixed wt=50.00> - - - -CHECKING LAST USES for BB42, liveout={} -============================== -use: {} -def: {} - -Linear scan intervals BEFORE VALIDATING INTERVALS: -Interval 0: (V00) byref RefPositions {#1@0 #25@45 #56@105 #66@131} physReg:rcx Preferences=[rbx rbp rsi rdi r12-r15] Aversions=[rax rcx rdx r8-r11] -Interval 1: (V01) long RefPositions {#2@0 #29@49 #58@105 #67@131} physReg:rdx Preferences=[rbx rbp rsi rdi r12-r15] Aversions=[rax rcx rdx r8-r11] -Interval 2: (V02) int RefPositions {#0@0 #4@9 #22@35 #33@53 #44@63 #50@77 #52@89 #55@92 #64@127 #65@131} physReg:r8 Preferences=[rbx rbp rsi rdi r12-r15] Aversions=[rax rcx rdx r8-r11] RelatedInterval -Interval 3: (V04) long RefPositions {#49@70 #57@105 #60@117 #63@120 #69@137} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval -Interval 4: (V34) int RefPositions {#70@138 #72@141} physReg:NA Preferences=[rax] Aversions=[allMask] -Interval 5: ref (constant) RefPositions {#6@18 #8@19} physReg:NA Preferences=[rcx] Aversions=[allMask] -Interval 6: ref RefPositions {#10@20 #17@25} physReg:NA Preferences=[rcx] Aversions=[allMask] -Interval 7: ref (constant) RefPositions {#11@22 #13@23} physReg:NA Preferences=[rdx] Aversions=[allMask] -Interval 8: ref RefPositions {#15@24 #19@25} physReg:NA Preferences=[rdx] Aversions=[allMask] -Interval 9: byref RefPositions {#27@46 #37@55} physReg:NA Preferences=[rcx] Aversions=[allMask] -Interval 10: long RefPositions {#31@50 #39@55} physReg:NA Preferences=[rdx] Aversions=[allMask] -Interval 11: int RefPositions {#35@54 #41@55} physReg:NA Preferences=[r8] Aversions=[allMask] -Interval 12: long RefPositions {#45@64 #46@67} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval -Interval 13: long RefPositions {#47@68 #48@69} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval -Interval 14: int RefPositions {#53@90 #54@91} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval -Interval 15: long RefPositions {#61@118 #62@119} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval -Interval 16: int (constant) RefPositions {#74@146 #76@147} physReg:NA Preferences=[rax] Aversions=[allMask] - ------------- -REFPOSITIONS BEFORE VALIDATING INTERVALS: ------------- - BB00 regmask=[r8] minReg=1 fixed regOptional wt=100.00> - BB00 regmask=[rcx] minReg=1 fixed regOptional wt=100.00> - BB00 regmask=[rdx] minReg=1 fixed regOptional wt=100.00> - - LCL_VAR BB01 regmask=[allInt] minReg=1 regOptional wt=1800.00> - - CNS_INT BB52 regmask=[rcx] minReg=1 wt=200.00> - BB52 regmask=[rcx] minReg=1 wt=50.00> - BB52 regmask=[rcx] minReg=1 last fixed wt=50.00> - BB52 regmask=[rcx] minReg=1 wt=50.00> - PUTARG_REG BB52 regmask=[rcx] minReg=1 fixed wt=200.00> - CNS_INT BB52 regmask=[rdx] minReg=1 wt=200.00> - BB52 regmask=[rdx] minReg=1 wt=50.00> - BB52 regmask=[rdx] minReg=1 last fixed wt=50.00> - BB52 regmask=[rdx] minReg=1 wt=50.00> - PUTARG_REG BB52 regmask=[rdx] minReg=1 fixed wt=200.00> - BB52 regmask=[rcx] minReg=1 wt=50.00> - BB52 regmask=[rcx] minReg=1 last fixed wt=50.00> - BB52 regmask=[rdx] minReg=1 wt=50.00> - BB52 regmask=[rdx] minReg=1 last fixed wt=50.00> - - - LCL_VAR BB57 regmask=[allInt] minReg=1 regOptional wt=1800.00> - - BB43 regmask=[rcx] minReg=1 wt=50.00> - LCL_VAR BB43 regmask=[rcx] minReg=1 last fixed wt=650.00> - BB43 regmask=[rcx] minReg=1 wt=50.00> - PUTARG_REG BB43 regmask=[rcx] minReg=1 fixed wt=200.00> - BB43 regmask=[rdx] minReg=1 wt=50.00> - LCL_VAR BB43 regmask=[rdx] minReg=1 last fixed wt=650.00> - BB43 regmask=[rdx] minReg=1 wt=50.00> - PUTARG_REG BB43 regmask=[rdx] minReg=1 fixed wt=200.00> - BB43 regmask=[r8] minReg=1 wt=50.00> - LCL_VAR BB43 regmask=[r8] minReg=1 last fixed wt=1800.00> - BB43 regmask=[r8] minReg=1 wt=50.00> - PUTARG_REG BB43 regmask=[r8] minReg=1 fixed wt=200.00> - BB43 regmask=[rcx] minReg=1 wt=50.00> - BB43 regmask=[rcx] minReg=1 last fixed wt=50.00> - BB43 regmask=[rdx] minReg=1 wt=50.00> - BB43 regmask=[rdx] minReg=1 last fixed wt=50.00> - BB43 regmask=[r8] minReg=1 wt=50.00> - BB43 regmask=[r8] minReg=1 last fixed wt=50.00> - - - LCL_VAR BB09 regmask=[allInt] minReg=1 regOptional wt=1800.00> - CAST BB09 regmask=[allInt] minReg=1 wt=300.00> - BB09 regmask=[allInt] minReg=1 last wt=75.00> - ADD BB09 regmask=[allInt] minReg=1 wt=300.00> - BB09 regmask=[allInt] minReg=1 last wt=75.00> - STORE_LCL_VAR BB09 regmask=[allInt] minReg=1 wt=1325.00> - LCL_VAR BB09 regmask=[allInt] minReg=1 regOptional wt=1800.00> - - LCL_VAR BB66 regmask=[allInt] minReg=1 last wt=1800.00> - ADD BB66 regmask=[allInt] minReg=1 wt=1600.00> - BB66 regmask=[allInt] minReg=1 last wt=400.00> - STORE_LCL_VAR BB66 regmask=[allInt] minReg=1 wt=1800.00> - LCL_VAR BB66 regmask=[allInt] minReg=1 wt=650.00> - LCL_VAR BB66 regmask=[allInt] minReg=1 wt=1325.00> - LCL_VAR BB66 regmask=[allInt] minReg=1 wt=650.00> - - LCL_VAR BB40 regmask=[allInt] minReg=1 last wt=1325.00> - ADD BB40 regmask=[allInt] minReg=1 wt=1600.00> - BB40 regmask=[allInt] minReg=1 last wt=400.00> - STORE_LCL_VAR BB40 regmask=[allInt] minReg=1 wt=1325.00> - LCL_VAR BB40 regmask=[allInt] minReg=1 regOptional wt=1800.00> - BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> - BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> - BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> - - LCL_VAR BB62 regmask=[allInt] minReg=1 last wt=1325.00> - STORE_LCL_VAR BB62 regmask=[allInt] minReg=1 wt=200.00> - BB62 regmask=[rax] minReg=1 wt=50.00> - LCL_VAR BB62 regmask=[rax] minReg=1 last fixed wt=200.00> - - CNS_INT BB42 regmask=[rax] minReg=1 wt=200.00> - BB42 regmask=[rax] minReg=1 wt=50.00> - BB42 regmask=[rax] minReg=1 last fixed wt=50.00> - ------------- -REFPOSITIONS DURING VALIDATE INTERVALS (RefPositions per interval) ------------- - ------------------ - BB00 regmask=[r8] minReg=1 fixed regOptional wt=100.00> - LCL_VAR BB01 regmask=[allInt] minReg=1 regOptional wt=1800.00> - LCL_VAR BB57 regmask=[allInt] minReg=1 regOptional wt=1800.00> - LCL_VAR BB43 regmask=[r8] minReg=1 last fixed wt=1800.00> - LCL_VAR BB09 regmask=[allInt] minReg=1 regOptional wt=1800.00> - LCL_VAR BB09 regmask=[allInt] minReg=1 regOptional wt=1800.00> - LCL_VAR BB66 regmask=[allInt] minReg=1 last wt=1800.00> - STORE_LCL_VAR BB66 regmask=[allInt] minReg=1 wt=1800.00> - LCL_VAR BB40 regmask=[allInt] minReg=1 regOptional wt=1800.00> - BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> ------------------ - STORE_LCL_VAR BB09 regmask=[allInt] minReg=1 wt=1325.00> - LCL_VAR BB66 regmask=[allInt] minReg=1 wt=1325.00> - LCL_VAR BB40 regmask=[allInt] minReg=1 last wt=1325.00> - STORE_LCL_VAR BB40 regmask=[allInt] minReg=1 wt=1325.00> - LCL_VAR BB62 regmask=[allInt] minReg=1 last wt=1325.00> ------------------ - BB00 regmask=[rcx] minReg=1 fixed regOptional wt=100.00> - LCL_VAR BB43 regmask=[rcx] minReg=1 last fixed wt=650.00> - LCL_VAR BB66 regmask=[allInt] minReg=1 wt=650.00> - BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> ------------------ - BB00 regmask=[rdx] minReg=1 fixed regOptional wt=100.00> - LCL_VAR BB43 regmask=[rdx] minReg=1 last fixed wt=650.00> - LCL_VAR BB66 regmask=[allInt] minReg=1 wt=650.00> - BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> ------------------ - STORE_LCL_VAR BB62 regmask=[allInt] minReg=1 wt=200.00> - LCL_VAR BB62 regmask=[rax] minReg=1 last fixed wt=200.00> -TUPLE STYLE DUMP WITH REF POSITIONS -Incoming Parameters: V02 V00 V01 -BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} -===== - N003. IL_OFFSET INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - N005. V02(L2) - N007. CNS_INT 0 - N009. CMP - Use:(#4) - N011. JCC cond=SGE - -BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} -===== - N015. IL_OFFSET INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - N017. CNS_INT(h) - Def:(#6) - N019. PUTARG_REG - Use:(#8) Fixed:rcx(#7) * - Def:(#10) rcx - N021. CNS_INT(h) - Def:(#11) - N023. PUTARG_REG - Use:(#13) Fixed:rdx(#12) * - Def:(#15) rdx - N025. CALL - Use:(#17) Fixed:rcx(#16) * - Use:(#19) Fixed:rdx(#18) * - Kill: [rax rcx rdx r8-r11] - -BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} -===== - N029. IL_OFFSET INLRT @ 0x05D[E--] - N031. V02(L2) - N033. CNS_INT 2 vector element count - N035. CMP - Use:(#22) - N037. JCC cond=SGE - -BB43 [0042] [2EB..324) (return), preds={BB57} succs={} -===== - N041. IL_OFFSET INLRT @ 0x31B[E--] - N043. V00(L0) - N045. PUTARG_REG - Use:(#25) Fixed:rcx(#24) * - Def:(#27) rcx - N047. V01(L1) - N049. PUTARG_REG - Use:(#29) Fixed:rdx(#28) * - Def:(#31) rdx - N051. V02(L2) - N053. PUTARG_REG - Use:(#33) Fixed:r8(#32) * - Def:(#35) r8 - N055. CALL - Use:(#37) Fixed:rcx(#36) * - Use:(#39) Fixed:rdx(#38) * - Use:(#41) Fixed:r8(#40) * - Kill: [rax rcx rdx r8-r11] - -BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} -===== - N059. IL_OFFSET INLRT @ 0x068[E--] - N061. V02(L2) - N063. CAST - Use:(#44) - Def:(#45) Pref: - N065. CNS_INT -1 - N067. ADD - Use:(#46) * - Def:(#47) Pref: - N069. V04(L3) - Use:(#48) * - Def:(#49) Pref: - N071. IL_OFFSET INLRT @ 0x2E5[E--] - N073. V02(L2) - N075. CNS_INT 0 - N077. CMP - Use:(#50) - N079. JCC cond=SLE - -BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} -===== - N083. IL_OFFSET INLRT @ 0x2B3[E--] - N085. V02(L2) - N087. CNS_INT -1 - N089. ADD - Use:(#52) * - Def:(#53) Pref: - N091. V02(L2) - Use:(#54) * - Def:(#55) Pref: - N093. IL_OFFSET INLRT @ 0x2B8[E--] - N095. V00(L0) - N097. V04(L3) - N099. LEA(b+(i*8)+0) - N101. IND - N103. V01(L1) - N105. CMP - Use:(#56) - Use:(#57) - Use:(#58) - N107. JCC cond=UEQ - -BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} -===== - N111. IL_OFFSET INLRT @ 0x2E0[E--] - N113. V04(L3) - N115. CNS_INT -1 - N117. ADD - Use:(#60) * - Def:(#61) Pref: - N119. V04(L3) - Use:(#62) * - Def:(#63) Pref: - N121. IL_OFFSET INLRT @ 0x2E5[E--] - N123. V02(L2) - N125. CNS_INT 0 - N127. CMP - Use:(#64) - N129. JCC cond=SGT - - Exposed use of V02 at #65 - Exposed use of V00 at #66 - Exposed use of V01 at #67 -BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} -===== - N133. IL_OFFSET INLRT @ 0x09D[E--] - N135. V04(L3) - N137. V34(L4) - Use:(#69) * - Def:(#70) - N139. V34(L4) - N141. RETURN - Use:(#72) Fixed:rax(#71) * - -BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} -===== - N145. CNS_INT -1 - Def:(#74) - N147. RETURN - Use:(#76) Fixed:rax(#75) * - - - - -Linear scan intervals after buildIntervals: -Interval 0: (V00) byref RefPositions {#1@0 #25@45 #56@105 #66@131} physReg:rcx Preferences=[rbx rbp rsi rdi r12-r15] Aversions=[rax rcx rdx r8-r11] -Interval 1: (V01) long RefPositions {#2@0 #29@49 #58@105 #67@131} physReg:rdx Preferences=[rbx rbp rsi rdi r12-r15] Aversions=[rax rcx rdx r8-r11] -Interval 2: (V02) int RefPositions {#0@0 #4@9 #22@35 #33@53 #44@63 #50@77 #52@89 #55@92 #64@127 #65@131} physReg:r8 Preferences=[rbx rbp rsi rdi r12-r15] Aversions=[rax rcx rdx r8-r11] RelatedInterval -Interval 3: (V04) long RefPositions {#49@70 #57@105 #60@117 #63@120 #69@137} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval -Interval 4: (V34) int RefPositions {#70@138 #72@141} physReg:NA Preferences=[rax] Aversions=[allMask] -Interval 5: ref (constant) RefPositions {#6@18 #8@19} physReg:NA Preferences=[rcx] Aversions=[allMask] -Interval 6: ref RefPositions {#10@20 #17@25} physReg:NA Preferences=[rcx] Aversions=[allMask] -Interval 7: ref (constant) RefPositions {#11@22 #13@23} physReg:NA Preferences=[rdx] Aversions=[allMask] -Interval 8: ref RefPositions {#15@24 #19@25} physReg:NA Preferences=[rdx] Aversions=[allMask] -Interval 9: byref RefPositions {#27@46 #37@55} physReg:NA Preferences=[rcx] Aversions=[allMask] -Interval 10: long RefPositions {#31@50 #39@55} physReg:NA Preferences=[rdx] Aversions=[allMask] -Interval 11: int RefPositions {#35@54 #41@55} physReg:NA Preferences=[r8] Aversions=[allMask] -Interval 12: long RefPositions {#45@64 #46@67} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval -Interval 13: long RefPositions {#47@68 #48@69} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval -Interval 14: int RefPositions {#53@90 #54@91} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval -Interval 15: long RefPositions {#61@118 #62@119} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval -Interval 16: int (constant) RefPositions {#74@146 #76@147} physReg:NA Preferences=[rax] Aversions=[allMask] - -*************** In LinearScan::allocateRegisters() - -Linear scan intervals before allocateRegisters: -Interval 0: (V00) byref RefPositions {#1@0 #25@45 #56@105 #66@131} physReg:rcx Preferences=[rbx rbp rsi rdi r12-r15] Aversions=[rax rcx rdx r8-r11] -Interval 1: (V01) long RefPositions {#2@0 #29@49 #58@105 #67@131} physReg:rdx Preferences=[rbx rbp rsi rdi r12-r15] Aversions=[rax rcx rdx r8-r11] -Interval 2: (V02) int RefPositions {#0@0 #4@9 #22@35 #33@53 #44@63 #50@77 #52@89 #55@92 #64@127 #65@131} physReg:r8 Preferences=[rbx rbp rsi rdi r12-r15] Aversions=[rax rcx rdx r8-r11] RelatedInterval -Interval 3: (V04) long RefPositions {#49@70 #57@105 #60@117 #63@120 #69@137} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval -Interval 4: (V34) int RefPositions {#70@138 #72@141} physReg:NA Preferences=[rax] Aversions=[allMask] -Interval 5: ref (constant) RefPositions {#6@18 #8@19} physReg:NA Preferences=[rcx] Aversions=[allMask] -Interval 6: ref RefPositions {#10@20 #17@25} physReg:NA Preferences=[rcx] Aversions=[allMask] -Interval 7: ref (constant) RefPositions {#11@22 #13@23} physReg:NA Preferences=[rdx] Aversions=[allMask] -Interval 8: ref RefPositions {#15@24 #19@25} physReg:NA Preferences=[rdx] Aversions=[allMask] -Interval 9: byref RefPositions {#27@46 #37@55} physReg:NA Preferences=[rcx] Aversions=[allMask] -Interval 10: long RefPositions {#31@50 #39@55} physReg:NA Preferences=[rdx] Aversions=[allMask] -Interval 11: int RefPositions {#35@54 #41@55} physReg:NA Preferences=[r8] Aversions=[allMask] -Interval 12: long RefPositions {#45@64 #46@67} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval -Interval 13: long RefPositions {#47@68 #48@69} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval -Interval 14: int RefPositions {#53@90 #54@91} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval -Interval 15: long RefPositions {#61@118 #62@119} physReg:NA Preferences=[allInt] Aversions=[allMask] RelatedInterval -Interval 16: int (constant) RefPositions {#74@146 #76@147} physReg:NA Preferences=[rax] Aversions=[allMask] - ------------- -REFPOSITIONS BEFORE ALLOCATION: ------------- - BB00 regmask=[r8] minReg=1 fixed regOptional wt=100.00> - BB00 regmask=[rcx] minReg=1 fixed regOptional wt=100.00> - BB00 regmask=[rdx] minReg=1 fixed regOptional wt=100.00> - - LCL_VAR BB01 regmask=[allInt] minReg=1 regOptional wt=1800.00> - - CNS_INT BB52 regmask=[rcx] minReg=1 wt=200.00> - BB52 regmask=[rcx] minReg=1 wt=50.00> - BB52 regmask=[rcx] minReg=1 last fixed wt=50.00> - BB52 regmask=[rcx] minReg=1 wt=50.00> - PUTARG_REG BB52 regmask=[rcx] minReg=1 fixed wt=200.00> - CNS_INT BB52 regmask=[rdx] minReg=1 wt=200.00> - BB52 regmask=[rdx] minReg=1 wt=50.00> - BB52 regmask=[rdx] minReg=1 last fixed wt=50.00> - BB52 regmask=[rdx] minReg=1 wt=50.00> - PUTARG_REG BB52 regmask=[rdx] minReg=1 fixed wt=200.00> - BB52 regmask=[rcx] minReg=1 wt=50.00> - BB52 regmask=[rcx] minReg=1 last fixed wt=50.00> - BB52 regmask=[rdx] minReg=1 wt=50.00> - BB52 regmask=[rdx] minReg=1 last fixed wt=50.00> - - - LCL_VAR BB57 regmask=[allInt] minReg=1 regOptional wt=1800.00> - - BB43 regmask=[rcx] minReg=1 wt=50.00> - LCL_VAR BB43 regmask=[rcx] minReg=1 last fixed wt=650.00> - BB43 regmask=[rcx] minReg=1 wt=50.00> - PUTARG_REG BB43 regmask=[rcx] minReg=1 fixed wt=200.00> - BB43 regmask=[rdx] minReg=1 wt=50.00> - LCL_VAR BB43 regmask=[rdx] minReg=1 last fixed wt=650.00> - BB43 regmask=[rdx] minReg=1 wt=50.00> - PUTARG_REG BB43 regmask=[rdx] minReg=1 fixed wt=200.00> - BB43 regmask=[r8] minReg=1 wt=50.00> - LCL_VAR BB43 regmask=[r8] minReg=1 last fixed wt=1800.00> - BB43 regmask=[r8] minReg=1 wt=50.00> - PUTARG_REG BB43 regmask=[r8] minReg=1 fixed wt=200.00> - BB43 regmask=[rcx] minReg=1 wt=50.00> - BB43 regmask=[rcx] minReg=1 last fixed wt=50.00> - BB43 regmask=[rdx] minReg=1 wt=50.00> - BB43 regmask=[rdx] minReg=1 last fixed wt=50.00> - BB43 regmask=[r8] minReg=1 wt=50.00> - BB43 regmask=[r8] minReg=1 last fixed wt=50.00> - - - LCL_VAR BB09 regmask=[allInt] minReg=1 regOptional wt=1800.00> - CAST BB09 regmask=[allInt] minReg=1 wt=300.00> - BB09 regmask=[allInt] minReg=1 last wt=75.00> - ADD BB09 regmask=[allInt] minReg=1 wt=300.00> - BB09 regmask=[allInt] minReg=1 last wt=75.00> - STORE_LCL_VAR BB09 regmask=[allInt] minReg=1 wt=1325.00> - LCL_VAR BB09 regmask=[allInt] minReg=1 regOptional wt=1800.00> - - LCL_VAR BB66 regmask=[allInt] minReg=1 last wt=1800.00> - ADD BB66 regmask=[allInt] minReg=1 wt=1600.00> - BB66 regmask=[allInt] minReg=1 last wt=400.00> - STORE_LCL_VAR BB66 regmask=[allInt] minReg=1 wt=1800.00> - LCL_VAR BB66 regmask=[allInt] minReg=1 wt=650.00> - LCL_VAR BB66 regmask=[allInt] minReg=1 wt=1325.00> - LCL_VAR BB66 regmask=[allInt] minReg=1 wt=650.00> - - LCL_VAR BB40 regmask=[allInt] minReg=1 last wt=1325.00> - ADD BB40 regmask=[allInt] minReg=1 wt=1600.00> - BB40 regmask=[allInt] minReg=1 last wt=400.00> - STORE_LCL_VAR BB40 regmask=[allInt] minReg=1 wt=1325.00> - LCL_VAR BB40 regmask=[allInt] minReg=1 regOptional wt=1800.00> - BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> - BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> - BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> - - LCL_VAR BB62 regmask=[allInt] minReg=1 last wt=1325.00> - STORE_LCL_VAR BB62 regmask=[allInt] minReg=1 wt=200.00> - BB62 regmask=[rax] minReg=1 wt=50.00> - LCL_VAR BB62 regmask=[rax] minReg=1 last fixed wt=200.00> - - CNS_INT BB42 regmask=[rax] minReg=1 wt=200.00> - BB42 regmask=[rax] minReg=1 wt=50.00> - BB42 regmask=[rax] minReg=1 last fixed wt=50.00> - -VAR REFPOSITIONS BEFORE ALLOCATION ---- V00 (Interval 0) - BB00 regmask=[rcx] minReg=1 fixed regOptional wt=100.00> - LCL_VAR BB43 regmask=[rcx] minReg=1 last fixed wt=650.00> - LCL_VAR BB66 regmask=[allInt] minReg=1 wt=650.00> - BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> ---- V01 (Interval 1) - BB00 regmask=[rdx] minReg=1 fixed regOptional wt=100.00> - LCL_VAR BB43 regmask=[rdx] minReg=1 last fixed wt=650.00> - LCL_VAR BB66 regmask=[allInt] minReg=1 wt=650.00> - BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> ---- V02 (Interval 2) - BB00 regmask=[r8] minReg=1 fixed regOptional wt=100.00> - LCL_VAR BB01 regmask=[allInt] minReg=1 regOptional wt=1800.00> - LCL_VAR BB57 regmask=[allInt] minReg=1 regOptional wt=1800.00> - LCL_VAR BB43 regmask=[r8] minReg=1 last fixed wt=1800.00> - LCL_VAR BB09 regmask=[allInt] minReg=1 regOptional wt=1800.00> - LCL_VAR BB09 regmask=[allInt] minReg=1 regOptional wt=1800.00> - LCL_VAR BB66 regmask=[allInt] minReg=1 last wt=1800.00> - STORE_LCL_VAR BB66 regmask=[allInt] minReg=1 wt=1800.00> - LCL_VAR BB40 regmask=[allInt] minReg=1 regOptional wt=1800.00> - BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> ---- V03 ---- V04 (Interval 3) - STORE_LCL_VAR BB09 regmask=[allInt] minReg=1 wt=1325.00> - LCL_VAR BB66 regmask=[allInt] minReg=1 wt=1325.00> - LCL_VAR BB40 regmask=[allInt] minReg=1 last wt=1325.00> - STORE_LCL_VAR BB40 regmask=[allInt] minReg=1 wt=1325.00> - LCL_VAR BB62 regmask=[allInt] minReg=1 last wt=1325.00> ---- V05 ---- V06 ---- V07 ---- V08 ---- V09 ---- V10 ---- V11 ---- V12 ---- V13 ---- V14 ---- V15 ---- V16 ---- V17 ---- V18 ---- V19 ---- V20 ---- V21 ---- V22 ---- V23 ---- V24 ---- V25 ---- V26 ---- V27 ---- V28 ---- V29 ---- V30 ---- V31 ---- V32 ---- V33 ---- V34 (Interval 4) - STORE_LCL_VAR BB62 regmask=[allInt] minReg=1 wt=200.00> - LCL_VAR BB62 regmask=[rax] minReg=1 last fixed wt=200.00> - - - -Allocating Registers --------------------- -The following table has one or more rows for each RefPosition that is handled during allocation. -The columns are: (1) Loc: LSRA location, (2) RP#: RefPosition number, (3) Name, (4) Type (e.g. Def, Use, -Fixd, Parm, DDef (Dummy Def), ExpU (Exposed Use), Kill) followed by a '*' if it is a last use, and a 'D' -if it is delayRegFree, (5) Action taken during allocation. Some actions include (a) Alloc a new register, -(b) Keep an existing register, (c) Spill a register, (d) ReLod (Reload) a register. If an ALL-CAPS name -such as COVRS is displayed, it is a score name from lsra_score.h, with a trailing '(A)' indicating alloc, -'(C)' indicating copy, and '(R)' indicating re-use. See dumpLsraAllocationEvent() for details. -The subsequent columns show the Interval occupying each register, if any, followed by 'a' if it is -active, 'p' if it is a large vector that has been partially spilled, and 'i' if it is inactive. -Columns are only printed up to the last modified register, which may increase during allocation, -in which case additional columns will appear. Registers which are not marked modified have ---- in -their column. - --------------------------------------------+----+----+----+----+----+----+----+----+----+ -TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | --------------------------------------------+----+----+----+----+----+----+----+----+----+ - | |V00a|V01a| | | | |V02a| | - 0.#0 V02 Parm ORDER(A) rbx | |V00a|V01a|V02a| | | | | | - 0.#1 V00 Parm ORDER(A) rsi | | |V01a|V02a| |V00a| | | | - 0.#2 V01 Parm ORDER(A) rdi | | | |V02a| |V00a|V01a| | | - 1.#3 BB1 PredBB0 | | | |V02a| |V00a|V01a| | | -[000002] 9.#4 V02 Use Keep rbx | | | |V02a| |V00a|V01a| | | --------------------------------------------+----+----+----+----+----+----+----+----+----+ -TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | --------------------------------------------+----+----+----+----+----+----+----+----+----+ - 13.#5 BB52 PredBB1 | | | |V02a| |V00a|V01a| | | -[000497] 18.#6 C5 Def Alloc rcx | |C5 a| |V02a| |V00a|V01a| | | -[000611] 19.#7 rcx Fixd Keep rcx | |C5 a| |V02a| |V00a|V01a| | | - 19.#8 C5 Use * Keep rcx | |C5 a| |V02a| |V00a|V01a| | | - 20.#9 rcx Fixd Keep rcx | | | |V02a| |V00a|V01a| | | - 20.#10 I6 Def Alloc rcx | |I6 a| |V02a| |V00a|V01a| | | -[000498] 22.#11 C7 Def Alloc rdx | |I6 a|C7 a|V02a| |V00a|V01a| | | -[000612] 23.#12 rdx Fixd Keep rdx | |I6 a|C7 a|V02a| |V00a|V01a| | | - 23.#13 C7 Use * Keep rdx | |I6 a|C7 a|V02a| |V00a|V01a| | | - 24.#14 rdx Fixd Keep rdx | |I6 a| |V02a| |V00a|V01a| | | - 24.#15 I8 Def Alloc rdx | |I6 a|I8 a|V02a| |V00a|V01a| | | -[000387] 25.#16 rcx Fixd Keep rcx | |I6 a|I8 a|V02a| |V00a|V01a| | | - 25.#17 I6 Use * Keep rcx | |I6 a|I8 a|V02a| |V00a|V01a| | | - 25.#18 rdx Fixd Keep rdx | |I6 a|I8 a|V02a| |V00a|V01a| | | - 25.#19 I8 Use * Keep rdx | |I6 a|I8 a|V02a| |V00a|V01a| | | - 26.#20 Kill None [rax rcx rdx r8-r11] - | | | |V02a| |V00a|V01a| | | --------------------------------------------+----+----+----+----+----+----+----+----+----+ -TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | --------------------------------------------+----+----+----+----+----+----+----+----+----+ - 27.#21 BB57 PredBB1 | | | |V02a| |V00a|V01a| | | -[000033] 35.#22 V02 Use Keep rbx | | | |V02a| |V00a|V01a| | | --------------------------------------------+----+----+----+----+----+----+----+----+----+ -TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | --------------------------------------------+----+----+----+----+----+----+----+----+----+ - 39.#23 BB43 PredBB57 | | | |V02a| |V00a|V01a| | | -[000613] 45.#24 rcx Fixd Keep rcx | | | |V02a| |V00a|V01a| | | - 45.#25 V00 Use * Copy rcx | |V00a| |V02a| |V00a|V01a| | | - 46.#26 rcx Fixd Keep rcx | |V00i| |V02a| |V00i|V01a| | | - 46.#27 I9 Def Alloc rcx | |I9 a| |V02a| |V00i|V01a| | | -[000614] 49.#28 rdx Fixd Keep rdx | |I9 a| |V02a| |V00i|V01a| | | - 49.#29 V01 Use * Copy rdx | |I9 a|V01a|V02a| |V00i|V01a| | | - 50.#30 rdx Fixd Keep rdx | |I9 a|V01i|V02a| |V00i|V01i| | | - 50.#31 I10 Def Alloc rdx | |I9 a|I10a|V02a| |V00i|V01i| | | -[000615] 53.#32 r8 Fixd Keep r8 | |I9 a|I10a|V02a| |V00i|V01i| | | - 53.#33 V02 Use * Copy r8 | |I9 a|I10a|V02a| |V00i|V01i|V02a| | - 54.#34 r8 Fixd Keep r8 | |I9 a|I10a|V02i| |V00i|V01i|V02i| | - 54.#35 I11 Def Alloc r8 | |I9 a|I10a|V02i| |V00i|V01i|I11a| | -[000044] 55.#36 rcx Fixd Keep rcx | |I9 a|I10a|V02i| |V00i|V01i|I11a| | - 55.#37 I9 Use * Keep rcx | |I9 a|I10a|V02i| |V00i|V01i|I11a| | - 55.#38 rdx Fixd Keep rdx | |I9 a|I10a|V02i| |V00i|V01i|I11a| | - 55.#39 I10 Use * Keep rdx | |I9 a|I10a|V02i| |V00i|V01i|I11a| | - 55.#40 r8 Fixd Keep r8 | |I9 a|I10a|V02i| |V00i|V01i|I11a| | - 55.#41 I11 Use * Keep r8 | |I9 a|I10a|V02i| |V00i|V01i|I11a| | - 56.#42 Kill None [rax rcx rdx r8-r11] - | | | |V02i| |V00i|V01i| | | --------------------------------------------+----+----+----+----+----+----+----+----+----+ -TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | --------------------------------------------+----+----+----+----+----+----+----+----+----+ - 57.#43 BB9 PredBB57 | | | |V02a| |V00a|V01a| | | -[000047] 63.#44 V02 Use Keep rbx | | | |V02a| |V00a|V01a| | | - 64.#45 I12 Def BSFIT(A) rax |I12a| | |V02a| |V00a|V01a| | | -[000050] 67.#46 I12 Use * Keep rax |I12a| | |V02a| |V00a|V01a| | | - 68.#47 I13 Def COVRS(A) rax |I13a| | |V02a| |V00a|V01a| | | -[000051] 69.#48 I13 Use * Keep rax |I13a| | |V02a| |V00a|V01a| | | - 70.#49 V04 Def COVRS(A) rax |V04a| | |V02a| |V00a|V01a| | | -[000532] 77.#50 V02 Use Keep rbx |V04a| | |V02a| |V00a|V01a| | | --------------------------------------------+----+----+----+----+----+----+----+----+----+ -TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | --------------------------------------------+----+----+----+----+----+----+----+----+----+ - 81.#51 BB66 PredBB9 |V04a| | |V02a| |V00a|V01a| | | -[000253] 89.#52 V02 Use * Keep rbx |V04a| | |V02i| |V00a|V01a| | | - 90.#53 I14 Def COVRS(A) rbx |V04a| | |I14a| |V00a|V01a| | | -[000254] 91.#54 I14 Use * Keep rbx |V04a| | |I14a| |V00a|V01a| | | - Restr rbx |V04a| | |V02i| |V00a|V01a| | | - 92.#55 V02 Def THISA(A) rbx |V04a| | |V02a| |V00a|V01a| | | -[000485] 105.#56 V00 Use Keep rsi |V04a| | |V02a| |V00a|V01a| | | - 105.#57 V04 Use Keep rax |V04a| | |V02a| |V00a|V01a| | | - 105.#58 V01 Use Keep rdi |V04a| | |V02a| |V00a|V01a| | | --------------------------------------------+----+----+----+----+----+----+----+----+----+ -TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | --------------------------------------------+----+----+----+----+----+----+----+----+----+ - 109.#59 BB40 PredBB66 |V04a| | |V02a| |V00a|V01a| | | -[000272] 117.#60 V04 Use * Keep rax |V04i| | |V02a| |V00a|V01a| | | - 118.#61 I15 Def COVRS(A) rax |I15a| | |V02a| |V00a|V01a| | | -[000273] 119.#62 I15 Use * Keep rax |I15a| | |V02a| |V00a|V01a| | | - Restr rax |V04i| | |V02a| |V00a|V01a| | | - 120.#63 V04 Def THISA(A) rax |V04a| | |V02a| |V00a|V01a| | | -[000249] 127.#64 V02 Use Keep rbx |V04a| | |V02a| |V00a|V01a| | | -[000250] 131.#65 V02 ExpU Keep NA |V04a| | |V02a| |V00a|V01a| | | - 131.#66 V00 ExpU Keep NA |V04a| | |V02a| |V00a|V01a| | | - 131.#67 V01 ExpU Keep NA |V04a| | |V02a| |V00a|V01a| | | --------------------------------------------+----+----+----+----+----+----+----+----+----+ -TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | --------------------------------------------+----+----+----+----+----+----+----+----+----+ - 131.#68 BB62 PredBB66 |V04a| | | | | | | | | -[000521] 137.#69 V04 Use * Keep rax |V04a| | | | | | | | | - 138.#70 V34 Def COVRS(A) rax |V34a| | | | | | | | | -[000492] 141.#71 rax Fixd Keep rax |V34a| | | | | | | | | - 141.#72 V34 Use * Keep rax |V34a| | | | | | | | | --------------------------------------------+----+----+----+----+----+----+----+----+----+ -TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | --------------------------------------------+----+----+----+----+----+----+----+----+----+ - 143.#73 BB42 PredBB40 | | | | | | | | | | -[000277] 146.#74 C16 Def Alloc rax |C16a| | | | | | | | | -[000493] 147.#75 rax Fixd Keep rax |C16a| | | | | | | | | - 147.#76 C16 Use * Keep rax |C16i| | | | | | | | | - ------------- -REFPOSITIONS AFTER ALLOCATION: ------------- - BB00 regmask=[rbx] minReg=1 regOptional wt=100.00> - BB00 regmask=[rsi] minReg=1 regOptional wt=100.00> - BB00 regmask=[rdi] minReg=1 regOptional wt=100.00> - - LCL_VAR BB01 regmask=[rbx] minReg=1 regOptional wt=1800.00> - - CNS_INT BB52 regmask=[rcx] minReg=1 wt=200.00> - BB52 regmask=[rcx] minReg=1 wt=50.00> - BB52 regmask=[rcx] minReg=1 last fixed wt=50.00> - BB52 regmask=[rcx] minReg=1 wt=50.00> - PUTARG_REG BB52 regmask=[rcx] minReg=1 fixed wt=200.00> - CNS_INT BB52 regmask=[rdx] minReg=1 wt=200.00> - BB52 regmask=[rdx] minReg=1 wt=50.00> - BB52 regmask=[rdx] minReg=1 last fixed wt=50.00> - BB52 regmask=[rdx] minReg=1 wt=50.00> - PUTARG_REG BB52 regmask=[rdx] minReg=1 fixed wt=200.00> - BB52 regmask=[rcx] minReg=1 wt=50.00> - BB52 regmask=[rcx] minReg=1 last fixed wt=50.00> - BB52 regmask=[rdx] minReg=1 wt=50.00> - BB52 regmask=[rdx] minReg=1 last fixed wt=50.00> - - - LCL_VAR BB57 regmask=[rbx] minReg=1 regOptional wt=1800.00> - - BB43 regmask=[rcx] minReg=1 wt=50.00> - LCL_VAR BB43 regmask=[rcx] minReg=1 last copy fixed wt=650.00> - BB43 regmask=[rcx] minReg=1 wt=50.00> - PUTARG_REG BB43 regmask=[rcx] minReg=1 fixed wt=200.00> - BB43 regmask=[rdx] minReg=1 wt=50.00> - LCL_VAR BB43 regmask=[rdx] minReg=1 last copy fixed wt=650.00> - BB43 regmask=[rdx] minReg=1 wt=50.00> - PUTARG_REG BB43 regmask=[rdx] minReg=1 fixed wt=200.00> - BB43 regmask=[r8] minReg=1 wt=50.00> - LCL_VAR BB43 regmask=[r8] minReg=1 last copy fixed wt=1800.00> - BB43 regmask=[r8] minReg=1 wt=50.00> - PUTARG_REG BB43 regmask=[r8] minReg=1 fixed wt=200.00> - BB43 regmask=[rcx] minReg=1 wt=50.00> - BB43 regmask=[rcx] minReg=1 last fixed wt=50.00> - BB43 regmask=[rdx] minReg=1 wt=50.00> - BB43 regmask=[rdx] minReg=1 last fixed wt=50.00> - BB43 regmask=[r8] minReg=1 wt=50.00> - BB43 regmask=[r8] minReg=1 last fixed wt=50.00> - - - LCL_VAR BB09 regmask=[rbx] minReg=1 regOptional wt=1800.00> - CAST BB09 regmask=[rax] minReg=1 wt=300.00> - BB09 regmask=[rax] minReg=1 last wt=75.00> - ADD BB09 regmask=[rax] minReg=1 wt=300.00> - BB09 regmask=[rax] minReg=1 last wt=75.00> - STORE_LCL_VAR BB09 regmask=[rax] minReg=1 wt=1325.00> - LCL_VAR BB09 regmask=[rbx] minReg=1 regOptional wt=1800.00> - - LCL_VAR BB66 regmask=[rbx] minReg=1 last wt=1800.00> - ADD BB66 regmask=[rbx] minReg=1 wt=1600.00> - BB66 regmask=[rbx] minReg=1 last wt=400.00> - STORE_LCL_VAR BB66 regmask=[rbx] minReg=1 wt=1800.00> - LCL_VAR BB66 regmask=[rsi] minReg=1 wt=650.00> - LCL_VAR BB66 regmask=[rax] minReg=1 wt=1325.00> - LCL_VAR BB66 regmask=[rdi] minReg=1 wt=650.00> - - LCL_VAR BB40 regmask=[rax] minReg=1 last wt=1325.00> - ADD BB40 regmask=[rax] minReg=1 wt=1600.00> - BB40 regmask=[rax] minReg=1 last wt=400.00> - STORE_LCL_VAR BB40 regmask=[rax] minReg=1 wt=1325.00> - LCL_VAR BB40 regmask=[rbx] minReg=1 regOptional wt=1800.00> - BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> - BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> - BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> - - LCL_VAR BB62 regmask=[rax] minReg=1 last wt=1325.00> - STORE_LCL_VAR BB62 regmask=[rax] minReg=1 wt=200.00> - BB62 regmask=[rax] minReg=1 wt=50.00> - LCL_VAR BB62 regmask=[rax] minReg=1 last fixed wt=200.00> - - CNS_INT BB42 regmask=[rax] minReg=1 wt=200.00> - BB42 regmask=[rax] minReg=1 wt=50.00> - BB42 regmask=[rax] minReg=1 last fixed wt=50.00> - -VAR REFPOSITIONS AFTER ALLOCATION ---- V00 (Interval 0) - BB00 regmask=[rsi] minReg=1 regOptional wt=100.00> - LCL_VAR BB43 regmask=[rcx] minReg=1 last copy fixed wt=650.00> - LCL_VAR BB66 regmask=[rsi] minReg=1 wt=650.00> - BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> ---- V01 (Interval 1) - BB00 regmask=[rdi] minReg=1 regOptional wt=100.00> - LCL_VAR BB43 regmask=[rdx] minReg=1 last copy fixed wt=650.00> - LCL_VAR BB66 regmask=[rdi] minReg=1 wt=650.00> - BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> ---- V02 (Interval 2) - BB00 regmask=[rbx] minReg=1 regOptional wt=100.00> - LCL_VAR BB01 regmask=[rbx] minReg=1 regOptional wt=1800.00> - LCL_VAR BB57 regmask=[rbx] minReg=1 regOptional wt=1800.00> - LCL_VAR BB43 regmask=[r8] minReg=1 last copy fixed wt=1800.00> - LCL_VAR BB09 regmask=[rbx] minReg=1 regOptional wt=1800.00> - LCL_VAR BB09 regmask=[rbx] minReg=1 regOptional wt=1800.00> - LCL_VAR BB66 regmask=[rbx] minReg=1 last wt=1800.00> - STORE_LCL_VAR BB66 regmask=[rbx] minReg=1 wt=1800.00> - LCL_VAR BB40 regmask=[rbx] minReg=1 regOptional wt=1800.00> - BB40 regmask=[allInt] minReg=1 regOptional wt=400.00> ---- V03 ---- V04 (Interval 3) - STORE_LCL_VAR BB09 regmask=[rax] minReg=1 wt=1325.00> - LCL_VAR BB66 regmask=[rax] minReg=1 wt=1325.00> - LCL_VAR BB40 regmask=[rax] minReg=1 last wt=1325.00> - STORE_LCL_VAR BB40 regmask=[rax] minReg=1 wt=1325.00> - LCL_VAR BB62 regmask=[rax] minReg=1 last wt=1325.00> ---- V05 ---- V06 ---- V07 ---- V08 ---- V09 ---- V10 ---- V11 ---- V12 ---- V13 ---- V14 ---- V15 ---- V16 ---- V17 ---- V18 ---- V19 ---- V20 ---- V21 ---- V22 ---- V23 ---- V24 ---- V25 ---- V26 ---- V27 ---- V28 ---- V29 ---- V30 ---- V31 ---- V32 ---- V33 ---- V34 (Interval 4) - STORE_LCL_VAR BB62 regmask=[rax] minReg=1 wt=200.00> - LCL_VAR BB62 regmask=[rax] minReg=1 last fixed wt=200.00> - -Active intervals at end of allocation: - ------------------------ -RESOLVING BB BOUNDARIES ------------------------ -Resolution Candidates: {V00 V01 V02 V04} -Has Critical Edges - -Prior to Resolution - -BB01 -use: {V02} -def: {} - in: {V00 V01 V02} -out: {V00 V01 V02} -Var=Reg beg of BB01: V02=rbx V00=rsi V01=rdi -Var=Reg end of BB01: V02=rbx V00=rsi V01=rdi - -BB52 -use: {} -def: {} - in: {V00 V01 V02} -out: {V00 V01 V02} -Var=Reg beg of BB52: V02=rbx V00=rsi V01=rdi -Var=Reg end of BB52: V02=rbx V00=rsi V01=rdi - -BB57 -use: {V02} -def: {} - in: {V00 V01 V02} -out: {V00 V01 V02} -Var=Reg beg of BB57: V02=rbx V00=rsi V01=rdi -Var=Reg end of BB57: V02=rbx V00=rsi V01=rdi - -BB09 -use: {V02} -def: {V04} - in: {V00 V01 V02} -out: {V00 V01 V02 V04} -Var=Reg beg of BB09: V02=rbx V00=rsi V01=rdi -Var=Reg end of BB09: V02=rbx V04=rax V00=rsi V01=rdi - -BB62 -use: {V04} -def: {V34} - in: {V04} -out: {} -Var=Reg beg of BB62: V04=rax -Var=Reg end of BB62: none - -BB40 -use: {V02 V04} -def: {V04} - in: {V00 V01 V02 V04} -out: {V00 V01 V02 V04} -Var=Reg beg of BB40: V02=rbx V04=rax V00=rsi V01=rdi -Var=Reg end of BB40: V02=rbx V04=rax V00=rsi V01=rdi - -BB66 -use: {V00 V01 V02 V04} -def: {V02} - in: {V00 V01 V02 V04} -out: {V00 V01 V02 V04} -Var=Reg beg of BB66: V02=rbx V04=rax V00=rsi V01=rdi -Var=Reg end of BB66: V02=rbx V04=rax V00=rsi V01=rdi - -BB42 -use: {} -def: {} - in: {} -out: {} -Var=Reg beg of BB42: none -Var=Reg end of BB42: none - -BB43 -use: {V00 V01 V02} -def: {} - in: {V00 V01 V02} -out: {} -Var=Reg beg of BB43: V02=rbx V00=rsi V01=rdi -Var=Reg end of BB43: none - - -RESOLVING EDGES - Set V00 argument initial register to rsi - Set V01 argument initial register to rdi - Set V02 argument initial register to rbx -Trees after linear scan register allocator (LSRA) - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i LIR -BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR -BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR -BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd -BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd -BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} -N003 (???,???) [000600] ----------- IL_OFFSET void INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA -N005 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 -N007 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 REG NA $40 - /--* t0 int - +--* t1 int -N009 ( 3, 3) [000002] -----+-N--- * CMP void REG NA -N011 ( 5, 5) [000384] -----+----- JCC void cond=SGE REG NA - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} -N015 (???,???) [000601] ----------- IL_OFFSET void INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA -N017 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref REG rcx $1c0 - /--* t497 ref -N019 (???,???) [000611] ----------- t611 = * PUTARG_REG ref REG rcx -N021 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref REG rdx $1c1 - /--* t498 ref -N023 (???,???) [000612] ----------- t612 = * PUTARG_REG ref REG rdx - /--* t611 ref arg0 rcx - +--* t612 ref arg1 rdx -N025 ( 16, 15) [000387] --CXG+----- * CALL void REG NA $VN.Void - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} -N029 (???,???) [000602] ----------- IL_OFFSET void INLRT @ 0x05D[E--] REG NA -N031 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 -N033 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count REG NA $42 - /--* t31 int - +--* t32 int -N035 ( 3, 3) [000033] -----+-N--- * CMP void REG NA -N037 ( 5, 5) [000034] -----+----- JCC void cond=SGE REG NA - ------------- BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} -N059 (???,???) [000603] ----------- IL_OFFSET void INLRT @ 0x068[E--] REG NA -N061 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 - /--* t46 int -N063 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int REG rax $240 -N065 ( 1, 1) [000049] -c---+----- t49 = CNS_INT long -1 REG NA $280 - /--* t47 long - +--* t49 long -N067 ( 4, 5) [000050] -----+----- t50 = * ADD long REG rax $241 - /--* t50 long -N069 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 rax REG rax $VN.Void -N071 (???,???) [000604] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA -N073 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 rbx REG rbx $2c2 -N075 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 REG NA $40 - /--* t533 int - +--* t534 int -N077 ( 3, 3) [000532] -------N--- * CMP void REG NA -N079 ( 5, 5) [000531] ----------- JCC void cond=SLE REG NA - ------------- BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} -N133 (???,???) [000605] ----------- IL_OFFSET void INLRT @ 0x09D[E--] REG NA -N135 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 rax (last use) REG rax $449 - /--* t240 int -N137 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 rax REG rax $VN.Void -N139 ( 1, 1) [000491] -----+-N--- t491 = LCL_VAR int V34 tmp29 u:9 rax (last use) REG rax $2c4 - /--* t491 int -N141 ( 2, 2) [000492] -----+----- * RETURN int REG NA $VN.Void - ------------- BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} -N111 (???,???) [000606] ----------- IL_OFFSET void INLRT @ 0x2E0[E--] REG NA -N113 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 rax (last use) REG rax $303 -N115 ( 1, 1) [000271] -c---+----- t271 = CNS_INT long -1 REG NA $280 - /--* t269 long - +--* t271 long -N117 ( 3, 3) [000272] -----+----- t272 = * ADD long REG rax $26b - /--* t272 long -N119 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 rax REG rax $VN.Void -N121 (???,???) [000607] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA -N123 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 rbx REG rbx $1b8 -N125 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 REG NA $40 - /--* t247 int - +--* t248 int -N127 ( 3, 3) [000249] -----+-N--- * CMP void REG NA -N129 ( 5, 5) [000250] -----+----- JCC void cond=SGT REG NA - ------------- BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} -N083 (???,???) [000608] ----------- IL_OFFSET void INLRT @ 0x2B3[E--] REG NA -N085 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 rbx (last use) REG rbx $2c3 -N087 ( 1, 1) [000252] -c---+----- t252 = CNS_INT int -1 REG NA $43 - /--* t251 int - +--* t252 int -N089 ( 3, 3) [000253] -----+----- t253 = * ADD int REG rbx $1b8 - /--* t253 int -N091 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 rbx REG rbx $VN.Void -N093 (???,???) [000609] ----------- IL_OFFSET void INLRT @ 0x2B8[E--] REG NA -N095 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 rsi REG rsi $80 -N097 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 rax REG rax $303 - /--* t255 byref - +--* t256 long -N099 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref REG NA - /--* t259 byref -N101 ( 5, 4) [000260] -c-XG+----- t260 = * IND long REG NA -N103 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 rdi REG rdi $c0 - /--* t260 long - +--* t261 long -N105 ( 7, 6) [000485] ---XG+-N--- * CMP void REG NA -N107 ( 9, 8) [000268] ---XG+----- JCC void cond=UEQ REG NA - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} -N145 ( 1, 1) [000277] -----+----- t277 = CNS_INT int -1 REG rax $43 - /--* t277 int -N147 ( 2, 2) [000493] -----+----- * RETURN int REG NA $VN.Void - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} -N041 (???,???) [000610] ----------- IL_OFFSET void INLRT @ 0x31B[E--] REG NA -N043 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 rsi (last use) REG rsi $80 - /--* t41 byref -N045 (???,???) [000613] ----------- t613 = * PUTARG_REG byref REG rcx -N047 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 rdi (last use) REG rdi $c0 - /--* t42 long -N049 (???,???) [000614] ----------- t614 = * PUTARG_REG long REG rdx -N051 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 rbx (last use) REG rbx $100 - /--* t43 int -N053 (???,???) [000615] ----------- t615 = * PUTARG_REG int REG r8 - /--* t613 byref arg0 rcx - +--* t614 long arg1 rdx - +--* t615 int arg2 r8 -N055 ( 17, 11) [000044] --CXG+----- * CALL void REG NA $VN.Void - -------------------------------------------------------------------------------------------------------------------- - -Final allocation --------------------------------------------+----+----+----+----+----+----+----+----+----+ -TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | --------------------------------------------+----+----+----+----+----+----+----+----+----+ - 0.#0 V02 Parm Alloc rbx | | | |V02a| | | | | | - 0.#1 V00 Parm Alloc rsi | | | |V02a| |V00a| | | | - 0.#2 V01 Parm Alloc rdi | | | |V02a| |V00a|V01a| | | - 1.#3 BB1 PredBB0 | | | |V02a| |V00a|V01a| | | -[000002] 9.#4 V02 Use Keep rbx | | | |V02a| |V00a|V01a| | | --------------------------------------------+----+----+----+----+----+----+----+----+----+ -TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | --------------------------------------------+----+----+----+----+----+----+----+----+----+ - 13.#5 BB52 PredBB1 | | | |V02a| |V00a|V01a| | | -[000497] 18.#6 C5 Def Alloc rcx | |C5 a| |V02a| |V00a|V01a| | | -[000611] 19.#7 rcx Fixd Keep rcx | |C5 a| |V02a| |V00a|V01a| | | - 19.#8 C5 Use * Keep rcx | |C5 i| |V02a| |V00a|V01a| | | - 20.#9 rcx Fixd Keep rcx | | | |V02a| |V00a|V01a| | | - 20.#10 I6 Def Alloc rcx | |I6 a| |V02a| |V00a|V01a| | | -[000498] 22.#11 C7 Def Alloc rdx | |I6 a|C7 a|V02a| |V00a|V01a| | | -[000612] 23.#12 rdx Fixd Keep rdx | |I6 a|C7 a|V02a| |V00a|V01a| | | - 23.#13 C7 Use * Keep rdx | |I6 a|C7 i|V02a| |V00a|V01a| | | - 24.#14 rdx Fixd Keep rdx | |I6 a| |V02a| |V00a|V01a| | | - 24.#15 I8 Def Alloc rdx | |I6 a|I8 a|V02a| |V00a|V01a| | | -[000387] 25.#16 rcx Fixd Keep rcx | |I6 a|I8 a|V02a| |V00a|V01a| | | - 25.#17 I6 Use * Keep rcx | |I6 i|I8 a|V02a| |V00a|V01a| | | - 25.#18 rdx Fixd Keep rdx | | |I8 a|V02a| |V00a|V01a| | | - 25.#19 I8 Use * Keep rdx | | |I8 i|V02a| |V00a|V01a| | | - 26.#20 Kill None [rax rcx rdx r8-r11] - | | | |V02a| |V00a|V01a| | | --------------------------------------------+----+----+----+----+----+----+----+----+----+ -TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | --------------------------------------------+----+----+----+----+----+----+----+----+----+ - 27.#21 BB57 PredBB1 | | | |V02a| |V00a|V01a| | | -[000033] 35.#22 V02 Use Keep rbx | | | |V02a| |V00a|V01a| | | --------------------------------------------+----+----+----+----+----+----+----+----+----+ -TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | --------------------------------------------+----+----+----+----+----+----+----+----+----+ - 39.#23 BB43 PredBB57 | | | |V02a| |V00a|V01a| | | -[000613] 45.#24 rcx Fixd Keep rcx | | | |V02a| |V00a|V01a| | | - 45.#25 V00 Use * Copy rcx | |V00i| |V02a| |V00i|V01a| | | - 46.#26 rcx Fixd Keep rcx | | | |V02a| | |V01a| | | - 46.#27 I9 Def Alloc rcx | |I9 a| |V02a| | |V01a| | | -[000614] 49.#28 rdx Fixd Keep rdx | |I9 a| |V02a| | |V01a| | | - 49.#29 V01 Use * Copy rdx | |I9 a|V01i|V02a| | |V01i| | | - 50.#30 rdx Fixd Keep rdx | |I9 a| |V02a| | | | | | - 50.#31 I10 Def Alloc rdx | |I9 a|I10a|V02a| | | | | | -[000615] 53.#32 r8 Fixd Keep r8 | |I9 a|I10a|V02a| | | | | | - 53.#33 V02 Use * Copy r8 | |I9 a|I10a|V02i| | | |V02i| | - 54.#34 r8 Fixd Keep r8 | |I9 a|I10a| | | | | | | - 54.#35 I11 Def Alloc r8 | |I9 a|I10a| | | | |I11a| | -[000044] 55.#36 rcx Fixd Keep rcx | |I9 a|I10a| | | | |I11a| | - 55.#37 I9 Use * Keep rcx | |I9 i|I10a| | | | |I11a| | - 55.#38 rdx Fixd Keep rdx | | |I10a| | | | |I11a| | - 55.#39 I10 Use * Keep rdx | | |I10i| | | | |I11a| | - 55.#40 r8 Fixd Keep r8 | | | | | | | |I11a| | - 55.#41 I11 Use * Keep r8 | | | | | | | |I11i| | - 56.#42 Kill None [rax rcx rdx r8-r11] - | | | | | | | | | | --------------------------------------------+----+----+----+----+----+----+----+----+----+ -TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | --------------------------------------------+----+----+----+----+----+----+----+----+----+ - 57.#43 BB9 PredBB57 | | | |V02a| |V00a|V01a| | | -[000047] 63.#44 V02 Use Keep rbx | | | |V02a| |V00a|V01a| | | - 64.#45 I12 Def Alloc rax |I12a| | |V02a| |V00a|V01a| | | -[000050] 67.#46 I12 Use * Keep rax |I12i| | |V02a| |V00a|V01a| | | - 68.#47 I13 Def Alloc rax |I13a| | |V02a| |V00a|V01a| | | -[000051] 69.#48 I13 Use * Keep rax |I13i| | |V02a| |V00a|V01a| | | - 70.#49 V04 Def Alloc rax |V04a| | |V02a| |V00a|V01a| | | -[000532] 77.#50 V02 Use Keep rbx |V04a| | |V02a| |V00a|V01a| | | --------------------------------------------+----+----+----+----+----+----+----+----+----+ -TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | --------------------------------------------+----+----+----+----+----+----+----+----+----+ - 81.#51 BB66 PredBB9 |V04a| | |V02a| |V00a|V01a| | | -[000253] 89.#52 V02 Use * Keep rbx |V04a| | |V02i| |V00a|V01a| | | - 90.#53 I14 Def Alloc rbx |V04a| | |I14a| |V00a|V01a| | | -[000254] 91.#54 I14 Use * Keep rbx |V04a| | |I14i| |V00a|V01a| | | - 92.#55 V02 Def Alloc rbx |V04a| | |V02a| |V00a|V01a| | | -[000485] 105.#56 V00 Use Keep rsi |V04a| | |V02a| |V00a|V01a| | | - 105.#57 V04 Use Keep rax |V04a| | |V02a| |V00a|V01a| | | - 105.#58 V01 Use Keep rdi |V04a| | |V02a| |V00a|V01a| | | --------------------------------------------+----+----+----+----+----+----+----+----+----+ -TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | --------------------------------------------+----+----+----+----+----+----+----+----+----+ - 109.#59 BB40 PredBB66 |V04a| | |V02a| |V00a|V01a| | | -[000272] 117.#60 V04 Use * Keep rax |V04i| | |V02a| |V00a|V01a| | | - 118.#61 I15 Def Alloc rax |I15a| | |V02a| |V00a|V01a| | | -[000273] 119.#62 I15 Use * Keep rax |I15i| | |V02a| |V00a|V01a| | | - 120.#63 V04 Def Alloc rax |V04a| | |V02a| |V00a|V01a| | | -[000249] 127.#64 V02 Use Keep rbx |V04a| | |V02a| |V00a|V01a| | | -[000250] 131.#65 V02 ExpU |V04a| | |V02a| |V00a|V01a| | | - 131.#66 V00 ExpU |V04a| | |V02a| |V00a|V01a| | | - 131.#67 V01 ExpU |V04a| | |V02a| |V00a|V01a| | | --------------------------------------------+----+----+----+----+----+----+----+----+----+ -TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | --------------------------------------------+----+----+----+----+----+----+----+----+----+ - 131.#68 BB62 PredBB66 |V04a| | | | | | | | | -[000521] 137.#69 V04 Use * Keep rax |V04i| | | | | | | | | - 138.#70 V34 Def Alloc rax |V34a| | | | | | | | | -[000492] 141.#71 rax Fixd Keep rax |V34a| | | | | | | | | - 141.#72 V34 Use * Keep rax |V34i| | | | | | | | | --------------------------------------------+----+----+----+----+----+----+----+----+----+ -TreeID Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 | --------------------------------------------+----+----+----+----+----+----+----+----+----+ - 143.#73 BB42 PredBB40 | | | | | | | | | | -[000277] 146.#74 C16 Def Alloc rax |C16a| | | | | | | | | -[000493] 147.#75 rax Fixd Keep rax |C16a| | | | | | | | | - 147.#76 C16 Use * Keep rax |C16i| | | | | | | | | - -Recording the maximum number of concurrent spills: - ----------- -LSRA Stats ----------- -Register selection order: ABCDEFGHIJKLMNOPQ -Total Tracked Vars: 5 -Total Reg Cand Vars: 5 -Total number of Intervals: 16 -Total number of RefPositions: 76 -Total Number of spill temps created: 0 -.......... -BB00 [ 100.00]: REG_ORDER = 3 -BB09 [ 75.00]: COVERS = 2, BEST_FIT = 1 -BB62 [ 50.00]: COVERS = 1 -BB40 [ 400.00]: COVERS = 1 -BB66 [ 400.00]: COVERS = 1 -.......... -Total SpillCount : 0 Weighted: 0.000000 -Total CopyReg : 0 Weighted: 0.000000 -Total ResolutionMovs : 0 Weighted: 0.000000 -Total SplitEdges : 0 Weighted: 0.000000 -.......... -Total COVERS [# 4] : 5 Weighted: 1000.000000 -Total BEST_FIT [#11] : 1 Weighted: 75.000000 -Total REG_ORDER [#13] : 3 Weighted: 300.000000 - -TUPLE STYLE DUMP WITH REGISTER ASSIGNMENTS -Incoming Parameters: V02(r8=>rbx) V00(rcx=>rsi) V01(rdx=>rdi) -BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} -===== - N003. IL_OFFSET INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - N005. V02(rbx) - N007. CNS_INT 0 - N009. CMP ; rbx - N011. JCC cond=SGE -Var=Reg end of BB01: V02=rbx V00=rsi V01=rdi - -BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} -===== -Predecessor for variable locations: BB01 -Var=Reg beg of BB52: V02=rbx V00=rsi V01=rdi - N015. IL_OFFSET INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] - N017. rcx = CNS_INT(h) - N019. rcx = PUTARG_REG; rcx - N021. rdx = CNS_INT(h) - N023. rdx = PUTARG_REG; rdx - N025. CALL ; rcx,rdx -Var=Reg end of BB52: V02=rbx V00=rsi V01=rdi - -BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} -===== -Predecessor for variable locations: BB01 -Var=Reg beg of BB57: V02=rbx V00=rsi V01=rdi - N029. IL_OFFSET INLRT @ 0x05D[E--] - N031. V02(rbx) - N033. CNS_INT 2 vector element count - N035. CMP ; rbx - N037. JCC cond=SGE -Var=Reg end of BB57: V02=rbx V00=rsi V01=rdi - -BB43 [0042] [2EB..324) (return), preds={BB57} succs={} -===== -Predecessor for variable locations: BB57 -Var=Reg beg of BB43: V02=rbx V00=rsi V01=rdi - N041. IL_OFFSET INLRT @ 0x31B[E--] - N043. V00(rsi*) - N045. rcx = PUTARG_REG; rsi* - N047. V01(rdi*) - N049. rdx = PUTARG_REG; rdi* - N051. V02(rbx*) - N053. r8 = PUTARG_REG; rbx* - N055. CALL ; rcx,rdx,r8 -Var=Reg end of BB43: none - -BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} -===== -Predecessor for variable locations: BB57 -Var=Reg beg of BB09: V02=rbx V00=rsi V01=rdi - N059. IL_OFFSET INLRT @ 0x068[E--] - N061. V02(rbx) - N063. rax = CAST ; rbx - N065. CNS_INT -1 - N067. rax = ADD ; rax -* N069. V04(rax); rax - N071. IL_OFFSET INLRT @ 0x2E5[E--] - N073. V02(rbx) - N075. CNS_INT 0 - N077. CMP ; rbx - N079. JCC cond=SLE -Var=Reg end of BB09: V02=rbx V04=rax V00=rsi V01=rdi - -BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} -===== -Predecessor for variable locations: BB09 -Var=Reg beg of BB66: V02=rbx V04=rax V00=rsi V01=rdi - N083. IL_OFFSET INLRT @ 0x2B3[E--] - N085. V02(rbx*) - N087. CNS_INT -1 - N089. rbx = ADD ; rbx* -* N091. V02(rbx); rbx - N093. IL_OFFSET INLRT @ 0x2B8[E--] - N095. V00(rsi) - N097. V04(rax) - N099. STK = LEA(b+(i*8)+0); rsi,rax - N101. STK = IND ; STK - N103. V01(rdi) - N105. CMP ; STK,rdi - N107. JCC cond=UEQ -Var=Reg end of BB66: V02=rbx V04=rax V00=rsi V01=rdi - -BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} -===== -Predecessor for variable locations: BB66 -Var=Reg beg of BB40: V02=rbx V04=rax V00=rsi V01=rdi - N111. IL_OFFSET INLRT @ 0x2E0[E--] - N113. V04(rax*) - N115. CNS_INT -1 - N117. rax = ADD ; rax* -* N119. V04(rax); rax - N121. IL_OFFSET INLRT @ 0x2E5[E--] - N123. V02(rbx) - N125. CNS_INT 0 - N127. CMP ; rbx - N129. JCC cond=SGT -Var=Reg end of BB40: V02=rbx V04=rax V00=rsi V01=rdi - -BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} -===== -Predecessor for variable locations: BB66 -Var=Reg beg of BB62: V04=rax - N133. IL_OFFSET INLRT @ 0x09D[E--] - N135. V04(rax*) -* N137. V34(rax); rax* - N139. V34(rax*) - N141. RETURN ; rax* -Var=Reg end of BB62: none - -BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} -===== -Predecessor for variable locations: BB40 -Var=Reg beg of BB42: none - N145. rax = CNS_INT -1 - N147. RETURN ; rax -Var=Reg end of BB42: none - - - - -*************** Finishing PHASE Linear scan register alloc -Trees after Linear scan register alloc - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i LIR -BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR -BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR -BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd -BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd -BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} -N003 (???,???) [000600] ----------- IL_OFFSET void INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA -N005 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 -N007 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 REG NA $40 - /--* t0 int - +--* t1 int -N009 ( 3, 3) [000002] -----+-N--- * CMP void REG NA -N011 ( 5, 5) [000384] -----+----- JCC void cond=SGE REG NA - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} -N015 (???,???) [000601] ----------- IL_OFFSET void INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA -N017 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref REG rcx $1c0 - /--* t497 ref -N019 (???,???) [000611] ----------- t611 = * PUTARG_REG ref REG rcx -N021 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref REG rdx $1c1 - /--* t498 ref -N023 (???,???) [000612] ----------- t612 = * PUTARG_REG ref REG rdx - /--* t611 ref arg0 rcx - +--* t612 ref arg1 rdx -N025 ( 16, 15) [000387] --CXG+----- * CALL void REG NA $VN.Void - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} -N029 (???,???) [000602] ----------- IL_OFFSET void INLRT @ 0x05D[E--] REG NA -N031 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 -N033 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count REG NA $42 - /--* t31 int - +--* t32 int -N035 ( 3, 3) [000033] -----+-N--- * CMP void REG NA -N037 ( 5, 5) [000034] -----+----- JCC void cond=SGE REG NA - ------------- BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} -N059 (???,???) [000603] ----------- IL_OFFSET void INLRT @ 0x068[E--] REG NA -N061 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 - /--* t46 int -N063 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int REG rax $240 -N065 ( 1, 1) [000049] -c---+----- t49 = CNS_INT long -1 REG NA $280 - /--* t47 long - +--* t49 long -N067 ( 4, 5) [000050] -----+----- t50 = * ADD long REG rax $241 - /--* t50 long -N069 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 rax REG rax $VN.Void -N071 (???,???) [000604] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA -N073 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 rbx REG rbx $2c2 -N075 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 REG NA $40 - /--* t533 int - +--* t534 int -N077 ( 3, 3) [000532] -------N--- * CMP void REG NA -N079 ( 5, 5) [000531] ----------- JCC void cond=SLE REG NA - ------------- BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} -N133 (???,???) [000605] ----------- IL_OFFSET void INLRT @ 0x09D[E--] REG NA -N135 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 rax (last use) REG rax $449 - /--* t240 int -N137 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 rax REG rax $VN.Void -N139 ( 1, 1) [000491] -----+-N--- t491 = LCL_VAR int V34 tmp29 u:9 rax (last use) REG rax $2c4 - /--* t491 int -N141 ( 2, 2) [000492] -----+----- * RETURN int REG NA $VN.Void - ------------- BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} -N111 (???,???) [000606] ----------- IL_OFFSET void INLRT @ 0x2E0[E--] REG NA -N113 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 rax (last use) REG rax $303 -N115 ( 1, 1) [000271] -c---+----- t271 = CNS_INT long -1 REG NA $280 - /--* t269 long - +--* t271 long -N117 ( 3, 3) [000272] -----+----- t272 = * ADD long REG rax $26b - /--* t272 long -N119 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 rax REG rax $VN.Void -N121 (???,???) [000607] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA -N123 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 rbx REG rbx $1b8 -N125 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 REG NA $40 - /--* t247 int - +--* t248 int -N127 ( 3, 3) [000249] -----+-N--- * CMP void REG NA -N129 ( 5, 5) [000250] -----+----- JCC void cond=SGT REG NA - ------------- BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} -N083 (???,???) [000608] ----------- IL_OFFSET void INLRT @ 0x2B3[E--] REG NA -N085 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 rbx (last use) REG rbx $2c3 -N087 ( 1, 1) [000252] -c---+----- t252 = CNS_INT int -1 REG NA $43 - /--* t251 int - +--* t252 int -N089 ( 3, 3) [000253] -----+----- t253 = * ADD int REG rbx $1b8 - /--* t253 int -N091 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 rbx REG rbx $VN.Void -N093 (???,???) [000609] ----------- IL_OFFSET void INLRT @ 0x2B8[E--] REG NA -N095 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 rsi REG rsi $80 -N097 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 rax REG rax $303 - /--* t255 byref - +--* t256 long -N099 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref REG NA - /--* t259 byref -N101 ( 5, 4) [000260] -c-XG+----- t260 = * IND long REG NA -N103 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 rdi REG rdi $c0 - /--* t260 long - +--* t261 long -N105 ( 7, 6) [000485] ---XG+-N--- * CMP void REG NA -N107 ( 9, 8) [000268] ---XG+----- JCC void cond=UEQ REG NA - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} -N145 ( 1, 1) [000277] -----+----- t277 = CNS_INT int -1 REG rax $43 - /--* t277 int -N147 ( 2, 2) [000493] -----+----- * RETURN int REG NA $VN.Void - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} -N041 (???,???) [000610] ----------- IL_OFFSET void INLRT @ 0x31B[E--] REG NA -N043 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 rsi (last use) REG rsi $80 - /--* t41 byref -N045 (???,???) [000613] ----------- t613 = * PUTARG_REG byref REG rcx -N047 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 rdi (last use) REG rdi $c0 - /--* t42 long -N049 (???,???) [000614] ----------- t614 = * PUTARG_REG long REG rdx -N051 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 rbx (last use) REG rbx $100 - /--* t43 int -N053 (???,???) [000615] ----------- t615 = * PUTARG_REG int REG r8 - /--* t613 byref arg0 rcx - +--* t614 long arg1 rdx - +--* t615 int arg2 r8 -N055 ( 17, 11) [000044] --CXG+----- * CALL void REG NA $VN.Void - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Optimize layout -*************** In fgSearchImprovedLayout() - -Initial BasicBlocks ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i LIR -BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR -BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR -BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd -BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd -BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -Compacting hot jumps -Creating fallthrough along BB40 -> BB42 -Initial layout cost: 687.500000 -Running greedy 3-opt pass. -No changes made. -Reordering block list - -*************** Finishing PHASE Optimize layout -Trees after Optimize layout - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB43(0.5),BB09(0.5) ( cond ) i LIR -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall -BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR -BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd -BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd -BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR -BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} -N003 (???,???) [000600] ----------- IL_OFFSET void INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA -N005 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 -N007 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 REG NA $40 - /--* t0 int - +--* t1 int -N009 ( 3, 3) [000002] -----+-N--- * CMP void REG NA -N011 ( 5, 5) [000384] -----+----- JCC void cond=SGE REG NA - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} -N015 (???,???) [000601] ----------- IL_OFFSET void INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA -N017 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref REG rcx $1c0 - /--* t497 ref -N019 (???,???) [000611] ----------- t611 = * PUTARG_REG ref REG rcx -N021 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref REG rdx $1c1 - /--* t498 ref -N023 (???,???) [000612] ----------- t612 = * PUTARG_REG ref REG rdx - /--* t611 ref arg0 rcx - +--* t612 ref arg1 rdx -N025 ( 16, 15) [000387] --CXG+----- * CALL void REG NA $VN.Void - ------------- BB57 [0057] [04B..068) -> BB43(0.5),BB09(0.5) (cond), preds={BB01,BB52} succs={BB09,BB43} -N029 (???,???) [000602] ----------- IL_OFFSET void INLRT @ 0x05D[E--] REG NA -N031 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 -N033 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count REG NA $42 - /--* t31 int - +--* t32 int -N035 ( 3, 3) [000033] -----+-N--- * CMP void REG NA -N037 ( 5, 5) [000034] -----+----- JCC void cond=SGE REG NA - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} -N041 (???,???) [000610] ----------- IL_OFFSET void INLRT @ 0x31B[E--] REG NA -N043 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 rsi (last use) REG rsi $80 - /--* t41 byref -N045 (???,???) [000613] ----------- t613 = * PUTARG_REG byref REG rcx -N047 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 rdi (last use) REG rdi $c0 - /--* t42 long -N049 (???,???) [000614] ----------- t614 = * PUTARG_REG long REG rdx -N051 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 rbx (last use) REG rbx $100 - /--* t43 int -N053 (???,???) [000615] ----------- t615 = * PUTARG_REG int REG r8 - /--* t613 byref arg0 rcx - +--* t614 long arg1 rdx - +--* t615 int arg2 r8 -N055 ( 17, 11) [000044] --CXG+----- * CALL void REG NA $VN.Void - ------------- BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} -N059 (???,???) [000603] ----------- IL_OFFSET void INLRT @ 0x068[E--] REG NA -N061 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 - /--* t46 int -N063 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int REG rax $240 -N065 ( 1, 1) [000049] -c---+----- t49 = CNS_INT long -1 REG NA $280 - /--* t47 long - +--* t49 long -N067 ( 4, 5) [000050] -----+----- t50 = * ADD long REG rax $241 - /--* t50 long -N069 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 rax REG rax $VN.Void -N071 (???,???) [000604] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA -N073 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 rbx REG rbx $2c2 -N075 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 REG NA $40 - /--* t533 int - +--* t534 int -N077 ( 3, 3) [000532] -------N--- * CMP void REG NA -N079 ( 5, 5) [000531] ----------- JCC void cond=SLE REG NA - ------------- BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} -N083 (???,???) [000608] ----------- IL_OFFSET void INLRT @ 0x2B3[E--] REG NA -N085 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 rbx (last use) REG rbx $2c3 -N087 ( 1, 1) [000252] -c---+----- t252 = CNS_INT int -1 REG NA $43 - /--* t251 int - +--* t252 int -N089 ( 3, 3) [000253] -----+----- t253 = * ADD int REG rbx $1b8 - /--* t253 int -N091 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 rbx REG rbx $VN.Void -N093 (???,???) [000609] ----------- IL_OFFSET void INLRT @ 0x2B8[E--] REG NA -N095 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 rsi REG rsi $80 -N097 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 rax REG rax $303 - /--* t255 byref - +--* t256 long -N099 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref REG NA - /--* t259 byref -N101 ( 5, 4) [000260] -c-XG+----- t260 = * IND long REG NA -N103 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 rdi REG rdi $c0 - /--* t260 long - +--* t261 long -N105 ( 7, 6) [000485] ---XG+-N--- * CMP void REG NA -N107 ( 9, 8) [000268] ---XG+----- JCC void cond=UEQ REG NA - ------------- BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} -N111 (???,???) [000606] ----------- IL_OFFSET void INLRT @ 0x2E0[E--] REG NA -N113 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 rax (last use) REG rax $303 -N115 ( 1, 1) [000271] -c---+----- t271 = CNS_INT long -1 REG NA $280 - /--* t269 long - +--* t271 long -N117 ( 3, 3) [000272] -----+----- t272 = * ADD long REG rax $26b - /--* t272 long -N119 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 rax REG rax $VN.Void -N121 (???,???) [000607] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA -N123 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 rbx REG rbx $1b8 -N125 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 REG NA $40 - /--* t247 int - +--* t248 int -N127 ( 3, 3) [000249] -----+-N--- * CMP void REG NA -N129 ( 5, 5) [000250] -----+----- JCC void cond=SGT REG NA - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} -N145 ( 1, 1) [000277] -----+----- t277 = CNS_INT int -1 REG rax $43 - /--* t277 int -N147 ( 2, 2) [000493] -----+----- * RETURN int REG NA $VN.Void - ------------- BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} -N133 (???,???) [000605] ----------- IL_OFFSET void INLRT @ 0x09D[E--] REG NA -N135 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 rax (last use) REG rax $449 - /--* t240 int -N137 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 rax REG rax $VN.Void -N139 ( 1, 1) [000491] -----+-N--- t491 = LCL_VAR int V34 tmp29 u:9 rax (last use) REG rax $2c4 - /--* t491 int -N141 ( 2, 2) [000492] -----+----- * RETURN int REG NA $VN.Void - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Optimize post-layout - -*************** Finishing PHASE Optimize post-layout -Trees after Optimize post-layout - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB09(0.5),BB43(0.5) ( cond ) i LIR -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall -BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR -BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd -BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd -BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR -BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} -N003 (???,???) [000600] ----------- IL_OFFSET void INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA -N005 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 -N007 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 REG NA $40 - /--* t0 int - +--* t1 int -N009 ( 3, 3) [000002] -----+-N--- * CMP void REG NA -N011 ( 5, 5) [000384] -----+----- JCC void cond=SGE REG NA - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} -N015 (???,???) [000601] ----------- IL_OFFSET void INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA -N017 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref REG rcx $1c0 - /--* t497 ref -N019 (???,???) [000611] ----------- t611 = * PUTARG_REG ref REG rcx -N021 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref REG rdx $1c1 - /--* t498 ref -N023 (???,???) [000612] ----------- t612 = * PUTARG_REG ref REG rdx - /--* t611 ref arg0 rcx - +--* t612 ref arg1 rdx -N025 ( 16, 15) [000387] --CXG+----- * CALL void REG NA $VN.Void - ------------- BB57 [0057] [04B..068) -> BB09(0.5),BB43(0.5) (cond), preds={BB01,BB52} succs={BB43,BB09} -N029 (???,???) [000602] ----------- IL_OFFSET void INLRT @ 0x05D[E--] REG NA -N031 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 -N033 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count REG NA $42 - /--* t31 int - +--* t32 int -N035 ( 3, 3) [000033] -----+-N--- * CMP void REG NA -N037 ( 5, 5) [000034] -----+----- JCC void cond=SLT REG NA - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} -N041 (???,???) [000610] ----------- IL_OFFSET void INLRT @ 0x31B[E--] REG NA -N043 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 rsi (last use) REG rsi $80 - /--* t41 byref -N045 (???,???) [000613] ----------- t613 = * PUTARG_REG byref REG rcx -N047 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 rdi (last use) REG rdi $c0 - /--* t42 long -N049 (???,???) [000614] ----------- t614 = * PUTARG_REG long REG rdx -N051 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 rbx (last use) REG rbx $100 - /--* t43 int -N053 (???,???) [000615] ----------- t615 = * PUTARG_REG int REG r8 - /--* t613 byref arg0 rcx - +--* t614 long arg1 rdx - +--* t615 int arg2 r8 -N055 ( 17, 11) [000044] --CXG+----- * CALL void REG NA $VN.Void - ------------- BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} -N059 (???,???) [000603] ----------- IL_OFFSET void INLRT @ 0x068[E--] REG NA -N061 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 - /--* t46 int -N063 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int REG rax $240 -N065 ( 1, 1) [000049] -c---+----- t49 = CNS_INT long -1 REG NA $280 - /--* t47 long - +--* t49 long -N067 ( 4, 5) [000050] -----+----- t50 = * ADD long REG rax $241 - /--* t50 long -N069 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 rax REG rax $VN.Void -N071 (???,???) [000604] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA -N073 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 rbx REG rbx $2c2 -N075 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 REG NA $40 - /--* t533 int - +--* t534 int -N077 ( 3, 3) [000532] -------N--- * CMP void REG NA -N079 ( 5, 5) [000531] ----------- JCC void cond=SLE REG NA - ------------- BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} -N083 (???,???) [000608] ----------- IL_OFFSET void INLRT @ 0x2B3[E--] REG NA -N085 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 rbx (last use) REG rbx $2c3 -N087 ( 1, 1) [000252] -c---+----- t252 = CNS_INT int -1 REG NA $43 - /--* t251 int - +--* t252 int -N089 ( 3, 3) [000253] -----+----- t253 = * ADD int REG rbx $1b8 - /--* t253 int -N091 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 rbx REG rbx $VN.Void -N093 (???,???) [000609] ----------- IL_OFFSET void INLRT @ 0x2B8[E--] REG NA -N095 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 rsi REG rsi $80 -N097 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 rax REG rax $303 - /--* t255 byref - +--* t256 long -N099 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref REG NA - /--* t259 byref -N101 ( 5, 4) [000260] -c-XG+----- t260 = * IND long REG NA -N103 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 rdi REG rdi $c0 - /--* t260 long - +--* t261 long -N105 ( 7, 6) [000485] ---XG+-N--- * CMP void REG NA -N107 ( 9, 8) [000268] ---XG+----- JCC void cond=UEQ REG NA - ------------- BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} -N111 (???,???) [000606] ----------- IL_OFFSET void INLRT @ 0x2E0[E--] REG NA -N113 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 rax (last use) REG rax $303 -N115 ( 1, 1) [000271] -c---+----- t271 = CNS_INT long -1 REG NA $280 - /--* t269 long - +--* t271 long -N117 ( 3, 3) [000272] -----+----- t272 = * ADD long REG rax $26b - /--* t272 long -N119 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 rax REG rax $VN.Void -N121 (???,???) [000607] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA -N123 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 rbx REG rbx $1b8 -N125 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 REG NA $40 - /--* t247 int - +--* t248 int -N127 ( 3, 3) [000249] -----+-N--- * CMP void REG NA -N129 ( 5, 5) [000250] -----+----- JCC void cond=SGT REG NA - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} -N145 ( 1, 1) [000277] -----+----- t277 = CNS_INT int -1 REG rax $43 - /--* t277 int -N147 ( 2, 2) [000493] -----+----- * RETURN int REG NA $VN.Void - ------------- BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} -N133 (???,???) [000605] ----------- IL_OFFSET void INLRT @ 0x09D[E--] REG NA -N135 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 rax (last use) REG rax $449 - /--* t240 int -N137 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 rax REG rax $VN.Void -N139 ( 1, 1) [000491] -----+-N--- t491 = LCL_VAR int V34 tmp29 u:9 rax (last use) REG rax $2c4 - /--* t491 int -N141 ( 2, 2) [000492] -----+----- * RETURN int REG NA $VN.Void - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] - -*************** Starting PHASE Determine first cold block -No procedure splitting will be done for this method - -*************** Finishing PHASE Determine first cold block [no changes] - -*************** Starting PHASE Place 'align' instructions -*************** In placeLoopAlignInstructions() -Identifying loops in DFS tree with following reverse post order: -RPO -> BB [pre, post] -00 -> BB01[0, 8] -01 -> BB52[1, 7] -02 -> BB57[2, 6] -03 -> BB09[4, 5] -04 -> BB66[5, 4] -05 -> BB62[8, 3] -06 -> BB40[6, 2] -07 -> BB42[7, 1] -08 -> BB43[3, 0] - -BB40 -> BB66 is a backedge -BB66 is the header of a DFS loop with 1 back edges -Loop has 2 blocks -BB66 -> BB62 is an exit edge -BB40 -> BB42 is an exit edge -BB09 -> BB66 is an entry edge -Added loop L00 with header BB66 - -Found 1 loops - -*************** Natural loop graph -L00 header: BB66 - Members (2): [BB66..BB40] - Entry: BB09 -> BB66 - Exit: BB66 -> BB62; BB40 -> BB42 - Back: BB40 -> BB66 - -Aligning L00 that starts at BB66, weight=400 >= 300. -Marking BB09 before the loop with BBF_HAS_ALIGN for loop at BB66 -Found 1 candidates for loop alignment - -*************** Finishing PHASE Place 'align' instructions -Trees after Place 'align' instructions - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB09(0.5),BB43(0.5) ( cond ) i LIR -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall -BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR has-align -BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd align -BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd -BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR -BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - ------------- BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} -N003 (???,???) [000600] ----------- IL_OFFSET void INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA -N005 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 -N007 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 REG NA $40 - /--* t0 int - +--* t1 int -N009 ( 3, 3) [000002] -----+-N--- * CMP void REG NA -N011 ( 5, 5) [000384] -----+----- JCC void cond=SGE REG NA - ------------- BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} -N015 (???,???) [000601] ----------- IL_OFFSET void INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA -N017 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref REG rcx $1c0 - /--* t497 ref -N019 (???,???) [000611] ----------- t611 = * PUTARG_REG ref REG rcx -N021 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref REG rdx $1c1 - /--* t498 ref -N023 (???,???) [000612] ----------- t612 = * PUTARG_REG ref REG rdx - /--* t611 ref arg0 rcx - +--* t612 ref arg1 rdx -N025 ( 16, 15) [000387] --CXG+----- * CALL void REG NA $VN.Void - ------------- BB57 [0057] [04B..068) -> BB09(0.5),BB43(0.5) (cond), preds={BB01,BB52} succs={BB43,BB09} -N029 (???,???) [000602] ----------- IL_OFFSET void INLRT @ 0x05D[E--] REG NA -N031 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 -N033 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count REG NA $42 - /--* t31 int - +--* t32 int -N035 ( 3, 3) [000033] -----+-N--- * CMP void REG NA -N037 ( 5, 5) [000034] -----+----- JCC void cond=SLT REG NA - ------------- BB43 [0042] [2EB..324) (return), preds={BB57} succs={} -N041 (???,???) [000610] ----------- IL_OFFSET void INLRT @ 0x31B[E--] REG NA -N043 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 rsi (last use) REG rsi $80 - /--* t41 byref -N045 (???,???) [000613] ----------- t613 = * PUTARG_REG byref REG rcx -N047 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 rdi (last use) REG rdi $c0 - /--* t42 long -N049 (???,???) [000614] ----------- t614 = * PUTARG_REG long REG rdx -N051 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 rbx (last use) REG rbx $100 - /--* t43 int -N053 (???,???) [000615] ----------- t615 = * PUTARG_REG int REG r8 - /--* t613 byref arg0 rcx - +--* t614 long arg1 rdx - +--* t615 int arg2 r8 -N055 ( 17, 11) [000044] --CXG+----- * CALL void REG NA $VN.Void - ------------- BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} -N059 (???,???) [000603] ----------- IL_OFFSET void INLRT @ 0x068[E--] REG NA -N061 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 - /--* t46 int -N063 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int REG rax $240 -N065 ( 1, 1) [000049] -c---+----- t49 = CNS_INT long -1 REG NA $280 - /--* t47 long - +--* t49 long -N067 ( 4, 5) [000050] -----+----- t50 = * ADD long REG rax $241 - /--* t50 long -N069 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 rax REG rax $VN.Void -N071 (???,???) [000604] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA -N073 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 rbx REG rbx $2c2 -N075 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 REG NA $40 - /--* t533 int - +--* t534 int -N077 ( 3, 3) [000532] -------N--- * CMP void REG NA -N079 ( 5, 5) [000531] ----------- JCC void cond=SLE REG NA - ------------- BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} -N083 (???,???) [000608] ----------- IL_OFFSET void INLRT @ 0x2B3[E--] REG NA -N085 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 rbx (last use) REG rbx $2c3 -N087 ( 1, 1) [000252] -c---+----- t252 = CNS_INT int -1 REG NA $43 - /--* t251 int - +--* t252 int -N089 ( 3, 3) [000253] -----+----- t253 = * ADD int REG rbx $1b8 - /--* t253 int -N091 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 rbx REG rbx $VN.Void -N093 (???,???) [000609] ----------- IL_OFFSET void INLRT @ 0x2B8[E--] REG NA -N095 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 rsi REG rsi $80 -N097 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 rax REG rax $303 - /--* t255 byref - +--* t256 long -N099 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref REG NA - /--* t259 byref -N101 ( 5, 4) [000260] -c-XG+----- t260 = * IND long REG NA -N103 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 rdi REG rdi $c0 - /--* t260 long - +--* t261 long -N105 ( 7, 6) [000485] ---XG+-N--- * CMP void REG NA -N107 ( 9, 8) [000268] ---XG+----- JCC void cond=UEQ REG NA - ------------- BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} -N111 (???,???) [000606] ----------- IL_OFFSET void INLRT @ 0x2E0[E--] REG NA -N113 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 rax (last use) REG rax $303 -N115 ( 1, 1) [000271] -c---+----- t271 = CNS_INT long -1 REG NA $280 - /--* t269 long - +--* t271 long -N117 ( 3, 3) [000272] -----+----- t272 = * ADD long REG rax $26b - /--* t272 long -N119 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 rax REG rax $VN.Void -N121 (???,???) [000607] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA -N123 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 rbx REG rbx $1b8 -N125 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 REG NA $40 - /--* t247 int - +--* t248 int -N127 ( 3, 3) [000249] -----+-N--- * CMP void REG NA -N129 ( 5, 5) [000250] -----+----- JCC void cond=SGT REG NA - ------------- BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} -N145 ( 1, 1) [000277] -----+----- t277 = CNS_INT int -1 REG rax $43 - /--* t277 int -N147 ( 2, 2) [000493] -----+----- * RETURN int REG NA $VN.Void - ------------- BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} -N133 (???,???) [000605] ----------- IL_OFFSET void INLRT @ 0x09D[E--] REG NA -N135 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 rax (last use) REG rax $449 - /--* t240 int -N137 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 rax REG rax $VN.Void -N139 ( 1, 1) [000491] -----+-N--- t491 = LCL_VAR int V34 tmp29 u:9 rax (last use) REG rax $2c4 - /--* t491 int -N141 ( 2, 2) [000492] -----+----- * RETURN int REG NA $VN.Void - -------------------------------------------------------------------------------------------------------------------- -*************** In fgDebugCheckBBlist -[deferred prior check failed -- skipping this check] -*************** In genGenerateCode() - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB09(0.5),BB43(0.5) ( cond ) i LIR -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall -BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR has-align -BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR bwd align -BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd -BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR -BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -*************** Starting PHASE Generate code -*************** In fgDebugCheckBBlist -Finalizing stack frame -Recording Var Locations at start of BB01 - V02(rbx) V00(rsi) V01(rdi) -Modified regs: [rax rcx rdx rbx rsi rdi r8-r11] -Callee-saved registers pushed: 3 [rbx rsi rdi] -*************** In lvaAssignFrameOffsets(FINAL_FRAME_LAYOUT) -Set V00 to offset 0 -Set V01 to offset 8 -Set V02 to offset 16 -Assign V05 OutArgs, size=32, stkOffs=-0x40 ---- delta bump 8 for RA ---- delta bump 56 for RSP frame ---- virtual stack offset to actual stack offset delta is 64 --- V00 was 0, now 64 --- V01 was 8, now 72 --- V02 was 16, now 80 --- V05 was -64, now 0 -; Final local variable assignments -; -; V00 arg0 [V00,T02] ( 4, 6.50) byref -> rsi single-def -; V01 arg1 [V01,T03] ( 4, 6.50) long -> rdi single-def -; V02 arg2 [V02,T00] ( 10, 18 ) int -> rbx -;* V03 loc0 [V03 ] ( 0, 0 ) ubyte -> zero-ref -; V04 loc1 [V04,T01] ( 5, 13.25) long -> rax -; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -;* V06 tmp1 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V07 tmp2 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V08 tmp3 [V08 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V09 tmp4 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V10 tmp5 [V10 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V11 tmp6 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V12 tmp7 [V12 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V13 tmp8 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V14 tmp9 [V14 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V15 tmp10 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V16 tmp11 [V16 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V17 tmp12 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V18 tmp13 [V18 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V19 tmp14 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V20 tmp15 [V20 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V21 tmp16 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V22 tmp17 [V22 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V23 tmp18 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V24 tmp19 [V24 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V25 tmp20 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V26 tmp21 [V26 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V27 tmp22 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V28 tmp23 [V28 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V29 tmp24 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V30 tmp25 [V30 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V31 tmp26 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V32 tmp27 [V32 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V33 tmp28 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -; V34 tmp29 [V34,T04] ( 2, 2 ) int -> rax "Single return block return value" -; -; Lcl frame size = 32 -Created: - G_M48046_IG02: ; offs=0x000000, size=0x0000, bbWeight=1, gcrefRegs=0000 {} -Mark labels for codegen - BB01 : first block - BB57 : branch target - BB09 : branch target - BB42 : branch target - BB62 : branch target - BB66 : branch target -*************** After genMarkLabelsForCodegen() - ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- -BB01 [0000] 1 1 [000..001)-> BB57(0.5),BB52(0.5) ( cond ) i LIR label -BB52 [0051] 1 BB01 0.50 [000..04C)-> BB57(1) (always) i LIR hascall gcsafe -BB57 [0057] 2 BB01,BB52 1 [04B..068)-> BB09(0.5),BB43(0.5) ( cond ) i LIR label -BB43 [0042] 1 BB57 0.50 [2EB..324) (return) i LIR jmp hascall -BB09 [0008] 1 BB57 0.75 [068..1F5)-> BB42(0.5),BB66(0.5) ( cond ) i LIR label has-align -BB66 [0093] 2 BB09,BB40 4 [2B3..2DD)-> BB62(0.5),BB40(0.5) ( cond ) i LIR label bwd align -BB40 [0039] 1 BB66 4 [2E0..2E9)-> BB66(0.5),BB42(0.5) ( cond ) i LIR bwd -BB42 [0041] 2 BB09,BB40 0.50 [2E9..2EB) (return) i LIR label -BB62 [0089] 1 BB66 0.50 [09D..0A0) (return) i LIR label ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -=============== Generating code for main function - -=============== Generating BB01 [0000] [000..001) -> BB57(0.5),BB52(0.5) (cond), preds={} succs={BB52,BB57} flags=0x00000000.00000411: i LIR label -BB01 IN (3)={V02 V00 V01} - OUT(3)={V02 V00 V01} - -Recording Var Locations at start of BB01 - V02(rbx) V00(rsi) V01(rdi) -Change life 0000000000000000 {} -> 000000000000000D {V00 V01 V02} - V02 in reg rbx is becoming live [------] - Live regs: 0000000000000000 {} + {rbx} => 0000000000000008 {rbx} -Debug: New V02 debug range: first - V00 in reg rsi is becoming live [------] - Live regs: 0000000000000008 {rbx} + {rsi} => 0000000000000048 {rbx rsi} -Debug: New V00 debug range: first - V01 in reg rdi is becoming live [------] - Live regs: 0000000000000048 {rbx rsi} + {rdi} => 00000000000000C8 {rbx rsi rdi} -Debug: New V01 debug range: first - Live regs: (unchanged) 00000000000000C8 {rbx rsi rdi} - GC regs: (unchanged) 0000 {} - Byref regs: (unchanged) 0040 {rsi} - - L_M48046_BB01: -Label: G_M48046_IG02, GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi} - -Scope info: begin block BB01, IL range [000..001) -Added IP mapping: 0x0000 STACK_EMPTY (G_M48046_IG02,ins#0,ofs#0) label -Generating: N003 (???,???) [000600] ----------- IL_OFFSET void INL02 @ 0x000[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA -Generating: N005 ( 1, 1) [000000] -----+----- t0 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 -Generating: N007 ( 1, 1) [000001] -c---+----- t1 = CNS_INT int 0 REG NA $40 - /--* t0 int - +--* t1 int -Generating: N009 ( 3, 3) [000002] -----+-N--- * CMP void REG NA -Mapped BB01 to G_M48046_IG02 -IN0001: test ebx, ebx -Generating: N011 ( 5, 5) [000384] -----+----- JCC void cond=SGE REG NA -IN0002: jge L_M48046_BB57 - -Variable Live Range History Dump for BB01 -V00 arg0: rsi [(G_M48046_IG02,ins#0,ofs#0), ...] -V01 arg1: rdi [(G_M48046_IG02,ins#0,ofs#0), ...] -V02 arg2: rbx [(G_M48046_IG02,ins#0,ofs#0), ...] - -=============== Generating BB52 [0051] [000..04C) -> BB57(1) (always), preds={BB01} succs={BB57} flags=0x00000000.00204011: i LIR hascall gcsafe -BB52 IN (3)={V02 V00 V01} - OUT(3)={V02 V00 V01} - -Recording Var Locations at start of BB52 - V02(rbx) V00(rsi) V01(rdi) -Liveness not changing: 000000000000000D {V00 V01 V02} - Live regs: 0000000000000000 {} + {rbx rsi rdi} => 00000000000000C8 {rbx rsi rdi} - GC regs: (unchanged) 0000 {} - Byref regs: 0000 {} => 0040 {rsi} - - L_M48046_BB52: -Adding label due to BB weight difference: BBJ_COND BB01 with weight 100 different from BB52 with weight 50 -Saved: - G_M48046_IG02: ; offs=0x000000, size=0x0008, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB01 [0000], byref -Created: - G_M48046_IG03: ; offs=0x000008, size=0x0000, bbWeight=0.50, gcrefRegs=0000 {} -Label: G_M48046_IG03, GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi} - -Scope info: begin block BB52, IL range [000..04C) -genIPmappingAdd: ignoring duplicate IL offset 0x0 -Generating: N015 (???,???) [000601] ----------- IL_OFFSET void INL02 @ 0x003[E--] <- INL01 @ 0x000[E--] <- INLRT @ 0x000[E--] REG NA -Generating: N017 ( 1, 4) [000497] H----+----- t497 = CNS_INT(h) ref REG rcx $1c0 -Mapped BB52 to G_M48046_IG03 -IN0003: lea rcx, gword ptr [(reloc 0x4000000000443870)] - GC regs: 0000 {} => 0002 {rcx} - /--* t497 ref -Generating: N019 (???,???) [000611] ----------- t611 = * PUTARG_REG ref REG rcx - GC regs: 0002 {rcx} => 0000 {} - GC regs: 0000 {} => 0002 {rcx} -Generating: N021 ( 1, 4) [000498] H----+----- t498 = CNS_INT(h) ref REG rdx $1c1 -IN0004: lea rdx, gword ptr [(reloc 0x40000000004207c0)] - GC regs: 0002 {rcx} => 0006 {rcx rdx} - /--* t498 ref -Generating: N023 (???,???) [000612] ----------- t612 = * PUTARG_REG ref REG rdx - GC regs: 0006 {rcx rdx} => 0002 {rcx} - GC regs: 0002 {rcx} => 0006 {rcx rdx} - /--* t611 ref arg0 rcx - +--* t612 ref arg1 rdx -Generating: N025 ( 16, 15) [000387] --CXG+----- * CALL void REG NA $VN.Void - GC regs: 0006 {rcx rdx} => 0004 {rdx} - GC regs: 0004 {rdx} => 0000 {} - Call: GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi} -IN0005: call - -Variable Live Range History Dump for BB52 -V00 arg0: rsi [(G_M48046_IG02,ins#0,ofs#0), ...] -V01 arg1: rdi [(G_M48046_IG02,ins#0,ofs#0), ...] -V02 arg2: rbx [(G_M48046_IG02,ins#0,ofs#0), ...] - -=============== Generating BB57 [0057] [04B..068) -> BB09(0.5),BB43(0.5) (cond), preds={BB01,BB52} succs={BB43,BB09} flags=0x00000000.00000411: i LIR label -BB57 IN (3)={V02 V00 V01} - OUT(3)={V02 V00 V01} - -Recording Var Locations at start of BB57 - V02(rbx) V00(rsi) V01(rdi) -Liveness not changing: 000000000000000D {V00 V01 V02} - Live regs: 0000000000000000 {} + {rbx rsi rdi} => 00000000000000C8 {rbx rsi rdi} - GC regs: (unchanged) 0000 {} - Byref regs: 0000 {} => 0040 {rsi} - - L_M48046_BB57: -Saved: - G_M48046_IG03: ; offs=0x000008, size=0x0013, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB52 [0051], byref -Created: - G_M48046_IG04: ; offs=0x00001B, size=0x0000, bbWeight=1, gcrefRegs=0000 {} -Label: G_M48046_IG04, GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi} - -Scope info: begin block BB57, IL range [04B..068) -Added IP mapping: 0x005D STACK_EMPTY (G_M48046_IG04,ins#0,ofs#0) label -Generating: N029 (???,???) [000602] ----------- IL_OFFSET void INLRT @ 0x05D[E--] REG NA -Generating: N031 ( 1, 1) [000031] -----+----- t31 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 -Generating: N033 ( 1, 1) [000032] -c---+----- t32 = CNS_INT int 2 vector element count REG NA $42 - /--* t31 int - +--* t32 int -Generating: N035 ( 3, 3) [000033] -----+-N--- * CMP void REG NA -Mapped BB57 to G_M48046_IG04 -IN0006: cmp ebx, 2 -Generating: N037 ( 5, 5) [000034] -----+----- JCC void cond=SLT REG NA -IN0007: jl L_M48046_BB09 - -Variable Live Range History Dump for BB57 -V00 arg0: rsi [(G_M48046_IG02,ins#0,ofs#0), ...] -V01 arg1: rdi [(G_M48046_IG02,ins#0,ofs#0), ...] -V02 arg2: rbx [(G_M48046_IG02,ins#0,ofs#0), ...] - -=============== Generating BB43 [0042] [2EB..324) (return), preds={BB57} succs={} flags=0x00000000.00202011: i LIR jmp hascall -BB43 IN (3)={V02 V00 V01} - OUT(0)={ } - -Recording Var Locations at start of BB43 - V02(rbx) V00(rsi) V01(rdi) -Liveness not changing: 000000000000000D {V00 V01 V02} - Live regs: 0000000000000000 {} + {rbx rsi rdi} => 00000000000000C8 {rbx rsi rdi} - GC regs: (unchanged) 0000 {} - Byref regs: 0000 {} => 0040 {rsi} - - L_M48046_BB43: -Adding label due to BB weight difference: BBJ_COND BB57 with weight 100 different from BB43 with weight 50 -Saved: - G_M48046_IG04: ; offs=0x00001B, size=0x0009, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB57 [0057], byref -Created: - G_M48046_IG05: ; offs=0x000024, size=0x0000, bbWeight=0.50, gcrefRegs=0000 {} -Label: G_M48046_IG05, GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi} - -Scope info: begin block BB43, IL range [2EB..324) -Added IP mapping: 0x031B STACK_EMPTY (G_M48046_IG05,ins#0,ofs#0) label -Generating: N041 (???,???) [000610] ----------- IL_OFFSET void INLRT @ 0x31B[E--] REG NA -Generating: N043 ( 1, 1) [000041] -----+----- t41 = LCL_VAR byref V00 arg0 u:1 rsi (last use) REG rsi $80 - /--* t41 byref -Generating: N045 (???,???) [000613] ----------- t613 = * PUTARG_REG byref REG rcx - V00 in reg rsi is becoming dead [000041] - Live regs: 00000000000000C8 {rbx rsi rdi} - {rsi} => 0000000000000088 {rbx rdi} -Debug: Closing V00 debug range. - Live vars after [000041]: {V00 V01 V02} -{V00} => {V01 V02} - Byref regs: 0040 {rsi} => 0000 {} -Mapped BB43 to G_M48046_IG05 -IN0008: mov rcx, rsi - Byref regs: 0000 {} => 0002 {rcx} -Generating: N047 ( 1, 1) [000042] -----+----- t42 = LCL_VAR long V01 arg1 u:1 rdi (last use) REG rdi $c0 - /--* t42 long -Generating: N049 (???,???) [000614] ----------- t614 = * PUTARG_REG long REG rdx - V01 in reg rdi is becoming dead [000042] - Live regs: 0000000000000088 {rbx rdi} - {rdi} => 0000000000000008 {rbx} -Debug: Closing V01 debug range. - Live vars after [000042]: {V01 V02} -{V01} => {V02} -IN0009: mov rdx, rdi -Generating: N051 ( 1, 1) [000043] -----+----- t43 = LCL_VAR int V02 arg2 u:1 rbx (last use) REG rbx $100 - /--* t43 int -Generating: N053 (???,???) [000615] ----------- t615 = * PUTARG_REG int REG r8 - V02 in reg rbx is becoming dead [000043] - Live regs: 0000000000000008 {rbx} - {rbx} => 0000000000000000 {} -Debug: Closing V02 debug range. - Live vars after [000043]: {V02} -{V02} => {} -IN000a: mov r8d, ebx - /--* t613 byref arg0 rcx - +--* t614 long arg1 rdx - +--* t615 int arg2 r8 -Generating: N055 ( 17, 11) [000044] --CXG+----- * CALL void REG NA $VN.Void - Byref regs: 0002 {rcx} => 0000 {} - Byref regs: 0000 {} => 0002 {rcx} -Added IP mapping: EPILOG (G_M48046_IG05,ins#3,ofs#9) label -Reserving epilog IG for block BB43 -Saved: - G_M48046_IG05: ; offs=0x000024, size=0x0009, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB43 [0042], byref -Created: - G_M48046_IG06: ; offs=0x00002D, size=0x0000, bbWeight=0.50, gcrefRegs=0000 {} -Created: - G_M48046_IG07: ; offs=0x00012D, size=0x0000, bbWeight=0.50, gcrefRegs=0000 {}, epilog -*************** After placeholder IG creation -G_M48046_IG01: ; func=00, offs=0x000000, size=0x0000, bbWeight=1, gcrefRegs=0000 {} <-- Prolog IG -G_M48046_IG02: ; offs=0x000000, size=0x0008, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB01 [0000], byref -G_M48046_IG03: ; offs=0x000008, size=0x0013, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB52 [0051], byref -G_M48046_IG04: ; offs=0x00001B, size=0x0009, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB57 [0057], byref -G_M48046_IG05: ; offs=0x000024, size=0x0009, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB43 [0042], byref -G_M48046_IG06: ; epilog placeholder, next placeholder=, BB43 [0042], epilog, extend <-- First placeholder <-- Last placeholder - ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0040 {rsi} - ; InitGCVars=0000000000000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0040 {rsi} -G_M48046_IG07: ; offs=0x00012D, size=0x0000, bbWeight=0.50, gcrefRegs=0000 {} <-- Current IG - -Variable Live Range History Dump for BB43 -V00 arg0: rsi [(G_M48046_IG02,ins#0,ofs#0), (G_M48046_IG05,ins#0,ofs#0)] -V01 arg1: rdi [(G_M48046_IG02,ins#0,ofs#0), (G_M48046_IG05,ins#1,ofs#3)] -V02 arg2: rbx [(G_M48046_IG02,ins#0,ofs#0), (G_M48046_IG05,ins#2,ofs#6)] - -=============== Generating BB09 [0008] [068..1F5) -> BB42(0.5),BB66(0.5) (cond), preds={BB57} succs={BB66,BB42} flags=0x00000000.00001411: i LIR label has-align -BB09 IN (3)={V02 V00 V01} - OUT(4)={V02 V04 V00 V01} - -Recording Var Locations at start of BB09 - V02(rbx) V00(rsi) V01(rdi) -Change life 0000000000000000 {} -> 000000000000000D {V00 V01 V02} - V02 in reg rbx is becoming live [------] - Live regs: 0000000000000000 {} + {rbx} => 0000000000000008 {rbx} -Debug: New V02 debug range: new var or location - V00 in reg rsi is becoming live [------] - Live regs: 0000000000000008 {rbx} + {rsi} => 0000000000000048 {rbx rsi} -Debug: New V00 debug range: new var or location - V01 in reg rdi is becoming live [------] - Live regs: 0000000000000048 {rbx rsi} + {rdi} => 00000000000000C8 {rbx rsi rdi} -Debug: New V01 debug range: new var or location - Live regs: (unchanged) 00000000000000C8 {rbx rsi rdi} - GC regs: (unchanged) 0000 {} - Byref regs: (unchanged) 0040 {rsi} - - L_M48046_BB09: -Label: G_M48046_IG07, GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi} - -Scope info: begin block BB09, IL range [068..1F5) -Added IP mapping: 0x0068 STACK_EMPTY (G_M48046_IG07,ins#0,ofs#0) label -Generating: N059 (???,???) [000603] ----------- IL_OFFSET void INLRT @ 0x068[E--] REG NA -Generating: N061 ( 1, 1) [000046] -----+----- t46 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $100 - /--* t46 int -Generating: N063 ( 2, 3) [000047] -----+----- t47 = * CAST long <- int REG rax $240 -Mapped BB09 to G_M48046_IG07 -IN000b: movsxd rax, ebx -Generating: N065 ( 1, 1) [000049] -c---+----- t49 = CNS_INT long -1 REG NA $280 - /--* t47 long - +--* t49 long -Generating: N067 ( 4, 5) [000050] -----+----- t50 = * ADD long REG rax $241 -IN000c: dec rax - /--* t50 long -Generating: N069 ( 4, 5) [000051] DA---+----- * STORE_LCL_VAR long V04 loc1 d:1 rax REG rax $VN.Void - V04 in reg rax is becoming live [000051] - Live regs: 00000000000000C8 {rbx rsi rdi} + {rax} => 00000000000000C9 {rax rbx rsi rdi} -Debug: New V04 debug range: first - Live vars after [000051]: {V00 V01 V02} +{V04} => {V00 V01 V02 V04} -Added IP mapping: 0x02E5 STACK_EMPTY (G_M48046_IG07,ins#2,ofs#6) -Generating: N071 (???,???) [000604] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA -Generating: N073 ( 1, 1) [000533] ----------- t533 = LCL_VAR int V02 arg2 u:6 rbx REG rbx $2c2 -Generating: N075 ( 1, 1) [000534] -c--------- t534 = CNS_INT int 0 REG NA $40 - /--* t533 int - +--* t534 int -Generating: N077 ( 3, 3) [000532] -------N--- * CMP void REG NA -IN000d: test ebx, ebx -Generating: N079 ( 5, 5) [000531] ----------- JCC void cond=SLE REG NA -IN000e: jle L_M48046_BB42 -ALIGN: loop block BB66 needing alignment has not been generated yet; not marking IG back edge. -IN000f: align [15 bytes] -Adding 'align' instruction of 15 bytes in G_M48046_IG07. -Mapping 'align' instruction in IG07 to target IG07 -Saved: - G_M48046_IG07: ; offs=0x00012D, size=0x001D, bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB09 [0008], gcvars, byref, align -Created: - G_M48046_IG08: ; offs=0x00014A, size=0x0000, bbWeight=0.75, gcrefRegs=0000 {} - -Variable Live Range History Dump for BB09 -V00 arg0: rsi [(G_M48046_IG07,ins#0,ofs#0), ...] -V01 arg1: rdi [(G_M48046_IG07,ins#0,ofs#0), ...] -V02 arg2: rbx [(G_M48046_IG07,ins#0,ofs#0), ...] -V04 loc1: rax [(G_M48046_IG07,ins#2,ofs#6), ...] - -=============== Generating BB66 [0093] [2B3..2DD) -> BB62(0.5),BB40(0.5) (cond), preds={BB09,BB40} succs={BB40,BB62} flags=0x00000000.00800c11: i LIR label bwd align -BB66 IN (4)={V02 V04 V00 V01} - OUT(4)={V02 V04 V00 V01} - -Recording Var Locations at start of BB66 - V02(rbx) V04(rax) V00(rsi) V01(rdi) -Liveness not changing: 000000000000000F {V00 V01 V02 V04} - Live regs: 0000000000000000 {} + {rax rbx rsi rdi} => 00000000000000C9 {rax rbx rsi rdi} - GC regs: (unchanged) 0000 {} - Byref regs: 0000 {} => 0040 {rsi} - - L_M48046_BB66: -Adding label due to BB weight difference: BBJ_COND BB09 with weight 75 different from BB66 with weight 400 -Label: G_M48046_IG08, GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi} - -Scope info: begin block BB66, IL range [2B3..2DD) -Added IP mapping: 0x02B3 STACK_EMPTY (G_M48046_IG08,ins#0,ofs#0) label -Generating: N083 (???,???) [000608] ----------- IL_OFFSET void INLRT @ 0x2B3[E--] REG NA -Generating: N085 ( 1, 1) [000251] -----+----- t251 = LCL_VAR int V02 arg2 u:7 rbx (last use) REG rbx $2c3 -Generating: N087 ( 1, 1) [000252] -c---+----- t252 = CNS_INT int -1 REG NA $43 - /--* t251 int - +--* t252 int -Generating: N089 ( 3, 3) [000253] -----+----- t253 = * ADD int REG rbx $1b8 - V02 in reg rbx is becoming dead [000251] - Live regs: 00000000000000C9 {rax rbx rsi rdi} - {rbx} => 00000000000000C1 {rax rsi rdi} -Debug: Closing V02 debug range. - Live vars after [000251]: {V00 V01 V02 V04} -{V02} => {V00 V01 V04} -Mapped BB66 to G_M48046_IG08 -IN0010: dec ebx - /--* t253 int -Generating: N091 ( 3, 3) [000254] DA---+----- * STORE_LCL_VAR int V02 arg2 d:8 rbx REG rbx $VN.Void - V02 in reg rbx is becoming live [000254] - Live regs: 00000000000000C1 {rax rsi rdi} + {rbx} => 00000000000000C9 {rax rbx rsi rdi} -Debug: Extending V02 debug range... - Live vars after [000254]: {V00 V01 V04} +{V02} => {V00 V01 V02 V04} -Added IP mapping: 0x02B8 STACK_EMPTY (G_M48046_IG08,ins#1,ofs#2) -Generating: N093 (???,???) [000609] ----------- IL_OFFSET void INLRT @ 0x2B8[E--] REG NA -Generating: N095 ( 1, 1) [000255] -----+----- t255 = LCL_VAR byref V00 arg0 u:1 rsi REG rsi $80 -Generating: N097 ( 1, 1) [000256] -----+----- t256 = LCL_VAR long V04 loc1 u:7 rax REG rax $303 - /--* t255 byref - +--* t256 long -Generating: N099 ( 3, 3) [000259] -c---+----- t259 = * LEA(b+(i*8)+0) byref REG NA - /--* t259 byref -Generating: N101 ( 5, 4) [000260] -c-XG+----- t260 = * IND long REG NA -Generating: N103 ( 1, 1) [000261] -----+----- t261 = LCL_VAR long V01 arg1 u:1 rdi REG rdi $c0 - /--* t260 long - +--* t261 long -Generating: N105 ( 7, 6) [000485] ---XG+-N--- * CMP void REG NA -IN0011: cmp qword ptr [rsi+8*rax], rdi -Generating: N107 ( 9, 8) [000268] ---XG+----- JCC void cond=UEQ REG NA -IN0012: je L_M48046_BB62 - -Variable Live Range History Dump for BB66 -V00 arg0: rsi [(G_M48046_IG07,ins#0,ofs#0), ...] -V01 arg1: rdi [(G_M48046_IG07,ins#0,ofs#0), ...] -V02 arg2: rbx [(G_M48046_IG07,ins#0,ofs#0), ...] -V04 loc1: rax [(G_M48046_IG07,ins#2,ofs#6), ...] - -=============== Generating BB40 [0039] [2E0..2E9) -> BB66(0.5),BB42(0.5) (cond), preds={BB66} succs={BB42,BB66} flags=0x00000000.00800011: i LIR bwd -BB40 IN (4)={V02 V04 V00 V01} - OUT(4)={V02 V04 V00 V01} - -Recording Var Locations at start of BB40 - V02(rbx) V04(rax) V00(rsi) V01(rdi) -Liveness not changing: 000000000000000F {V00 V01 V02 V04} - Live regs: 0000000000000000 {} + {rax rbx rsi rdi} => 00000000000000C9 {rax rbx rsi rdi} - GC regs: (unchanged) 0000 {} - Byref regs: 0000 {} => 0040 {rsi} - - L_M48046_BB40: - -Scope info: begin block BB40, IL range [2E0..2E9) -Added IP mapping: 0x02E0 STACK_EMPTY (G_M48046_IG08,ins#3,ofs#12) label -Generating: N111 (???,???) [000606] ----------- IL_OFFSET void INLRT @ 0x2E0[E--] REG NA -Generating: N113 ( 1, 1) [000269] -----+----- t269 = LCL_VAR long V04 loc1 u:7 rax (last use) REG rax $303 -Generating: N115 ( 1, 1) [000271] -c---+----- t271 = CNS_INT long -1 REG NA $280 - /--* t269 long - +--* t271 long -Generating: N117 ( 3, 3) [000272] -----+----- t272 = * ADD long REG rax $26b - V04 in reg rax is becoming dead [000269] - Live regs: 00000000000000C9 {rax rbx rsi rdi} - {rax} => 00000000000000C8 {rbx rsi rdi} -Debug: Closing V04 debug range. - Live vars after [000269]: {V00 V01 V02 V04} -{V04} => {V00 V01 V02} -Mapped BB40 to G_M48046_IG08 -IN0013: dec rax - /--* t272 long -Generating: N119 ( 3, 3) [000273] DA---+----- * STORE_LCL_VAR long V04 loc1 d:8 rax REG rax $VN.Void - V04 in reg rax is becoming live [000273] - Live regs: 00000000000000C8 {rbx rsi rdi} + {rax} => 00000000000000C9 {rax rbx rsi rdi} -Debug: Extending V04 debug range... - Live vars after [000273]: {V00 V01 V02} +{V04} => {V00 V01 V02 V04} -Added IP mapping: 0x02E5 STACK_EMPTY (G_M48046_IG08,ins#4,ofs#15) -Generating: N121 (???,???) [000607] ----------- IL_OFFSET void INLRT @ 0x2E5[E--] REG NA -Generating: N123 ( 1, 1) [000247] -----+----- t247 = LCL_VAR int V02 arg2 u:8 rbx REG rbx $1b8 -Generating: N125 ( 1, 1) [000248] -c---+----- t248 = CNS_INT int 0 REG NA $40 - /--* t247 int - +--* t248 int -Generating: N127 ( 3, 3) [000249] -----+-N--- * CMP void REG NA -IN0014: test ebx, ebx -Generating: N129 ( 5, 5) [000250] -----+----- JCC void cond=SGT REG NA -IN0015: jg SHORT L_M48046_BB66 -** IG08 jumps back to IG08 forming a loop. -Mark BB42 as label: alignment end-of-loop - -Variable Live Range History Dump for BB40 -V00 arg0: rsi [(G_M48046_IG07,ins#0,ofs#0), ...] -V01 arg1: rdi [(G_M48046_IG07,ins#0,ofs#0), ...] -V02 arg2: rbx [(G_M48046_IG07,ins#0,ofs#0), ...] -V04 loc1: rax [(G_M48046_IG07,ins#2,ofs#6), ...] - -=============== Generating BB42 [0041] [2E9..2EB) (return), preds={BB09,BB40} succs={} flags=0x00000000.00000411: i LIR label -BB42 IN (0)={} - OUT(0)={} - -Recording Var Locations at start of BB42 - - -Change life 000000000000000F {V00 V01 V02 V04} -> 0000000000000000 {} - V02 in reg rbx is becoming dead [------] - Live regs: (unchanged) 0000000000000000 {} -Debug: Closing V02 debug range. - V04 in reg rax is becoming dead [------] - Live regs: (unchanged) 0000000000000000 {} -Debug: Closing V04 debug range. - V00 in reg rsi is becoming dead [------] - Live regs: (unchanged) 0000000000000000 {} -Debug: Closing V00 debug range. - V01 in reg rdi is becoming dead [------] - Live regs: (unchanged) 0000000000000000 {} -Debug: Closing V01 debug range. - Live regs: (unchanged) 0000000000000000 {} - GC regs: (unchanged) 0000 {} - Byref regs: (unchanged) 0000 {} - - L_M48046_BB42: -Adding label due to BB weight difference: BBJ_COND BB40 with weight 400 different from BB42 with weight 50 -Saved: - G_M48046_IG08: ; offs=0x00014A, size=0x0013, bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, loop=IG08, BB66 [0093], BB40 [0039], byref -Created: - G_M48046_IG09: ; offs=0x00015D, size=0x0000, bbWeight=0.50, gcrefRegs=0000 {} -Label: G_M48046_IG09, GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {} - -Scope info: begin block BB42, IL range [2E9..2EB) -Generating: N145 ( 1, 1) [000277] -----+----- t277 = CNS_INT int -1 REG rax $43 -Mapped BB42 to G_M48046_IG09 -IN0016: mov eax, -1 - /--* t277 int -Generating: N147 ( 2, 2) [000493] -----+----- * RETURN int REG NA $VN.Void -Added IP mapping: EPILOG (G_M48046_IG09,ins#1,ofs#5) label -Reserving epilog IG for block BB42 -Saved: - G_M48046_IG09: ; offs=0x00015D, size=0x0005, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB42 [0041], byref -Created: - G_M48046_IG10: ; offs=0x000162, size=0x0000, bbWeight=0.50, gcrefRegs=0000 {} -Created: - G_M48046_IG11: ; offs=0x000262, size=0x0000, bbWeight=0.50, gcrefRegs=0000 {}, epilog -*************** After placeholder IG creation -G_M48046_IG01: ; func=00, offs=0x000000, size=0x0000, bbWeight=1, gcrefRegs=0000 {} <-- Prolog IG -G_M48046_IG02: ; offs=0x000000, size=0x0008, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB01 [0000], byref -G_M48046_IG03: ; offs=0x000008, size=0x0013, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB52 [0051], byref -G_M48046_IG04: ; offs=0x00001B, size=0x0009, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB57 [0057], byref -G_M48046_IG05: ; offs=0x000024, size=0x0009, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB43 [0042], byref -G_M48046_IG06: ; epilog placeholder, next placeholder=IG10 , BB43 [0042], epilog, extend <-- First placeholder - ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0040 {rsi} - ; InitGCVars=0000000000000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0040 {rsi} -G_M48046_IG07: ; offs=0x00012D, size=0x001D, bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB09 [0008], gcvars, byref, align -G_M48046_IG08: ; offs=0x00014A, size=0x0013, bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, loop=IG08, BB66 [0093], BB40 [0039], byref -G_M48046_IG09: ; offs=0x00015D, size=0x0005, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB42 [0041], byref -G_M48046_IG10: ; epilog placeholder, next placeholder=, BB42 [0041], epilog, extend <-- Last placeholder - ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0040 {rsi} - ; InitGCVars=0000000000000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0000 {} -G_M48046_IG11: ; offs=0x000262, size=0x0000, bbWeight=0.50, gcrefRegs=0000 {} <-- Current IG - -Variable Live Range History Dump for BB42 -V00 arg0: rsi [(G_M48046_IG07,ins#0,ofs#0), (G_M48046_IG08,ins#6,ofs#19)] -V01 arg1: rdi [(G_M48046_IG07,ins#0,ofs#0), (G_M48046_IG08,ins#6,ofs#19)] -V02 arg2: rbx [(G_M48046_IG07,ins#0,ofs#0), (G_M48046_IG08,ins#6,ofs#19)] -V04 loc1: rax [(G_M48046_IG07,ins#2,ofs#6), (G_M48046_IG08,ins#6,ofs#19)] - -=============== Generating BB62 [0089] [09D..0A0) (return), preds={BB66} succs={} flags=0x00000000.00000411: i LIR label -BB62 IN (1)={V04} - OUT(0)={ } - -Recording Var Locations at start of BB62 - V04(rax) -Change life 0000000000000000 {} -> 0000000000000002 {V04} - V04 in reg rax is becoming live [------] - Live regs: 0000000000000000 {} + {rax} => 0000000000000001 {rax} -Debug: New V04 debug range: new var or location - Live regs: (unchanged) 0000000000000001 {rax} - GC regs: (unchanged) 0000 {} - Byref regs: (unchanged) 0000 {} - - L_M48046_BB62: -Label: G_M48046_IG11, GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {} - -Scope info: begin block BB62, IL range [09D..0A0) -Added IP mapping: 0x009D STACK_EMPTY (G_M48046_IG11,ins#0,ofs#0) label -Generating: N133 (???,???) [000605] ----------- IL_OFFSET void INLRT @ 0x09D[E--] REG NA -Generating: N135 ( 1, 1) [000240] -----+----- t240 = LCL_VAR int V04 loc1 u:12 rax (last use) REG rax $449 - /--* t240 int -Generating: N137 ( 1, 3) [000521] DA---+----- * STORE_LCL_VAR int V34 tmp29 d:8 rax REG rax $VN.Void - V04 in reg rax is becoming dead [000240] - Live regs: 0000000000000001 {rax} - {rax} => 0000000000000000 {} -Debug: Closing V04 debug range. - Live vars after [000240]: {V04} -{V04} => {} - V34 in reg rax is becoming live [000521] - Live regs: 0000000000000000 {} + {rax} => 0000000000000001 {rax} - Live vars after [000521]: {} +{V34} => {V34} -Generating: N139 ( 1, 1) [000491] -----+-N--- t491 = LCL_VAR int V34 tmp29 u:9 rax (last use) REG rax $2c4 - /--* t491 int -Generating: N141 ( 2, 2) [000492] -----+----- * RETURN int REG NA $VN.Void - V34 in reg rax is becoming dead [000491] - Live regs: 0000000000000001 {rax} - {rax} => 0000000000000000 {} - Live vars after [000491]: {V34} -{V34} => {} -Added IP mapping: EPILOG (G_M48046_IG11,ins#0,ofs#0) label -Reserving epilog IG for block BB62 -*************** After placeholder IG creation -G_M48046_IG01: ; func=00, offs=0x000000, size=0x0000, bbWeight=1, gcrefRegs=0000 {} <-- Prolog IG -G_M48046_IG02: ; offs=0x000000, size=0x0008, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB01 [0000], byref -G_M48046_IG03: ; offs=0x000008, size=0x0013, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB52 [0051], byref -G_M48046_IG04: ; offs=0x00001B, size=0x0009, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB57 [0057], byref -G_M48046_IG05: ; offs=0x000024, size=0x0009, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB43 [0042], byref -G_M48046_IG06: ; epilog placeholder, next placeholder=IG10 , BB43 [0042], epilog, extend <-- First placeholder - ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0040 {rsi} - ; InitGCVars=0000000000000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0040 {rsi} -G_M48046_IG07: ; offs=0x00012D, size=0x001D, bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB09 [0008], gcvars, byref, align -G_M48046_IG08: ; offs=0x00014A, size=0x0013, bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, loop=IG08, BB66 [0093], BB40 [0039], byref -G_M48046_IG09: ; offs=0x00015D, size=0x0005, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB42 [0041], byref -G_M48046_IG10: ; epilog placeholder, next placeholder=IG11 , BB42 [0041], epilog, extend - ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0040 {rsi} - ; InitGCVars=0000000000000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0000 {} -G_M48046_IG11: ; epilog placeholder, next placeholder=, BB62 [0089], epilog <-- Last placeholder - ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0040 {rsi} - ; InitGCVars=0000000000000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0000 {} - -Variable Live Range History Dump for BB62 -V04 loc1: rax [(G_M48046_IG11,ins#0,ofs#0), (G_M48046_IG11,ins#0,ofs#0)] -Liveness not changing: 0000000000000000 {} - -# compCycleEstimate = 77, compSizeEstimate = 72 System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int -; Final local variable assignments -; -; V00 arg0 [V00,T02] ( 4, 6.50) byref -> rsi single-def -; V01 arg1 [V01,T03] ( 4, 6.50) long -> rdi single-def -; V02 arg2 [V02,T00] ( 10, 18 ) int -> rbx -;* V03 loc0 [V03 ] ( 0, 0 ) ubyte -> zero-ref -; V04 loc1 [V04,T01] ( 5, 13.25) long -> rax -; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -;* V06 tmp1 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V07 tmp2 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V08 tmp3 [V08 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V09 tmp4 [V09 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V10 tmp5 [V10 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V11 tmp6 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V12 tmp7 [V12 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V13 tmp8 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V14 tmp9 [V14 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V15 tmp10 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V16 tmp11 [V16 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V17 tmp12 [V17 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V18 tmp13 [V18 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V19 tmp14 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V20 tmp15 [V20 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V21 tmp16 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V22 tmp17 [V22 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V23 tmp18 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V24 tmp19 [V24 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V25 tmp20 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V26 tmp21 [V26 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V27 tmp22 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V28 tmp23 [V28 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V29 tmp24 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V30 tmp25 [V30 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V31 tmp26 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -;* V32 tmp27 [V32 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V33 tmp28 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" -; V34 tmp29 [V34,T04] ( 2, 2 ) int -> rax "Single return block return value" -; -; Lcl frame size = 32 -*************** Before prolog / epilog generation -G_M48046_IG01: ; func=00, offs=0x000000, size=0x0000, bbWeight=1, gcrefRegs=0000 {} <-- Prolog IG -G_M48046_IG02: ; offs=0x000000, size=0x0008, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB01 [0000], byref -G_M48046_IG03: ; offs=0x000008, size=0x0013, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB52 [0051], byref -G_M48046_IG04: ; offs=0x00001B, size=0x0009, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB57 [0057], byref -G_M48046_IG05: ; offs=0x000024, size=0x0009, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB43 [0042], byref -G_M48046_IG06: ; epilog placeholder, next placeholder=IG10 , BB43 [0042], epilog, extend <-- First placeholder - ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0040 {rsi} - ; InitGCVars=0000000000000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0040 {rsi} -G_M48046_IG07: ; offs=0x00012D, size=0x001D, bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB09 [0008], gcvars, byref, align -G_M48046_IG08: ; offs=0x00014A, size=0x0013, bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, loop=IG08, BB66 [0093], BB40 [0039], byref -G_M48046_IG09: ; offs=0x00015D, size=0x0005, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB42 [0041], byref -G_M48046_IG10: ; epilog placeholder, next placeholder=IG11 , BB42 [0041], epilog, extend - ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0040 {rsi} - ; InitGCVars=0000000000000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0000 {} -G_M48046_IG11: ; epilog placeholder, next placeholder=, BB62 [0089], epilog <-- Last placeholder - ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0040 {rsi} - ; InitGCVars=0000000000000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0000 {} -Recording Var Locations at start of BB01 - V02(rbx) V00(rsi) V01(rdi) -*************** In genFnProlog() -Added IP mapping to front: PROLOG (G_M48046_IG01,ins#0,ofs#0) label - -__prolog: -Debug: New V00 debug range: first -Debug: New V01 debug range: first -Debug: New V02 debug range: first -IN0017: push rdi -IN0018: push rsi -IN0019: push rbx -IN001a: sub rsp, 32 -*************** In genHomeRegisterParams() -6 registers in register parameter interference graph - rcx - rsi - <- rcx - rdx - rdi - <- rdx - r8 - rbx - <- r8 -IN001b: mov rsi, rcx -IN001c: mov rdi, rdx -IN001d: mov ebx, r8d -*************** In genEnregisterIncomingStackArgs() -Debug: Closing V00 debug range. -Debug: Closing V01 debug range. -Debug: Closing V02 debug range. - -Saved: - G_M48046_IG01: ; offs=0x000000, size=0x0010, bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc -*************** In genFnEpilog() - -__epilog: -gcVarPtrSetCur=0000000000000000 {}, gcRegGCrefSetCur=0000 {}, gcRegByrefSetCur=0040 {rsi} -IN001e: add rsp, 32 -IN001f: pop rbx -IN0020: pop rsi -IN0021: pop rdi - Call: GCvars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi} -IN0022: jmp -Saved: - G_M48046_IG06: ; offs=0x00002D, size=0x000C, bbWeight=0.50, epilog, nogc, extend -*************** In genFnEpilog() - -__epilog: -gcVarPtrSetCur=0000000000000000 {}, gcRegGCrefSetCur=0000 {}, gcRegByrefSetCur=0000 {} -IN0023: add rsp, 32 -IN0024: pop rbx -IN0025: pop rsi -IN0026: pop rdi -IN0027: ret -Saved: - G_M48046_IG10: ; offs=0x000162, size=0x0008, bbWeight=0.50, epilog, nogc, extend -*************** In genFnEpilog() - -__epilog: -gcVarPtrSetCur=0000000000000000 {}, gcRegGCrefSetCur=0000 {}, gcRegByrefSetCur=0000 {} -IN0028: add rsp, 32 -IN0029: pop rbx -IN002a: pop rsi -IN002b: pop rdi -IN002c: ret -Saved: - G_M48046_IG11: ; offs=0x000262, size=0x0008, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc -0 prologs, 3 epilogs, 0 funclet prologs, 0 funclet epilogs -*************** After prolog / epilog generation -G_M48046_IG01: ; func=00, offs=0x000000, size=0x0010, bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG -G_M48046_IG02: ; offs=0x000010, size=0x0008, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB01 [0000], byref -G_M48046_IG03: ; offs=0x000018, size=0x0013, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB52 [0051], byref -G_M48046_IG04: ; offs=0x00002B, size=0x0009, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB57 [0057], byref -G_M48046_IG05: ; offs=0x000034, size=0x0009, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB43 [0042], byref -G_M48046_IG06: ; offs=0x00003D, size=0x000C, bbWeight=0.50, epilog, nogc, extend -G_M48046_IG07: ; offs=0x000049, size=0x001D, bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB09 [0008], gcvars, byref, align -G_M48046_IG08: ; offs=0x000066, size=0x0013, bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, loop=IG08, BB66 [0093], BB40 [0039], byref -G_M48046_IG09: ; offs=0x000079, size=0x0005, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB42 [0041], byref -G_M48046_IG10: ; offs=0x00007E, size=0x0008, bbWeight=0.50, epilog, nogc, extend -G_M48046_IG11: ; offs=0x000086, size=0x0008, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc -*************** In emitJumpDistBind() -Emitter Jump List: -IG02 IN0002 jge[6] -> IG04 -IG04 IN0007 jl[6] -> IG07 -IG07 IN000e jle[6] -> IG09 -IG08 IN0012 je[6] -> IG11 -IG08 IN0015 jg[2] -> IG08 (short) - total jump count: 5 -Binding: IN0002: 000000 jge L_M48046_BB57 -Binding L_M48046_BB57 to G_M48046_IG04 -Estimate of fwd jump [5C7592E4/002]: 0012 -> 002B = 0017 -Shrinking jump [5C7592E4/002] -Adjusted offset of BB03 from 0018 to 0014 -Adjusted offset of BB04 from 002B to 0027 -Binding: IN0007: 000000 jl L_M48046_BB09 -Binding L_M48046_BB09 to G_M48046_IG07 -Estimate of fwd jump [5C75999C/007]: 002A -> 0045 = 0019 -Shrinking jump [5C75999C/007] -Adjusted offset of BB05 from 0034 to 002C -Adjusted offset of BB06 from 003D to 0035 -Adjusted offset of BB07 from 0049 to 0041 -Binding: IN000e: 000000 jle L_M48046_BB42 -Binding L_M48046_BB42 to G_M48046_IG09 -Estimate of fwd jump [5C75A1F4/014]: 0049 -> 0071 = 0026 -Shrinking jump [5C75A1F4/014] -Adjusted offset of BB08 from 0066 to 005A -Binding: IN0012: 000000 je L_M48046_BB62 -Binding L_M48046_BB62 to G_M48046_IG11 -Estimate of fwd jump [5C75AA5C/018]: 0060 -> 007A = 0018 -Shrinking jump [5C75AA5C/018] -Binding: IN0015: 000000 jg SHORT L_M48046_BB66 -Binding L_M48046_BB66 to G_M48046_IG08 -Estimate of bwd jump [5C75AAB4/021]: 0067 -> 005A = 000F -Shrinking jump [5C75AAB4/021] -Adjusted offset of BB09 from 0079 to 0069 -Adjusted offset of BB10 from 007E to 006E -Adjusted offset of BB11 from 0086 to 0076 -Total shrinkage = 16, min extra jump size = 4294967295 -*************** In emitLoopAlignAdjustments() -compJitAlignLoopAdaptive = true -compJitAlignLoopBoundary = 32 -compJitAlignLoopMinBlockWeight = 3 -compJitAlignLoopForJcc = false -compJitAlignLoopMaxCodeSize = 96 -compJitAlignPaddingLimit = 15 - Adjusting 'align' instruction in IG07 that is targeted for IG08 -*************** In getLoopSize() for G_M48046_IG08 - G_M48046_IG08 has 15 bytes. -- Found the back edge. -loopSize of G_M48046_IG08 = 15 bytes. -;; Skip alignment: 'Loop at G_M48046_IG08 is aligned to fit in 1 blocks of 16 chunks.' -;; Calculated padding to add 0 bytes to align G_M48046_IG08 at 16B boundary. -Adjusted alignment for G_M48046_IG08 from 15 to 0. -Adjusted size of G_M48046_IG07 from 25 to 10. -Adjusted offset of G_M48046_IG08 from 005A to 004B -Adjusted offset of G_M48046_IG09 from 0069 to 005A -Adjusted offset of G_M48046_IG10 from 006E to 005F -Adjusted offset of G_M48046_IG11 from 0076 to 0067 - -*************** Finishing PHASE Generate code - -*************** Starting PHASE Emit code - -Hot code size = 0x6F bytes -Cold code size = 0x0 bytes -reserveUnwindInfo(isFunclet=false, isColdCode=false, unwindSize=0xc) -*************** In emitEndCodeGen() -Converting emitMaxStackDepth from bytes (0) to elements (0) - -*************************************************************************** -Instructions as they come out of the scheduler - - -G_M48046_IG01: ; offs=0x000000, size=0x0010, bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG -IN0017: 000000 push rdi -IN0018: 000001 push rsi -IN0019: 000002 push rbx -IN001a: 000003 sub rsp, 32 -IN001b: 000007 mov rsi, rcx - ; byrRegs +[rsi] -IN001c: 00000A mov rdi, rdx -IN001d: 00000D mov ebx, r8d - ;; size=16 bbWeight=1 PerfScore 4.00 -G_M48046_IG02: ; offs=0x000010, size=0x0004, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB01 [0000], byref, isz -IN0001: 000010 test ebx, ebx -IN0002: 000012 jge SHORT G_M48046_IG04 - ;; size=4 bbWeight=1 PerfScore 1.25 -G_M48046_IG03: ; offs=0x000014, size=0x0013, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB52 [0051], byref -recordRelocation: 000002125A7446D7 (rw: 000002125A7446D7) => 4000000000443870, type 2 (RELOC_DISP32), delta 0 -IN0003: 000014 lea rcx, gword ptr [(reloc 0x4000000000443870)] - ; gcrRegs +[rcx] -recordRelocation: 000002125A7446DE (rw: 000002125A7446DE) => 40000000004207C0, type 2 (RELOC_DISP32), delta 0 -IN0004: 00001B lea rdx, gword ptr [(reloc 0x40000000004207c0)] - ; gcrRegs +[rdx] -recordRelocation: 000002125A7446E3 (rw: 000002125A7446E3) => 40000000004205B0, type 2 (CorInfoReloc::RELATIVE32), delta 0 -IN0005: 000022 call - ; gcrRegs -[rcx rdx] - ; gcr arg pop 0 - ;; size=19 bbWeight=0.50 PerfScore 1.00 -G_M48046_IG04: ; offs=0x000027, size=0x0005, bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB57 [0057], byref, isz -IN0006: 000027 cmp ebx, 2 -IN0007: 00002A jl SHORT G_M48046_IG07 - ;; size=5 bbWeight=1 PerfScore 1.25 -G_M48046_IG05: ; offs=0x00002C, size=0x0009, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB43 [0042], byref -IN0008: 00002C mov rcx, rsi - ; byrRegs +[rcx] -IN0009: 00002F mov rdx, rdi -IN000a: 000032 mov r8d, ebx - ;; size=9 bbWeight=0.50 PerfScore 0.38 -G_M48046_IG06: ; offs=0x000035, size=0x000C, bbWeight=0.50, epilog, nogc, extend -IN001e: 000035 add rsp, 32 -IN001f: 000039 pop rbx -IN0020: 00003A pop rsi -IN0021: 00003B pop rdi -recordRelocation: 000002125A7446FD (rw: 000002125A7446FD) => 4000000000444000, type 2 (CorInfoReloc::RELATIVE32), delta 0 -IN0022: 00003C jmp - ;; size=12 bbWeight=0.50 PerfScore 1.88 -G_M48046_IG07: ; offs=0x000041, size=0x000A, bbWeight=0.75, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB09 [0008], gcvars, byref, isz - ; byrRegs -[rcx] -IN000b: 000041 movsxd rax, ebx -IN000c: 000044 dec rax -IN000d: 000047 test ebx, ebx -IN000e: 000049 jle SHORT G_M48046_IG09 -IN000f: 00004B align [0 bytes for IG08] - ;; size=10 bbWeight=0.75 PerfScore 1.31 -G_M48046_IG08: ; offs=0x00004B, size=0x000F, bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, loop=IG08, BB66 [0093], BB40 [0039], byref, isz -IN0010: 00004B dec ebx -IN0011: 00004D cmp qword ptr [rsi+8*rax], rdi -IN0012: 000051 je SHORT G_M48046_IG11 -IN0013: 000053 dec rax -IN0014: 000056 test ebx, ebx -IN0015: 000058 jg SHORT G_M48046_IG08 - ;; size=15 bbWeight=4 PerfScore 19.00 -G_M48046_IG09: ; offs=0x00005A, size=0x0005, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB42 [0041], byref - ; byrRegs -[rsi] -IN0016: 00005A mov eax, -1 - ;; size=5 bbWeight=0.50 PerfScore 0.12 -G_M48046_IG10: ; offs=0x00005F, size=0x0008, bbWeight=0.50, epilog, nogc, extend -IN0023: 00005F add rsp, 32 -IN0024: 000063 pop rbx -IN0025: 000064 pop rsi -IN0026: 000065 pop rdi -IN0027: 000066 ret - ;; size=8 bbWeight=0.50 PerfScore 1.38 -G_M48046_IG11: ; offs=0x000067, size=0x0008, bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc -IN0028: 000067 add rsp, 32 -IN0029: 00006B pop rbx -IN002a: 00006C pop rsi -IN002b: 00006D pop rdi -IN002c: 00006E ret - ;; size=8 bbWeight=0.50 PerfScore 1.38 - -Allocated method code size = 111 , actual size = 111, unused size = 0 - -; Total bytes of code 111, prolog size 16, PerfScore 32.94, instruction count 44, allocated bytes for code 111 (MethodHash=aa464451) for method System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int (FullOpts) -; ============================================================ - -*************** After end code gen, before unwindEmit() -G_M48046_IG01: ; func=00, offs=0x000000, size=0x0010, bbWeight=1, PerfScore 4.00, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG - -IN0017: 000000 push rdi -IN0018: 000001 push rsi -IN0019: 000002 push rbx -IN001a: 000003 sub rsp, 32 -IN001b: 000007 mov rsi, rcx -IN001c: 00000A mov rdi, rdx -IN001d: 00000D mov ebx, r8d - -G_M48046_IG02: ; offs=0x000010, size=0x0004, bbWeight=1, PerfScore 1.25, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB01 [0000], byref, isz - -IN0001: 000010 test ebx, ebx -IN0002: 000012 jge SHORT G_M48046_IG04 - -G_M48046_IG03: ; offs=0x000014, size=0x0013, bbWeight=0.50, PerfScore 1.00, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB52 [0051], byref - -IN0003: 000014 lea rcx, gword ptr [(reloc 0x4000000000443870)] -IN0004: 00001B lea rdx, gword ptr [(reloc 0x40000000004207c0)] -IN0005: 000022 call - -G_M48046_IG04: ; offs=0x000027, size=0x0005, bbWeight=1, PerfScore 1.25, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB57 [0057], byref, isz - -IN0006: 000027 cmp ebx, 2 -IN0007: 00002A jl SHORT G_M48046_IG07 - -G_M48046_IG05: ; offs=0x00002C, size=0x0009, bbWeight=0.50, PerfScore 0.38, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB43 [0042], byref - -IN0008: 00002C mov rcx, rsi -IN0009: 00002F mov rdx, rdi -IN000a: 000032 mov r8d, ebx - -G_M48046_IG06: ; offs=0x000035, size=0x000C, bbWeight=0.50, PerfScore 1.88, epilog, nogc, extend - -IN001e: 000035 add rsp, 32 -IN001f: 000039 pop rbx -IN0020: 00003A pop rsi -IN0021: 00003B pop rdi -IN0022: 00003C jmp - -G_M48046_IG07: ; offs=0x000041, size=0x000A, bbWeight=0.75, PerfScore 1.31, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, BB09 [0008], gcvars, byref, isz - -IN000b: 000041 movsxd rax, ebx -IN000c: 000044 dec rax -IN000d: 000047 test ebx, ebx -IN000e: 000049 jle SHORT G_M48046_IG09 -IN000f: 00004B align [0 bytes for IG08] - -G_M48046_IG08: ; offs=0x00004B, size=0x000F, bbWeight=4, PerfScore 19.00, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, loop=IG08, BB66 [0093], BB40 [0039], byref, isz - -IN0010: 00004B dec ebx -IN0011: 00004D cmp qword ptr [rsi+8*rax], rdi -IN0012: 000051 je SHORT G_M48046_IG11 -IN0013: 000053 dec rax -IN0014: 000056 test ebx, ebx -IN0015: 000058 jg SHORT G_M48046_IG08 - -G_M48046_IG09: ; offs=0x00005A, size=0x0005, bbWeight=0.50, PerfScore 0.12, gcrefRegs=0000 {}, byrefRegs=0000 {}, BB42 [0041], byref - -IN0016: 00005A mov eax, -1 - -G_M48046_IG10: ; offs=0x00005F, size=0x0008, bbWeight=0.50, PerfScore 1.38, epilog, nogc, extend - -IN0023: 00005F add rsp, 32 -IN0024: 000063 pop rbx -IN0025: 000064 pop rsi -IN0026: 000065 pop rdi -IN0027: 000066 ret - -G_M48046_IG11: ; offs=0x000067, size=0x0008, bbWeight=0.50, PerfScore 1.38, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc - -IN0028: 000067 add rsp, 32 -IN0029: 00006B pop rbx -IN002a: 00006C pop rsi -IN002b: 00006D pop rdi -IN002c: 00006E ret - - -*************** Finishing PHASE Emit code - -*************** Starting PHASE Emit GC+EH tables -Unwind Info: - >> Start offset : 0x000000 (not in unwind data) - >> End offset : 0x00006f (not in unwind data) - Version : 1 - Flags : 0x00 - SizeOfProlog : 0x07 - CountOfUnwindCodes: 4 - FrameRegister : none (0) - FrameOffset : N/A (no FrameRegister) (Value=0) - UnwindCodes : - CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20 - CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) - CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7) -allocUnwindInfo(pHotCode=0x000002125A7446C0, pColdCode=0x0000000000000000, startOffset=0x0, endOffset=0x6f, unwindSize=0xc, pUnwindBlock=0x000002125C748AFC, funKind=0 (main function)) -*************** In genIPmappingGen() -IP mapping count : 14 -IL offs PROLOG : 0x00000000 ( STACK_EMPTY ) -IL offs 0x0000 : 0x00000010 ( STACK_EMPTY ) -IL offs 0x005D : 0x00000027 ( STACK_EMPTY ) -IL offs 0x031B : 0x0000002C ( STACK_EMPTY ) -IL offs EPILOG : 0x00000035 ( STACK_EMPTY ) -IL offs 0x0068 : 0x00000041 ( STACK_EMPTY ) -IL offs 0x02E5 : 0x00000047 ( STACK_EMPTY ) -IL offs 0x02B3 : 0x0000004B ( STACK_EMPTY ) -IL offs 0x02B8 : 0x0000004D ( STACK_EMPTY ) -IL offs 0x02E0 : 0x00000053 ( STACK_EMPTY ) -IL offs 0x02E5 : 0x00000056 ( STACK_EMPTY ) -IL offs EPILOG : 0x0000005F ( STACK_EMPTY ) -IL offs 0x009D : 0x00000067 ( STACK_EMPTY ) -IL offs EPILOG : 0x00000067 ( STACK_EMPTY ) - -*************** In genSetScopeInfo() -VarLocInfo count is 11 -; Variable debug info: 10 live ranges, 4 vars for method System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int -(V00 arg0) : From 00000000h to 00000010h, in rcx -(V00 arg0) : From 00000010h to 0000002Ch, in rsi -(V00 arg0) : From 00000041h to 0000005Ah, in rsi -(V01 arg1) : From 00000000h to 00000010h, in rdx -(V01 arg1) : From 00000010h to 0000002Fh, in rdi -(V01 arg1) : From 00000041h to 0000005Ah, in rdi -(V02 arg2) : From 00000000h to 00000010h, in r8 -(V02 arg2) : From 00000010h to 00000032h, in rbx -(V02 arg2) : From 00000041h to 0000005Ah, in rbx -(V04 loc1) : From 00000047h to 0000005Ah, in rax -*************** In gcInfoBlockHdrSave() -Set code length to 111. -Set Outgoing stack arg area size to 32. -Register slot id for reg rsi (byref) = 0. -Register slot id for reg rcx = 1. -Register slot id for reg rdx = 2. -Register slot id for reg rcx (byref) = 3. -Set state of slot 0 at instr offset 0xa to Live. -Set state of slot 1 at instr offset 0x1b to Live. -Set state of slot 2 at instr offset 0x22 to Live. -Set state of slot 1 at instr offset 0x27 to Dead. -Set state of slot 2 at instr offset 0x27 to Dead. -Set state of slot 3 at instr offset 0x2f to Live. -Set state of slot 3 at instr offset 0x41 to Dead. -Set state of slot 0 at instr offset 0x5a to Dead. -Defining interruptible range: [0x10, 0x39). -Defining interruptible range: [0x41, 0x63). - -*************** Finishing PHASE Emit GC+EH tables -Method code size: 111 - -Allocations for System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int (MethodHash=aa464451) -count: 6252, size: 585021, max = 7576 -allocateMemory: 655360, nraUsed: 592896 - -Alloc'd bytes by kind: - kind | size | pct - ---------------------+------------+-------- - ABI | 160 | 0.03% - AssertionProp | 7676 | 1.31% - ASTNode | 92592 | 15.83% - InstDesc | 7116 | 1.22% - ImpStack | 1728 | 0.30% - BasicBlock | 28464 | 4.87% - CallArgs | 4480 | 0.77% - FlowEdge | 3880 | 0.66% - DepthFirstSearch | 31016 | 5.30% - Loops | 3832 | 0.66% - TreeStatementList | 0 | 0.00% - SiScope | 0 | 0.00% - DominatorMemory | 5544 | 0.95% - Lower | 0 | 0.00% - LSRA | 18756 | 3.21% - LSRA_Interval | 1632 | 0.28% - LSRA_RefPosition | 6160 | 1.05% - Reachability | 440 | 0.08% - RedundantBranch | 0 | 0.00% - SSA | 4608 | 0.79% - ValueNumber | 33684 | 5.76% - LvaTable | 7796 | 1.33% - UnwindInfo | 0 | 0.00% - hashBv | 128 | 0.02% - bitset | 9600 | 1.64% - FixedBitVect | 696 | 0.12% - Generic | 1390 | 0.24% - LocalAddressVisitor | 904 | 0.15% - FieldSeqStore | 0 | 0.00% - MemorySsaMap | 40 | 0.01% - MemoryPhiArg | 32 | 0.01% - CSE | 4304 | 0.74% - GC | 2784 | 0.48% - CorTailCallInfo | 0 | 0.00% - Inlining | 23760 | 4.06% - ArrayStack | 2176 | 0.37% - DebugInfo | 872 | 0.15% - DebugOnly | 263798 | 45.09% - Codegen | 2976 | 0.51% - LoopOpt | 592 | 0.10% - LoopClone | 96 | 0.02% - LoopUnroll | 0 | 0.00% - LoopHoist | 592 | 0.10% - LoopIVOpts | 800 | 0.14% - Unknown | 1869 | 0.32% - RangeCheck | 0 | 0.00% - CopyProp | 2464 | 0.42% - Promotion | 3720 | 0.64% - SideEffects | 0 | 0.00% - ObjectAllocator | 0 | 0.00% - VariableLiveRanges | 1632 | 0.28% - ClassLayout | 144 | 0.02% - TailMergeThrows | 0 | 0.00% - EarlyProp | 0 | 0.00% - ZeroInit | 88 | 0.02% - Pgo | 0 | 0.00% - MaskConversionOpt | 0 | 0.00% - TryRegionClone | 0 | 0.00% - Async | 0 | 0.00% - RangeCheckCloning | 0 | 0.00% - WasmSccTransform | 0 | 0.00% - WasmCfgLowering | 0 | 0.00% - WasmEH | 0 | 0.00% - -Final metrics: -ActualCodeBytes : 111 -AllocatedHotCodeBytes : 111 -AllocatedColdCodeBytes : 0 -ReadOnlyDataBytes : 0 -GCInfoBytes : 22 -EHClauseCount : 0 -PhysicallyPromotedFields : 0 -LoopsFoundDuringOpts : 2 -LoopsInverted : 2 -LoopsCloned : 0 -LoopsUnrolled : 0 -LoopAlignmentCandidates : 1 -LoopsAligned : 0 -LoopsIVWidened : 0 -WidenedIVs : 0 -UnusedIVsRemoved : 0 -LoopsMadeDownwardsCounted : 0 -LoopsStrengthReduced : 0 -VarsInSsa : 5 -HoistedExpressions : 0 -RedundantBranchesEliminated : 1 -JumpThreadingsPerformed : 0 -CseCount : 0 -BasicBlocksAtCodegen : 9 -PerfScore : 32.937500 -BytesAllocated : 592896 -ImporterBranchFold : 7 -ImporterSwitchFold : 0 -DevirtualizedCall : 0 -DevirtualizedCallUnboxedEntry : 0 -DevirtualizedCallRemovedBox : 0 -GDV : 0 -ClassGDV : 0 -MethodGDV : 0 -MultiGuessGDV : 0 -ChainedGDV : 0 -EnumeratorGDV : 0 -InlinerBranchFold : 0 -InlineAttempt : 30 -InlineCount : 30 -ProfileConsistentBeforeInline : 0 -ProfileConsistentAfterInline : 0 -ProfileConsistentBeforeMorph : 0 -ProfileConsistentAfterMorph : 0 -ProfileSynthesizedBlendedOrRepaired : 0 -ProfileInconsistentInitially : 0 -ProfileInconsistentResetLeave : 0 -ProfileInconsistentImporterBranchFold : 0 -ProfileInconsistentImporterSwitchFold : 0 -ProfileInconsistentChainedGDV : 0 -ProfileInconsistentScratchBB : 0 -ProfileInconsistentInlinerBranchFold : 0 -ProfileInconsistentInlineeScale : 0 -ProfileInconsistentInlinee : 0 -ProfileInconsistentNoReturnInlinee : 0 -ProfileInconsistentMayThrowInlinee : 0 -NewRefClassHelperCalls : 0 -StackAllocatedRefClasses : 0 -NewBoxedValueClassHelperCalls : 0 -StackAllocatedBoxedValueClasses : 0 -NewArrayHelperCalls : 0 -StackAllocatedArrays : 0 -LocalAssertionCount : 0 -LocalAssertionOverflow : 0 -MorphTrackedLocals : 19 -MorphLocals : 35 -EnumeratorGDVProvisionalNoEscape : 0 -EnumeratorGDVCanCloneToEnsureNoEscape : 0 - -****** DONE compiling System.SpanHelpers:LastIndexOfValueType[long,System.SpanHelpers+DontNegate`1[long]](byref,long,int):int -Using default JIT: C:\prj\runtime-main2\artifacts\bin\coreclr\windows.x64.Checked\clrjit.dll -Using jit(C:\prj\runtime-main2\artifacts\bin\coreclr\windows.x64.Checked\clrjit.dll) with input (C:\prj\runtime-main2\artifacts\spmi\mch\33ed917f-a197-4abd-83af-db9fa8186898.windows.x64\smoke_tests.nativeaot.windows.x64.checked.mch) - indexCount=1 (26213) -Jit startup took 3.518400ms -Loaded 1 Jitted 1 FailedCompile 0 Excluded 0 Missing 0 -Total time: 651.257300ms From beec69ce0c0ff0731e50c232709ac22b1dbd5a2e Mon Sep 17 00:00:00 2001 From: EgorBo Date: Fri, 24 Apr 2026 23:22:27 +0200 Subject: [PATCH 7/7] Use ref instead of in for MemoryMarshal.Write (netstandard2.0 compat) netstandard2.0 MemoryMarshal.Write(span, ref T) doesn't have the 'in' overload that netcoreapp does. Switch the JsonDocument.MetadataDb call sites to 'ref' to compile across all TFMs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../System/Text/Json/Document/JsonDocument.MetadataDb.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.MetadataDb.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.MetadataDb.cs index a6dbe1afbfb826..87ee6ca78d751c 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.MetadataDb.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.MetadataDb.cs @@ -269,7 +269,7 @@ internal void SetLength(int index, int length) AssertValidIndex(index); Debug.Assert(length >= 0); Span destination = _data.AsSpan(index + SizeOrLengthOffset); - MemoryMarshal.Write(destination, in length); + MemoryMarshal.Write(destination, ref length); } internal void SetNumberOfRows(int index, int numberOfRows) @@ -282,7 +282,7 @@ internal void SetNumberOfRows(int index, int numberOfRows) // Persist the most significant nybble int value = (current & unchecked((int)0xF0000000)) | numberOfRows; - MemoryMarshal.Write(dataPos, in value); + MemoryMarshal.Write(dataPos, ref value); } internal void SetHasComplexChildren(int index) @@ -294,7 +294,7 @@ internal void SetHasComplexChildren(int index) int current = MemoryMarshal.Read(dataPos); int value = current | unchecked((int)0x80000000); - MemoryMarshal.Write(dataPos, in value); + MemoryMarshal.Write(dataPos, ref value); } internal int FindIndexOfFirstUnsetSizeOrLength(JsonTokenType lookupType)