Skip to content

Instantly share code, notes, and snippets.

@AndyAyersMS
Last active January 15, 2016 08:59
Show Gist options
  • Save AndyAyersMS/c4e697ab259ce88570ec to your computer and use it in GitHub Desktop.
Save AndyAyersMS/c4e697ab259ce88570ec to your computer and use it in GitHub Desktop.
// Microsoft (R) .NET Framework IL Disassembler. Version 4.5.22220.0
// Metadata version: v4.0.30319
.assembly extern System.Runtime
{
.publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....:
.ver 4:0:20:0
}
.assembly extern System.Console
{
.publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....:
.ver 4:0:0:0
}
.assembly GitHub_2610
{
.custom instance void [System.Runtime]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 )
.custom instance void [System.Runtime]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx
63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows.
// --- The following custom attribute is added automatically, do not uncomment -------
// .custom instance void [System.Runtime]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [System.Runtime]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 02 00 00 00 00 00 )
.publickey = (00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00 // .$..............
00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00 // .$..RSA1........
07 D1 FA 57 C4 AE D9 F0 A3 2E 84 AA 0F AE FD 0D // ...W............
E9 E8 FD 6A EC 8F 87 FB 03 76 6C 83 4C 99 92 1E // ...j.....vl.L...
B2 3B E7 9A D9 D5 DC C1 DD 9A D2 36 13 21 02 90 // .;.........6.!..
0B 72 3C F9 80 95 7F C4 E1 77 10 8F C6 07 77 4F // .r<......w....wO
29 E8 32 0E 92 EA 05 EC E4 E8 21 C0 A5 EF E8 F1 // ).2.......!.....
64 5C 4C 0C 93 C1 AB 99 28 5D 62 2C AA 65 2C 1D // d\L.....(]b,.e,.
FA D6 3D 74 5D 6F 2D E5 F1 7E 5E AF 0F C4 96 3D // ..=t]o-..~^....=
26 1C 8A 12 43 65 18 20 6D C0 93 34 4D 5A D2 93 ) // &...Ce. m..4MZ..
.hash algorithm 0x00008004
.ver 0:0:0:0
}
.module GitHub_2610.exe
// MVID: {17E438B7-5DB3-4E6A-8A64-8E7CE4D9AB76}
.imagebase 0x00400000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003 // WINDOWS_CUI
.corflags 0x00000009 // ILONLY
// Image base: 0x00000199E2740000
// =============== CLASS MEMBERS DECLARATION ===================
.class public sequential ansi sealed beforefieldinit MyValue
extends [System.Runtime]System.ValueType
{
.field public int64 val
.method public hidebysig specialname rtspecialname
instance void .ctor(int64 a) cil managed
{
// Code size 8 (0x8)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: stfld int64 MyValue::val
IL_0007: ret
} // end of method MyValue::.ctor
} // end of class MyValue
.class public sequential ansi sealed beforefieldinit MyStruct
extends [System.Runtime]System.ValueType
{
.field public valuetype MyValue v1
.field public valuetype MyValue v2
.method public hidebysig specialname rtspecialname
instance void .ctor(valuetype MyValue a,
valuetype MyValue b) cil managed
{
// Code size 15 (0xf)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldarg.1
IL_0002: stfld valuetype MyValue MyStruct::v1
IL_0007: ldarg.0
IL_0008: ldarg.2
IL_0009: stfld valuetype MyValue MyStruct::v2
IL_000e: ret
} // end of method MyStruct::.ctor
} // end of class MyStruct
.class private auto ansi beforefieldinit Program
extends [System.Runtime]System.Object
{
.method private hidebysig static int32
Main() cil managed
{
.entrypoint
// Code size 147 (0x93)
.maxstack 3
.locals init (valuetype MyValue V_0,
valuetype MyValue V_1,
valuetype MyStruct V_2,
valuetype MyStruct V_3,
bool V_4,
bool V_5,
bool V_6,
bool V_7)
IL_0000: ldloca.s V_0
IL_0002: ldc.i4.s 10
IL_0004: conv.i8
IL_0005: call instance void MyValue::.ctor(int64)
IL_000a: ldloca.s V_1
IL_000c: ldc.i4.s 20
IL_000e: conv.i8
IL_000f: call instance void MyValue::.ctor(int64)
IL_0014: ldloca.s V_2
IL_0016: ldloc.0
IL_0017: ldloc.1
IL_0018: call instance void MyStruct::.ctor(valuetype MyValue,
valuetype MyValue)
IL_001d: ldloca.s V_3
IL_001f: ldloc.1
IL_0020: ldloc.0
IL_0021: call instance void MyStruct::.ctor(valuetype MyValue,
valuetype MyValue)
IL_0026: ldloc.2
IL_0027: call bool Program::IsXGeater(valuetype MyStruct)
IL_002c: stloc.s V_4
IL_002e: ldloc.3
IL_002f: call bool Program::IsXGeater(valuetype MyStruct)
IL_0034: stloc.s V_5
IL_0036: ldloc.2
IL_0037: call bool Program::IsXGeater(valuetype MyStruct)
IL_003c: stloc.s V_6
IL_003e: ldloc.3
IL_003f: call bool Program::IsXGeater(valuetype MyStruct)
IL_0044: stloc.s V_7
IL_0046: ldloc.s V_4
IL_0048: brfalse.s IL_0056
IL_004a: ldstr "Fail"
IL_004f: call void [System.Console]System.Console::WriteLine(string)
IL_0054: ldc.i4.m1
IL_0055: ret
IL_0056: ldloc.s V_5
IL_0058: brtrue.s IL_0066
IL_005a: ldstr "Fail"
IL_005f: call void [System.Console]System.Console::WriteLine(string)
IL_0064: ldc.i4.m1
IL_0065: ret
IL_0066: ldloc.s V_6
IL_0068: brfalse.s IL_0076
IL_006a: ldstr "Fail"
IL_006f: call void [System.Console]System.Console::WriteLine(string)
IL_0074: ldc.i4.m1
IL_0075: ret
IL_0076: ldloc.s V_7
IL_0078: brtrue.s IL_0086
IL_007a: ldstr "Fail"
IL_007f: call void [System.Console]System.Console::WriteLine(string)
IL_0084: ldc.i4.m1
IL_0085: ret
IL_0086: ldstr "Pass"
IL_008b: call void [System.Console]System.Console::WriteLine(string)
IL_0090: ldc.i4.s 100
IL_0092: ret
} // end of method Program::Main
.method public hidebysig static bool IsXGeater(valuetype MyStruct line) cil managed noinlining
{
// Code size 47 (0x2f)
.maxstack 8
IL_0000: ldarg.0
IL_0001: ldfld valuetype MyValue MyStruct::v1
IL_0006: ldfld int64 MyValue::val
IL_000b: ldarg.0
IL_000c: ldfld valuetype MyValue MyStruct::v2
IL_0011: ldfld int64 MyValue::val
IL_0016: ble.s IL_002d
IL_0018: ldarga.s line
IL_001a: ldarg.0
IL_001b: ldfld valuetype MyValue MyStruct::v2
IL_0020: ldarg.0
IL_0021: ldfld valuetype MyValue MyStruct::v1
IL_0026: call instance void MyStruct::.ctor(valuetype MyValue,
valuetype MyValue)
IL_002b: ldc.i4.1
IL_002c: ret
IL_002d: ldc.i4.0
IL_002e: ret
} // end of method Program::IsXGeater
.method public hidebysig specialname rtspecialname
instance void .ctor() cil managed
{
// Code size 7 (0x7)
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void [System.Runtime]System.Object::.ctor()
IL_0006: ret
} // end of method Program::.ctor
} // end of class Program
// =============================================================
// *********** DISASSEMBLY COMPLETE ***********************
****** START compiling Program:Main():int (MethodHash=25d58ec5)
OPTIONS: compCodeOpt = BLENDED_CODE
OPTIONS: compDbgCode = false
OPTIONS: compDbgInfo = true
OPTIONS: compDbgEnC = false
OPTIONS: compProcedureSplitting = false
OPTIONS: compProcedureSplittingEH = false
OPTIONS: Stack probing is DISABLED
IL to import:
IL_0000 12 00 ldloca.s 0x0
IL_0002 1f 0a ldc.i4.s 0xA
IL_0004 6a conv.i8
IL_0005 28 01 00 00 06 call 0x6000001
IL_000a 12 01 ldloca.s 0x1
IL_000c 1f 14 ldc.i4.s 0x14
IL_000e 6a conv.i8
IL_000f 28 01 00 00 06 call 0x6000001
IL_0014 12 02 ldloca.s 0x2
IL_0016 06 ldloc.0
IL_0017 07 ldloc.1
IL_0018 28 02 00 00 06 call 0x6000002
IL_001d 12 03 ldloca.s 0x3
IL_001f 07 ldloc.1
IL_0020 06 ldloc.0
IL_0021 28 02 00 00 06 call 0x6000002
IL_0026 08 ldloc.2
IL_0027 28 04 00 00 06 call 0x6000004
IL_002c 13 04 stloc.s 0x4
IL_002e 09 ldloc.3
IL_002f 28 04 00 00 06 call 0x6000004
IL_0034 13 05 stloc.s 0x5
IL_0036 08 ldloc.2
IL_0037 28 04 00 00 06 call 0x6000004
IL_003c 13 06 stloc.s 0x6
IL_003e 09 ldloc.3
IL_003f 28 04 00 00 06 call 0x6000004
IL_0044 13 07 stloc.s 0x7
IL_0046 11 04 ldloc.s 0x4
IL_0048 2c 0c brfalse.s 12 (IL_0056)
IL_004a 72 01 00 00 70 ldstr 0x70000001
IL_004f 28 04 00 00 0a call 0xA000004
IL_0054 15 ldc.i4.m1
IL_0055 2a ret
IL_0056 11 05 ldloc.s 0x5
IL_0058 2d 0c brtrue.s 12 (IL_0066)
IL_005a 72 01 00 00 70 ldstr 0x70000001
IL_005f 28 04 00 00 0a call 0xA000004
IL_0064 15 ldc.i4.m1
IL_0065 2a ret
IL_0066 11 06 ldloc.s 0x6
IL_0068 2c 0c brfalse.s 12 (IL_0076)
IL_006a 72 01 00 00 70 ldstr 0x70000001
IL_006f 28 04 00 00 0a call 0xA000004
IL_0074 15 ldc.i4.m1
IL_0075 2a ret
IL_0076 11 07 ldloc.s 0x7
IL_0078 2d 0c brtrue.s 12 (IL_0086)
IL_007a 72 01 00 00 70 ldstr 0x70000001
IL_007f 28 04 00 00 0a call 0xA000004
IL_0084 15 ldc.i4.m1
IL_0085 2a ret
IL_0086 72 0b 00 00 70 ldstr 0x7000000B
IL_008b 28 04 00 00 0a call 0xA000004
IL_0090 1f 64 ldc.i4.s 0x64
IL_0092 2a ret
; Initial local variable assignments
;
; V00 loc0 struct ( 8)
; V01 loc1 struct ( 8)
; V02 loc2 struct (16)
; V03 loc3 struct (16)
; V04 loc4 bool
; V05 loc5 bool
; V06 loc6 bool
; V07 loc7 bool
*************** In compInitDebuggingInfo() for Program:Main():int
getVars() returned cVars = 0, extendOthers = true
info.compVarScopesCount = 8
VarNum LVNum Name Beg End
0: 00h 00h V00 loc0 000h 093h
1: 01h 01h V01 loc1 000h 093h
2: 02h 02h V02 loc2 000h 093h
3: 03h 03h V03 loc3 000h 093h
4: 04h 04h V04 loc4 000h 093h
5: 05h 05h V05 loc5 000h 093h
6: 06h 06h V06 loc6 000h 093h
7: 07h 07h V07 loc7 000h 093h
info.compStmtOffsetsCount = 0
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE )
*************** In fgFindBasicBlocks() for Program:Main():int
Jump targets:
IL_0056
IL_0066
IL_0076
IL_0086
New Basic Block BB01 [0000026AC4437260] created.
BB01 [000..04A)
New Basic Block BB02 [0000026AC4437368] created.
BB02 [04A..056)
New Basic Block BB03 [0000026AC4437470] created.
BB03 [056..05A)
New Basic Block BB04 [0000026AC4437578] created.
BB04 [05A..066)
New Basic Block BB05 [0000026AC4437680] created.
BB05 [066..06A)
New Basic Block BB06 [0000026AC4437788] created.
BB06 [06A..076)
New Basic Block BB07 [0000026AC4437890] created.
BB07 [076..07A)
New Basic Block BB08 [0000026AC4437998] created.
BB08 [07A..086)
New Basic Block BB09 [0000026AC4437AA0] created.
BB09 [086..093)
IL Code Size,Instr 147, 56, Basic Block count 9, Local Variable Num,Ref count 8, 20 for method Program:Main():int
OPTIONS: opts.MinOpts() == false
Basic block list for 'Program:Main():int'
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond )
BB02 [0000026AC4437368] 1 1 [04A..056) (return)
BB03 [0000026AC4437470] 1 1 [056..05A)-> BB05 ( cond )
BB04 [0000026AC4437578] 1 1 [05A..066) (return)
BB05 [0000026AC4437680] 1 1 [066..06A)-> BB07 ( cond )
BB06 [0000026AC4437788] 1 1 [06A..076) (return)
BB07 [0000026AC4437890] 1 1 [076..07A)-> BB09 ( cond )
BB08 [0000026AC4437998] 1 1 [07A..086) (return)
BB09 [0000026AC4437AA0] 1 1 [086..093) (return)
-------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Program:Main():int
impImportBlockPending for BB01
Importing BB01 (PC=000) of 'Program:Main():int'
[ 0] 0 (0x000) ldloca.s 0
[ 1] 2 (0x002) ldc.i4.s 10
[ 2] 4 (0x004) conv.i8
[ 2] 5 (0x005) call 06000001
[000007] ------------ * stmtExpr void (top level) (IL 0x000... ???)
[000005] I-C-G------- \--* call void MyValue..ctor (exactContextHnd=0x00007FF861255C19)
[000002] L----------- this in rcx +--* addr byref
[000001] ------------ | \--* lclVar struct V00 loc0
[000004] ------------ arg1 \--* cast long <- int
[000003] ------------ \--* const int 10
[ 0] 10 (0x00a) ldloca.s 1
[ 1] 12 (0x00c) ldc.i4.s 20
[ 2] 14 (0x00e) conv.i8
[ 2] 15 (0x00f) call 06000001
[000014] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
[000012] I-C-G------- \--* call void MyValue..ctor (exactContextHnd=0x00007FF861255C19)
[000009] L----------- this in rcx +--* addr byref
[000008] ------------ | \--* lclVar struct V01 loc1
[000011] ------------ arg1 \--* cast long <- int
[000010] ------------ \--* const int 20
[ 0] 20 (0x014) ldloca.s 2
[ 1] 22 (0x016) ldloc.0
[ 2] 23 (0x017) ldloc.1
[ 3] 24 (0x018) call 06000002
[000026] ------------ * stmtExpr void (top level) (IL 0x014... ???)
[000019] I-C-G------- \--* call void MyStruct..ctor (exactContextHnd=0x00007FF861255DE9)
[000016] L----------- this in rcx +--* addr byref
[000015] ------------ | \--* lclVar struct V02 loc2
[000024] ----G------- arg1 +--* ldobj struct
[000023] L----------- | \--* addr byref
[000017] ------------ | \--* lclVar struct V00 loc0
[000021] ----G------- arg2 \--* ldobj struct
[000020] L----------- \--* addr byref
[000018] ------------ \--* lclVar struct V01 loc1
[ 0] 29 (0x01d) ldloca.s 3
[ 1] 31 (0x01f) ldloc.1
[ 2] 32 (0x020) ldloc.0
[ 3] 33 (0x021) call 06000002
[000038] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
[000031] I-C-G------- \--* call void MyStruct..ctor (exactContextHnd=0x00007FF861255DE9)
[000028] L----------- this in rcx +--* addr byref
[000027] ------------ | \--* lclVar struct V03 loc3
[000036] ----G------- arg1 +--* ldobj struct
[000035] L----------- | \--* addr byref
[000029] ------------ | \--* lclVar struct V01 loc1
[000033] ----G------- arg2 \--* ldobj struct
[000032] L----------- \--* addr byref
[000030] ------------ \--* lclVar struct V00 loc0
[ 0] 38 (0x026) ldloc.2
[ 1] 39 (0x027) call 06000004
InliningFailed: Method is marked as no inline or has a cached result.
[ 1] 44 (0x02c) stloc.s 4
[000046] ------------ * stmtExpr void (top level) (IL 0x026... ???)
[000040] --C-G------- | /--* call int Program.IsXGeater
[000042] ----G------- arg0 | | \--* ldobj struct
[000041] L----------- | | \--* addr byref
[000039] ------------ | | \--* lclVar struct V02 loc2
[000045] -AC-G------- \--* = int
[000044] D------N---- \--* lclVar int V04 loc4
[ 0] 46 (0x02e) ldloc.3
[ 1] 47 (0x02f) call 06000004
InliningFailed: Method is marked as no inline or has a cached result.
[ 1] 52 (0x034) stloc.s 5
[000054] ------------ * stmtExpr void (top level) (IL 0x02E... ???)
[000048] --C-G------- | /--* call int Program.IsXGeater
[000050] ----G------- arg0 | | \--* ldobj struct
[000049] L----------- | | \--* addr byref
[000047] ------------ | | \--* lclVar struct V03 loc3
[000053] -AC-G------- \--* = int
[000052] D------N---- \--* lclVar int V05 loc5
[ 0] 54 (0x036) ldloc.2
[ 1] 55 (0x037) call 06000004
InliningFailed: Method is marked as no inline or has a cached result.
[ 1] 60 (0x03c) stloc.s 6
[000062] ------------ * stmtExpr void (top level) (IL 0x036... ???)
[000056] --C-G------- | /--* call int Program.IsXGeater
[000058] ----G------- arg0 | | \--* ldobj struct
[000057] L----------- | | \--* addr byref
[000055] ------------ | | \--* lclVar struct V02 loc2
[000061] -AC-G------- \--* = int
[000060] D------N---- \--* lclVar int V06 loc6
[ 0] 62 (0x03e) ldloc.3
[ 1] 63 (0x03f) call 06000004
InliningFailed: Method is marked as no inline or has a cached result.
[ 1] 68 (0x044) stloc.s 7
[000070] ------------ * stmtExpr void (top level) (IL 0x03E... ???)
[000064] --C-G------- | /--* call int Program.IsXGeater
[000066] ----G------- arg0 | | \--* ldobj struct
[000065] L----------- | | \--* addr byref
[000063] ------------ | | \--* lclVar struct V03 loc3
[000069] -AC-G------- \--* = int
[000068] D------N---- \--* lclVar int V07 loc7
[ 0] 70 (0x046) ldloc.s 4
[ 1] 72 (0x048) brfalse.s
[000075] ------------ * stmtExpr void (top level) (IL 0x046... ???)
[000074] ------------ \--* jmpTrue void
[000072] ------------ | /--* const int 0
[000073] ------------ \--* == int
[000071] ------------ \--* lclVar int V04 loc4
impImportBlockPending for BB02
impImportBlockPending for BB03
Importing BB03 (PC=086) of 'Program:Main():int'
[ 0] 86 (0x056) ldloc.s 5
[ 1] 88 (0x058) brtrue.s
[000081] ------------ * stmtExpr void (top level) (IL 0x056... ???)
[000080] ------------ \--* jmpTrue void
[000078] ------------ | /--* const int 0
[000079] ------------ \--* != int
[000077] ------------ \--* lclVar int V05 loc5
impImportBlockPending for BB04
impImportBlockPending for BB05
Importing BB05 (PC=102) of 'Program:Main():int'
[ 0] 102 (0x066) ldloc.s 6
[ 1] 104 (0x068) brfalse.s
[000087] ------------ * stmtExpr void (top level) (IL 0x066... ???)
[000086] ------------ \--* jmpTrue void
[000084] ------------ | /--* const int 0
[000085] ------------ \--* == int
[000083] ------------ \--* lclVar int V06 loc6
impImportBlockPending for BB06
impImportBlockPending for BB07
Importing BB07 (PC=118) of 'Program:Main():int'
[ 0] 118 (0x076) ldloc.s 7
[ 1] 120 (0x078) brtrue.s
[000093] ------------ * stmtExpr void (top level) (IL 0x076... ???)
[000092] ------------ \--* jmpTrue void
[000090] ------------ | /--* const int 0
[000091] ------------ \--* != int
[000089] ------------ \--* lclVar int V07 loc7
impImportBlockPending for BB08
impImportBlockPending for BB09
Importing BB09 (PC=134) of 'Program:Main():int'
[ 0] 134 (0x086) ldstr 7000000B
[ 1] 139 (0x08b) call 0A000004
InliningFailed: Method is marked as no inline or has a cached result.
[000098] ------------ * stmtExpr void (top level) (IL 0x086... ???)
[000096] --C-G------- \--* call void System.Console.WriteLine
[000095] ------------ arg0 \--* sconst ref <string constant>
[ 0] 144 (0x090) ldc.i4.s 100
[ 1] 146 (0x092) ret
[000101] ------------ * stmtExpr void (top level) (IL 0x090... ???)
[000100] ------------ \--* return int
[000099] ------------ \--* const int 100
Importing BB08 (PC=122) of 'Program:Main():int'
[ 0] 122 (0x07a) ldstr 70000001
[ 1] 127 (0x07f) call 0A000004
InliningFailed: Method is marked as no inline or has a cached result.
[000106] ------------ * stmtExpr void (top level) (IL 0x07A... ???)
[000104] --C-G------- \--* call void System.Console.WriteLine
[000103] ------------ arg0 \--* sconst ref <string constant>
[ 0] 132 (0x084) ldc.i4.m1 -1
[ 1] 133 (0x085) ret
[000109] ------------ * stmtExpr void (top level) (IL 0x084... ???)
[000108] ------------ \--* return int
[000107] ------------ \--* const int -1
Importing BB06 (PC=106) of 'Program:Main():int'
[ 0] 106 (0x06a) ldstr 70000001
[ 1] 111 (0x06f) call 0A000004
InliningFailed: Method is marked as no inline or has a cached result.
[000114] ------------ * stmtExpr void (top level) (IL 0x06A... ???)
[000112] --C-G------- \--* call void System.Console.WriteLine
[000111] ------------ arg0 \--* sconst ref <string constant>
[ 0] 116 (0x074) ldc.i4.m1 -1
[ 1] 117 (0x075) ret
[000117] ------------ * stmtExpr void (top level) (IL 0x074... ???)
[000116] ------------ \--* return int
[000115] ------------ \--* const int -1
Importing BB04 (PC=090) of 'Program:Main():int'
[ 0] 90 (0x05a) ldstr 70000001
[ 1] 95 (0x05f) call 0A000004
InliningFailed: Method is marked as no inline or has a cached result.
[000122] ------------ * stmtExpr void (top level) (IL 0x05A... ???)
[000120] --C-G------- \--* call void System.Console.WriteLine
[000119] ------------ arg0 \--* sconst ref <string constant>
[ 0] 100 (0x064) ldc.i4.m1 -1
[ 1] 101 (0x065) ret
[000125] ------------ * stmtExpr void (top level) (IL 0x064... ???)
[000124] ------------ \--* return int
[000123] ------------ \--* const int -1
Importing BB02 (PC=074) of 'Program:Main():int'
[ 0] 74 (0x04a) ldstr 70000001
[ 1] 79 (0x04f) call 0A000004
InliningFailed: Method is marked as no inline or has a cached result.
[000130] ------------ * stmtExpr void (top level) (IL 0x04A... ???)
[000128] --C-G------- \--* call void System.Console.WriteLine
[000127] ------------ arg0 \--* sconst ref <string constant>
[ 0] 84 (0x054) ldc.i4.m1 -1
[ 1] 85 (0x055) ret
[000133] ------------ * stmtExpr void (top level) (IL 0x054... ???)
[000132] ------------ \--* return int
[000131] ------------ \--* const int -1
New BlockSet epoch 1, # of blocks (including unused BB00): 10, bitset array size: 1 (short)
*************** In fgMorph()
fgNewBBinRegion(jumpKind=4, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=true): inserting after BB09
New Basic Block BB10 [0000026AC443D0E8] created.
genReturnBB [BB10] created
lvaGrabTemp returning 8 (V08 tmp0) called for Single return block return value.
Set preferred register for V08 to [rax]
oneReturn statement tree [000135] added to genReturnBB [0000026AC443D0E8]
[000135] ------------ * return int
[000134] -------N---- \--* lclVar int V08 tmp0
*************** After fgAddInternal()
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i
BB02 [0000026AC4437368] 1 1 [04A..056) (return) i
BB03 [0000026AC4437470] 1 1 [056..05A)-> BB05 ( cond ) i
BB04 [0000026AC4437578] 1 1 [05A..066) (return) i
BB05 [0000026AC4437680] 1 1 [066..06A)-> BB07 ( cond ) i
BB06 [0000026AC4437788] 1 1 [06A..076) (return) i
BB07 [0000026AC4437890] 1 1 [076..07A)-> BB09 ( cond ) i
BB08 [0000026AC4437998] 1 1 [07A..086) (return) i
BB09 [0000026AC4437AA0] 1 1 [086..093) (return) i
BB10 [0000026AC443D0E8] 1 1 [???..???) (return) keep internal
-------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
*************** In fgDebugCheckBBlist
*************** In fgInline()
Expanding INLINE_CANDIDATE in statement [000007] in BB01:
[000007] ------------ * stmtExpr void (top level) (IL 0x000...0x02C)
[000005] I-C-G------- \--* call void MyValue..ctor (exactContextHnd=0x00007FF861255C19)
[000002] L----------- this in rcx +--* addr byref
[000001] ------------ | \--* lclVar struct V00 loc0
[000004] ------------ arg1 \--* cast long <- int
[000003] ------------ \--* const int 10
thisArg: is a constant is byref to a struct local
[000002] L----------- * addr byref
[000001] ------------ \--* lclVar struct V00 loc0
Argument #1:
[000004] ------------ * cast long <- int
[000003] ------------ \--* const int 10
INLINER INFO: inlineInfo.tokenLookupContextHandle for MyValue:.ctor(long):this set to 0x00007FF861255C19:
Invoking compiler for the inlinee method MyValue:.ctor(long):this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 7d 01 00 00 04 stfld 0x4000001
IL_0007 2a ret
INLINER impTokenLookupContextHandle for MyValue:.ctor(long):this is 0x00007FF861255C19.
*************** In fgFindBasicBlocks() for MyValue:.ctor(long):this
Jump targets:
none
New Basic Block BB11 [0000026AC44406A0] created.
BB11 [000..008)
Basic block list for 'MyValue:.ctor(long):this'
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB11 [0000026AC44406A0] 1 1 [000..008) (return)
-------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for MyValue:.ctor(long):this
impImportBlockPending for BB11
Importing BB11 (PC=000) of 'MyValue:.ctor(long):this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldarg.1
lvaGrabTemp returning 9 (V09 tmp1) called for Inlining Arg.
[ 2] 2 (0x002) stfld 04000001
[000143] ------------ * stmtExpr void (top level)
[000140] ------------ | /--* lclVar long V09 tmp1
[000142] -A--G------- \--* = long
[000141] ----G--N---- \--* field long val
[000138] L----------- \--* addr byref
[000139] ------------ \--* lclVar struct V00 loc0
[ 0] 7 (0x007) ret
----------- Statements (and blocks) added due to the inlining of call [000005] -----------
Arguments setup:
Inlinee method body:
[000143] ------------ * stmtExpr void (top level) (IL 0x000... ???)
[000004] ------------ | /--* cast long <- int
[000003] ------------ | | \--* const int 10
[000142] -A--G------- \--* = long
[000141] ----G--N---- \--* field long val
[000138] L----------- \--* addr byref
[000139] ------------ \--* lclVar struct V00 loc0
Successfully inlined MyValue:.ctor(long):this (8 IL bytes) (depth 1) into Program:Main():int
--------------------------------------------------------------------------------------------
Expanding INLINE_CANDIDATE in statement [000014] in BB01:
[000014] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
[000012] I-C-G------- \--* call void MyValue..ctor (exactContextHnd=0x00007FF861255C19)
[000009] L----------- this in rcx +--* addr byref
[000008] ------------ | \--* lclVar struct V01 loc1
[000011] ------------ arg1 \--* cast long <- int
[000010] ------------ \--* const int 20
thisArg: is a constant is byref to a struct local
[000009] L----------- * addr byref
[000008] ------------ \--* lclVar struct V01 loc1
Argument #1:
[000011] ------------ * cast long <- int
[000010] ------------ \--* const int 20
INLINER INFO: inlineInfo.tokenLookupContextHandle for MyValue:.ctor(long):this set to 0x00007FF861255C19:
Invoking compiler for the inlinee method MyValue:.ctor(long):this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 7d 01 00 00 04 stfld 0x4000001
IL_0007 2a ret
INLINER impTokenLookupContextHandle for MyValue:.ctor(long):this is 0x00007FF861255C19.
*************** In fgFindBasicBlocks() for MyValue:.ctor(long):this
Jump targets:
none
New Basic Block BB12 [0000026AC4440EB8] created.
BB12 [000..008)
Basic block list for 'MyValue:.ctor(long):this'
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB12 [0000026AC4440EB8] 1 1 [000..008) (return)
-------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for MyValue:.ctor(long):this
impImportBlockPending for BB12
Importing BB12 (PC=000) of 'MyValue:.ctor(long):this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldarg.1
lvaGrabTemp returning 10 (V10 tmp2) called for Inlining Arg.
[ 2] 2 (0x002) stfld 04000001
[000151] ------------ * stmtExpr void (top level)
[000148] ------------ | /--* lclVar long V10 tmp2
[000150] -A--G------- \--* = long
[000149] ----G--N---- \--* field long val
[000146] L----------- \--* addr byref
[000147] ------------ \--* lclVar struct V01 loc1
[ 0] 7 (0x007) ret
----------- Statements (and blocks) added due to the inlining of call [000012] -----------
Arguments setup:
Inlinee method body:
[000151] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
[000011] ------------ | /--* cast long <- int
[000010] ------------ | | \--* const int 20
[000150] -A--G------- \--* = long
[000149] ----G--N---- \--* field long val
[000146] L----------- \--* addr byref
[000147] ------------ \--* lclVar struct V01 loc1
Successfully inlined MyValue:.ctor(long):this (8 IL bytes) (depth 1) into Program:Main():int
--------------------------------------------------------------------------------------------
Expanding INLINE_CANDIDATE in statement [000026] in BB01:
[000026] ------------ * stmtExpr void (top level) (IL 0x014... ???)
[000019] I-C-G------- \--* call void MyStruct..ctor (exactContextHnd=0x00007FF861255DE9)
[000016] L----------- this in rcx +--* addr byref
[000015] ------------ | \--* lclVar struct V02 loc2
[000024] ----G------- arg1 +--* ldobj struct
[000023] L----------- | \--* addr byref
[000017] ------------ | \--* lclVar struct V00 loc0
[000021] ----G------- arg2 \--* ldobj struct
[000020] L----------- \--* addr byref
[000018] ------------ \--* lclVar struct V01 loc1
thisArg: is a constant is byref to a struct local
[000016] L----------- * addr byref
[000015] ------------ \--* lclVar struct V02 loc2
Argument #1: has global refs has ldarga effect
[000024] ----G------- * ldobj struct
[000023] L----------- \--* addr byref
[000017] ------------ \--* lclVar struct V00 loc0
Argument #2: has global refs has ldarga effect
[000021] ----G------- * ldobj struct
[000020] L----------- \--* addr byref
[000018] ------------ \--* lclVar struct V01 loc1
INLINER INFO: inlineInfo.tokenLookupContextHandle for MyStruct:.ctor(struct,struct):this set to 0x00007FF861255DE9:
Invoking compiler for the inlinee method MyStruct:.ctor(struct,struct):this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 7d 02 00 00 04 stfld 0x4000002
IL_0007 02 ldarg.0
IL_0008 04 ldarg.2
IL_0009 7d 03 00 00 04 stfld 0x4000003
IL_000e 2a ret
INLINER impTokenLookupContextHandle for MyStruct:.ctor(struct,struct):this is 0x00007FF861255DE9.
*************** In fgFindBasicBlocks() for MyStruct:.ctor(struct,struct):this
Jump targets:
none
New Basic Block BB13 [0000026AC4441738] created.
BB13 [000..00F)
Basic block list for 'MyStruct:.ctor(struct,struct):this'
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB13 [0000026AC4441738] 1 1 [000..00F) (return)
-------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for MyStruct:.ctor(struct,struct):this
impImportBlockPending for BB13
Importing BB13 (PC=000) of 'MyStruct:.ctor(struct,struct):this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldarg.1
lvaGrabTemp returning 11 (V11 tmp3) called for Inlining Arg.
[ 2] 2 (0x002) stfld 04000002
[000163] ------------ * stmtExpr void (top level)
[000160] ------------ | /--* const int 8
[000161] -A--G------- \--* copyBlk void
[000159] L----------- | /--* addr byref
[000156] ------------ | | \--* lclVar struct V11 tmp3
[000162] ----G---R--- \--* <list> void
[000158] ----G------- \--* addr byref
[000157] ----G------- \--* field struct v1
[000154] L----------- \--* addr byref
[000155] ------------ \--* lclVar struct V02 loc2
[ 0] 7 (0x007) ldarg.0
[ 1] 8 (0x008) ldarg.2
lvaGrabTemp returning 12 (V12 tmp4) called for Inlining Arg.
[ 2] 9 (0x009) stfld 04000003
[000173] ------------ * stmtExpr void (top level)
[000170] ------------ | /--* const int 8
[000171] -A--G------- \--* copyBlk void
[000169] L----------- | /--* addr byref
[000166] ------------ | | \--* lclVar struct V12 tmp4
[000172] ----G---R--- \--* <list> void
[000168] ----G------- \--* addr byref
[000167] ----G------- \--* field struct v2
[000164] L----------- \--* addr byref
[000165] ------------ \--* lclVar struct V02 loc2
[ 0] 14 (0x00e) ret
----------- Statements (and blocks) added due to the inlining of call [000019] -----------
Arguments setup:
[000179] ------------ * stmtExpr void (top level) (IL 0x014... ???)
[000176] ------------ | /--* const int 8
[000177] -A--G------- \--* copyBlk void
[000023] L----------- | /--* addr byref
[000017] ------------ | | \--* lclVar struct V00 loc0
[000178] --------R--- \--* <list> void
[000175] L----------- \--* addr byref
[000174] ------------ \--* lclVar struct V11 tmp3
[000185] ------------ * stmtExpr void (top level) (IL 0x014... ???)
[000182] ------------ | /--* const int 8
[000183] -A--G------- \--* copyBlk void
[000020] L----------- | /--* addr byref
[000018] ------------ | | \--* lclVar struct V01 loc1
[000184] --------R--- \--* <list> void
[000181] L----------- \--* addr byref
[000180] ------------ \--* lclVar struct V12 tmp4
Inlinee method body:
[000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
[000160] ------------ | /--* const int 8
[000161] -A--G------- \--* copyBlk void
[000159] L----------- | /--* addr byref
[000156] ------------ | | \--* lclVar struct V11 tmp3
[000162] ----G---R--- \--* <list> void
[000158] ----G------- \--* addr byref
[000157] ----G------- \--* field struct v1
[000154] L----------- \--* addr byref
[000155] ------------ \--* lclVar struct V02 loc2
[000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
[000170] ------------ | /--* const int 8
[000171] -A--G------- \--* copyBlk void
[000169] L----------- | /--* addr byref
[000166] ------------ | | \--* lclVar struct V12 tmp4
[000172] ----G---R--- \--* <list> void
[000168] ----G------- \--* addr byref
[000167] ----G------- \--* field struct v2
[000164] L----------- \--* addr byref
[000165] ------------ \--* lclVar struct V02 loc2
Successfully inlined MyStruct:.ctor(struct,struct):this (15 IL bytes) (depth 1) into Program:Main():int
--------------------------------------------------------------------------------------------
Expanding INLINE_CANDIDATE in statement [000038] in BB01:
[000038] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
[000031] I-C-G------- \--* call void MyStruct..ctor (exactContextHnd=0x00007FF861255DE9)
[000028] L----------- this in rcx +--* addr byref
[000027] ------------ | \--* lclVar struct V03 loc3
[000036] ----G------- arg1 +--* ldobj struct
[000035] L----------- | \--* addr byref
[000029] ------------ | \--* lclVar struct V01 loc1
[000033] ----G------- arg2 \--* ldobj struct
[000032] L----------- \--* addr byref
[000030] ------------ \--* lclVar struct V00 loc0
thisArg: is a constant is byref to a struct local
[000028] L----------- * addr byref
[000027] ------------ \--* lclVar struct V03 loc3
Argument #1: has global refs has ldarga effect
[000036] ----G------- * ldobj struct
[000035] L----------- \--* addr byref
[000029] ------------ \--* lclVar struct V01 loc1
Argument #2: has global refs has ldarga effect
[000033] ----G------- * ldobj struct
[000032] L----------- \--* addr byref
[000030] ------------ \--* lclVar struct V00 loc0
INLINER INFO: inlineInfo.tokenLookupContextHandle for MyStruct:.ctor(struct,struct):this set to 0x00007FF861255DE9:
Invoking compiler for the inlinee method MyStruct:.ctor(struct,struct):this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 7d 02 00 00 04 stfld 0x4000002
IL_0007 02 ldarg.0
IL_0008 04 ldarg.2
IL_0009 7d 03 00 00 04 stfld 0x4000003
IL_000e 2a ret
INLINER impTokenLookupContextHandle for MyStruct:.ctor(struct,struct):this is 0x00007FF861255DE9.
*************** In fgFindBasicBlocks() for MyStruct:.ctor(struct,struct):this
Jump targets:
none
New Basic Block BB14 [0000026AC4447CB0] created.
BB14 [000..00F)
Basic block list for 'MyStruct:.ctor(struct,struct):this'
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB14 [0000026AC4447CB0] 1 1 [000..00F) (return)
-------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for MyStruct:.ctor(struct,struct):this
impImportBlockPending for BB14
Importing BB14 (PC=000) of 'MyStruct:.ctor(struct,struct):this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldarg.1
lvaGrabTemp returning 13 (V13 tmp5) called for Inlining Arg.
[ 2] 2 (0x002) stfld 04000002
[000197] ------------ * stmtExpr void (top level)
[000194] ------------ | /--* const int 8
[000195] -A--G------- \--* copyBlk void
[000193] L----------- | /--* addr byref
[000190] ------------ | | \--* lclVar struct V13 tmp5
[000196] ----G---R--- \--* <list> void
[000192] ----G------- \--* addr byref
[000191] ----G------- \--* field struct v1
[000188] L----------- \--* addr byref
[000189] ------------ \--* lclVar struct V03 loc3
[ 0] 7 (0x007) ldarg.0
[ 1] 8 (0x008) ldarg.2
lvaGrabTemp returning 14 (V14 tmp6) called for Inlining Arg.
[ 2] 9 (0x009) stfld 04000003
[000207] ------------ * stmtExpr void (top level)
[000204] ------------ | /--* const int 8
[000205] -A--G------- \--* copyBlk void
[000203] L----------- | /--* addr byref
[000200] ------------ | | \--* lclVar struct V14 tmp6
[000206] ----G---R--- \--* <list> void
[000202] ----G------- \--* addr byref
[000201] ----G------- \--* field struct v2
[000198] L----------- \--* addr byref
[000199] ------------ \--* lclVar struct V03 loc3
[ 0] 14 (0x00e) ret
----------- Statements (and blocks) added due to the inlining of call [000031] -----------
Arguments setup:
[000213] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
[000210] ------------ | /--* const int 8
[000211] -A--G------- \--* copyBlk void
[000035] L----------- | /--* addr byref
[000029] ------------ | | \--* lclVar struct V01 loc1
[000212] --------R--- \--* <list> void
[000209] L----------- \--* addr byref
[000208] ------------ \--* lclVar struct V13 tmp5
[000219] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
[000216] ------------ | /--* const int 8
[000217] -A--G------- \--* copyBlk void
[000032] L----------- | /--* addr byref
[000030] ------------ | | \--* lclVar struct V00 loc0
[000218] --------R--- \--* <list> void
[000215] L----------- \--* addr byref
[000214] ------------ \--* lclVar struct V14 tmp6
Inlinee method body:
[000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
[000194] ------------ | /--* const int 8
[000195] -A--G------- \--* copyBlk void
[000193] L----------- | /--* addr byref
[000190] ------------ | | \--* lclVar struct V13 tmp5
[000196] ----G---R--- \--* <list> void
[000192] ----G------- \--* addr byref
[000191] ----G------- \--* field struct v1
[000188] L----------- \--* addr byref
[000189] ------------ \--* lclVar struct V03 loc3
[000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
[000204] ------------ | /--* const int 8
[000205] -A--G------- \--* copyBlk void
[000203] L----------- | /--* addr byref
[000200] ------------ | | \--* lclVar struct V14 tmp6
[000206] ----G---R--- \--* <list> void
[000202] ----G------- \--* addr byref
[000201] ----G------- \--* field struct v2
[000198] L----------- \--* addr byref
[000199] ------------ \--* lclVar struct V03 loc3
Successfully inlined MyStruct:.ctor(struct,struct):this (15 IL bytes) (depth 1) into Program:Main():int
--------------------------------------------------------------------------------------------
*************** After fgInline()
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i
BB02 [0000026AC4437368] 1 1 [04A..056) (return) i
BB03 [0000026AC4437470] 1 1 [056..05A)-> BB05 ( cond ) i
BB04 [0000026AC4437578] 1 1 [05A..066) (return) i
BB05 [0000026AC4437680] 1 1 [066..06A)-> BB07 ( cond ) i
BB06 [0000026AC4437788] 1 1 [06A..076) (return) i
BB07 [0000026AC4437890] 1 1 [076..07A)-> BB09 ( cond ) i
BB08 [0000026AC4437998] 1 1 [07A..086) (return) i
BB09 [0000026AC4437AA0] 1 1 [086..093) (return) i
BB10 [0000026AC443D0E8] 1 1 [???..???) (return) keep internal
-------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..04A) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1 (top level)
[000143] ------------ * stmtExpr void (top level) (IL 0x000... ???)
[000004] ------------ | /--* cast long <- int
[000003] ------------ | | \--* const int 10
[000142] -A--G------- \--* = long
[000141] ----G--N---- \--* field long val
[000138] L----------- \--* addr byref
[000139] ------------ \--* lclVar struct V00 loc0
***** BB01, stmt 2 (top level)
[000151] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
[000011] ------------ | /--* cast long <- int
[000010] ------------ | | \--* const int 20
[000150] -A--G------- \--* = long
[000149] ----G--N---- \--* field long val
[000146] L----------- \--* addr byref
[000147] ------------ \--* lclVar struct V01 loc1
***** BB01, stmt 3 (top level)
[000179] ------------ * stmtExpr void (top level) (IL 0x014... ???)
[000176] ------------ | /--* const int 8
[000177] -A--G------- \--* copyBlk void
[000023] L----------- | /--* addr byref
[000017] ------------ | | \--* lclVar struct V00 loc0
[000178] --------R--- \--* <list> void
[000175] L----------- \--* addr byref
[000174] ------------ \--* lclVar struct V11 tmp3
***** BB01, stmt 4 (top level)
[000185] ------------ * stmtExpr void (top level) (IL 0x014... ???)
[000182] ------------ | /--* const int 8
[000183] -A--G------- \--* copyBlk void
[000020] L----------- | /--* addr byref
[000018] ------------ | | \--* lclVar struct V01 loc1
[000184] --------R--- \--* <list> void
[000181] L----------- \--* addr byref
[000180] ------------ \--* lclVar struct V12 tmp4
***** BB01, stmt 5 (top level)
[000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
[000160] ------------ | /--* const int 8
[000161] -A--G------- \--* copyBlk void
[000159] L----------- | /--* addr byref
[000156] ------------ | | \--* lclVar struct V11 tmp3
[000162] ----G---R--- \--* <list> void
[000158] ----G------- \--* addr byref
[000157] ----G------- \--* field struct v1
[000154] L----------- \--* addr byref
[000155] ------------ \--* lclVar struct V02 loc2
***** BB01, stmt 6 (top level)
[000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
[000170] ------------ | /--* const int 8
[000171] -A--G------- \--* copyBlk void
[000169] L----------- | /--* addr byref
[000166] ------------ | | \--* lclVar struct V12 tmp4
[000172] ----G---R--- \--* <list> void
[000168] ----G------- \--* addr byref
[000167] ----G------- \--* field struct v2
[000164] L----------- \--* addr byref
[000165] ------------ \--* lclVar struct V02 loc2
***** BB01, stmt 7 (top level)
[000213] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
[000210] ------------ | /--* const int 8
[000211] -A--G------- \--* copyBlk void
[000035] L----------- | /--* addr byref
[000029] ------------ | | \--* lclVar struct V01 loc1
[000212] --------R--- \--* <list> void
[000209] L----------- \--* addr byref
[000208] ------------ \--* lclVar struct V13 tmp5
***** BB01, stmt 8 (top level)
[000219] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
[000216] ------------ | /--* const int 8
[000217] -A--G------- \--* copyBlk void
[000032] L----------- | /--* addr byref
[000030] ------------ | | \--* lclVar struct V00 loc0
[000218] --------R--- \--* <list> void
[000215] L----------- \--* addr byref
[000214] ------------ \--* lclVar struct V14 tmp6
***** BB01, stmt 9 (top level)
[000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
[000194] ------------ | /--* const int 8
[000195] -A--G------- \--* copyBlk void
[000193] L----------- | /--* addr byref
[000190] ------------ | | \--* lclVar struct V13 tmp5
[000196] ----G---R--- \--* <list> void
[000192] ----G------- \--* addr byref
[000191] ----G------- \--* field struct v1
[000188] L----------- \--* addr byref
[000189] ------------ \--* lclVar struct V03 loc3
***** BB01, stmt 10 (top level)
[000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
[000204] ------------ | /--* const int 8
[000205] -A--G------- \--* copyBlk void
[000203] L----------- | /--* addr byref
[000200] ------------ | | \--* lclVar struct V14 tmp6
[000206] ----G---R--- \--* <list> void
[000202] ----G------- \--* addr byref
[000201] ----G------- \--* field struct v2
[000198] L----------- \--* addr byref
[000199] ------------ \--* lclVar struct V03 loc3
***** BB01, stmt 11 (top level)
[000046] ------------ * stmtExpr void (top level) (IL 0x026... ???)
[000040] --C-G------- | /--* call int Program.IsXGeater
[000042] ----G------- arg0 | | \--* ldobj struct
[000041] L----------- | | \--* addr byref
[000039] ------------ | | \--* lclVar struct V02 loc2
[000045] -AC-G------- \--* = int
[000044] D------N---- \--* lclVar int V04 loc4
***** BB01, stmt 12 (top level)
[000054] ------------ * stmtExpr void (top level) (IL 0x02E...0x034)
[000048] --C-G------- | /--* call int Program.IsXGeater
[000050] ----G------- arg0 | | \--* ldobj struct
[000049] L----------- | | \--* addr byref
[000047] ------------ | | \--* lclVar struct V03 loc3
[000053] -AC-G------- \--* = int
[000052] D------N---- \--* lclVar int V05 loc5
***** BB01, stmt 13 (top level)
[000062] ------------ * stmtExpr void (top level) (IL 0x036...0x03C)
[000056] --C-G------- | /--* call int Program.IsXGeater
[000058] ----G------- arg0 | | \--* ldobj struct
[000057] L----------- | | \--* addr byref
[000055] ------------ | | \--* lclVar struct V02 loc2
[000061] -AC-G------- \--* = int
[000060] D------N---- \--* lclVar int V06 loc6
***** BB01, stmt 14 (top level)
[000070] ------------ * stmtExpr void (top level) (IL 0x03E...0x044)
[000064] --C-G------- | /--* call int Program.IsXGeater
[000066] ----G------- arg0 | | \--* ldobj struct
[000065] L----------- | | \--* addr byref
[000063] ------------ | | \--* lclVar struct V03 loc3
[000069] -AC-G------- \--* = int
[000068] D------N---- \--* lclVar int V07 loc7
***** BB01, stmt 15 (top level)
[000075] ------------ * stmtExpr void (top level) (IL 0x046...0x048)
[000074] ------------ \--* jmpTrue void
[000072] ------------ | /--* const int 0
[000073] ------------ \--* == int
[000071] ------------ \--* lclVar int V04 loc4
------------ BB02 [04A..056) (return), preds={} succs={}
***** BB02, stmt 16 (top level)
[000130] ------------ * stmtExpr void (top level) (IL 0x04A...0x055)
[000128] --C-G------- \--* call void System.Console.WriteLine
[000127] ------------ arg0 \--* sconst ref <string constant>
***** BB02, stmt 17 (top level)
[000133] ------------ * stmtExpr void (top level) (IL 0x054... ???)
[000132] ------------ \--* return int
[000131] ------------ \--* const int -1
------------ BB03 [056..05A) -> BB05 (cond), preds={} succs={BB04,BB05}
***** BB03, stmt 18 (top level)
[000081] ------------ * stmtExpr void (top level) (IL 0x056...0x058)
[000080] ------------ \--* jmpTrue void
[000078] ------------ | /--* const int 0
[000079] ------------ \--* != int
[000077] ------------ \--* lclVar int V05 loc5
------------ BB04 [05A..066) (return), preds={} succs={}
***** BB04, stmt 19 (top level)
[000122] ------------ * stmtExpr void (top level) (IL 0x05A...0x065)
[000120] --C-G------- \--* call void System.Console.WriteLine
[000119] ------------ arg0 \--* sconst ref <string constant>
***** BB04, stmt 20 (top level)
[000125] ------------ * stmtExpr void (top level) (IL 0x064... ???)
[000124] ------------ \--* return int
[000123] ------------ \--* const int -1
------------ BB05 [066..06A) -> BB07 (cond), preds={} succs={BB06,BB07}
***** BB05, stmt 21 (top level)
[000087] ------------ * stmtExpr void (top level) (IL 0x066...0x068)
[000086] ------------ \--* jmpTrue void
[000084] ------------ | /--* const int 0
[000085] ------------ \--* == int
[000083] ------------ \--* lclVar int V06 loc6
------------ BB06 [06A..076) (return), preds={} succs={}
***** BB06, stmt 22 (top level)
[000114] ------------ * stmtExpr void (top level) (IL 0x06A...0x075)
[000112] --C-G------- \--* call void System.Console.WriteLine
[000111] ------------ arg0 \--* sconst ref <string constant>
***** BB06, stmt 23 (top level)
[000117] ------------ * stmtExpr void (top level) (IL 0x074... ???)
[000116] ------------ \--* return int
[000115] ------------ \--* const int -1
------------ BB07 [076..07A) -> BB09 (cond), preds={} succs={BB08,BB09}
***** BB07, stmt 24 (top level)
[000093] ------------ * stmtExpr void (top level) (IL 0x076...0x078)
[000092] ------------ \--* jmpTrue void
[000090] ------------ | /--* const int 0
[000091] ------------ \--* != int
[000089] ------------ \--* lclVar int V07 loc7
------------ BB08 [07A..086) (return), preds={} succs={}
***** BB08, stmt 25 (top level)
[000106] ------------ * stmtExpr void (top level) (IL 0x07A...0x085)
[000104] --C-G------- \--* call void System.Console.WriteLine
[000103] ------------ arg0 \--* sconst ref <string constant>
***** BB08, stmt 26 (top level)
[000109] ------------ * stmtExpr void (top level) (IL 0x084... ???)
[000108] ------------ \--* return int
[000107] ------------ \--* const int -1
------------ BB09 [086..093) (return), preds={} succs={}
***** BB09, stmt 27 (top level)
[000098] ------------ * stmtExpr void (top level) (IL 0x086...0x092)
[000096] --C-G------- \--* call void System.Console.WriteLine
[000095] ------------ arg0 \--* sconst ref <string constant>
***** BB09, stmt 28 (top level)
[000101] ------------ * stmtExpr void (top level) (IL 0x090... ???)
[000100] ------------ \--* return int
[000099] ------------ \--* const int 100
------------ BB10 [???..???) (return), preds={} succs={}
***** BB10, stmt 29 (top level)
[000136] ------------ * stmtExpr void (top level) (IL ???... ???)
[000135] ------------ \--* return int
[000134] -------N---- \--* lclVar int V08 tmp0
-------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
**************** Inline Tree
Inlines into Program:Main():int
[IL=0] MyValue:.ctor(long):this
[IL=10] MyValue:.ctor(long):this
[IL=20] MyStruct:.ctor(struct,struct):this
[IL=29] MyStruct:.ctor(struct,struct):this
*************** In fgDebugCheckBBlist
*************** In fgMarkImplicitByRefs()
*************** In fgPromoteStructs()
Promoting struct local V00 (MyValue):
lvaGrabTemp returning 15 (V15 tmp7) (a long lifetime temp) called for field V00.val (fldOffset=0x0).
Promoting struct local V01 (MyValue):
lvaGrabTemp returning 16 (V16 tmp8) (a long lifetime temp) called for field V01.val (fldOffset=0x0).
Promoting struct local V11 (MyValue):
lvaGrabTemp returning 17 (V17 tmp9) (a long lifetime temp) called for field V11.val (fldOffset=0x0).
Promoting struct local V12 (MyValue):
lvaGrabTemp returning 18 (V18 tmp10) (a long lifetime temp) called for field V12.val (fldOffset=0x0).
Promoting struct local V13 (MyValue):
lvaGrabTemp returning 19 (V19 tmp11) (a long lifetime temp) called for field V13.val (fldOffset=0x0).
Promoting struct local V14 (MyValue):
lvaGrabTemp returning 20 (V20 tmp12) (a long lifetime temp) called for field V14.val (fldOffset=0x0).
*************** In fgMarkAddressExposedLocals()
Replacing the field in promoted struct with a local var:
[000004] ------------ /--* cast long <- int
[000003] ------------ | \--* const int 10
[000142] -A--G------- * = long
[000141] D------N---- \--* lclVar long V15 tmp7
Replacing the field in promoted struct with a local var:
[000011] ------------ /--* cast long <- int
[000010] ------------ | \--* const int 20
[000150] -A--G------- * = long
[000149] D------N---- \--* lclVar long V16 tmp8
*************** In fgMorphBlocks()
Morphing BB01 of 'Program:Main():int'
fgMorphTree BB01, stmt 1 (before)
[000004] ------------ /--* cast long <- int
[000003] ------------ | \--* const int 10
[000142] -A--G------- * = long
[000141] D------N---- \--* lclVar long V15 tmp7
Folding long operator with constant nodes into a constant:
[000004] ------------ * cast long <- int
[000003] ------------ \--* const int 10
Bashed to long constant:
[000004] ------------ * const long 10
GenTreeNode creates assertion:
[000142] -A--G------- * = long
In BB01 New Local Constant Assertion: V15 == 10index=#01, mask=0000000000000001
fgMorphTree BB01, stmt 1 (after)
[000004] ------------ /--* const long 10
[000142] -A--G------- * = long
[000141] D------N---- \--* lclVar long V15 tmp7
fgMorphTree BB01, stmt 2 (before)
[000011] ------------ /--* cast long <- int
[000010] ------------ | \--* const int 20
[000150] -A--G------- * = long
[000149] D------N---- \--* lclVar long V16 tmp8
Folding long operator with constant nodes into a constant:
[000011] ------------ * cast long <- int
[000010] ------------ \--* const int 20
Bashed to long constant:
[000011] ------------ * const long 20
GenTreeNode creates assertion:
[000150] -A--G------- * = long
In BB01 New Local Constant Assertion: V16 == 20index=#02, mask=0000000000000002
fgMorphTree BB01, stmt 2 (after)
[000011] ------------ /--* const long 20
[000150] -A--G------- * = long
[000149] D------N---- \--* lclVar long V16 tmp8
fgMorphTree BB01, stmt 3 (before)
[000176] ------------ /--* const int 8
[000177] -A--G------- * copyBlk void
[000023] L----------- | /--* addr byref
[000017] ------------ | | \--* lclVar struct(P) V00 loc0
| | \--* long V00.val (offs=0x00) -> V15 tmp7
[000178] --------R--- \--* <list> void
[000175] L----------- \--* addr byref
[000174] ------------ \--* lclVar struct(P) V11 tmp3
\--* long V11.val (offs=0x00) -> V17 tmp9
fgMorphCopyBlock: (destDoFldAsg=true) (srcDoFldAsg=true) using field by field assignments.
GenTreeNode creates assertion:
[000225] -A---------- * = long
In BB01 New Local Copy Assertion: V17 == V15index=#03, mask=0000000000000004
fgMorphCopyBlock (after):
[000224] -------N---- /--* lclVar long V15 tmp7
[000225] -A---------- * = long
[000223] D------N---- \--* lclVar long V17 tmp9
The assignment [000225] using V17 removes: Copy Assertion: V17 == V15
GenTreeNode creates assertion:
[000225] -A---------- * = long
In BB01 New Local Copy Assertion: V17 == V15index=#03, mask=0000000000000004
fgMorphTree BB01, stmt 3 (after)
[000224] -------N---- /--* lclVar long V15 tmp7
[000225] -A---------- * = long
[000223] D------N---- \--* lclVar long V17 tmp9
fgMorphTree BB01, stmt 4 (before)
[000182] ------------ /--* const int 8
[000183] -A--G------- * copyBlk void
[000020] L----------- | /--* addr byref
[000018] ------------ | | \--* lclVar struct(P) V01 loc1
| | \--* long V01.val (offs=0x00) -> V16 tmp8
[000184] --------R--- \--* <list> void
[000181] L----------- \--* addr byref
[000180] ------------ \--* lclVar struct(P) V12 tmp4
\--* long V12.val (offs=0x00) -> V18 tmp10
fgMorphCopyBlock: (destDoFldAsg=true) (srcDoFldAsg=true) using field by field assignments.
GenTreeNode creates assertion:
[000228] -A---------- * = long
In BB01 New Local Copy Assertion: V18 == V16index=#04, mask=0000000000000008
fgMorphCopyBlock (after):
[000227] -------N---- /--* lclVar long V16 tmp8
[000228] -A---------- * = long
[000226] D------N---- \--* lclVar long V18 tmp10
The assignment [000228] using V18 removes: Copy Assertion: V18 == V16
GenTreeNode creates assertion:
[000228] -A---------- * = long
In BB01 New Local Copy Assertion: V18 == V16index=#04, mask=0000000000000008
fgMorphTree BB01, stmt 4 (after)
[000227] -------N---- /--* lclVar long V16 tmp8
[000228] -A---------- * = long
[000226] D------N---- \--* lclVar long V18 tmp10
fgMorphTree BB01, stmt 5 (before)
[000160] ------------ /--* const int 8
[000161] -A--G------- * copyBlk void
[000159] L----------- | /--* addr byref
[000156] ------------ | | \--* lclVar struct(P) V11 tmp3
| | \--* long V11.val (offs=0x00) -> V17 tmp9
[000162] ----G---R--- \--* <list> void
[000158] ----G------- \--* addr byref
[000157] ----G------- \--* field struct v1
[000154] L----------- \--* addr byref
[000155] ------------ \--* lclVar struct V02 loc2
Local V02 should not be enregistered because: was accessed as a local field
fgMorphCopyBlock: (srcDoFldAsg=true) using field by field assignments.
Local V02 should not be enregistered because: written in a block op
fgMorphCopyBlock (after):
[000235] -------N---- /--* lclVar long V17 tmp9
[000236] -A--G------- * = long
[000234] *---G--N---- \--* indir long
[000232] ------------ | /--* const long 0 Fseq[val]
[000233] ----G------- \--* + byref
[000230] ----G------- \--* addr byref
[000231] U------N---- \--* lclFld struct V02 loc2 [+0] Fseq[v1]
fgMorphTree BB01, stmt 5 (after)
[000235] -------N---- /--* lclVar long V17 tmp9
[000236] -A--G------- * = long
[000234] *---G--N---- \--* indir long
[000232] ------------ | /--* const long 0 Fseq[val]
[000233] ----G------- \--* + byref
[000230] ----G------- \--* addr byref
[000231] U------N---- \--* lclFld struct V02 loc2 [+0] Fseq[v1]
fgMorphTree BB01, stmt 6 (before)
[000170] ------------ /--* const int 8
[000171] -A--G------- * copyBlk void
[000169] L----------- | /--* addr byref
[000166] ------------ | | \--* lclVar struct(P) V12 tmp4
| | \--* long V12.val (offs=0x00) -> V18 tmp10
[000172] ----G---R--- \--* <list> void
[000168] ----G------- \--* addr byref
[000167] ----G------- \--* field struct v2
[000164] L----------- \--* addr byref
[000165] ------------ \--* lclVar struct V02 loc2
Local V02 should not be enregistered because: was accessed as a local field
fgMorphCopyBlock: (srcDoFldAsg=true) using field by field assignments.
Local V02 should not be enregistered because: written in a block op
fgMorphCopyBlock (after):
[000245] -------N---- /--* lclVar long V18 tmp10
[000246] -A--G------- * = long
[000244] *---G--N---- \--* indir long
[000242] ------------ | /--* const long 0 Fseq[val]
[000243] ----G------- \--* + byref
[000240] ----G------- \--* addr byref
[000241] U------N---- \--* lclFld struct V02 loc2 [+8] Fseq[v2]
fgMorphTree BB01, stmt 6 (after)
[000245] -------N---- /--* lclVar long V18 tmp10
[000246] -A--G------- * = long
[000244] *---G--N---- \--* indir long
[000242] ------------ | /--* const long 0 Fseq[val]
[000243] ----G------- \--* + byref
[000240] ----G------- \--* addr byref
[000241] U------N---- \--* lclFld struct V02 loc2 [+8] Fseq[v2]
fgMorphTree BB01, stmt 7 (before)
[000210] ------------ /--* const int 8
[000211] -A--G------- * copyBlk void
[000035] L----------- | /--* addr byref
[000029] ------------ | | \--* lclVar struct(P) V01 loc1
| | \--* long V01.val (offs=0x00) -> V16 tmp8
[000212] --------R--- \--* <list> void
[000209] L----------- \--* addr byref
[000208] ------------ \--* lclVar struct(P) V13 tmp5
\--* long V13.val (offs=0x00) -> V19 tmp11
fgMorphCopyBlock: (destDoFldAsg=true) (srcDoFldAsg=true) using field by field assignments.
GenTreeNode creates assertion:
[000249] -A---------- * = long
In BB01 New Local Copy Assertion: V19 == V16index=#05, mask=0000000000000010
fgMorphCopyBlock (after):
[000248] -------N---- /--* lclVar long V16 tmp8
[000249] -A---------- * = long
[000247] D------N---- \--* lclVar long V19 tmp11
The assignment [000249] using V19 removes: Copy Assertion: V19 == V16
GenTreeNode creates assertion:
[000249] -A---------- * = long
In BB01 New Local Copy Assertion: V19 == V16index=#05, mask=0000000000000010
fgMorphTree BB01, stmt 7 (after)
[000248] -------N---- /--* lclVar long V16 tmp8
[000249] -A---------- * = long
[000247] D------N---- \--* lclVar long V19 tmp11
fgMorphTree BB01, stmt 8 (before)
[000216] ------------ /--* const int 8
[000217] -A--G------- * copyBlk void
[000032] L----------- | /--* addr byref
[000030] ------------ | | \--* lclVar struct(P) V00 loc0
| | \--* long V00.val (offs=0x00) -> V15 tmp7
[000218] --------R--- \--* <list> void
[000215] L----------- \--* addr byref
[000214] ------------ \--* lclVar struct(P) V14 tmp6
\--* long V14.val (offs=0x00) -> V20 tmp12
fgMorphCopyBlock: (destDoFldAsg=true) (srcDoFldAsg=true) using field by field assignments.
GenTreeNode creates assertion:
[000252] -A---------- * = long
In BB01 New Local Copy Assertion: V20 == V15index=#06, mask=0000000000000020
fgMorphCopyBlock (after):
[000251] -------N---- /--* lclVar long V15 tmp7
[000252] -A---------- * = long
[000250] D------N---- \--* lclVar long V20 tmp12
The assignment [000252] using V20 removes: Copy Assertion: V20 == V15
GenTreeNode creates assertion:
[000252] -A---------- * = long
In BB01 New Local Copy Assertion: V20 == V15index=#06, mask=0000000000000020
fgMorphTree BB01, stmt 8 (after)
[000251] -------N---- /--* lclVar long V15 tmp7
[000252] -A---------- * = long
[000250] D------N---- \--* lclVar long V20 tmp12
fgMorphTree BB01, stmt 9 (before)
[000194] ------------ /--* const int 8
[000195] -A--G------- * copyBlk void
[000193] L----------- | /--* addr byref
[000190] ------------ | | \--* lclVar struct(P) V13 tmp5
| | \--* long V13.val (offs=0x00) -> V19 tmp11
[000196] ----G---R--- \--* <list> void
[000192] ----G------- \--* addr byref
[000191] ----G------- \--* field struct v1
[000188] L----------- \--* addr byref
[000189] ------------ \--* lclVar struct V03 loc3
Local V03 should not be enregistered because: was accessed as a local field
fgMorphCopyBlock: (srcDoFldAsg=true) using field by field assignments.
Local V03 should not be enregistered because: written in a block op
fgMorphCopyBlock (after):
[000259] -------N---- /--* lclVar long V19 tmp11
[000260] -A--G------- * = long
[000258] *---G--N---- \--* indir long
[000256] ------------ | /--* const long 0 Fseq[val]
[000257] ----G------- \--* + byref
[000254] ----G------- \--* addr byref
[000255] U------N---- \--* lclFld struct V03 loc3 [+0] Fseq[v1]
fgMorphTree BB01, stmt 9 (after)
[000259] -------N---- /--* lclVar long V19 tmp11
[000260] -A--G------- * = long
[000258] *---G--N---- \--* indir long
[000256] ------------ | /--* const long 0 Fseq[val]
[000257] ----G------- \--* + byref
[000254] ----G------- \--* addr byref
[000255] U------N---- \--* lclFld struct V03 loc3 [+0] Fseq[v1]
fgMorphTree BB01, stmt 10 (before)
[000204] ------------ /--* const int 8
[000205] -A--G------- * copyBlk void
[000203] L----------- | /--* addr byref
[000200] ------------ | | \--* lclVar struct(P) V14 tmp6
| | \--* long V14.val (offs=0x00) -> V20 tmp12
[000206] ----G---R--- \--* <list> void
[000202] ----G------- \--* addr byref
[000201] ----G------- \--* field struct v2
[000198] L----------- \--* addr byref
[000199] ------------ \--* lclVar struct V03 loc3
Local V03 should not be enregistered because: was accessed as a local field
fgMorphCopyBlock: (srcDoFldAsg=true) using field by field assignments.
Local V03 should not be enregistered because: written in a block op
fgMorphCopyBlock (after):
[000269] -------N---- /--* lclVar long V20 tmp12
[000270] -A--G------- * = long
[000268] *---G--N---- \--* indir long
[000266] ------------ | /--* const long 0 Fseq[val]
[000267] ----G------- \--* + byref
[000264] ----G------- \--* addr byref
[000265] U------N---- \--* lclFld struct V03 loc3 [+8] Fseq[v2]
fgMorphTree BB01, stmt 10 (after)
[000269] -------N---- /--* lclVar long V20 tmp12
[000270] -A--G------- * = long
[000268] *---G--N---- \--* indir long
[000266] ------------ | /--* const long 0 Fseq[val]
[000267] ----G------- \--* + byref
[000264] ----G------- \--* addr byref
[000265] U------N---- \--* lclFld struct V03 loc3 [+8] Fseq[v2]
fgMorphTree BB01, stmt 11 (before)
[000040] --C-G------- /--* call int Program.IsXGeater
[000042] ----G------- arg0 | \--* ldobj struct
[000041] L----------- | \--* addr byref
[000039] ------------ | \--* lclVar struct V02 loc2
[000045] -AC-G------- * = int
[000044] D------N---- \--* lclVar int V04 loc4
lvaGrabTemp returning 21 (V21 tmp13) called for by-value struct argument.
New refCnts for V21: refCnt = 1, refCntWtd = 2
fgMorphCopyBlock: with no promoted structs this requires a CopyBlock.
Local V21 should not be enregistered because: written in a block op
Local V02 should not be enregistered because: written in a block op
Sorting the arguments:
Local V21 should not be enregistered because: it is address exposed
Shuffled argument table: rcx
fgMorphTree BB01, stmt 11 (after)
[000040] --CXG------- /--* call int Program.IsXGeater
[000273] ------------ | | /--* const int 16
[000274] -A--G-----L- arg0 SETUP | +--* copyBlk void
[000041] L----------- | | | /--* addr byref
[000039] -------N---- | | | | \--* lclVar struct V02 loc2
[000275] --------R--- | | \--* <list> void
[000272] L----------- | | \--* addr byref
[000271] D------N---- | | \--* lclVar struct(AX) V21 tmp13
[000277] L----------- arg0 in rcx | \--* addr long
[000276] -------N---- | \--* lclVar struct(AX) V21 tmp13
[000045] -ACXG------- * = int
[000044] D------N---- \--* lclVar int V04 loc4
fgMorphTree BB01, stmt 12 (before)
[000048] --C-G------- /--* call int Program.IsXGeater
[000050] ----G------- arg0 | \--* ldobj struct
[000049] L----------- | \--* addr byref
[000047] ------------ | \--* lclVar struct V03 loc3
[000053] -AC-G------- * = int
[000052] D------N---- \--* lclVar int V05 loc5
reusing outgoing struct argNew refCnts for V21: refCnt = 2, refCntWtd = 4
fgMorphCopyBlock: with no promoted structs this requires a CopyBlock.
Local V21 should not be enregistered because: written in a block op
Local V03 should not be enregistered because: written in a block op
Sorting the arguments:
Local V21 should not be enregistered because: it is address exposed
Shuffled argument table: rcx
fgMorphTree BB01, stmt 12 (after)
[000048] --CXG------- /--* call int Program.IsXGeater
[000281] ------------ | | /--* const int 16
[000282] -A--G-----L- arg0 SETUP | +--* copyBlk void
[000049] L----------- | | | /--* addr byref
[000047] -------N---- | | | | \--* lclVar struct V03 loc3
[000283] --------R--- | | \--* <list> void
[000280] L----------- | | \--* addr byref
[000279] D------N---- | | \--* lclVar struct(AX) V21 tmp13
[000285] L----------- arg0 in rcx | \--* addr long
[000284] -------N---- | \--* lclVar struct(AX) V21 tmp13
[000053] -ACXG------- * = int
[000052] D------N---- \--* lclVar int V05 loc5
fgMorphTree BB01, stmt 13 (before)
[000056] --C-G------- /--* call int Program.IsXGeater
[000058] ----G------- arg0 | \--* ldobj struct
[000057] L----------- | \--* addr byref
[000055] ------------ | \--* lclVar struct V02 loc2
[000061] -AC-G------- * = int
[000060] D------N---- \--* lclVar int V06 loc6
reusing outgoing struct argNew refCnts for V21: refCnt = 3, refCntWtd = 6
fgMorphCopyBlock: with no promoted structs this requires a CopyBlock.
Local V21 should not be enregistered because: written in a block op
Local V02 should not be enregistered because: written in a block op
Sorting the arguments:
Local V21 should not be enregistered because: it is address exposed
Shuffled argument table: rcx
fgMorphTree BB01, stmt 13 (after)
[000056] --CXG------- /--* call int Program.IsXGeater
[000289] ------------ | | /--* const int 16
[000290] -A--G-----L- arg0 SETUP | +--* copyBlk void
[000057] L----------- | | | /--* addr byref
[000055] -------N---- | | | | \--* lclVar struct V02 loc2
[000291] --------R--- | | \--* <list> void
[000288] L----------- | | \--* addr byref
[000287] D------N---- | | \--* lclVar struct(AX) V21 tmp13
[000293] L----------- arg0 in rcx | \--* addr long
[000292] -------N---- | \--* lclVar struct(AX) V21 tmp13
[000061] -ACXG------- * = int
[000060] D------N---- \--* lclVar int V06 loc6
fgMorphTree BB01, stmt 14 (before)
[000064] --C-G------- /--* call int Program.IsXGeater
[000066] ----G------- arg0 | \--* ldobj struct
[000065] L----------- | \--* addr byref
[000063] ------------ | \--* lclVar struct V03 loc3
[000069] -AC-G------- * = int
[000068] D------N---- \--* lclVar int V07 loc7
reusing outgoing struct argNew refCnts for V21: refCnt = 4, refCntWtd = 8
fgMorphCopyBlock: with no promoted structs this requires a CopyBlock.
Local V21 should not be enregistered because: written in a block op
Local V03 should not be enregistered because: written in a block op
Sorting the arguments:
Local V21 should not be enregistered because: it is address exposed
Shuffled argument table: rcx
fgMorphTree BB01, stmt 14 (after)
[000064] --CXG------- /--* call int Program.IsXGeater
[000297] ------------ | | /--* const int 16
[000298] -A--G-----L- arg0 SETUP | +--* copyBlk void
[000065] L----------- | | | /--* addr byref
[000063] -------N---- | | | | \--* lclVar struct V03 loc3
[000299] --------R--- | | \--* <list> void
[000296] L----------- | | \--* addr byref
[000295] D------N---- | | \--* lclVar struct(AX) V21 tmp13
[000301] L----------- arg0 in rcx | \--* addr long
[000300] -------N---- | \--* lclVar struct(AX) V21 tmp13
[000069] -ACXG------- * = int
[000068] D------N---- \--* lclVar int V07 loc7
fgMorphTree BB01, stmt 15 (before)
[000074] ------------ * jmpTrue void
[000072] ------------ | /--* const int 0
[000073] ------------ \--* == int
[000071] ------------ \--* lclVar int V04 loc4
Morphing BB02 of 'Program:Main():int'
fgMorphTree BB02, stmt 16 (before)
[000128] --C-G------- * call void System.Console.WriteLine
[000127] ------------ arg0 \--* sconst ref <string constant>
Sorting the arguments:
Deferred argument ('rcx'):
[000304] ----G------- * indir ref
[000303] ------------ \--* const(h) long 0xD6273068 "Fail"
Replaced with placeholder node:
[000305] ----------L- * argPlace ref
Shuffled argument table: rcx
fgMorphTree BB02, stmt 16 (after)
[000128] --C-G------- * call void System.Console.WriteLine
[000304] ----G------- arg0 in rcx \--* indir ref
[000303] ------------ \--* const(h) long 0xD6273068 "Fail"
fgMorphTree BB02, stmt 17 (before)
[000132] ------------ * return int
[000131] ------------ \--* const int -1
morph BB02 to point at onereturn. New block is
BB02 [0000026AC4437368] 1 1 [04A..056)-> BB10 (always) i gcsafe
Morphing BB03 of 'Program:Main():int'
fgMorphTree BB03, stmt 18 (before)
[000080] ------------ * jmpTrue void
[000078] ------------ | /--* const int 0
[000079] ------------ \--* != int
[000077] ------------ \--* lclVar int V05 loc5
Morphing BB04 of 'Program:Main():int'
fgMorphTree BB04, stmt 19 (before)
[000120] --C-G------- * call void System.Console.WriteLine
[000119] ------------ arg0 \--* sconst ref <string constant>
Sorting the arguments:
Deferred argument ('rcx'):
[000310] ----G------- * indir ref
[000309] ------------ \--* const(h) long 0xD6273068 "Fail"
Replaced with placeholder node:
[000311] ----------L- * argPlace ref
Shuffled argument table: rcx
fgMorphTree BB04, stmt 19 (after)
[000120] --C-G------- * call void System.Console.WriteLine
[000310] ----G------- arg0 in rcx \--* indir ref
[000309] ------------ \--* const(h) long 0xD6273068 "Fail"
fgMorphTree BB04, stmt 20 (before)
[000124] ------------ * return int
[000123] ------------ \--* const int -1
morph BB04 to point at onereturn. New block is
BB04 [0000026AC4437578] 1 1 [05A..066)-> BB10 (always) i gcsafe
Morphing BB05 of 'Program:Main():int'
fgMorphTree BB05, stmt 21 (before)
[000086] ------------ * jmpTrue void
[000084] ------------ | /--* const int 0
[000085] ------------ \--* == int
[000083] ------------ \--* lclVar int V06 loc6
Morphing BB06 of 'Program:Main():int'
fgMorphTree BB06, stmt 22 (before)
[000112] --C-G------- * call void System.Console.WriteLine
[000111] ------------ arg0 \--* sconst ref <string constant>
Sorting the arguments:
Deferred argument ('rcx'):
[000316] ----G------- * indir ref
[000315] ------------ \--* const(h) long 0xD6273068 "Fail"
Replaced with placeholder node:
[000317] ----------L- * argPlace ref
Shuffled argument table: rcx
fgMorphTree BB06, stmt 22 (after)
[000112] --C-G------- * call void System.Console.WriteLine
[000316] ----G------- arg0 in rcx \--* indir ref
[000315] ------------ \--* const(h) long 0xD6273068 "Fail"
fgMorphTree BB06, stmt 23 (before)
[000116] ------------ * return int
[000115] ------------ \--* const int -1
morph BB06 to point at onereturn. New block is
BB06 [0000026AC4437788] 1 1 [06A..076)-> BB10 (always) i gcsafe
Morphing BB07 of 'Program:Main():int'
fgMorphTree BB07, stmt 24 (before)
[000092] ------------ * jmpTrue void
[000090] ------------ | /--* const int 0
[000091] ------------ \--* != int
[000089] ------------ \--* lclVar int V07 loc7
Morphing BB08 of 'Program:Main():int'
fgMorphTree BB08, stmt 25 (before)
[000104] --C-G------- * call void System.Console.WriteLine
[000103] ------------ arg0 \--* sconst ref <string constant>
Sorting the arguments:
Deferred argument ('rcx'):
[000322] ----G------- * indir ref
[000321] ------------ \--* const(h) long 0xD6273068 "Fail"
Replaced with placeholder node:
[000323] ----------L- * argPlace ref
Shuffled argument table: rcx
fgMorphTree BB08, stmt 25 (after)
[000104] --C-G------- * call void System.Console.WriteLine
[000322] ----G------- arg0 in rcx \--* indir ref
[000321] ------------ \--* const(h) long 0xD6273068 "Fail"
fgMorphTree BB08, stmt 26 (before)
[000108] ------------ * return int
[000107] ------------ \--* const int -1
morph BB08 to point at onereturn. New block is
BB08 [0000026AC4437998] 1 1 [07A..086)-> BB10 (always) i gcsafe
Morphing BB09 of 'Program:Main():int'
fgMorphTree BB09, stmt 27 (before)
[000096] --C-G------- * call void System.Console.WriteLine
[000095] ------------ arg0 \--* sconst ref <string constant>
Sorting the arguments:
Deferred argument ('rcx'):
[000328] ----G------- * indir ref
[000327] ------------ \--* const(h) long 0xD6273070 "Pass"
Replaced with placeholder node:
[000329] ----------L- * argPlace ref
Shuffled argument table: rcx
fgMorphTree BB09, stmt 27 (after)
[000096] --C-G------- * call void System.Console.WriteLine
[000328] ----G------- arg0 in rcx \--* indir ref
[000327] ------------ \--* const(h) long 0xD6273070 "Pass"
fgMorphTree BB09, stmt 28 (before)
[000100] ------------ * return int
[000099] ------------ \--* const int 100
morph BB09 to point at onereturn. New block is
BB09 [0000026AC4437AA0] 1 1 [086..093)-> BB10 (always) i gcsafe
Morphing BB10 of 'Program:Main():int'
fgMorphTree BB10, stmt 29 (before)
[000135] ------------ * return int
[000134] -------N---- \--* lclVar int V08 tmp0
Renumbering the basic blocks for fgComputePred
*************** Before renumbering the basic blocks
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i gcsafe
BB02 [0000026AC4437368] 1 1 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 1 [056..05A)-> BB05 ( cond ) i
BB04 [0000026AC4437578] 1 1 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 1 [066..06A)-> BB07 ( cond ) i
BB06 [0000026AC4437788] 1 1 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 1 [076..07A)-> BB09 ( cond ) i
BB08 [0000026AC4437998] 1 1 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 1 [086..093)-> BB10 (always) i gcsafe
BB10 [0000026AC443D0E8] 1 1 [???..???) (return) keep internal
-------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
*************** After renumbering the basic blocks
=============== No blocks renumbered!
New BlockSet epoch 2, # of blocks (including unused BB00): 11, bitset array size: 1 (short)
*************** In fgComputePreds()
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i gcsafe
BB02 [0000026AC4437368] 1 1 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 1 [056..05A)-> BB05 ( cond ) i
BB04 [0000026AC4437578] 1 1 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 1 [066..06A)-> BB07 ( cond ) i
BB06 [0000026AC4437788] 1 1 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 1 [076..07A)-> BB09 ( cond ) i
BB08 [0000026AC4437998] 1 1 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 1 [086..093)-> BB10 (always) i gcsafe
BB10 [0000026AC443D0E8] 1 1 [???..???) (return) keep internal
-------------------------------------------------------------------------------------------------------------------------------------
*************** After fgComputePreds()
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 1 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 1 [056..05A)-> BB05 ( cond ) i label target
BB04 [0000026AC4437578] 1 BB03 1 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 1 [066..06A)-> BB07 ( cond ) i label target
BB06 [0000026AC4437788] 1 BB05 1 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 1 [076..07A)-> BB09 ( cond ) i label target
BB08 [0000026AC4437998] 1 BB07 1 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 1 [086..093)-> BB10 (always) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target
-------------------------------------------------------------------------------------------------------------------------------------
*************** In fgComputeEdgeWeights()
fgComputeEdgeWeights() we do not have any profile data so we are not using the edge weights
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 1 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 1 [056..05A)-> BB05 ( cond ) i label target
BB04 [0000026AC4437578] 1 BB03 1 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 1 [066..06A)-> BB07 ( cond ) i label target
BB06 [0000026AC4437788] 1 BB05 1 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 1 [076..07A)-> BB09 ( cond ) i label target
BB08 [0000026AC4437998] 1 BB07 1 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 1 [086..093)-> BB10 (always) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target
-------------------------------------------------------------------------------------------------------------------------------------
fgComputeEdgeWeights() was able to compute exact edge weights for all of the 13 edges, using 1 passes.
Edge weights into BB02 :BB01 ( 1 )
Edge weights into BB03 :BB01 ( 1 )
Edge weights into BB04 :BB03 ( 1 )
Edge weights into BB05 :BB03 ( 1 )
Edge weights into BB06 :BB05 ( 1 )
Edge weights into BB07 :BB05 ( 1 )
Edge weights into BB08 :BB07 ( 1 )
Edge weights into BB09 :BB07 ( 1 )
Edge weights into BB10 :BB02 ( 1 ), BB04 ( 1 ), BB06 ( 1 ), BB08 ( 1 ), BB09 ( 1 )
*************** In fgCreateFunclets()
After fgCreateFunclets()
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 1 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 1 [056..05A)-> BB05 ( cond ) i label target
BB04 [0000026AC4437578] 1 BB03 1 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 1 [066..06A)-> BB07 ( cond ) i label target
BB06 [0000026AC4437788] 1 BB05 1 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 1 [076..07A)-> BB09 ( cond ) i label target
BB08 [0000026AC4437998] 1 BB07 1 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 1 [086..093)-> BB10 (always) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target
-------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
*************** In fgDebugCheckBBlist
*************** In optOptimizeLayout()
*************** Exception Handling table is empty
*************** In fgDebugCheckBBlist
*************** In fgUpdateFlowGraph()
Before updating the flow graph:
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 1 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 1 [056..05A)-> BB05 ( cond ) i label target
BB04 [0000026AC4437578] 1 BB03 1 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 1 [066..06A)-> BB07 ( cond ) i label target
BB06 [0000026AC4437788] 1 BB05 1 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 1 [076..07A)-> BB09 ( cond ) i label target
BB08 [0000026AC4437998] 1 BB07 1 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 1 [086..093)-> BB10 (always) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target
-------------------------------------------------------------------------------------------------------------------------------------
After updating the flow graph:
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 1 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 1 [056..05A)-> BB05 ( cond ) i label target
BB04 [0000026AC4437578] 1 BB03 1 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 1 [066..06A)-> BB07 ( cond ) i label target
BB06 [0000026AC4437788] 1 BB05 1 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 1 [076..07A)-> BB09 ( cond ) i label target
BB08 [0000026AC4437998] 1 BB07 1 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 1 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target
-------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
*************** In fgDebugCheckBBlist
*************** In fgExpandRarelyRunBlocks()
*************** In fgReorderBlocks()
Initial BasicBlocks
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 1 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 1 [056..05A)-> BB05 ( cond ) i label target
BB04 [0000026AC4437578] 1 BB03 1 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 1 [066..06A)-> BB07 ( cond ) i label target
BB06 [0000026AC4437788] 1 BB05 1 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 1 [076..07A)-> BB09 ( cond ) i label target
BB08 [0000026AC4437998] 1 BB07 1 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 1 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target
-------------------------------------------------------------------------------------------------------------------------------------
*************** In fgUpdateFlowGraph()
Before updating the flow graph:
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 1 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 1 [056..05A)-> BB05 ( cond ) i label target
BB04 [0000026AC4437578] 1 BB03 1 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 1 [066..06A)-> BB07 ( cond ) i label target
BB06 [0000026AC4437788] 1 BB05 1 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 1 [076..07A)-> BB09 ( cond ) i label target
BB08 [0000026AC4437998] 1 BB07 1 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 1 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target
-------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgComputeReachability
*************** In fgDebugCheckBBlist
Renumbering the basic blocks for fgComputeReachability pass #1
*************** Before renumbering the basic blocks
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 1 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 1 [056..05A)-> BB05 ( cond ) i label target
BB04 [0000026AC4437578] 1 BB03 1 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 1 [066..06A)-> BB07 ( cond ) i label target
BB06 [0000026AC4437788] 1 BB05 1 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 1 [076..07A)-> BB09 ( cond ) i label target
BB08 [0000026AC4437998] 1 BB07 1 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 1 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target
-------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
*************** After renumbering the basic blocks
=============== No blocks renumbered!
Enter blocks: BB01
After computing reachability sets:
------------------------------------------------
BBnum Reachable by
------------------------------------------------
BB01 : BB01
BB02 : BB01 BB02
BB03 : BB01 BB03
BB04 : BB01 BB03 BB04
BB05 : BB01 BB03 BB05
BB06 : BB01 BB03 BB05 BB06
BB07 : BB01 BB03 BB05 BB07
BB08 : BB01 BB03 BB05 BB07 BB08
BB09 : BB01 BB03 BB05 BB07 BB09
BB10 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 BB10
After computing reachability:
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 1 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 1 [056..05A)-> BB05 ( cond ) i label target gcsafe
BB04 [0000026AC4437578] 1 BB03 1 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 1 [066..06A)-> BB07 ( cond ) i label target gcsafe
BB06 [0000026AC4437788] 1 BB05 1 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 1 [076..07A)-> BB09 ( cond ) i label target gcsafe
BB08 [0000026AC4437998] 1 BB07 1 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 1 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target gcsafe
-------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgComputeDoms
*************** In fgDebugCheckBBlist
Dominator computation start blocks (those blocks with no incoming edges):
BB01
------------------------------------------------
BBnum Dominated by
------------------------------------------------
BB01: BB01
BB03: BB03 BB01
BB05: BB05 BB03 BB01
BB07: BB07 BB05 BB03 BB01
BB09: BB09 BB07 BB05 BB03 BB01
BB08: BB08 BB07 BB05 BB03 BB01
BB06: BB06 BB05 BB03 BB01
BB04: BB04 BB03 BB01
BB02: BB02 BB01
BB10: BB10 BB01
Inside fgBuildDomTree
After computing the Dominance Tree:
BB01 : BB10 BB03 BB02
BB03 : BB05 BB04
BB05 : BB07 BB06
BB07 : BB09 BB08
*************** In optOptimizeLoops()
After optSetBlockWeights:
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 0.5 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 0.5 [056..05A)-> BB05 ( cond ) i label target gcsafe
BB04 [0000026AC4437578] 1 BB03 0.5 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 0.5 [066..06A)-> BB07 ( cond ) i label target gcsafe
BB06 [0000026AC4437788] 1 BB05 0.5 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 0.5 [076..07A)-> BB09 ( cond ) i label target gcsafe
BB08 [0000026AC4437998] 1 BB07 0.5 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 0.5 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target gcsafe
-------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In optCloneLoops()
*************** In lvaMarkLocalVars()
lvaGrabTemp returning 22 (V22 tmp14) (a long lifetime temp) called for OutgoingArgSpace.
*** marking local variables in block BB01 (weight= 1 )
[000143] ------------ * stmtExpr void (top level) (IL 0x000... ???)
[000004] ------------ | /--* const long 10
[000142] -A--G------- \--* = long
[000141] D------N---- \--* lclVar long V15 tmp7
New refCnts for V15: refCnt = 1, refCntWtd = 1
[000151] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
[000011] ------------ | /--* const long 20
[000150] -A--G------- \--* = long
[000149] D------N---- \--* lclVar long V16 tmp8
New refCnts for V16: refCnt = 1, refCntWtd = 1
[000179] ------------ * stmtExpr void (top level) (IL 0x014... ???)
[000224] -------N---- | /--* lclVar long V15 tmp7
[000225] -A---------- \--* = long
[000223] D------N---- \--* lclVar long V17 tmp9
New refCnts for V17: refCnt = 1, refCntWtd = 1
New refCnts for V15: refCnt = 2, refCntWtd = 2
[000185] ------------ * stmtExpr void (top level) (IL 0x014... ???)
[000227] -------N---- | /--* lclVar long V16 tmp8
[000228] -A---------- \--* = long
[000226] D------N---- \--* lclVar long V18 tmp10
New refCnts for V18: refCnt = 1, refCntWtd = 1
New refCnts for V16: refCnt = 2, refCntWtd = 2
[000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
[000235] -------N---- | /--* lclVar long V17 tmp9
[000236] -A--G------- \--* = long
[000234] *---G--N---- \--* indir long
[000232] ------------ | /--* const long 0 Fseq[val]
[000233] ----G------- \--* + byref
[000230] ----G------- \--* addr byref
[000231] U------N---- \--* lclFld struct V02 loc2 [+0] Fseq[v1]
New refCnts for V02: refCnt = 1, refCntWtd = 1
New refCnts for V17: refCnt = 2, refCntWtd = 2
[000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
[000245] -------N---- | /--* lclVar long V18 tmp10
[000246] -A--G------- \--* = long
[000244] *---G--N---- \--* indir long
[000242] ------------ | /--* const long 0 Fseq[val]
[000243] ----G------- \--* + byref
[000240] ----G------- \--* addr byref
[000241] U------N---- \--* lclFld struct V02 loc2 [+8] Fseq[v2]
New refCnts for V02: refCnt = 2, refCntWtd = 2
New refCnts for V18: refCnt = 2, refCntWtd = 2
[000213] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
[000248] -------N---- | /--* lclVar long V16 tmp8
[000249] -A---------- \--* = long
[000247] D------N---- \--* lclVar long V19 tmp11
New refCnts for V19: refCnt = 1, refCntWtd = 1
New refCnts for V16: refCnt = 3, refCntWtd = 3
[000219] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
[000251] -------N---- | /--* lclVar long V15 tmp7
[000252] -A---------- \--* = long
[000250] D------N---- \--* lclVar long V20 tmp12
New refCnts for V20: refCnt = 1, refCntWtd = 1
New refCnts for V15: refCnt = 3, refCntWtd = 3
[000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
[000259] -------N---- | /--* lclVar long V19 tmp11
[000260] -A--G------- \--* = long
[000258] *---G--N---- \--* indir long
[000256] ------------ | /--* const long 0 Fseq[val]
[000257] ----G------- \--* + byref
[000254] ----G------- \--* addr byref
[000255] U------N---- \--* lclFld struct V03 loc3 [+0] Fseq[v1]
New refCnts for V03: refCnt = 1, refCntWtd = 1
New refCnts for V19: refCnt = 2, refCntWtd = 2
[000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
[000269] -------N---- | /--* lclVar long V20 tmp12
[000270] -A--G------- \--* = long
[000268] *---G--N---- \--* indir long
[000266] ------------ | /--* const long 0 Fseq[val]
[000267] ----G------- \--* + byref
[000264] ----G------- \--* addr byref
[000265] U------N---- \--* lclFld struct V03 loc3 [+8] Fseq[v2]
New refCnts for V03: refCnt = 2, refCntWtd = 2
New refCnts for V20: refCnt = 2, refCntWtd = 2
[000046] ------------ * stmtExpr void (top level) (IL 0x026... ???)
[000040] --CXG------- | /--* call int Program.IsXGeater
[000273] ------------ | | | /--* const int 16
[000274] -A--G-----L- arg0 SETUP | | +--* copyBlk void
[000041] L----------- | | | | /--* addr byref
[000039] -------N---- | | | | | \--* lclVar struct V02 loc2
[000275] --------R--- | | | \--* <list> void
[000272] L----------- | | | \--* addr byref
[000271] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
[000277] L----------- arg0 in rcx | | \--* addr long
[000276] -------N---- | | \--* lclVar struct(AX) V21 tmp13
[000045] -ACXG------- \--* = int
[000044] D------N---- \--* lclVar int V04 loc4
New refCnts for V04: refCnt = 1, refCntWtd = 1
New refCnts for V21: refCnt = 5, refCntWtd = 10
New refCnts for V02: refCnt = 3, refCntWtd = 3
New refCnts for V21: refCnt = 6, refCntWtd = 12
[000054] ------------ * stmtExpr void (top level) (IL 0x02E...0x034)
[000048] --CXG------- | /--* call int Program.IsXGeater
[000281] ------------ | | | /--* const int 16
[000282] -A--G-----L- arg0 SETUP | | +--* copyBlk void
[000049] L----------- | | | | /--* addr byref
[000047] -------N---- | | | | | \--* lclVar struct V03 loc3
[000283] --------R--- | | | \--* <list> void
[000280] L----------- | | | \--* addr byref
[000279] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
[000285] L----------- arg0 in rcx | | \--* addr long
[000284] -------N---- | | \--* lclVar struct(AX) V21 tmp13
[000053] -ACXG------- \--* = int
[000052] D------N---- \--* lclVar int V05 loc5
New refCnts for V05: refCnt = 1, refCntWtd = 1
New refCnts for V21: refCnt = 7, refCntWtd = 14
New refCnts for V03: refCnt = 3, refCntWtd = 3
New refCnts for V21: refCnt = 8, refCntWtd = 16
[000062] ------------ * stmtExpr void (top level) (IL 0x036...0x03C)
[000056] --CXG------- | /--* call int Program.IsXGeater
[000289] ------------ | | | /--* const int 16
[000290] -A--G-----L- arg0 SETUP | | +--* copyBlk void
[000057] L----------- | | | | /--* addr byref
[000055] -------N---- | | | | | \--* lclVar struct V02 loc2
[000291] --------R--- | | | \--* <list> void
[000288] L----------- | | | \--* addr byref
[000287] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
[000293] L----------- arg0 in rcx | | \--* addr long
[000292] -------N---- | | \--* lclVar struct(AX) V21 tmp13
[000061] -ACXG------- \--* = int
[000060] D------N---- \--* lclVar int V06 loc6
New refCnts for V06: refCnt = 1, refCntWtd = 1
New refCnts for V21: refCnt = 9, refCntWtd = 18
New refCnts for V02: refCnt = 4, refCntWtd = 4
New refCnts for V21: refCnt = 10, refCntWtd = 20
[000070] ------------ * stmtExpr void (top level) (IL 0x03E...0x044)
[000064] --CXG------- | /--* call int Program.IsXGeater
[000297] ------------ | | | /--* const int 16
[000298] -A--G-----L- arg0 SETUP | | +--* copyBlk void
[000065] L----------- | | | | /--* addr byref
[000063] -------N---- | | | | | \--* lclVar struct V03 loc3
[000299] --------R--- | | | \--* <list> void
[000296] L----------- | | | \--* addr byref
[000295] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
[000301] L----------- arg0 in rcx | | \--* addr long
[000300] -------N---- | | \--* lclVar struct(AX) V21 tmp13
[000069] -ACXG------- \--* = int
[000068] D------N---- \--* lclVar int V07 loc7
New refCnts for V07: refCnt = 1, refCntWtd = 1
New refCnts for V21: refCnt = 11, refCntWtd = 22
New refCnts for V03: refCnt = 4, refCntWtd = 4
New refCnts for V21: refCnt = 12, refCntWtd = 24
[000075] ------------ * stmtExpr void (top level) (IL 0x046...0x048)
[000074] ------------ \--* jmpTrue void
[000072] ------------ | /--* const int 0
[000073] J------N---- \--* == int
[000071] ------------ \--* lclVar int V04 loc4
New refCnts for V04: refCnt = 2, refCntWtd = 2
*** marking local variables in block BB02 (weight= 0.5)
[000130] ------------ * stmtExpr void (top level) (IL 0x04A...0x055)
[000128] --C-G------- \--* call void System.Console.WriteLine
[000304] ----G------- arg0 in rcx \--* indir ref
[000303] ------------ \--* const(h) long 0xD6273068 "Fail"
[000133] ------------ * stmtExpr void (top level) (IL 0x054... ???)
[000131] ------------ | /--* const int -1
[000308] -A-----N---- \--* = int
[000307] D------N---- \--* lclVar int V08 tmp0
New refCnts for V08: refCnt = 1, refCntWtd = 1
*** marking local variables in block BB03 (weight= 0.5)
[000081] ------------ * stmtExpr void (top level) (IL 0x056...0x058)
[000080] ------------ \--* jmpTrue void
[000078] ------------ | /--* const int 0
[000079] J------N---- \--* != int
[000077] ------------ \--* lclVar int V05 loc5
New refCnts for V05: refCnt = 2, refCntWtd = 1.5
*** marking local variables in block BB04 (weight= 0.5)
[000122] ------------ * stmtExpr void (top level) (IL 0x05A...0x065)
[000120] --C-G------- \--* call void System.Console.WriteLine
[000310] ----G------- arg0 in rcx \--* indir ref
[000309] ------------ \--* const(h) long 0xD6273068 "Fail"
[000125] ------------ * stmtExpr void (top level) (IL 0x064... ???)
[000123] ------------ | /--* const int -1
[000314] -A-----N---- \--* = int
[000313] D------N---- \--* lclVar int V08 tmp0
New refCnts for V08: refCnt = 2, refCntWtd = 2
*** marking local variables in block BB05 (weight= 0.5)
[000087] ------------ * stmtExpr void (top level) (IL 0x066...0x068)
[000086] ------------ \--* jmpTrue void
[000084] ------------ | /--* const int 0
[000085] J------N---- \--* == int
[000083] ------------ \--* lclVar int V06 loc6
New refCnts for V06: refCnt = 2, refCntWtd = 1.5
*** marking local variables in block BB06 (weight= 0.5)
[000114] ------------ * stmtExpr void (top level) (IL 0x06A...0x075)
[000112] --C-G------- \--* call void System.Console.WriteLine
[000316] ----G------- arg0 in rcx \--* indir ref
[000315] ------------ \--* const(h) long 0xD6273068 "Fail"
[000117] ------------ * stmtExpr void (top level) (IL 0x074... ???)
[000115] ------------ | /--* const int -1
[000320] -A-----N---- \--* = int
[000319] D------N---- \--* lclVar int V08 tmp0
New refCnts for V08: refCnt = 3, refCntWtd = 3
*** marking local variables in block BB07 (weight= 0.5)
[000093] ------------ * stmtExpr void (top level) (IL 0x076...0x078)
[000092] ------------ \--* jmpTrue void
[000090] ------------ | /--* const int 0
[000091] J------N---- \--* != int
[000089] ------------ \--* lclVar int V07 loc7
New refCnts for V07: refCnt = 2, refCntWtd = 1.5
*** marking local variables in block BB08 (weight= 0.5)
[000106] ------------ * stmtExpr void (top level) (IL 0x07A...0x085)
[000104] --C-G------- \--* call void System.Console.WriteLine
[000322] ----G------- arg0 in rcx \--* indir ref
[000321] ------------ \--* const(h) long 0xD6273068 "Fail"
[000109] ------------ * stmtExpr void (top level) (IL 0x084... ???)
[000107] ------------ | /--* const int -1
[000326] -A-----N---- \--* = int
[000325] D------N---- \--* lclVar int V08 tmp0
New refCnts for V08: refCnt = 4, refCntWtd = 4
*** marking local variables in block BB09 (weight= 0.5)
[000098] ------------ * stmtExpr void (top level) (IL 0x086...0x092)
[000096] --C-G------- \--* call void System.Console.WriteLine
[000328] ----G------- arg0 in rcx \--* indir ref
[000327] ------------ \--* const(h) long 0xD6273070 "Pass"
[000101] ------------ * stmtExpr void (top level) (IL 0x090... ???)
[000099] ------------ | /--* const int 100
[000332] -A-----N---- \--* = int
[000331] D------N---- \--* lclVar int V08 tmp0
New refCnts for V08: refCnt = 5, refCntWtd = 5
*** marking local variables in block BB10 (weight= 1 )
[000136] ------------ * stmtExpr void (top level) (IL ???... ???)
[000135] ------------ \--* return int
[000134] -------N---- \--* lclVar int V08 tmp0
New refCnts for V08: refCnt = 6, refCntWtd = 7
*************** In optAddCopies()
Local V02 should not be enregistered because: it is a struct
Local V03 should not be enregistered because: it is a struct
refCnt table for 'Main':
V08 tmp0 [ int]: refCnt = 6, refCntWtd = 7 pref [rax]
V02 loc2 [struct]: refCnt = 4, refCntWtd = 4
V03 loc3 [struct]: refCnt = 4, refCntWtd = 4
V15 tmp7 [ long]: refCnt = 3, refCntWtd = 3
V16 tmp8 [ long]: refCnt = 3, refCntWtd = 3
V04 loc4 [ bool]: refCnt = 2, refCntWtd = 2
V17 tmp9 [ long]: refCnt = 2, refCntWtd = 2
V18 tmp10 [ long]: refCnt = 2, refCntWtd = 2
V19 tmp11 [ long]: refCnt = 2, refCntWtd = 2
V20 tmp12 [ long]: refCnt = 2, refCntWtd = 2
V05 loc5 [ bool]: refCnt = 2, refCntWtd = 1.5
V06 loc6 [ bool]: refCnt = 2, refCntWtd = 1.5
V07 loc7 [ bool]: refCnt = 2, refCntWtd = 1.5
V21 tmp13 [struct]: refCnt = 12, refCntWtd = 24
V22 OutArgs [lclBlk]: refCnt = 1, refCntWtd = 1
*************** In optOptimizeBools()
*************** In fgDebugCheckBBlist
*************** In fgFindOperOrder()
*************** In fgSetBlockOrder()
The biggest BB has 14 tree nodes
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 0.5 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 0.5 [056..05A)-> BB05 ( cond ) i label target gcsafe
BB04 [0000026AC4437578] 1 BB03 0.5 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 0.5 [066..06A)-> BB07 ( cond ) i label target gcsafe
BB06 [0000026AC4437788] 1 BB05 0.5 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 0.5 [076..07A)-> BB09 ( cond ) i label target gcsafe
BB08 [0000026AC4437998] 1 BB07 0.5 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 0.5 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target gcsafe
-------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..04A) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1 (top level)
( 1, 3) [000143] ------------ * stmtExpr void (top level) (IL 0x000... ???)
N001 ( 1, 1) [000004] ------------ | /--* const long 10
N003 ( 1, 3) [000142] -A--G---R--- \--* = long
N002 ( 1, 1) [000141] D------N---- \--* lclVar long V15 tmp7
***** BB01, stmt 2 (top level)
( 1, 3) [000151] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
N001 ( 1, 1) [000011] ------------ | /--* const long 20
N003 ( 1, 3) [000150] -A--G---R--- \--* = long
N002 ( 1, 1) [000149] D------N---- \--* lclVar long V16 tmp8
***** BB01, stmt 3 (top level)
( 5, 4) [000179] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000224] -------N---- | /--* lclVar long V15 tmp7
N003 ( 5, 4) [000225] -A------R--- \--* = long
N002 ( 3, 2) [000223] D------N---- \--* lclVar long V17 tmp9
***** BB01, stmt 4 (top level)
( 5, 4) [000185] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000227] -------N---- | /--* lclVar long V16 tmp8
N003 ( 5, 4) [000228] -A------R--- \--* = long
N002 ( 3, 2) [000226] D------N---- \--* lclVar long V18 tmp10
***** BB01, stmt 5 (top level)
( 10, 10) [000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N006 ( 3, 2) [000235] -------N---- | /--* lclVar long V17 tmp9
N007 ( 10, 10) [000236] -A--G------- \--* = long
N005 ( 6, 7) [000234] *---G--N---- \--* indir long
N003 ( 1, 1) [000232] ------------ | /--* const long 0 Fseq[val]
N004 ( 5, 7) [000233] ----G--N---- \--* + byref
N002 ( 3, 5) [000230] ----G------- \--* addr byref
N001 ( 3, 4) [000231] U------N---- \--* lclFld struct V02 loc2 [+0] Fseq[v1]
***** BB01, stmt 6 (top level)
( 10, 10) [000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N006 ( 3, 2) [000245] -------N---- | /--* lclVar long V18 tmp10
N007 ( 10, 10) [000246] -A--G------- \--* = long
N005 ( 6, 7) [000244] *---G--N---- \--* indir long
N003 ( 1, 1) [000242] ------------ | /--* const long 0 Fseq[val]
N004 ( 5, 7) [000243] ----G--N---- \--* + byref
N002 ( 3, 5) [000240] ----G------- \--* addr byref
N001 ( 3, 4) [000241] U------N---- \--* lclFld struct V02 loc2 [+8] Fseq[v2]
***** BB01, stmt 7 (top level)
( 5, 4) [000213] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000248] -------N---- | /--* lclVar long V16 tmp8
N003 ( 5, 4) [000249] -A------R--- \--* = long
N002 ( 3, 2) [000247] D------N---- \--* lclVar long V19 tmp11
***** BB01, stmt 8 (top level)
( 5, 4) [000219] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000251] -------N---- | /--* lclVar long V15 tmp7
N003 ( 5, 4) [000252] -A------R--- \--* = long
N002 ( 3, 2) [000250] D------N---- \--* lclVar long V20 tmp12
***** BB01, stmt 9 (top level)
( 10, 10) [000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N006 ( 3, 2) [000259] -------N---- | /--* lclVar long V19 tmp11
N007 ( 10, 10) [000260] -A--G------- \--* = long
N005 ( 6, 7) [000258] *---G--N---- \--* indir long
N003 ( 1, 1) [000256] ------------ | /--* const long 0 Fseq[val]
N004 ( 5, 7) [000257] ----G--N---- \--* + byref
N002 ( 3, 5) [000254] ----G------- \--* addr byref
N001 ( 3, 4) [000255] U------N---- \--* lclFld struct V03 loc3 [+0] Fseq[v1]
***** BB01, stmt 10 (top level)
( 10, 10) [000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N006 ( 3, 2) [000269] -------N---- | /--* lclVar long V20 tmp12
N007 ( 10, 10) [000270] -A--G------- \--* = long
N005 ( 6, 7) [000268] *---G--N---- \--* indir long
N003 ( 1, 1) [000266] ------------ | /--* const long 0 Fseq[val]
N004 ( 5, 7) [000267] ----G--N---- \--* + byref
N002 ( 3, 5) [000264] ----G------- \--* addr byref
N001 ( 3, 4) [000265] U------N---- \--* lclFld struct V03 loc3 [+8] Fseq[v2]
***** BB01, stmt 11 (top level)
( 33, 21) [000046] ------------ * stmtExpr void (top level) (IL 0x026... ???)
N012 ( 29, 18) [000040] --CXG------- | /--* call int Program.IsXGeater
N006 ( 1, 1) [000273] ------------ | | | /--* const int 16
N007 ( 9, 9) [000274] -A--G-----L- arg0 SETUP | | +--* copyBlk void
N002 ( 3, 3) [000041] L----------- | | | | /--* addr byref
N001 ( 3, 2) [000039] -------N---- | | | | | \--* lclVar struct V02 loc2
N005 ( 7, 7) [000275] --------R--- | | | \--* <list> void
N004 ( 3, 3) [000272] L----------- | | | \--* addr byref
N003 ( 3, 2) [000271] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000277] L----------- arg0 in rcx | | \--* addr long
N009 ( 3, 2) [000276] -------N---- | | \--* lclVar struct(AX) V21 tmp13
N014 ( 33, 21) [000045] -ACXG---R--- \--* = int
N013 ( 3, 2) [000044] D------N---- \--* lclVar int V04 loc4
***** BB01, stmt 12 (top level)
( 33, 21) [000054] ------------ * stmtExpr void (top level) (IL 0x02E...0x034)
N012 ( 29, 18) [000048] --CXG------- | /--* call int Program.IsXGeater
N006 ( 1, 1) [000281] ------------ | | | /--* const int 16
N007 ( 9, 9) [000282] -A--G-----L- arg0 SETUP | | +--* copyBlk void
N002 ( 3, 3) [000049] L----------- | | | | /--* addr byref
N001 ( 3, 2) [000047] -------N---- | | | | | \--* lclVar struct V03 loc3
N005 ( 7, 7) [000283] --------R--- | | | \--* <list> void
N004 ( 3, 3) [000280] L----------- | | | \--* addr byref
N003 ( 3, 2) [000279] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000285] L----------- arg0 in rcx | | \--* addr long
N009 ( 3, 2) [000284] -------N---- | | \--* lclVar struct(AX) V21 tmp13
N014 ( 33, 21) [000053] -ACXG---R--- \--* = int
N013 ( 3, 2) [000052] D------N---- \--* lclVar int V05 loc5
***** BB01, stmt 13 (top level)
( 33, 21) [000062] ------------ * stmtExpr void (top level) (IL 0x036...0x03C)
N012 ( 29, 18) [000056] --CXG------- | /--* call int Program.IsXGeater
N006 ( 1, 1) [000289] ------------ | | | /--* const int 16
N007 ( 9, 9) [000290] -A--G-----L- arg0 SETUP | | +--* copyBlk void
N002 ( 3, 3) [000057] L----------- | | | | /--* addr byref
N001 ( 3, 2) [000055] -------N---- | | | | | \--* lclVar struct V02 loc2
N005 ( 7, 7) [000291] --------R--- | | | \--* <list> void
N004 ( 3, 3) [000288] L----------- | | | \--* addr byref
N003 ( 3, 2) [000287] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000293] L----------- arg0 in rcx | | \--* addr long
N009 ( 3, 2) [000292] -------N---- | | \--* lclVar struct(AX) V21 tmp13
N014 ( 33, 21) [000061] -ACXG---R--- \--* = int
N013 ( 3, 2) [000060] D------N---- \--* lclVar int V06 loc6
***** BB01, stmt 14 (top level)
( 33, 21) [000070] ------------ * stmtExpr void (top level) (IL 0x03E...0x044)
N012 ( 29, 18) [000064] --CXG------- | /--* call int Program.IsXGeater
N006 ( 1, 1) [000297] ------------ | | | /--* const int 16
N007 ( 9, 9) [000298] -A--G-----L- arg0 SETUP | | +--* copyBlk void
N002 ( 3, 3) [000065] L----------- | | | | /--* addr byref
N001 ( 3, 2) [000063] -------N---- | | | | | \--* lclVar struct V03 loc3
N005 ( 7, 7) [000299] --------R--- | | | \--* <list> void
N004 ( 3, 3) [000296] L----------- | | | \--* addr byref
N003 ( 3, 2) [000295] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000301] L----------- arg0 in rcx | | \--* addr long
N009 ( 3, 2) [000300] -------N---- | | \--* lclVar struct(AX) V21 tmp13
N014 ( 33, 21) [000069] -ACXG---R--- \--* = int
N013 ( 3, 2) [000068] D------N---- \--* lclVar int V07 loc7
***** BB01, stmt 15 (top level)
( 7, 6) [000075] ------------ * stmtExpr void (top level) (IL 0x046...0x048)
N004 ( 7, 6) [000074] ------------ \--* jmpTrue void
N002 ( 1, 1) [000072] ------------ | /--* const int 0
N003 ( 5, 4) [000073] J------N---- \--* == int
N001 ( 3, 2) [000071] ------------ \--* lclVar int V04 loc4
------------ BB02 [04A..056) -> BB10 (always), preds={BB01} succs={BB10}
***** BB02, stmt 16 (top level)
( 19, 18) [000130] ------------ * stmtExpr void (top level) (IL 0x04A...0x055)
N006 ( 19, 18) [000128] --C-G------- \--* call void System.Console.WriteLine
N004 ( 5, 12) [000304] ----G------- arg0 in rcx \--* indir ref
N003 ( 3, 10) [000303] ------------ \--* const(h) long 0xD6273068 "Fail"
***** BB02, stmt 17 (top level)
( 1, 3) [000133] ------------ * stmtExpr void (top level) (IL 0x054... ???)
N001 ( 1, 1) [000131] ------------ | /--* const int -1
N003 ( 1, 3) [000308] -A-----NR--- \--* = int
N002 ( 1, 1) [000307] D------N---- \--* lclVar int V08 tmp0
------------ BB03 [056..05A) -> BB05 (cond), preds={BB01} succs={BB04,BB05}
***** BB03, stmt 18 (top level)
( 7, 6) [000081] ------------ * stmtExpr void (top level) (IL 0x056...0x058)
N004 ( 7, 6) [000080] ------------ \--* jmpTrue void
N002 ( 1, 1) [000078] ------------ | /--* const int 0
N003 ( 5, 4) [000079] J------N---- \--* != int
N001 ( 3, 2) [000077] ------------ \--* lclVar int V05 loc5
------------ BB04 [05A..066) -> BB10 (always), preds={BB03} succs={BB10}
***** BB04, stmt 19 (top level)
( 19, 18) [000122] ------------ * stmtExpr void (top level) (IL 0x05A...0x065)
N006 ( 19, 18) [000120] --C-G------- \--* call void System.Console.WriteLine
N004 ( 5, 12) [000310] ----G------- arg0 in rcx \--* indir ref
N003 ( 3, 10) [000309] ------------ \--* const(h) long 0xD6273068 "Fail"
***** BB04, stmt 20 (top level)
( 1, 3) [000125] ------------ * stmtExpr void (top level) (IL 0x064... ???)
N001 ( 1, 1) [000123] ------------ | /--* const int -1
N003 ( 1, 3) [000314] -A-----NR--- \--* = int
N002 ( 1, 1) [000313] D------N---- \--* lclVar int V08 tmp0
------------ BB05 [066..06A) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
***** BB05, stmt 21 (top level)
( 7, 6) [000087] ------------ * stmtExpr void (top level) (IL 0x066...0x068)
N004 ( 7, 6) [000086] ------------ \--* jmpTrue void
N002 ( 1, 1) [000084] ------------ | /--* const int 0
N003 ( 5, 4) [000085] J------N---- \--* == int
N001 ( 3, 2) [000083] ------------ \--* lclVar int V06 loc6
------------ BB06 [06A..076) -> BB10 (always), preds={BB05} succs={BB10}
***** BB06, stmt 22 (top level)
( 19, 18) [000114] ------------ * stmtExpr void (top level) (IL 0x06A...0x075)
N006 ( 19, 18) [000112] --C-G------- \--* call void System.Console.WriteLine
N004 ( 5, 12) [000316] ----G------- arg0 in rcx \--* indir ref
N003 ( 3, 10) [000315] ------------ \--* const(h) long 0xD6273068 "Fail"
***** BB06, stmt 23 (top level)
( 1, 3) [000117] ------------ * stmtExpr void (top level) (IL 0x074... ???)
N001 ( 1, 1) [000115] ------------ | /--* const int -1
N003 ( 1, 3) [000320] -A-----NR--- \--* = int
N002 ( 1, 1) [000319] D------N---- \--* lclVar int V08 tmp0
------------ BB07 [076..07A) -> BB09 (cond), preds={BB05} succs={BB08,BB09}
***** BB07, stmt 24 (top level)
( 7, 6) [000093] ------------ * stmtExpr void (top level) (IL 0x076...0x078)
N004 ( 7, 6) [000092] ------------ \--* jmpTrue void
N002 ( 1, 1) [000090] ------------ | /--* const int 0
N003 ( 5, 4) [000091] J------N---- \--* != int
N001 ( 3, 2) [000089] ------------ \--* lclVar int V07 loc7
------------ BB08 [07A..086) -> BB10 (always), preds={BB07} succs={BB10}
***** BB08, stmt 25 (top level)
( 19, 18) [000106] ------------ * stmtExpr void (top level) (IL 0x07A...0x085)
N006 ( 19, 18) [000104] --C-G------- \--* call void System.Console.WriteLine
N004 ( 5, 12) [000322] ----G------- arg0 in rcx \--* indir ref
N003 ( 3, 10) [000321] ------------ \--* const(h) long 0xD6273068 "Fail"
***** BB08, stmt 26 (top level)
( 1, 3) [000109] ------------ * stmtExpr void (top level) (IL 0x084... ???)
N001 ( 1, 1) [000107] ------------ | /--* const int -1
N003 ( 1, 3) [000326] -A-----NR--- \--* = int
N002 ( 1, 1) [000325] D------N---- \--* lclVar int V08 tmp0
------------ BB09 [086..093), preds={BB07} succs={BB10}
***** BB09, stmt 27 (top level)
( 19, 18) [000098] ------------ * stmtExpr void (top level) (IL 0x086...0x092)
N006 ( 19, 18) [000096] --C-G------- \--* call void System.Console.WriteLine
N004 ( 5, 12) [000328] ----G------- arg0 in rcx \--* indir ref
N003 ( 3, 10) [000327] ------------ \--* const(h) long 0xD6273070 "Pass"
***** BB09, stmt 28 (top level)
( 1, 3) [000101] ------------ * stmtExpr void (top level) (IL 0x090... ???)
N001 ( 1, 1) [000099] ------------ | /--* const int 100
N003 ( 1, 3) [000332] -A-----NR--- \--* = int
N002 ( 1, 1) [000331] D------N---- \--* lclVar int V08 tmp0
------------ BB10 [???..???) (return), preds={BB02,BB04,BB06,BB08,BB09} succs={}
***** BB10, stmt 29 (top level)
( 2, 2) [000136] ------------ * stmtExpr void (top level) (IL ???... ???)
N002 ( 2, 2) [000135] ------------ \--* return int
N001 ( 1, 1) [000134] -------N---- \--* lclVar int V08 tmp0
-------------------------------------------------------------------------------------------------------------------
*************** In SsaBuilder::Build()
[SsaBuilder] Max block count is 11.
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 0.5 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 0.5 [056..05A)-> BB05 ( cond ) i label target gcsafe
BB04 [0000026AC4437578] 1 BB03 0.5 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 0.5 [066..06A)-> BB07 ( cond ) i label target gcsafe
BB06 [0000026AC4437788] 1 BB05 0.5 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 0.5 [076..07A)-> BB09 ( cond ) i label target gcsafe
BB08 [0000026AC4437998] 1 BB07 0.5 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 0.5 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target gcsafe
-------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
[SsaBuilder] Topologically sorted the graph.
[SsaBuilder::ComputeImmediateDom]
*************** In SsaBuilder::ComputeDominators(BasicBlock** postOrder, int count, ...)
*************** In SsaBuilder::InsertPhiFunctions()
*************** In fgLocalVarLiveness()
*************** In fgPerBlockLocalVarLiveness()
BB01 USE(2)={V02 V03 } + HEAP
DEF(12)={V02 V03 V15 V16 V04 V17 V18 V19 V20 V05 V06 V07} + HEAP*
BB02 USE(0)={ } + HEAP
DEF(1)={V08} + HEAP*
BB03 USE(1)={V05}
DEF(0)={ }
BB04 USE(0)={ } + HEAP
DEF(1)={V08} + HEAP*
BB05 USE(1)={V06}
DEF(0)={ }
BB06 USE(0)={ } + HEAP
DEF(1)={V08} + HEAP*
BB07 USE(1)={V07}
DEF(0)={ }
BB08 USE(0)={ } + HEAP
DEF(1)={V08} + HEAP*
BB09 USE(0)={ } + HEAP
DEF(1)={V08} + HEAP*
BB10 USE(1)={V08}
DEF(0)={ }
*************** In fgInterBlockLocalVarLiveness()
BB liveness after fgLiveVarAnalysis():
BB01 IN (2)={V02 V03 } + HEAP
OUT(3)={ V05 V06 V07} + HEAP
BB02 IN (0)={ } + HEAP
OUT(1)={V08}
BB03 IN (3)={V05 V06 V07} + HEAP
OUT(2)={ V06 V07} + HEAP
BB04 IN (0)={ } + HEAP
OUT(1)={V08}
BB05 IN (2)={V06 V07} + HEAP
OUT(1)={ V07} + HEAP
BB06 IN (0)={ } + HEAP
OUT(1)={V08}
BB07 IN (1)={V07} + HEAP
OUT(0)={ } + HEAP
BB08 IN (0)={ } + HEAP
OUT(1)={V08}
BB09 IN (0)={ } + HEAP
OUT(1)={V08}
BB10 IN (1)={V08}
OUT(0)={ }
Inserting phi functions:
Inserting phi definition for V08 at start of BB10.
*************** In SsaBuilder::RenameVariables()
After fgSsaBuild:
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 0.5 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 0.5 [056..05A)-> BB05 ( cond ) i label target gcsafe
BB04 [0000026AC4437578] 1 BB03 0.5 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 0.5 [066..06A)-> BB07 ( cond ) i label target gcsafe
BB06 [0000026AC4437788] 1 BB05 0.5 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 0.5 [076..07A)-> BB09 ( cond ) i label target gcsafe
BB08 [0000026AC4437998] 1 BB07 0.5 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 0.5 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target gcsafe
-------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..04A) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1 (top level)
( 1, 3) [000143] ------------ * stmtExpr void (top level) (IL 0x000... ???)
N001 ( 1, 1) [000004] ------------ | /--* const long 10
N003 ( 1, 3) [000142] -A--G---R--- \--* = long
N002 ( 1, 1) [000141] D------N---- \--* lclVar long V15 tmp7 d:3
***** BB01, stmt 2 (top level)
( 1, 3) [000151] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
N001 ( 1, 1) [000011] ------------ | /--* const long 20
N003 ( 1, 3) [000150] -A--G---R--- \--* = long
N002 ( 1, 1) [000149] D------N---- \--* lclVar long V16 tmp8 d:3
***** BB01, stmt 3 (top level)
( 5, 4) [000179] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000224] -------N---- | /--* lclVar long V15 tmp7 u:3
N003 ( 5, 4) [000225] -A------R--- \--* = long
N002 ( 3, 2) [000223] D------N---- \--* lclVar long V17 tmp9 d:3
***** BB01, stmt 4 (top level)
( 5, 4) [000185] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000227] -------N---- | /--* lclVar long V16 tmp8 u:3
N003 ( 5, 4) [000228] -A------R--- \--* = long
N002 ( 3, 2) [000226] D------N---- \--* lclVar long V18 tmp10 d:3
***** BB01, stmt 5 (top level)
( 10, 10) [000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N006 ( 3, 2) [000235] -------N---- | /--* lclVar long V17 tmp9 u:3 (last use)
N007 ( 10, 10) [000236] -A--G------- \--* = long
N005 ( 6, 7) [000234] *---G--N---- \--* indir long
N003 ( 1, 1) [000232] ------------ | /--* const long 0 Fseq[val]
N004 ( 5, 7) [000233] ----G--N---- \--* + byref
N002 ( 3, 5) [000230] ----G------- \--* addr byref
N001 ( 3, 4) [000231] U------N---- \--* lclFld struct V02 loc2 ud:2->3[+0] Fseq[v1]
***** BB01, stmt 6 (top level)
( 10, 10) [000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N006 ( 3, 2) [000245] -------N---- | /--* lclVar long V18 tmp10 u:3 (last use)
N007 ( 10, 10) [000246] -A--G------- \--* = long
N005 ( 6, 7) [000244] *---G--N---- \--* indir long
N003 ( 1, 1) [000242] ------------ | /--* const long 0 Fseq[val]
N004 ( 5, 7) [000243] ----G--N---- \--* + byref
N002 ( 3, 5) [000240] ----G------- \--* addr byref
N001 ( 3, 4) [000241] U------N---- \--* lclFld struct V02 loc2 ud:3->4[+8] Fseq[v2]
***** BB01, stmt 7 (top level)
( 5, 4) [000213] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000248] -------N---- | /--* lclVar long V16 tmp8 u:3 (last use)
N003 ( 5, 4) [000249] -A------R--- \--* = long
N002 ( 3, 2) [000247] D------N---- \--* lclVar long V19 tmp11 d:3
***** BB01, stmt 8 (top level)
( 5, 4) [000219] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000251] -------N---- | /--* lclVar long V15 tmp7 u:3 (last use)
N003 ( 5, 4) [000252] -A------R--- \--* = long
N002 ( 3, 2) [000250] D------N---- \--* lclVar long V20 tmp12 d:3
***** BB01, stmt 9 (top level)
( 10, 10) [000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N006 ( 3, 2) [000259] -------N---- | /--* lclVar long V19 tmp11 u:3 (last use)
N007 ( 10, 10) [000260] -A--G------- \--* = long
N005 ( 6, 7) [000258] *---G--N---- \--* indir long
N003 ( 1, 1) [000256] ------------ | /--* const long 0 Fseq[val]
N004 ( 5, 7) [000257] ----G--N---- \--* + byref
N002 ( 3, 5) [000254] ----G------- \--* addr byref
N001 ( 3, 4) [000255] U------N---- \--* lclFld struct V03 loc3 ud:2->3[+0] Fseq[v1]
***** BB01, stmt 10 (top level)
( 10, 10) [000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N006 ( 3, 2) [000269] -------N---- | /--* lclVar long V20 tmp12 u:3 (last use)
N007 ( 10, 10) [000270] -A--G------- \--* = long
N005 ( 6, 7) [000268] *---G--N---- \--* indir long
N003 ( 1, 1) [000266] ------------ | /--* const long 0 Fseq[val]
N004 ( 5, 7) [000267] ----G--N---- \--* + byref
N002 ( 3, 5) [000264] ----G------- \--* addr byref
N001 ( 3, 4) [000265] U------N---- \--* lclFld struct V03 loc3 ud:3->4[+8] Fseq[v2]
***** BB01, stmt 11 (top level)
( 33, 21) [000046] ------------ * stmtExpr void (top level) (IL 0x026... ???)
N012 ( 29, 18) [000040] --CXG------- | /--* call int Program.IsXGeater
N006 ( 1, 1) [000273] ------------ | | | /--* const int 16
N007 ( 9, 9) [000274] -A--G-----L- arg0 SETUP | | +--* copyBlk void
N002 ( 3, 3) [000041] L----------- | | | | /--* addr byref
N001 ( 3, 2) [000039] -------N---- | | | | | \--* lclVar struct V02 loc2 u:4
N005 ( 7, 7) [000275] --------R--- | | | \--* <list> void
N004 ( 3, 3) [000272] L----------- | | | \--* addr byref
N003 ( 3, 2) [000271] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000277] L----------- arg0 in rcx | | \--* addr long
N009 ( 3, 2) [000276] -------N---- | | \--* lclVar struct(AX) V21 tmp13
N014 ( 33, 21) [000045] -ACXG---R--- \--* = int
N013 ( 3, 2) [000044] D------N---- \--* lclVar int V04 loc4 d:3
***** BB01, stmt 12 (top level)
( 33, 21) [000054] ------------ * stmtExpr void (top level) (IL 0x02E...0x034)
N012 ( 29, 18) [000048] --CXG------- | /--* call int Program.IsXGeater
N006 ( 1, 1) [000281] ------------ | | | /--* const int 16
N007 ( 9, 9) [000282] -A--G-----L- arg0 SETUP | | +--* copyBlk void
N002 ( 3, 3) [000049] L----------- | | | | /--* addr byref
N001 ( 3, 2) [000047] -------N---- | | | | | \--* lclVar struct V03 loc3 u:4
N005 ( 7, 7) [000283] --------R--- | | | \--* <list> void
N004 ( 3, 3) [000280] L----------- | | | \--* addr byref
N003 ( 3, 2) [000279] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000285] L----------- arg0 in rcx | | \--* addr long
N009 ( 3, 2) [000284] -------N---- | | \--* lclVar struct(AX) V21 tmp13
N014 ( 33, 21) [000053] -ACXG---R--- \--* = int
N013 ( 3, 2) [000052] D------N---- \--* lclVar int V05 loc5 d:3
***** BB01, stmt 13 (top level)
( 33, 21) [000062] ------------ * stmtExpr void (top level) (IL 0x036...0x03C)
N012 ( 29, 18) [000056] --CXG------- | /--* call int Program.IsXGeater
N006 ( 1, 1) [000289] ------------ | | | /--* const int 16
N007 ( 9, 9) [000290] -A--G-----L- arg0 SETUP | | +--* copyBlk void
N002 ( 3, 3) [000057] L----------- | | | | /--* addr byref
N001 ( 3, 2) [000055] -------N---- | | | | | \--* lclVar struct V02 loc2 u:4 (last use)
N005 ( 7, 7) [000291] --------R--- | | | \--* <list> void
N004 ( 3, 3) [000288] L----------- | | | \--* addr byref
N003 ( 3, 2) [000287] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000293] L----------- arg0 in rcx | | \--* addr long
N009 ( 3, 2) [000292] -------N---- | | \--* lclVar struct(AX) V21 tmp13
N014 ( 33, 21) [000061] -ACXG---R--- \--* = int
N013 ( 3, 2) [000060] D------N---- \--* lclVar int V06 loc6 d:3
***** BB01, stmt 14 (top level)
( 33, 21) [000070] ------------ * stmtExpr void (top level) (IL 0x03E...0x044)
N012 ( 29, 18) [000064] --CXG------- | /--* call int Program.IsXGeater
N006 ( 1, 1) [000297] ------------ | | | /--* const int 16
N007 ( 9, 9) [000298] -A--G-----L- arg0 SETUP | | +--* copyBlk void
N002 ( 3, 3) [000065] L----------- | | | | /--* addr byref
N001 ( 3, 2) [000063] -------N---- | | | | | \--* lclVar struct V03 loc3 u:4 (last use)
N005 ( 7, 7) [000299] --------R--- | | | \--* <list> void
N004 ( 3, 3) [000296] L----------- | | | \--* addr byref
N003 ( 3, 2) [000295] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000301] L----------- arg0 in rcx | | \--* addr long
N009 ( 3, 2) [000300] -------N---- | | \--* lclVar struct(AX) V21 tmp13
N014 ( 33, 21) [000069] -ACXG---R--- \--* = int
N013 ( 3, 2) [000068] D------N---- \--* lclVar int V07 loc7 d:3
***** BB01, stmt 15 (top level)
( 7, 6) [000075] ------------ * stmtExpr void (top level) (IL 0x046...0x048)
N004 ( 7, 6) [000074] ------------ \--* jmpTrue void
N002 ( 1, 1) [000072] ------------ | /--* const int 0
N003 ( 5, 4) [000073] J------N---- \--* == int
N001 ( 3, 2) [000071] ------------ \--* lclVar int V04 loc4 u:3 (last use)
------------ BB02 [04A..056) -> BB10 (always), preds={BB01} succs={BB10}
***** BB02, stmt 16 (top level)
( 19, 18) [000130] ------------ * stmtExpr void (top level) (IL 0x04A...0x055)
N006 ( 19, 18) [000128] --C-G------- \--* call void System.Console.WriteLine
N004 ( 5, 12) [000304] ----G------- arg0 in rcx \--* indir ref
N003 ( 3, 10) [000303] ------------ \--* const(h) long 0xD6273068 "Fail"
***** BB02, stmt 17 (top level)
( 1, 3) [000133] ------------ * stmtExpr void (top level) (IL 0x054... ???)
N001 ( 1, 1) [000131] ------------ | /--* const int -1
N003 ( 1, 3) [000308] -A-----NR--- \--* = int
N002 ( 1, 1) [000307] D------N---- \--* lclVar int V08 tmp0 d:7
------------ BB03 [056..05A) -> BB05 (cond), preds={BB01} succs={BB04,BB05}
***** BB03, stmt 18 (top level)
( 7, 6) [000081] ------------ * stmtExpr void (top level) (IL 0x056...0x058)
N004 ( 7, 6) [000080] ------------ \--* jmpTrue void
N002 ( 1, 1) [000078] ------------ | /--* const int 0
N003 ( 5, 4) [000079] J------N---- \--* != int
N001 ( 3, 2) [000077] ------------ \--* lclVar int V05 loc5 u:3 (last use)
------------ BB04 [05A..066) -> BB10 (always), preds={BB03} succs={BB10}
***** BB04, stmt 19 (top level)
( 19, 18) [000122] ------------ * stmtExpr void (top level) (IL 0x05A...0x065)
N006 ( 19, 18) [000120] --C-G------- \--* call void System.Console.WriteLine
N004 ( 5, 12) [000310] ----G------- arg0 in rcx \--* indir ref
N003 ( 3, 10) [000309] ------------ \--* const(h) long 0xD6273068 "Fail"
***** BB04, stmt 20 (top level)
( 1, 3) [000125] ------------ * stmtExpr void (top level) (IL 0x064... ???)
N001 ( 1, 1) [000123] ------------ | /--* const int -1
N003 ( 1, 3) [000314] -A-----NR--- \--* = int
N002 ( 1, 1) [000313] D------N---- \--* lclVar int V08 tmp0 d:6
------------ BB05 [066..06A) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
***** BB05, stmt 21 (top level)
( 7, 6) [000087] ------------ * stmtExpr void (top level) (IL 0x066...0x068)
N004 ( 7, 6) [000086] ------------ \--* jmpTrue void
N002 ( 1, 1) [000084] ------------ | /--* const int 0
N003 ( 5, 4) [000085] J------N---- \--* == int
N001 ( 3, 2) [000083] ------------ \--* lclVar int V06 loc6 u:3 (last use)
------------ BB06 [06A..076) -> BB10 (always), preds={BB05} succs={BB10}
***** BB06, stmt 22 (top level)
( 19, 18) [000114] ------------ * stmtExpr void (top level) (IL 0x06A...0x075)
N006 ( 19, 18) [000112] --C-G------- \--* call void System.Console.WriteLine
N004 ( 5, 12) [000316] ----G------- arg0 in rcx \--* indir ref
N003 ( 3, 10) [000315] ------------ \--* const(h) long 0xD6273068 "Fail"
***** BB06, stmt 23 (top level)
( 1, 3) [000117] ------------ * stmtExpr void (top level) (IL 0x074... ???)
N001 ( 1, 1) [000115] ------------ | /--* const int -1
N003 ( 1, 3) [000320] -A-----NR--- \--* = int
N002 ( 1, 1) [000319] D------N---- \--* lclVar int V08 tmp0 d:5
------------ BB07 [076..07A) -> BB09 (cond), preds={BB05} succs={BB08,BB09}
***** BB07, stmt 24 (top level)
( 7, 6) [000093] ------------ * stmtExpr void (top level) (IL 0x076...0x078)
N004 ( 7, 6) [000092] ------------ \--* jmpTrue void
N002 ( 1, 1) [000090] ------------ | /--* const int 0
N003 ( 5, 4) [000091] J------N---- \--* != int
N001 ( 3, 2) [000089] ------------ \--* lclVar int V07 loc7 u:3 (last use)
------------ BB08 [07A..086) -> BB10 (always), preds={BB07} succs={BB10}
***** BB08, stmt 25 (top level)
( 19, 18) [000106] ------------ * stmtExpr void (top level) (IL 0x07A...0x085)
N006 ( 19, 18) [000104] --C-G------- \--* call void System.Console.WriteLine
N004 ( 5, 12) [000322] ----G------- arg0 in rcx \--* indir ref
N003 ( 3, 10) [000321] ------------ \--* const(h) long 0xD6273068 "Fail"
***** BB08, stmt 26 (top level)
( 1, 3) [000109] ------------ * stmtExpr void (top level) (IL 0x084... ???)
N001 ( 1, 1) [000107] ------------ | /--* const int -1
N003 ( 1, 3) [000326] -A-----NR--- \--* = int
N002 ( 1, 1) [000325] D------N---- \--* lclVar int V08 tmp0 d:3
------------ BB09 [086..093), preds={BB07} succs={BB10}
***** BB09, stmt 27 (top level)
( 19, 18) [000098] ------------ * stmtExpr void (top level) (IL 0x086...0x092)
N006 ( 19, 18) [000096] --C-G------- \--* call void System.Console.WriteLine
N004 ( 5, 12) [000328] ----G------- arg0 in rcx \--* indir ref
N003 ( 3, 10) [000327] ------------ \--* const(h) long 0xD6273070 "Pass"
***** BB09, stmt 28 (top level)
( 1, 3) [000101] ------------ * stmtExpr void (top level) (IL 0x090... ???)
N001 ( 1, 1) [000099] ------------ | /--* const int 100
N003 ( 1, 3) [000332] -A-----NR--- \--* = int
N002 ( 1, 1) [000331] D------N---- \--* lclVar int V08 tmp0 d:4
------------ BB10 [???..???) (return), preds={BB02,BB04,BB06,BB08,BB09} succs={}
***** BB10, stmt 29 (top level)
( 6, 6) [000336] ------------ * stmtExpr void (top level) (IL ???... ???)
N011 ( 6, 6) [000334] ------------ | * phi int
N001 ( 0, 0) [000345] ------------ | /--* phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ | +--* phiArg int V08 tmp0 u:6
N003 ( 0, 0) [000341] ------------ | +--* phiArg int V08 tmp0 u:5
N004 ( 0, 0) [000339] ------------ | +--* phiArg int V08 tmp0 u:4
N005 ( 0, 0) [000337] ------------ | \--* phiArg int V08 tmp0 u:3
N013 ( 6, 6) [000335] -A------R--- \--* = int
N012 ( 1, 1) [000333] D------N---- \--* lclVar int V08 tmp0 d:8
***** BB10, stmt 30 (top level)
( 2, 2) [000136] ------------ * stmtExpr void (top level) (IL ???... ???)
N002 ( 2, 2) [000135] ------------ \--* return int
N001 ( 1, 1) [000134] -------N---- \--* lclVar int V08 tmp0 u:8 (last use)
-------------------------------------------------------------------------------------------------------------------
*************** In optEarlyProp()
After optEarlyProp:
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 0.5 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 0.5 [056..05A)-> BB05 ( cond ) i label target gcsafe
BB04 [0000026AC4437578] 1 BB03 0.5 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 0.5 [066..06A)-> BB07 ( cond ) i label target gcsafe
BB06 [0000026AC4437788] 1 BB05 0.5 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 0.5 [076..07A)-> BB09 ( cond ) i label target gcsafe
BB08 [0000026AC4437998] 1 BB07 0.5 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 0.5 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target gcsafe
-------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..04A) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1 (top level)
( 1, 3) [000143] ------------ * stmtExpr void (top level) (IL 0x000... ???)
N001 ( 1, 1) [000004] ------------ | /--* const long 10
N003 ( 1, 3) [000142] -A--G---R--- \--* = long
N002 ( 1, 1) [000141] D------N---- \--* lclVar long V15 tmp7 d:3
***** BB01, stmt 2 (top level)
( 1, 3) [000151] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
N001 ( 1, 1) [000011] ------------ | /--* const long 20
N003 ( 1, 3) [000150] -A--G---R--- \--* = long
N002 ( 1, 1) [000149] D------N---- \--* lclVar long V16 tmp8 d:3
***** BB01, stmt 3 (top level)
( 5, 4) [000179] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000224] -------N---- | /--* lclVar long V15 tmp7 u:3
N003 ( 5, 4) [000225] -A------R--- \--* = long
N002 ( 3, 2) [000223] D------N---- \--* lclVar long V17 tmp9 d:3
***** BB01, stmt 4 (top level)
( 5, 4) [000185] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000227] -------N---- | /--* lclVar long V16 tmp8 u:3
N003 ( 5, 4) [000228] -A------R--- \--* = long
N002 ( 3, 2) [000226] D------N---- \--* lclVar long V18 tmp10 d:3
***** BB01, stmt 5 (top level)
( 10, 10) [000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N006 ( 3, 2) [000235] -------N---- | /--* lclVar long V17 tmp9 u:3 (last use)
N007 ( 10, 10) [000236] -A--G------- \--* = long
N005 ( 6, 7) [000234] *---G--N---- \--* indir long
N003 ( 1, 1) [000232] ------------ | /--* const long 0 Fseq[val]
N004 ( 5, 7) [000233] ----G--N---- \--* + byref
N002 ( 3, 5) [000230] ----G------- \--* addr byref
N001 ( 3, 4) [000231] U------N---- \--* lclFld struct V02 loc2 ud:2->3[+0] Fseq[v1]
***** BB01, stmt 6 (top level)
( 10, 10) [000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N006 ( 3, 2) [000245] -------N---- | /--* lclVar long V18 tmp10 u:3 (last use)
N007 ( 10, 10) [000246] -A--G------- \--* = long
N005 ( 6, 7) [000244] *---G--N---- \--* indir long
N003 ( 1, 1) [000242] ------------ | /--* const long 0 Fseq[val]
N004 ( 5, 7) [000243] ----G--N---- \--* + byref
N002 ( 3, 5) [000240] ----G------- \--* addr byref
N001 ( 3, 4) [000241] U------N---- \--* lclFld struct V02 loc2 ud:3->4[+8] Fseq[v2]
***** BB01, stmt 7 (top level)
( 5, 4) [000213] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000248] -------N---- | /--* lclVar long V16 tmp8 u:3 (last use)
N003 ( 5, 4) [000249] -A------R--- \--* = long
N002 ( 3, 2) [000247] D------N---- \--* lclVar long V19 tmp11 d:3
***** BB01, stmt 8 (top level)
( 5, 4) [000219] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000251] -------N---- | /--* lclVar long V15 tmp7 u:3 (last use)
N003 ( 5, 4) [000252] -A------R--- \--* = long
N002 ( 3, 2) [000250] D------N---- \--* lclVar long V20 tmp12 d:3
***** BB01, stmt 9 (top level)
( 10, 10) [000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N006 ( 3, 2) [000259] -------N---- | /--* lclVar long V19 tmp11 u:3 (last use)
N007 ( 10, 10) [000260] -A--G------- \--* = long
N005 ( 6, 7) [000258] *---G--N---- \--* indir long
N003 ( 1, 1) [000256] ------------ | /--* const long 0 Fseq[val]
N004 ( 5, 7) [000257] ----G--N---- \--* + byref
N002 ( 3, 5) [000254] ----G------- \--* addr byref
N001 ( 3, 4) [000255] U------N---- \--* lclFld struct V03 loc3 ud:2->3[+0] Fseq[v1]
***** BB01, stmt 10 (top level)
( 10, 10) [000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N006 ( 3, 2) [000269] -------N---- | /--* lclVar long V20 tmp12 u:3 (last use)
N007 ( 10, 10) [000270] -A--G------- \--* = long
N005 ( 6, 7) [000268] *---G--N---- \--* indir long
N003 ( 1, 1) [000266] ------------ | /--* const long 0 Fseq[val]
N004 ( 5, 7) [000267] ----G--N---- \--* + byref
N002 ( 3, 5) [000264] ----G------- \--* addr byref
N001 ( 3, 4) [000265] U------N---- \--* lclFld struct V03 loc3 ud:3->4[+8] Fseq[v2]
***** BB01, stmt 11 (top level)
( 33, 21) [000046] ------------ * stmtExpr void (top level) (IL 0x026... ???)
N012 ( 29, 18) [000040] --CXG------- | /--* call int Program.IsXGeater
N006 ( 1, 1) [000273] ------------ | | | /--* const int 16
N007 ( 9, 9) [000274] -A--G-----L- arg0 SETUP | | +--* copyBlk void
N002 ( 3, 3) [000041] L----------- | | | | /--* addr byref
N001 ( 3, 2) [000039] -------N---- | | | | | \--* lclVar struct V02 loc2 u:4
N005 ( 7, 7) [000275] --------R--- | | | \--* <list> void
N004 ( 3, 3) [000272] L----------- | | | \--* addr byref
N003 ( 3, 2) [000271] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000277] L----------- arg0 in rcx | | \--* addr long
N009 ( 3, 2) [000276] -------N---- | | \--* lclVar struct(AX) V21 tmp13
N014 ( 33, 21) [000045] -ACXG---R--- \--* = int
N013 ( 3, 2) [000044] D------N---- \--* lclVar int V04 loc4 d:3
***** BB01, stmt 12 (top level)
( 33, 21) [000054] ------------ * stmtExpr void (top level) (IL 0x02E...0x034)
N012 ( 29, 18) [000048] --CXG------- | /--* call int Program.IsXGeater
N006 ( 1, 1) [000281] ------------ | | | /--* const int 16
N007 ( 9, 9) [000282] -A--G-----L- arg0 SETUP | | +--* copyBlk void
N002 ( 3, 3) [000049] L----------- | | | | /--* addr byref
N001 ( 3, 2) [000047] -------N---- | | | | | \--* lclVar struct V03 loc3 u:4
N005 ( 7, 7) [000283] --------R--- | | | \--* <list> void
N004 ( 3, 3) [000280] L----------- | | | \--* addr byref
N003 ( 3, 2) [000279] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000285] L----------- arg0 in rcx | | \--* addr long
N009 ( 3, 2) [000284] -------N---- | | \--* lclVar struct(AX) V21 tmp13
N014 ( 33, 21) [000053] -ACXG---R--- \--* = int
N013 ( 3, 2) [000052] D------N---- \--* lclVar int V05 loc5 d:3
***** BB01, stmt 13 (top level)
( 33, 21) [000062] ------------ * stmtExpr void (top level) (IL 0x036...0x03C)
N012 ( 29, 18) [000056] --CXG------- | /--* call int Program.IsXGeater
N006 ( 1, 1) [000289] ------------ | | | /--* const int 16
N007 ( 9, 9) [000290] -A--G-----L- arg0 SETUP | | +--* copyBlk void
N002 ( 3, 3) [000057] L----------- | | | | /--* addr byref
N001 ( 3, 2) [000055] -------N---- | | | | | \--* lclVar struct V02 loc2 u:4 (last use)
N005 ( 7, 7) [000291] --------R--- | | | \--* <list> void
N004 ( 3, 3) [000288] L----------- | | | \--* addr byref
N003 ( 3, 2) [000287] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000293] L----------- arg0 in rcx | | \--* addr long
N009 ( 3, 2) [000292] -------N---- | | \--* lclVar struct(AX) V21 tmp13
N014 ( 33, 21) [000061] -ACXG---R--- \--* = int
N013 ( 3, 2) [000060] D------N---- \--* lclVar int V06 loc6 d:3
***** BB01, stmt 14 (top level)
( 33, 21) [000070] ------------ * stmtExpr void (top level) (IL 0x03E...0x044)
N012 ( 29, 18) [000064] --CXG------- | /--* call int Program.IsXGeater
N006 ( 1, 1) [000297] ------------ | | | /--* const int 16
N007 ( 9, 9) [000298] -A--G-----L- arg0 SETUP | | +--* copyBlk void
N002 ( 3, 3) [000065] L----------- | | | | /--* addr byref
N001 ( 3, 2) [000063] -------N---- | | | | | \--* lclVar struct V03 loc3 u:4 (last use)
N005 ( 7, 7) [000299] --------R--- | | | \--* <list> void
N004 ( 3, 3) [000296] L----------- | | | \--* addr byref
N003 ( 3, 2) [000295] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000301] L----------- arg0 in rcx | | \--* addr long
N009 ( 3, 2) [000300] -------N---- | | \--* lclVar struct(AX) V21 tmp13
N014 ( 33, 21) [000069] -ACXG---R--- \--* = int
N013 ( 3, 2) [000068] D------N---- \--* lclVar int V07 loc7 d:3
***** BB01, stmt 15 (top level)
( 7, 6) [000075] ------------ * stmtExpr void (top level) (IL 0x046...0x048)
N004 ( 7, 6) [000074] ------------ \--* jmpTrue void
N002 ( 1, 1) [000072] ------------ | /--* const int 0
N003 ( 5, 4) [000073] J------N---- \--* == int
N001 ( 3, 2) [000071] ------------ \--* lclVar int V04 loc4 u:3 (last use)
------------ BB02 [04A..056) -> BB10 (always), preds={BB01} succs={BB10}
***** BB02, stmt 16 (top level)
( 19, 18) [000130] ------------ * stmtExpr void (top level) (IL 0x04A...0x055)
N006 ( 19, 18) [000128] --C-G------- \--* call void System.Console.WriteLine
N004 ( 5, 12) [000304] ----G------- arg0 in rcx \--* indir ref
N003 ( 3, 10) [000303] ------------ \--* const(h) long 0xD6273068 "Fail"
***** BB02, stmt 17 (top level)
( 1, 3) [000133] ------------ * stmtExpr void (top level) (IL 0x054... ???)
N001 ( 1, 1) [000131] ------------ | /--* const int -1
N003 ( 1, 3) [000308] -A-----NR--- \--* = int
N002 ( 1, 1) [000307] D------N---- \--* lclVar int V08 tmp0 d:7
------------ BB03 [056..05A) -> BB05 (cond), preds={BB01} succs={BB04,BB05}
***** BB03, stmt 18 (top level)
( 7, 6) [000081] ------------ * stmtExpr void (top level) (IL 0x056...0x058)
N004 ( 7, 6) [000080] ------------ \--* jmpTrue void
N002 ( 1, 1) [000078] ------------ | /--* const int 0
N003 ( 5, 4) [000079] J------N---- \--* != int
N001 ( 3, 2) [000077] ------------ \--* lclVar int V05 loc5 u:3 (last use)
------------ BB04 [05A..066) -> BB10 (always), preds={BB03} succs={BB10}
***** BB04, stmt 19 (top level)
( 19, 18) [000122] ------------ * stmtExpr void (top level) (IL 0x05A...0x065)
N006 ( 19, 18) [000120] --C-G------- \--* call void System.Console.WriteLine
N004 ( 5, 12) [000310] ----G------- arg0 in rcx \--* indir ref
N003 ( 3, 10) [000309] ------------ \--* const(h) long 0xD6273068 "Fail"
***** BB04, stmt 20 (top level)
( 1, 3) [000125] ------------ * stmtExpr void (top level) (IL 0x064... ???)
N001 ( 1, 1) [000123] ------------ | /--* const int -1
N003 ( 1, 3) [000314] -A-----NR--- \--* = int
N002 ( 1, 1) [000313] D------N---- \--* lclVar int V08 tmp0 d:6
------------ BB05 [066..06A) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
***** BB05, stmt 21 (top level)
( 7, 6) [000087] ------------ * stmtExpr void (top level) (IL 0x066...0x068)
N004 ( 7, 6) [000086] ------------ \--* jmpTrue void
N002 ( 1, 1) [000084] ------------ | /--* const int 0
N003 ( 5, 4) [000085] J------N---- \--* == int
N001 ( 3, 2) [000083] ------------ \--* lclVar int V06 loc6 u:3 (last use)
------------ BB06 [06A..076) -> BB10 (always), preds={BB05} succs={BB10}
***** BB06, stmt 22 (top level)
( 19, 18) [000114] ------------ * stmtExpr void (top level) (IL 0x06A...0x075)
N006 ( 19, 18) [000112] --C-G------- \--* call void System.Console.WriteLine
N004 ( 5, 12) [000316] ----G------- arg0 in rcx \--* indir ref
N003 ( 3, 10) [000315] ------------ \--* const(h) long 0xD6273068 "Fail"
***** BB06, stmt 23 (top level)
( 1, 3) [000117] ------------ * stmtExpr void (top level) (IL 0x074... ???)
N001 ( 1, 1) [000115] ------------ | /--* const int -1
N003 ( 1, 3) [000320] -A-----NR--- \--* = int
N002 ( 1, 1) [000319] D------N---- \--* lclVar int V08 tmp0 d:5
------------ BB07 [076..07A) -> BB09 (cond), preds={BB05} succs={BB08,BB09}
***** BB07, stmt 24 (top level)
( 7, 6) [000093] ------------ * stmtExpr void (top level) (IL 0x076...0x078)
N004 ( 7, 6) [000092] ------------ \--* jmpTrue void
N002 ( 1, 1) [000090] ------------ | /--* const int 0
N003 ( 5, 4) [000091] J------N---- \--* != int
N001 ( 3, 2) [000089] ------------ \--* lclVar int V07 loc7 u:3 (last use)
------------ BB08 [07A..086) -> BB10 (always), preds={BB07} succs={BB10}
***** BB08, stmt 25 (top level)
( 19, 18) [000106] ------------ * stmtExpr void (top level) (IL 0x07A...0x085)
N006 ( 19, 18) [000104] --C-G------- \--* call void System.Console.WriteLine
N004 ( 5, 12) [000322] ----G------- arg0 in rcx \--* indir ref
N003 ( 3, 10) [000321] ------------ \--* const(h) long 0xD6273068 "Fail"
***** BB08, stmt 26 (top level)
( 1, 3) [000109] ------------ * stmtExpr void (top level) (IL 0x084... ???)
N001 ( 1, 1) [000107] ------------ | /--* const int -1
N003 ( 1, 3) [000326] -A-----NR--- \--* = int
N002 ( 1, 1) [000325] D------N---- \--* lclVar int V08 tmp0 d:3
------------ BB09 [086..093), preds={BB07} succs={BB10}
***** BB09, stmt 27 (top level)
( 19, 18) [000098] ------------ * stmtExpr void (top level) (IL 0x086...0x092)
N006 ( 19, 18) [000096] --C-G------- \--* call void System.Console.WriteLine
N004 ( 5, 12) [000328] ----G------- arg0 in rcx \--* indir ref
N003 ( 3, 10) [000327] ------------ \--* const(h) long 0xD6273070 "Pass"
***** BB09, stmt 28 (top level)
( 1, 3) [000101] ------------ * stmtExpr void (top level) (IL 0x090... ???)
N001 ( 1, 1) [000099] ------------ | /--* const int 100
N003 ( 1, 3) [000332] -A-----NR--- \--* = int
N002 ( 1, 1) [000331] D------N---- \--* lclVar int V08 tmp0 d:4
------------ BB10 [???..???) (return), preds={BB02,BB04,BB06,BB08,BB09} succs={}
***** BB10, stmt 29 (top level)
( 6, 6) [000336] ------------ * stmtExpr void (top level) (IL ???... ???)
N011 ( 6, 6) [000334] ------------ | * phi int
N001 ( 0, 0) [000345] ------------ | /--* phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ | +--* phiArg int V08 tmp0 u:6
N003 ( 0, 0) [000341] ------------ | +--* phiArg int V08 tmp0 u:5
N004 ( 0, 0) [000339] ------------ | +--* phiArg int V08 tmp0 u:4
N005 ( 0, 0) [000337] ------------ | \--* phiArg int V08 tmp0 u:3
N013 ( 6, 6) [000335] -A------R--- \--* = int
N012 ( 1, 1) [000333] D------N---- \--* lclVar int V08 tmp0 d:8
***** BB10, stmt 30 (top level)
( 2, 2) [000136] ------------ * stmtExpr void (top level) (IL ???... ???)
N002 ( 2, 2) [000135] ------------ \--* return int
N001 ( 1, 1) [000134] -------N---- \--* lclVar int V08 tmp0 u:8 (last use)
-------------------------------------------------------------------------------------------------------------------
*************** In fgValueNumber()
Heap Initial Value in BB01 is: $100
The SSA definition for heap (#2) at start of BB01 is $100 {InitVal($41)}
***** BB01, stmt 1 (before)
N001 ( 1, 1) [000004] ------------ /--* const long 10
N003 ( 1, 3) [000142] -A--G---R--- * = long
N002 ( 1, 1) [000141] D------N---- \--* lclVar long V15 tmp7 d:3
N001 [000004] const 10 => $81 {LngCns: 10}
N002 [000141] lclVar V15 tmp7 d:3 => $81 {LngCns: 10}
N003 [000142] = => $81 {LngCns: 10}
***** BB01, stmt 1 (after)
N001 ( 1, 1) [000004] ------------ /--* const long 10 $81
N003 ( 1, 3) [000142] -A--G---R--- * = long $81
N002 ( 1, 1) [000141] D------N---- \--* lclVar long V15 tmp7 d:3 $81
---------
***** BB01, stmt 2 (before)
N001 ( 1, 1) [000011] ------------ /--* const long 20
N003 ( 1, 3) [000150] -A--G---R--- * = long
N002 ( 1, 1) [000149] D------N---- \--* lclVar long V16 tmp8 d:3
N001 [000011] const 20 => $82 {LngCns: 20}
N002 [000149] lclVar V16 tmp8 d:3 => $82 {LngCns: 20}
N003 [000150] = => $82 {LngCns: 20}
***** BB01, stmt 2 (after)
N001 ( 1, 1) [000011] ------------ /--* const long 20 $82
N003 ( 1, 3) [000150] -A--G---R--- * = long $82
N002 ( 1, 1) [000149] D------N---- \--* lclVar long V16 tmp8 d:3 $82
---------
***** BB01, stmt 3 (before)
N001 ( 1, 1) [000224] -------N---- /--* lclVar long V15 tmp7 u:3
N003 ( 5, 4) [000225] -A------R--- * = long
N002 ( 3, 2) [000223] D------N---- \--* lclVar long V17 tmp9 d:3
N001 [000224] lclVar V15 tmp7 u:3 => $81 {LngCns: 10}
N002 [000223] lclVar V17 tmp9 d:3 => $81 {LngCns: 10}
N003 [000225] = => $81 {LngCns: 10}
***** BB01, stmt 3 (after)
N001 ( 1, 1) [000224] -------N---- /--* lclVar long V15 tmp7 u:3 $81
N003 ( 5, 4) [000225] -A------R--- * = long $81
N002 ( 3, 2) [000223] D------N---- \--* lclVar long V17 tmp9 d:3 $81
---------
***** BB01, stmt 4 (before)
N001 ( 1, 1) [000227] -------N---- /--* lclVar long V16 tmp8 u:3
N003 ( 5, 4) [000228] -A------R--- * = long
N002 ( 3, 2) [000226] D------N---- \--* lclVar long V18 tmp10 d:3
N001 [000227] lclVar V16 tmp8 u:3 => $82 {LngCns: 20}
N002 [000226] lclVar V18 tmp10 d:3 => $82 {LngCns: 20}
N003 [000228] = => $82 {LngCns: 20}
***** BB01, stmt 4 (after)
N001 ( 1, 1) [000227] -------N---- /--* lclVar long V16 tmp8 u:3 $82
N003 ( 5, 4) [000228] -A------R--- * = long $82
N002 ( 3, 2) [000226] D------N---- \--* lclVar long V18 tmp10 d:3 $82
---------
***** BB01, stmt 5 (before)
N006 ( 3, 2) [000235] -------N---- /--* lclVar long V17 tmp9 u:3 (last use)
N007 ( 10, 10) [000236] -A--G------- * = long
N005 ( 6, 7) [000234] *---G--N---- \--* indir long
N003 ( 1, 1) [000232] ------------ | /--* const long 0 Fseq[val]
N004 ( 5, 7) [000233] ----G--N---- \--* + byref
N002 ( 3, 5) [000230] ----G------- \--* addr byref
N001 ( 3, 4) [000231] U------N---- \--* lclFld struct V02 loc2 ud:2->3[+0] Fseq[v1]
VNApplySelectors:
VNForHandle(Fseq[v1]) is $180, fieldType is struct, size = 8
VNForMapSelect($1, $180):struct returns $VN.ZeroMap
*** Mismatched types in VNApplySelectorsTypeCheck (indType is TYP_STRUCT)
VNApplySelectors:
VNForHandle(Fseq[v1]) is $180, fieldType is struct, size = 8
VNForMapSelect($1, $180):struct returns $VN.ZeroMap
*** Mismatched types in VNApplySelectorsTypeCheck (indType is TYP_STRUCT)
N001 [000231] lclFld V02 loc2 ud:2->3[+0] Fseq[v1] => <l:$1c0 {1c0}, c:$1c1 {1c1}>
fieldHnd $180 is {Hnd const: 0x00007FF861255D10}
fieldSeq $200 is {v1}
N002 [000230] addr => $240 {PtrToLoc($42, $200, $40)}
N003 [000232] const 0 Fseq[val] => $80 {LngCns: 0}
fieldHnd $181 is {Hnd const: 0x00007FF861255B60}
fieldSeq $201 is {val}
fieldSeq $202 is {(v1, val)}
N004 [000233] + => $241 {PtrToLoc($42, $202, $40)}
N006 [000235] lclVar V17 tmp9 u:3 (last use) => $81 {LngCns: 10}
fieldHnd $180 is {Hnd const: 0x00007FF861255D10}
fieldHnd $181 is {Hnd const: 0x00007FF861255B60}
fieldSeq $201 is {val}
fieldSeq $202 is {(v1, val)}
VNForMapSelect($1, $180):struct returns $VN.ZeroMap
fieldHnd $181 is {Hnd const: 0x00007FF861255B60}
fieldSeq $201 is {val}
VNForMapStore($1, $181, $81):long returns $280 {$VN.ZeroMap[$181 := $81]}
VNForMapStore($1, $180, $280):struct returns $2c0 {$VN.ZeroMap[$180 := $280]}
fieldHnd $180 is {Hnd const: 0x00007FF861255D10}
fieldHnd $181 is {Hnd const: 0x00007FF861255B60}
fieldSeq $201 is {val}
fieldSeq $202 is {(v1, val)}
VNForMapSelect($1, $180):struct returns $VN.ZeroMap
fieldHnd $181 is {Hnd const: 0x00007FF861255B60}
fieldSeq $201 is {val}
VNForMapStore($1, $181, $81):long returns $280 {$VN.ZeroMap[$181 := $81]}
VNForMapStore($1, $180, $280):struct returns $2c0 {$VN.ZeroMap[$180 := $280]}
Tree [000236] assigned VN to local var V02/3: VN $2c0 {$VN.ZeroMap[$180 := $280]}
N007 [000236] = => $VN.Void
***** BB01, stmt 5 (after)
N006 ( 3, 2) [000235] -------N---- /--* lclVar long V17 tmp9 u:3 (last use) $81
N007 ( 10, 10) [000236] -A--G------- * = long $VN.Void
N005 ( 6, 7) [000234] *---G--N---- \--* indir long $81
N003 ( 1, 1) [000232] ------------ | /--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000233] ----G--N---- \--* + byref $241
N002 ( 3, 5) [000230] ----G------- \--* addr byref $240
N001 ( 3, 4) [000231] U------N---- \--* lclFld struct V02 loc2 ud:2->3[+0] Fseq[v1] <l:$1c0, c:$1c1>
---------
***** BB01, stmt 6 (before)
N006 ( 3, 2) [000245] -------N---- /--* lclVar long V18 tmp10 u:3 (last use)
N007 ( 10, 10) [000246] -A--G------- * = long
N005 ( 6, 7) [000244] *---G--N---- \--* indir long
N003 ( 1, 1) [000242] ------------ | /--* const long 0 Fseq[val]
N004 ( 5, 7) [000243] ----G--N---- \--* + byref
N002 ( 3, 5) [000240] ----G------- \--* addr byref
N001 ( 3, 4) [000241] U------N---- \--* lclFld struct V02 loc2 ud:3->4[+8] Fseq[v2]
VNApplySelectors:
VNForHandle(Fseq[v2]) is $182, fieldType is struct, size = 8
AX2: $182 != $180 ==> select([$2c0]store($1, $180, $280), $182) ==> select($1, $182).
VNForMapSelect($2c0, $182):struct returns $VN.ZeroMap
*** Mismatched types in VNApplySelectorsTypeCheck (indType is TYP_STRUCT)
VNApplySelectors:
VNForHandle(Fseq[v2]) is $182, fieldType is struct, size = 8
AX2: $182 != $180 ==> select([$2c0]store($1, $180, $280), $182) ==> select($1, $182).
VNForMapSelect($2c0, $182):struct returns $VN.ZeroMap
*** Mismatched types in VNApplySelectorsTypeCheck (indType is TYP_STRUCT)
N001 [000241] lclFld V02 loc2 ud:3->4[+8] Fseq[v2] => <l:$1c2 {1c2}, c:$1c3 {1c3}>
fieldHnd $182 is {Hnd const: 0x00007FF861255D30}
fieldSeq $203 is {v2}
N002 [000240] addr => $242 {PtrToLoc($42, $203, $40)}
N003 [000242] const 0 Fseq[val] => $80 {LngCns: 0}
fieldHnd $181 is {Hnd const: 0x00007FF861255B60}
fieldSeq $201 is {val}
fieldSeq $204 is {(v2, val)}
N004 [000243] + => $243 {PtrToLoc($42, $204, $40)}
N006 [000245] lclVar V18 tmp10 u:3 (last use) => $82 {LngCns: 20}
fieldHnd $182 is {Hnd const: 0x00007FF861255D30}
fieldHnd $181 is {Hnd const: 0x00007FF861255B60}
fieldSeq $201 is {val}
fieldSeq $204 is {(v2, val)}
AX2: $182 != $180 ==> select([$2c0]store($1, $180, $280), $182) ==> select($1, $182).
VNForMapSelect($2c0, $182):struct returns $VN.ZeroMap
fieldHnd $181 is {Hnd const: 0x00007FF861255B60}
fieldSeq $201 is {val}
VNForMapStore($1, $181, $82):long returns $281 {$VN.ZeroMap[$181 := $82]}
VNForMapStore($2c0, $182, $281):struct returns $2c1 {$2c0[$182 := $281]}
fieldHnd $182 is {Hnd const: 0x00007FF861255D30}
fieldHnd $181 is {Hnd const: 0x00007FF861255B60}
fieldSeq $201 is {val}
fieldSeq $204 is {(v2, val)}
AX2: $182 != $180 ==> select([$2c0]store($1, $180, $280), $182) ==> select($1, $182).
VNForMapSelect($2c0, $182):struct returns $VN.ZeroMap
fieldHnd $181 is {Hnd const: 0x00007FF861255B60}
fieldSeq $201 is {val}
VNForMapStore($1, $181, $82):long returns $281 {$VN.ZeroMap[$181 := $82]}
VNForMapStore($2c0, $182, $281):struct returns $2c1 {$2c0[$182 := $281]}
Tree [000246] assigned VN to local var V02/4: VN $2c1 {$2c0[$182 := $281]}
N007 [000246] = => $VN.Void
***** BB01, stmt 6 (after)
N006 ( 3, 2) [000245] -------N---- /--* lclVar long V18 tmp10 u:3 (last use) $82
N007 ( 10, 10) [000246] -A--G------- * = long $VN.Void
N005 ( 6, 7) [000244] *---G--N---- \--* indir long $82
N003 ( 1, 1) [000242] ------------ | /--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000243] ----G--N---- \--* + byref $243
N002 ( 3, 5) [000240] ----G------- \--* addr byref $242
N001 ( 3, 4) [000241] U------N---- \--* lclFld struct V02 loc2 ud:3->4[+8] Fseq[v2] <l:$1c2, c:$1c3>
---------
***** BB01, stmt 7 (before)
N001 ( 1, 1) [000248] -------N---- /--* lclVar long V16 tmp8 u:3 (last use)
N003 ( 5, 4) [000249] -A------R--- * = long
N002 ( 3, 2) [000247] D------N---- \--* lclVar long V19 tmp11 d:3
N001 [000248] lclVar V16 tmp8 u:3 (last use) => $82 {LngCns: 20}
N002 [000247] lclVar V19 tmp11 d:3 => $82 {LngCns: 20}
N003 [000249] = => $82 {LngCns: 20}
***** BB01, stmt 7 (after)
N001 ( 1, 1) [000248] -------N---- /--* lclVar long V16 tmp8 u:3 (last use) $82
N003 ( 5, 4) [000249] -A------R--- * = long $82
N002 ( 3, 2) [000247] D------N---- \--* lclVar long V19 tmp11 d:3 $82
---------
***** BB01, stmt 8 (before)
N001 ( 1, 1) [000251] -------N---- /--* lclVar long V15 tmp7 u:3 (last use)
N003 ( 5, 4) [000252] -A------R--- * = long
N002 ( 3, 2) [000250] D------N---- \--* lclVar long V20 tmp12 d:3
N001 [000251] lclVar V15 tmp7 u:3 (last use) => $81 {LngCns: 10}
N002 [000250] lclVar V20 tmp12 d:3 => $81 {LngCns: 10}
N003 [000252] = => $81 {LngCns: 10}
***** BB01, stmt 8 (after)
N001 ( 1, 1) [000251] -------N---- /--* lclVar long V15 tmp7 u:3 (last use) $81
N003 ( 5, 4) [000252] -A------R--- * = long $81
N002 ( 3, 2) [000250] D------N---- \--* lclVar long V20 tmp12 d:3 $81
---------
***** BB01, stmt 9 (before)
N006 ( 3, 2) [000259] -------N---- /--* lclVar long V19 tmp11 u:3 (last use)
N007 ( 10, 10) [000260] -A--G------- * = long
N005 ( 6, 7) [000258] *---G--N---- \--* indir long
N003 ( 1, 1) [000256] ------------ | /--* const long 0 Fseq[val]
N004 ( 5, 7) [000257] ----G--N---- \--* + byref
N002 ( 3, 5) [000254] ----G------- \--* addr byref
N001 ( 3, 4) [000255] U------N---- \--* lclFld struct V03 loc3 ud:2->3[+0] Fseq[v1]
VNApplySelectors:
VNForHandle(Fseq[v1]) is $180, fieldType is struct, size = 8
VNForMapSelect($1, $180):struct returns $VN.ZeroMap
*** Mismatched types in VNApplySelectorsTypeCheck (indType is TYP_STRUCT)
VNApplySelectors:
VNForHandle(Fseq[v1]) is $180, fieldType is struct, size = 8
VNForMapSelect($1, $180):struct returns $VN.ZeroMap
*** Mismatched types in VNApplySelectorsTypeCheck (indType is TYP_STRUCT)
N001 [000255] lclFld V03 loc3 ud:2->3[+0] Fseq[v1] => <l:$1c4 {1c4}, c:$1c5 {1c5}>
fieldHnd $180 is {Hnd const: 0x00007FF861255D10}
fieldSeq $200 is {v1}
N002 [000254] addr => $244 {PtrToLoc($43, $200, $40)}
N003 [000256] const 0 Fseq[val] => $80 {LngCns: 0}
fieldHnd $181 is {Hnd const: 0x00007FF861255B60}
fieldSeq $201 is {val}
fieldSeq $202 is {(v1, val)}
N004 [000257] + => $245 {PtrToLoc($43, $202, $40)}
N006 [000259] lclVar V19 tmp11 u:3 (last use) => $82 {LngCns: 20}
fieldHnd $180 is {Hnd const: 0x00007FF861255D10}
fieldHnd $181 is {Hnd const: 0x00007FF861255B60}
fieldSeq $201 is {val}
fieldSeq $202 is {(v1, val)}
VNForMapSelect($1, $180):struct returns $VN.ZeroMap
fieldHnd $181 is {Hnd const: 0x00007FF861255B60}
fieldSeq $201 is {val}
VNForMapStore($1, $181, $82):long returns $281 {$VN.ZeroMap[$181 := $82]}
VNForMapStore($1, $180, $281):struct returns $2c2 {$VN.ZeroMap[$180 := $281]}
fieldHnd $180 is {Hnd const: 0x00007FF861255D10}
fieldHnd $181 is {Hnd const: 0x00007FF861255B60}
fieldSeq $201 is {val}
fieldSeq $202 is {(v1, val)}
VNForMapSelect($1, $180):struct returns $VN.ZeroMap
fieldHnd $181 is {Hnd const: 0x00007FF861255B60}
fieldSeq $201 is {val}
VNForMapStore($1, $181, $82):long returns $281 {$VN.ZeroMap[$181 := $82]}
VNForMapStore($1, $180, $281):struct returns $2c2 {$VN.ZeroMap[$180 := $281]}
Tree [000260] assigned VN to local var V03/3: VN $2c2 {$VN.ZeroMap[$180 := $281]}
N007 [000260] = => $VN.Void
***** BB01, stmt 9 (after)
N006 ( 3, 2) [000259] -------N---- /--* lclVar long V19 tmp11 u:3 (last use) $82
N007 ( 10, 10) [000260] -A--G------- * = long $VN.Void
N005 ( 6, 7) [000258] *---G--N---- \--* indir long $82
N003 ( 1, 1) [000256] ------------ | /--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000257] ----G--N---- \--* + byref $245
N002 ( 3, 5) [000254] ----G------- \--* addr byref $244
N001 ( 3, 4) [000255] U------N---- \--* lclFld struct V03 loc3 ud:2->3[+0] Fseq[v1] <l:$1c4, c:$1c5>
---------
***** BB01, stmt 10 (before)
N006 ( 3, 2) [000269] -------N---- /--* lclVar long V20 tmp12 u:3 (last use)
N007 ( 10, 10) [000270] -A--G------- * = long
N005 ( 6, 7) [000268] *---G--N---- \--* indir long
N003 ( 1, 1) [000266] ------------ | /--* const long 0 Fseq[val]
N004 ( 5, 7) [000267] ----G--N---- \--* + byref
N002 ( 3, 5) [000264] ----G------- \--* addr byref
N001 ( 3, 4) [000265] U------N---- \--* lclFld struct V03 loc3 ud:3->4[+8] Fseq[v2]
VNApplySelectors:
VNForHandle(Fseq[v2]) is $182, fieldType is struct, size = 8
AX2: $182 != $180 ==> select([$2c2]store($1, $180, $281), $182) ==> select($1, $182).
VNForMapSelect($2c2, $182):struct returns $VN.ZeroMap
*** Mismatched types in VNApplySelectorsTypeCheck (indType is TYP_STRUCT)
VNApplySelectors:
VNForHandle(Fseq[v2]) is $182, fieldType is struct, size = 8
AX2: $182 != $180 ==> select([$2c2]store($1, $180, $281), $182) ==> select($1, $182).
VNForMapSelect($2c2, $182):struct returns $VN.ZeroMap
*** Mismatched types in VNApplySelectorsTypeCheck (indType is TYP_STRUCT)
N001 [000265] lclFld V03 loc3 ud:3->4[+8] Fseq[v2] => <l:$1c6 {1c6}, c:$1c7 {1c7}>
fieldHnd $182 is {Hnd const: 0x00007FF861255D30}
fieldSeq $203 is {v2}
N002 [000264] addr => $246 {PtrToLoc($43, $203, $40)}
N003 [000266] const 0 Fseq[val] => $80 {LngCns: 0}
fieldHnd $181 is {Hnd const: 0x00007FF861255B60}
fieldSeq $201 is {val}
fieldSeq $204 is {(v2, val)}
N004 [000267] + => $247 {PtrToLoc($43, $204, $40)}
N006 [000269] lclVar V20 tmp12 u:3 (last use) => $81 {LngCns: 10}
fieldHnd $182 is {Hnd const: 0x00007FF861255D30}
fieldHnd $181 is {Hnd const: 0x00007FF861255B60}
fieldSeq $201 is {val}
fieldSeq $204 is {(v2, val)}
AX2: $182 != $180 ==> select([$2c2]store($1, $180, $281), $182) ==> select($1, $182).
VNForMapSelect($2c2, $182):struct returns $VN.ZeroMap
fieldHnd $181 is {Hnd const: 0x00007FF861255B60}
fieldSeq $201 is {val}
VNForMapStore($1, $181, $81):long returns $280 {$VN.ZeroMap[$181 := $81]}
VNForMapStore($2c2, $182, $280):struct returns $2c3 {$2c2[$182 := $280]}
fieldHnd $182 is {Hnd const: 0x00007FF861255D30}
fieldHnd $181 is {Hnd const: 0x00007FF861255B60}
fieldSeq $201 is {val}
fieldSeq $204 is {(v2, val)}
AX2: $182 != $180 ==> select([$2c2]store($1, $180, $281), $182) ==> select($1, $182).
VNForMapSelect($2c2, $182):struct returns $VN.ZeroMap
fieldHnd $181 is {Hnd const: 0x00007FF861255B60}
fieldSeq $201 is {val}
VNForMapStore($1, $181, $81):long returns $280 {$VN.ZeroMap[$181 := $81]}
VNForMapStore($2c2, $182, $280):struct returns $2c3 {$2c2[$182 := $280]}
Tree [000270] assigned VN to local var V03/4: VN $2c3 {$2c2[$182 := $280]}
N007 [000270] = => $VN.Void
***** BB01, stmt 10 (after)
N006 ( 3, 2) [000269] -------N---- /--* lclVar long V20 tmp12 u:3 (last use) $81
N007 ( 10, 10) [000270] -A--G------- * = long $VN.Void
N005 ( 6, 7) [000268] *---G--N---- \--* indir long $81
N003 ( 1, 1) [000266] ------------ | /--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000267] ----G--N---- \--* + byref $247
N002 ( 3, 5) [000264] ----G------- \--* addr byref $246
N001 ( 3, 4) [000265] U------N---- \--* lclFld struct V03 loc3 ud:3->4[+8] Fseq[v2] <l:$1c6, c:$1c7>
---------
***** BB01, stmt 11 (before)
N012 ( 29, 18) [000040] --CXG------- /--* call int Program.IsXGeater
N006 ( 1, 1) [000273] ------------ | | /--* const int 16
N007 ( 9, 9) [000274] -A--G-----L- arg0 SETUP | +--* copyBlk void
N002 ( 3, 3) [000041] L----------- | | | /--* addr byref
N001 ( 3, 2) [000039] -------N---- | | | | \--* lclVar struct V02 loc2 u:4
N005 ( 7, 7) [000275] --------R--- | | \--* <list> void
N004 ( 3, 3) [000272] L----------- | | \--* addr byref
N003 ( 3, 2) [000271] D------N---- | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000277] L----------- arg0 in rcx | \--* addr long
N009 ( 3, 2) [000276] -------N---- | \--* lclVar struct(AX) V21 tmp13
N014 ( 33, 21) [000045] -ACXG---R--- * = int
N013 ( 3, 2) [000044] D------N---- \--* lclVar int V04 loc4 d:3
N001 [000039] lclVar V02 loc2 u:4 => $2c1 {$2c0[$182 := $281]}
N002 [000041] addr => $248 {PtrToLoc($42, $0, $40)}
N004 [000272] addr => $300 {300}
N005 [000275] <list> => $340 {<list>($300, $248)}
N006 [000273] const 16 => $44 {IntCns 16}
N007 [000274] copyBlk => $VN.Void
N008 [000043] <list> => $341 {<list>($4, $0)}
N009 [000276] lclVar V21 tmp13 => $1c8 {1c8}
N010 [000277] addr => $301 {301}
N011 [000278] <list> => $342 {<list>($301, $0)}
fgCurHeapVN assigned by CALL at [000040] to new unique VN: $205.
N012 [000040] call => $380 {380}
N013 [000044] lclVar V04 loc4 d:3 => $380 {380}
N014 [000045] = => $380 {380}
***** BB01, stmt 11 (after)
N012 ( 29, 18) [000040] --CXG------- /--* call int Program.IsXGeater $380
N006 ( 1, 1) [000273] ------------ | | /--* const int 16 $44
N007 ( 9, 9) [000274] -A--G-----L- arg0 SETUP | +--* copyBlk void $VN.Void
N002 ( 3, 3) [000041] L----------- | | | /--* addr byref $248
N001 ( 3, 2) [000039] -------N---- | | | | \--* lclVar struct V02 loc2 u:4 $2c1
N005 ( 7, 7) [000275] --------R--- | | \--* <list> void $340
N004 ( 3, 3) [000272] L----------- | | \--* addr byref $300
N003 ( 3, 2) [000271] D------N---- | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000277] L----------- arg0 in rcx | \--* addr long $301
N009 ( 3, 2) [000276] -------N---- | \--* lclVar struct(AX) V21 tmp13 $1c8
N014 ( 33, 21) [000045] -ACXG---R--- * = int $380
N013 ( 3, 2) [000044] D------N---- \--* lclVar int V04 loc4 d:3 $380
---------
***** BB01, stmt 12 (before)
N012 ( 29, 18) [000048] --CXG------- /--* call int Program.IsXGeater
N006 ( 1, 1) [000281] ------------ | | /--* const int 16
N007 ( 9, 9) [000282] -A--G-----L- arg0 SETUP | +--* copyBlk void
N002 ( 3, 3) [000049] L----------- | | | /--* addr byref
N001 ( 3, 2) [000047] -------N---- | | | | \--* lclVar struct V03 loc3 u:4
N005 ( 7, 7) [000283] --------R--- | | \--* <list> void
N004 ( 3, 3) [000280] L----------- | | \--* addr byref
N003 ( 3, 2) [000279] D------N---- | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000285] L----------- arg0 in rcx | \--* addr long
N009 ( 3, 2) [000284] -------N---- | \--* lclVar struct(AX) V21 tmp13
N014 ( 33, 21) [000053] -ACXG---R--- * = int
N013 ( 3, 2) [000052] D------N---- \--* lclVar int V05 loc5 d:3
N001 [000047] lclVar V03 loc3 u:4 => $2c3 {$2c2[$182 := $280]}
N002 [000049] addr => $249 {PtrToLoc($43, $0, $40)}
N004 [000280] addr => $302 {302}
N005 [000283] <list> => $343 {<list>($302, $249)}
N006 [000281] const 16 => $44 {IntCns 16}
N007 [000282] copyBlk => $VN.Void
N008 [000051] <list> => $341 {<list>($4, $0)}
N009 [000284] lclVar V21 tmp13 => $1c9 {1c9}
N010 [000285] addr => $303 {303}
N011 [000286] <list> => $344 {<list>($303, $0)}
fgCurHeapVN assigned by CALL at [000048] to new unique VN: $206.
N012 [000048] call => $382 {382}
N013 [000052] lclVar V05 loc5 d:3 => $382 {382}
N014 [000053] = => $382 {382}
***** BB01, stmt 12 (after)
N012 ( 29, 18) [000048] --CXG------- /--* call int Program.IsXGeater $382
N006 ( 1, 1) [000281] ------------ | | /--* const int 16 $44
N007 ( 9, 9) [000282] -A--G-----L- arg0 SETUP | +--* copyBlk void $VN.Void
N002 ( 3, 3) [000049] L----------- | | | /--* addr byref $249
N001 ( 3, 2) [000047] -------N---- | | | | \--* lclVar struct V03 loc3 u:4 $2c3
N005 ( 7, 7) [000283] --------R--- | | \--* <list> void $343
N004 ( 3, 3) [000280] L----------- | | \--* addr byref $302
N003 ( 3, 2) [000279] D------N---- | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000285] L----------- arg0 in rcx | \--* addr long $303
N009 ( 3, 2) [000284] -------N---- | \--* lclVar struct(AX) V21 tmp13 $1c9
N014 ( 33, 21) [000053] -ACXG---R--- * = int $382
N013 ( 3, 2) [000052] D------N---- \--* lclVar int V05 loc5 d:3 $382
---------
***** BB01, stmt 13 (before)
N012 ( 29, 18) [000056] --CXG------- /--* call int Program.IsXGeater
N006 ( 1, 1) [000289] ------------ | | /--* const int 16
N007 ( 9, 9) [000290] -A--G-----L- arg0 SETUP | +--* copyBlk void
N002 ( 3, 3) [000057] L----------- | | | /--* addr byref
N001 ( 3, 2) [000055] -------N---- | | | | \--* lclVar struct V02 loc2 u:4 (last use)
N005 ( 7, 7) [000291] --------R--- | | \--* <list> void
N004 ( 3, 3) [000288] L----------- | | \--* addr byref
N003 ( 3, 2) [000287] D------N---- | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000293] L----------- arg0 in rcx | \--* addr long
N009 ( 3, 2) [000292] -------N---- | \--* lclVar struct(AX) V21 tmp13
N014 ( 33, 21) [000061] -ACXG---R--- * = int
N013 ( 3, 2) [000060] D------N---- \--* lclVar int V06 loc6 d:3
N001 [000055] lclVar V02 loc2 u:4 (last use) => $2c1 {$2c0[$182 := $281]}
N002 [000057] addr => $248 {PtrToLoc($42, $0, $40)}
N004 [000288] addr => $304 {304}
N005 [000291] <list> => $345 {<list>($304, $248)}
N006 [000289] const 16 => $44 {IntCns 16}
N007 [000290] copyBlk => $VN.Void
N008 [000059] <list> => $341 {<list>($4, $0)}
N009 [000292] lclVar V21 tmp13 => $1ca {1ca}
N010 [000293] addr => $305 {305}
N011 [000294] <list> => $346 {<list>($305, $0)}
fgCurHeapVN assigned by CALL at [000056] to new unique VN: $207.
N012 [000056] call => $384 {384}
N013 [000060] lclVar V06 loc6 d:3 => $384 {384}
N014 [000061] = => $384 {384}
***** BB01, stmt 13 (after)
N012 ( 29, 18) [000056] --CXG------- /--* call int Program.IsXGeater $384
N006 ( 1, 1) [000289] ------------ | | /--* const int 16 $44
N007 ( 9, 9) [000290] -A--G-----L- arg0 SETUP | +--* copyBlk void $VN.Void
N002 ( 3, 3) [000057] L----------- | | | /--* addr byref $248
N001 ( 3, 2) [000055] -------N---- | | | | \--* lclVar struct V02 loc2 u:4 (last use) $2c1
N005 ( 7, 7) [000291] --------R--- | | \--* <list> void $345
N004 ( 3, 3) [000288] L----------- | | \--* addr byref $304
N003 ( 3, 2) [000287] D------N---- | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000293] L----------- arg0 in rcx | \--* addr long $305
N009 ( 3, 2) [000292] -------N---- | \--* lclVar struct(AX) V21 tmp13 $1ca
N014 ( 33, 21) [000061] -ACXG---R--- * = int $384
N013 ( 3, 2) [000060] D------N---- \--* lclVar int V06 loc6 d:3 $384
---------
***** BB01, stmt 14 (before)
N012 ( 29, 18) [000064] --CXG------- /--* call int Program.IsXGeater
N006 ( 1, 1) [000297] ------------ | | /--* const int 16
N007 ( 9, 9) [000298] -A--G-----L- arg0 SETUP | +--* copyBlk void
N002 ( 3, 3) [000065] L----------- | | | /--* addr byref
N001 ( 3, 2) [000063] -------N---- | | | | \--* lclVar struct V03 loc3 u:4 (last use)
N005 ( 7, 7) [000299] --------R--- | | \--* <list> void
N004 ( 3, 3) [000296] L----------- | | \--* addr byref
N003 ( 3, 2) [000295] D------N---- | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000301] L----------- arg0 in rcx | \--* addr long
N009 ( 3, 2) [000300] -------N---- | \--* lclVar struct(AX) V21 tmp13
N014 ( 33, 21) [000069] -ACXG---R--- * = int
N013 ( 3, 2) [000068] D------N---- \--* lclVar int V07 loc7 d:3
N001 [000063] lclVar V03 loc3 u:4 (last use) => $2c3 {$2c2[$182 := $280]}
N002 [000065] addr => $249 {PtrToLoc($43, $0, $40)}
N004 [000296] addr => $306 {306}
N005 [000299] <list> => $347 {<list>($306, $249)}
N006 [000297] const 16 => $44 {IntCns 16}
N007 [000298] copyBlk => $VN.Void
N008 [000067] <list> => $341 {<list>($4, $0)}
N009 [000300] lclVar V21 tmp13 => $1cb {1cb}
N010 [000301] addr => $307 {307}
N011 [000302] <list> => $348 {<list>($307, $0)}
fgCurHeapVN assigned by CALL at [000064] to new unique VN: $208.
N012 [000064] call => $386 {386}
N013 [000068] lclVar V07 loc7 d:3 => $386 {386}
N014 [000069] = => $386 {386}
***** BB01, stmt 14 (after)
N012 ( 29, 18) [000064] --CXG------- /--* call int Program.IsXGeater $386
N006 ( 1, 1) [000297] ------------ | | /--* const int 16 $44
N007 ( 9, 9) [000298] -A--G-----L- arg0 SETUP | +--* copyBlk void $VN.Void
N002 ( 3, 3) [000065] L----------- | | | /--* addr byref $249
N001 ( 3, 2) [000063] -------N---- | | | | \--* lclVar struct V03 loc3 u:4 (last use) $2c3
N005 ( 7, 7) [000299] --------R--- | | \--* <list> void $347
N004 ( 3, 3) [000296] L----------- | | \--* addr byref $306
N003 ( 3, 2) [000295] D------N---- | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000301] L----------- arg0 in rcx | \--* addr long $307
N009 ( 3, 2) [000300] -------N---- | \--* lclVar struct(AX) V21 tmp13 $1cb
N014 ( 33, 21) [000069] -ACXG---R--- * = int $386
N013 ( 3, 2) [000068] D------N---- \--* lclVar int V07 loc7 d:3 $386
---------
***** BB01, stmt 15 (before)
N004 ( 7, 6) [000074] ------------ * jmpTrue void
N002 ( 1, 1) [000072] ------------ | /--* const int 0
N003 ( 5, 4) [000073] J------N---- \--* == int
N001 ( 3, 2) [000071] ------------ \--* lclVar int V04 loc4 u:3 (last use)
N001 [000071] lclVar V04 loc4 u:3 (last use) => $380 {380}
N002 [000072] const 0 => $40 {IntCns 0}
N003 [000073] == => $400 {==($380, $40)}
***** BB01, stmt 15 (after)
N004 ( 7, 6) [000074] ------------ * jmpTrue void
N002 ( 1, 1) [000072] ------------ | /--* const int 0 $40
N003 ( 5, 4) [000073] J------N---- \--* == int $400
N001 ( 3, 2) [000071] ------------ \--* lclVar int V04 loc4 u:3 (last use) $380
finish(BB01).
Succ(BB02).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB03).
Not yet completed.
All preds complete, adding to allDone.
The SSA definition for heap (#3) at start of BB03 is $208 {PhiHeapDef($183, $3c3)}
***** BB03, stmt 18 (before)
N004 ( 7, 6) [000080] ------------ * jmpTrue void
N002 ( 1, 1) [000078] ------------ | /--* const int 0
N003 ( 5, 4) [000079] J------N---- \--* != int
N001 ( 3, 2) [000077] ------------ \--* lclVar int V05 loc5 u:3 (last use)
N001 [000077] lclVar V05 loc5 u:3 (last use) => $382 {382}
N002 [000078] const 0 => $40 {IntCns 0}
N003 [000079] != => $401 {!=($382, $40)}
***** BB03, stmt 18 (after)
N004 ( 7, 6) [000080] ------------ * jmpTrue void
N002 ( 1, 1) [000078] ------------ | /--* const int 0 $40
N003 ( 5, 4) [000079] J------N---- \--* != int $401
N001 ( 3, 2) [000077] ------------ \--* lclVar int V05 loc5 u:3 (last use) $382
finish(BB03).
Succ(BB04).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB05).
Not yet completed.
All preds complete, adding to allDone.
The SSA definition for heap (#3) at start of BB05 is $208 {PhiHeapDef($183, $3c3)}
***** BB05, stmt 21 (before)
N004 ( 7, 6) [000086] ------------ * jmpTrue void
N002 ( 1, 1) [000084] ------------ | /--* const int 0
N003 ( 5, 4) [000085] J------N---- \--* == int
N001 ( 3, 2) [000083] ------------ \--* lclVar int V06 loc6 u:3 (last use)
N001 [000083] lclVar V06 loc6 u:3 (last use) => $384 {384}
N002 [000084] const 0 => $40 {IntCns 0}
N003 [000085] == => $402 {==($384, $40)}
***** BB05, stmt 21 (after)
N004 ( 7, 6) [000086] ------------ * jmpTrue void
N002 ( 1, 1) [000084] ------------ | /--* const int 0 $40
N003 ( 5, 4) [000085] J------N---- \--* == int $402
N001 ( 3, 2) [000083] ------------ \--* lclVar int V06 loc6 u:3 (last use) $384
finish(BB05).
Succ(BB06).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB07).
Not yet completed.
All preds complete, adding to allDone.
The SSA definition for heap (#3) at start of BB07 is $208 {PhiHeapDef($183, $3c3)}
***** BB07, stmt 24 (before)
N004 ( 7, 6) [000092] ------------ * jmpTrue void
N002 ( 1, 1) [000090] ------------ | /--* const int 0
N003 ( 5, 4) [000091] J------N---- \--* != int
N001 ( 3, 2) [000089] ------------ \--* lclVar int V07 loc7 u:3 (last use)
N001 [000089] lclVar V07 loc7 u:3 (last use) => $386 {386}
N002 [000090] const 0 => $40 {IntCns 0}
N003 [000091] != => $403 {!=($386, $40)}
***** BB07, stmt 24 (after)
N004 ( 7, 6) [000092] ------------ * jmpTrue void
N002 ( 1, 1) [000090] ------------ | /--* const int 0 $40
N003 ( 5, 4) [000091] J------N---- \--* != int $403
N001 ( 3, 2) [000089] ------------ \--* lclVar int V07 loc7 u:3 (last use) $386
finish(BB07).
Succ(BB08).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB09).
Not yet completed.
All preds complete, adding to allDone.
The SSA definition for heap (#3) at start of BB09 is $208 {PhiHeapDef($183, $3c3)}
***** BB09, stmt 27 (before)
N006 ( 19, 18) [000096] --C-G------- * call void System.Console.WriteLine
N004 ( 5, 12) [000328] ----G------- arg0 in rcx \--* indir ref
N003 ( 3, 10) [000327] ------------ \--* const(h) long 0xD6273070 "Pass"
N001 [000329] argPlace => $3c4 {3c4}
N002 [000097] <list> => $349 {<list>($3c4, $0)}
N003 [000327] const(h) 0xD6273070 "Pass" => $184 {Hnd const: 0x0000026AD6273070}
N004 [000328] indir => $3c5 {3c5}
N005 [000330] <list> => $34a {<list>($3c5, $0)}
VN of ARGPLACE tree [000329] updated to $3c5 {3c5}
N002 [000097] <list> => $34a {<list>($3c5, $0)}
fgCurHeapVN assigned by CALL at [000096] to new unique VN: $209.
N006 [000096] call => $VN.Void
***** BB09, stmt 27 (after)
N006 ( 19, 18) [000096] --C-G------- * call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000328] ----G------- arg0 in rcx \--* indir ref $3c5
N003 ( 3, 10) [000327] ------------ \--* const(h) long 0xD6273070 "Pass" $184
---------
***** BB09, stmt 28 (before)
N001 ( 1, 1) [000099] ------------ /--* const int 100
N003 ( 1, 3) [000332] -A-----NR--- * = int
N002 ( 1, 1) [000331] D------N---- \--* lclVar int V08 tmp0 d:4
N001 [000099] const 100 => $45 {IntCns 100}
N002 [000331] lclVar V08 tmp0 d:4 => $45 {IntCns 100}
N003 [000332] = => $45 {IntCns 100}
***** BB09, stmt 28 (after)
N001 ( 1, 1) [000099] ------------ /--* const int 100 $45
N003 ( 1, 3) [000332] -A-----NR--- * = int $45
N002 ( 1, 1) [000331] D------N---- \--* lclVar int V08 tmp0 d:4 $45
finish(BB09).
Succ(BB10).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Was necessary.
The SSA definition for heap (#3) at start of BB08 is $208 {PhiHeapDef($183, $3c3)}
***** BB08, stmt 25 (before)
N006 ( 19, 18) [000104] --C-G------- * call void System.Console.WriteLine
N004 ( 5, 12) [000322] ----G------- arg0 in rcx \--* indir ref
N003 ( 3, 10) [000321] ------------ \--* const(h) long 0xD6273068 "Fail"
N001 [000323] argPlace => $3c7 {3c7}
N002 [000105] <list> => $34b {<list>($3c7, $0)}
N003 [000321] const(h) 0xD6273068 "Fail" => $186 {Hnd const: 0x0000026AD6273068}
N004 [000322] indir => $3c8 {3c8}
N005 [000324] <list> => $34c {<list>($3c8, $0)}
VN of ARGPLACE tree [000323] updated to $3c8 {3c8}
N002 [000105] <list> => $34c {<list>($3c8, $0)}
fgCurHeapVN assigned by CALL at [000104] to new unique VN: $20a.
N006 [000104] call => $VN.Void
***** BB08, stmt 25 (after)
N006 ( 19, 18) [000104] --C-G------- * call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000322] ----G------- arg0 in rcx \--* indir ref $3c8
N003 ( 3, 10) [000321] ------------ \--* const(h) long 0xD6273068 "Fail" $186
---------
***** BB08, stmt 26 (before)
N001 ( 1, 1) [000107] ------------ /--* const int -1
N003 ( 1, 3) [000326] -A-----NR--- * = int
N002 ( 1, 1) [000325] D------N---- \--* lclVar int V08 tmp0 d:3
N001 [000107] const -1 => $41 {IntCns -1}
N002 [000325] lclVar V08 tmp0 d:3 => $41 {IntCns -1}
N003 [000326] = => $41 {IntCns -1}
***** BB08, stmt 26 (after)
N001 ( 1, 1) [000107] ------------ /--* const int -1 $41
N003 ( 1, 3) [000326] -A-----NR--- * = int $41
N002 ( 1, 1) [000325] D------N---- \--* lclVar int V08 tmp0 d:3 $41
finish(BB08).
Succ(BB10).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
The SSA definition for heap (#3) at start of BB06 is $208 {PhiHeapDef($183, $3c3)}
***** BB06, stmt 22 (before)
N006 ( 19, 18) [000112] --C-G------- * call void System.Console.WriteLine
N004 ( 5, 12) [000316] ----G------- arg0 in rcx \--* indir ref
N003 ( 3, 10) [000315] ------------ \--* const(h) long 0xD6273068 "Fail"
N001 [000317] argPlace => $3ca {3ca}
N002 [000113] <list> => $34d {<list>($3ca, $0)}
N003 [000315] const(h) 0xD6273068 "Fail" => $186 {Hnd const: 0x0000026AD6273068}
N004 [000316] indir => $3cb {3cb}
N005 [000318] <list> => $34e {<list>($3cb, $0)}
VN of ARGPLACE tree [000317] updated to $3cb {3cb}
N002 [000113] <list> => $34e {<list>($3cb, $0)}
fgCurHeapVN assigned by CALL at [000112] to new unique VN: $20b.
N006 [000112] call => $VN.Void
***** BB06, stmt 22 (after)
N006 ( 19, 18) [000112] --C-G------- * call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000316] ----G------- arg0 in rcx \--* indir ref $3cb
N003 ( 3, 10) [000315] ------------ \--* const(h) long 0xD6273068 "Fail" $186
---------
***** BB06, stmt 23 (before)
N001 ( 1, 1) [000115] ------------ /--* const int -1
N003 ( 1, 3) [000320] -A-----NR--- * = int
N002 ( 1, 1) [000319] D------N---- \--* lclVar int V08 tmp0 d:5
N001 [000115] const -1 => $41 {IntCns -1}
N002 [000319] lclVar V08 tmp0 d:5 => $41 {IntCns -1}
N003 [000320] = => $41 {IntCns -1}
***** BB06, stmt 23 (after)
N001 ( 1, 1) [000115] ------------ /--* const int -1 $41
N003 ( 1, 3) [000320] -A-----NR--- * = int $41
N002 ( 1, 1) [000319] D------N---- \--* lclVar int V08 tmp0 d:5 $41
finish(BB06).
Succ(BB10).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
The SSA definition for heap (#3) at start of BB04 is $208 {PhiHeapDef($183, $3c3)}
***** BB04, stmt 19 (before)
N006 ( 19, 18) [000120] --C-G------- * call void System.Console.WriteLine
N004 ( 5, 12) [000310] ----G------- arg0 in rcx \--* indir ref
N003 ( 3, 10) [000309] ------------ \--* const(h) long 0xD6273068 "Fail"
N001 [000311] argPlace => $3cd {3cd}
N002 [000121] <list> => $34f {<list>($3cd, $0)}
N003 [000309] const(h) 0xD6273068 "Fail" => $186 {Hnd const: 0x0000026AD6273068}
N004 [000310] indir => $3ce {3ce}
N005 [000312] <list> => $350 {<list>($3ce, $0)}
VN of ARGPLACE tree [000311] updated to $3ce {3ce}
N002 [000121] <list> => $350 {<list>($3ce, $0)}
fgCurHeapVN assigned by CALL at [000120] to new unique VN: $20c.
N006 [000120] call => $VN.Void
***** BB04, stmt 19 (after)
N006 ( 19, 18) [000120] --C-G------- * call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000310] ----G------- arg0 in rcx \--* indir ref $3ce
N003 ( 3, 10) [000309] ------------ \--* const(h) long 0xD6273068 "Fail" $186
---------
***** BB04, stmt 20 (before)
N001 ( 1, 1) [000123] ------------ /--* const int -1
N003 ( 1, 3) [000314] -A-----NR--- * = int
N002 ( 1, 1) [000313] D------N---- \--* lclVar int V08 tmp0 d:6
N001 [000123] const -1 => $41 {IntCns -1}
N002 [000313] lclVar V08 tmp0 d:6 => $41 {IntCns -1}
N003 [000314] = => $41 {IntCns -1}
***** BB04, stmt 20 (after)
N001 ( 1, 1) [000123] ------------ /--* const int -1 $41
N003 ( 1, 3) [000314] -A-----NR--- * = int $41
N002 ( 1, 1) [000313] D------N---- \--* lclVar int V08 tmp0 d:6 $41
finish(BB04).
Succ(BB10).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
The SSA definition for heap (#3) at start of BB02 is $208 {PhiHeapDef($183, $3c3)}
***** BB02, stmt 16 (before)
N006 ( 19, 18) [000128] --C-G------- * call void System.Console.WriteLine
N004 ( 5, 12) [000304] ----G------- arg0 in rcx \--* indir ref
N003 ( 3, 10) [000303] ------------ \--* const(h) long 0xD6273068 "Fail"
N001 [000305] argPlace => $3d0 {3d0}
N002 [000129] <list> => $351 {<list>($3d0, $0)}
N003 [000303] const(h) 0xD6273068 "Fail" => $186 {Hnd const: 0x0000026AD6273068}
N004 [000304] indir => $3d1 {3d1}
N005 [000306] <list> => $352 {<list>($3d1, $0)}
VN of ARGPLACE tree [000305] updated to $3d1 {3d1}
N002 [000129] <list> => $352 {<list>($3d1, $0)}
fgCurHeapVN assigned by CALL at [000128] to new unique VN: $20d.
N006 [000128] call => $VN.Void
***** BB02, stmt 16 (after)
N006 ( 19, 18) [000128] --C-G------- * call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000304] ----G------- arg0 in rcx \--* indir ref $3d1
N003 ( 3, 10) [000303] ------------ \--* const(h) long 0xD6273068 "Fail" $186
---------
***** BB02, stmt 17 (before)
N001 ( 1, 1) [000131] ------------ /--* const int -1
N003 ( 1, 3) [000308] -A-----NR--- * = int
N002 ( 1, 1) [000307] D------N---- \--* lclVar int V08 tmp0 d:7
N001 [000131] const -1 => $41 {IntCns -1}
N002 [000307] lclVar V08 tmp0 d:7 => $41 {IntCns -1}
N003 [000308] = => $41 {IntCns -1}
***** BB02, stmt 17 (after)
N001 ( 1, 1) [000131] ------------ /--* const int -1 $41
N003 ( 1, 3) [000308] -A-----NR--- * = int $41
N002 ( 1, 1) [000307] D------N---- \--* lclVar int V08 tmp0 d:7 $41
finish(BB02).
Succ(BB10).
Not yet completed.
All preds complete, adding to allDone.
SSA definition: set VN of local 8/8 to $440 {PhiDef($8, $8, $407)}.
The SSA definition for heap (#3) at start of BB10 is $208 {PhiHeapDef($183, $3c3)}
***** BB10, stmt 29 (before)
N002 ( 2, 2) [000135] ------------ * return int
N001 ( 1, 1) [000134] -------N---- \--* lclVar int V08 tmp0 u:8 (last use)
N001 [000134] lclVar V08 tmp0 u:8 (last use) => $440 {PhiDef($8, $8, $407)}
N002 [000135] return => $38d {38d}
***** BB10, stmt 29 (after)
N002 ( 2, 2) [000135] ------------ * return int $38d
N001 ( 1, 1) [000134] -------N---- \--* lclVar int V08 tmp0 u:8 (last use) $440
finish(BB10).
*************** In optVnCopyProp()
*************** In SsaBuilder::ComputeDominators(Compiler*, ...)
Copy Assertion for BB01
Live vars: {V02 V03} => {V02 V03 V15}
Live vars: {V02 V03 V15} => {V02 V03 V15 V16}
Live vars: {V02 V03 V15 V16} => {V02 V03 V15 V16 V17}
Live vars: {V02 V03 V15 V16 V17} => {V02 V03 V15 V16 V17 V18}
Live vars: {V02 V03 V15 V16 V17 V18} => {V02 V03 V15 V16 V18}
VN based copy assertion for [000235] V17 @00000081 by [000141] V15 @00000081.
N006 ( 3, 2) [000235] -------N---- * lclVar long V17 tmp9 u:3 (last use) $81
New refCnts for V17: refCnt = 1, refCntWtd = 1
New refCnts for V15: refCnt = 4, refCntWtd = 4
copy propagated to:
N006 ( 3, 2) [000235] -------N---- * lclVar long V15 tmp7 u:3 (last use) $81
Live vars: {V02 V03 V15 V16 V18} => {V02 V03 V15 V16}
VN based copy assertion for [000245] V18 @00000082 by [000149] V16 @00000082.
N006 ( 3, 2) [000245] -------N---- * lclVar long V18 tmp10 u:3 (last use) $82
New refCnts for V18: refCnt = 1, refCntWtd = 1
New refCnts for V16: refCnt = 4, refCntWtd = 4
copy propagated to:
N006 ( 3, 2) [000245] -------N---- * lclVar long V16 tmp8 u:3 (last use) $82
Live vars: {V02 V03 V15 V16} => {V02 V03 V15}
Live vars: {V02 V03 V15} => {V02 V03 V15 V19}
Live vars: {V02 V03 V15 V19} => {V02 V03 V19}
Live vars: {V02 V03 V19} => {V02 V03 V19 V20}
Live vars: {V02 V03 V19 V20} => {V02 V03 V20}
Live vars: {V02 V03 V20} => {V02 V03}
Live vars: {V02 V03} => {V02 V03 V04}
Live vars: {V02 V03 V04} => {V02 V03 V04 V05}
Live vars: {V02 V03 V04 V05} => {V03 V04 V05}
Live vars: {V03 V04 V05} => {V03 V04 V05 V06}
Live vars: {V03 V04 V05 V06} => {V04 V05 V06}
Live vars: {V04 V05 V06} => {V04 V05 V06 V07}
Live vars: {V04 V05 V06 V07} => {V05 V06 V07}
Copy Assertion for BB03
Live vars: {V05 V06 V07} => {V06 V07}
Copy Assertion for BB05
Live vars: {V06 V07} => {V07}
Copy Assertion for BB07
Live vars: {V07} => {}
Copy Assertion for BB08
Live vars: {} => {V08}
Copy Assertion for BB09
Live vars: {} => {V08}
Copy Assertion for BB06
Live vars: {} => {V08}
Copy Assertion for BB04
Live vars: {} => {V08}
Copy Assertion for BB02
Live vars: {} => {V08}
Copy Assertion for BB10
Live vars: {V08} => {}
*************** In optOptimizeCSEs()
Blocks/Trees at start of optOptimizeCSE phase
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 0.5 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 0.5 [056..05A)-> BB05 ( cond ) i label target gcsafe
BB04 [0000026AC4437578] 1 BB03 0.5 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 0.5 [066..06A)-> BB07 ( cond ) i label target gcsafe
BB06 [0000026AC4437788] 1 BB05 0.5 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 0.5 [076..07A)-> BB09 ( cond ) i label target gcsafe
BB08 [0000026AC4437998] 1 BB07 0.5 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 0.5 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target gcsafe
-------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..04A) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1 (top level)
( 1, 3) [000143] ------------ * stmtExpr void (top level) (IL 0x000... ???)
N001 ( 1, 1) [000004] ------------ | /--* const long 10 $81
N003 ( 1, 3) [000142] -A--G---R--- \--* = long $81
N002 ( 1, 1) [000141] D------N---- \--* lclVar long V15 tmp7 d:3 $81
***** BB01, stmt 2 (top level)
( 1, 3) [000151] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
N001 ( 1, 1) [000011] ------------ | /--* const long 20 $82
N003 ( 1, 3) [000150] -A--G---R--- \--* = long $82
N002 ( 1, 1) [000149] D------N---- \--* lclVar long V16 tmp8 d:3 $82
***** BB01, stmt 3 (top level)
( 5, 4) [000179] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000224] -------N---- | /--* lclVar long V15 tmp7 u:3 $81
N003 ( 5, 4) [000225] -A------R--- \--* = long $81
N002 ( 3, 2) [000223] D------N---- \--* lclVar long V17 tmp9 d:3 $81
***** BB01, stmt 4 (top level)
( 5, 4) [000185] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000227] -------N---- | /--* lclVar long V16 tmp8 u:3 $82
N003 ( 5, 4) [000228] -A------R--- \--* = long $82
N002 ( 3, 2) [000226] D------N---- \--* lclVar long V18 tmp10 d:3 $82
***** BB01, stmt 5 (top level)
( 10, 10) [000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N006 ( 3, 2) [000235] -------N---- | /--* lclVar long V15 tmp7 u:3 (last use) $81
N007 ( 10, 10) [000236] -A--G------- \--* = long $VN.Void
N005 ( 6, 7) [000234] *---G--N---- \--* indir long $81
N003 ( 1, 1) [000232] ------------ | /--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000233] ----G--N---- \--* + byref $241
N002 ( 3, 5) [000230] ----G------- \--* addr byref $240
N001 ( 3, 4) [000231] U------N---- \--* lclFld struct V02 loc2 ud:2->3[+0] Fseq[v1] <l:$1c0, c:$1c1>
***** BB01, stmt 6 (top level)
( 10, 10) [000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N006 ( 3, 2) [000245] -------N---- | /--* lclVar long V16 tmp8 u:3 (last use) $82
N007 ( 10, 10) [000246] -A--G------- \--* = long $VN.Void
N005 ( 6, 7) [000244] *---G--N---- \--* indir long $82
N003 ( 1, 1) [000242] ------------ | /--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000243] ----G--N---- \--* + byref $243
N002 ( 3, 5) [000240] ----G------- \--* addr byref $242
N001 ( 3, 4) [000241] U------N---- \--* lclFld struct V02 loc2 ud:3->4[+8] Fseq[v2] <l:$1c2, c:$1c3>
***** BB01, stmt 7 (top level)
( 5, 4) [000213] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000248] -------N---- | /--* lclVar long V16 tmp8 u:3 (last use) $82
N003 ( 5, 4) [000249] -A------R--- \--* = long $82
N002 ( 3, 2) [000247] D------N---- \--* lclVar long V19 tmp11 d:3 $82
***** BB01, stmt 8 (top level)
( 5, 4) [000219] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000251] -------N---- | /--* lclVar long V15 tmp7 u:3 (last use) $81
N003 ( 5, 4) [000252] -A------R--- \--* = long $81
N002 ( 3, 2) [000250] D------N---- \--* lclVar long V20 tmp12 d:3 $81
***** BB01, stmt 9 (top level)
( 10, 10) [000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N006 ( 3, 2) [000259] -------N---- | /--* lclVar long V19 tmp11 u:3 (last use) $82
N007 ( 10, 10) [000260] -A--G------- \--* = long $VN.Void
N005 ( 6, 7) [000258] *---G--N---- \--* indir long $82
N003 ( 1, 1) [000256] ------------ | /--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000257] ----G--N---- \--* + byref $245
N002 ( 3, 5) [000254] ----G------- \--* addr byref $244
N001 ( 3, 4) [000255] U------N---- \--* lclFld struct V03 loc3 ud:2->3[+0] Fseq[v1] <l:$1c4, c:$1c5>
***** BB01, stmt 10 (top level)
( 10, 10) [000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N006 ( 3, 2) [000269] -------N---- | /--* lclVar long V20 tmp12 u:3 (last use) $81
N007 ( 10, 10) [000270] -A--G------- \--* = long $VN.Void
N005 ( 6, 7) [000268] *---G--N---- \--* indir long $81
N003 ( 1, 1) [000266] ------------ | /--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000267] ----G--N---- \--* + byref $247
N002 ( 3, 5) [000264] ----G------- \--* addr byref $246
N001 ( 3, 4) [000265] U------N---- \--* lclFld struct V03 loc3 ud:3->4[+8] Fseq[v2] <l:$1c6, c:$1c7>
***** BB01, stmt 11 (top level)
( 33, 21) [000046] ------------ * stmtExpr void (top level) (IL 0x026... ???)
N012 ( 29, 18) [000040] --CXG------- | /--* call int Program.IsXGeater $380
N006 ( 1, 1) [000273] ------------ | | | /--* const int 16 $44
N007 ( 9, 9) [000274] -A--G-----L- arg0 SETUP | | +--* copyBlk void $VN.Void
N002 ( 3, 3) [000041] L----------- | | | | /--* addr byref $248
N001 ( 3, 2) [000039] -------N---- | | | | | \--* lclVar struct V02 loc2 u:4 $2c1
N005 ( 7, 7) [000275] --------R--- | | | \--* <list> void $340
N004 ( 3, 3) [000272] L----------- | | | \--* addr byref $300
N003 ( 3, 2) [000271] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000277] L----------- arg0 in rcx | | \--* addr long $301
N009 ( 3, 2) [000276] -------N---- | | \--* lclVar struct(AX) V21 tmp13 $1c8
N014 ( 33, 21) [000045] -ACXG---R--- \--* = int $380
N013 ( 3, 2) [000044] D------N---- \--* lclVar int V04 loc4 d:3 $380
***** BB01, stmt 12 (top level)
( 33, 21) [000054] ------------ * stmtExpr void (top level) (IL 0x02E...0x034)
N012 ( 29, 18) [000048] --CXG------- | /--* call int Program.IsXGeater $382
N006 ( 1, 1) [000281] ------------ | | | /--* const int 16 $44
N007 ( 9, 9) [000282] -A--G-----L- arg0 SETUP | | +--* copyBlk void $VN.Void
N002 ( 3, 3) [000049] L----------- | | | | /--* addr byref $249
N001 ( 3, 2) [000047] -------N---- | | | | | \--* lclVar struct V03 loc3 u:4 $2c3
N005 ( 7, 7) [000283] --------R--- | | | \--* <list> void $343
N004 ( 3, 3) [000280] L----------- | | | \--* addr byref $302
N003 ( 3, 2) [000279] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000285] L----------- arg0 in rcx | | \--* addr long $303
N009 ( 3, 2) [000284] -------N---- | | \--* lclVar struct(AX) V21 tmp13 $1c9
N014 ( 33, 21) [000053] -ACXG---R--- \--* = int $382
N013 ( 3, 2) [000052] D------N---- \--* lclVar int V05 loc5 d:3 $382
***** BB01, stmt 13 (top level)
( 33, 21) [000062] ------------ * stmtExpr void (top level) (IL 0x036...0x03C)
N012 ( 29, 18) [000056] --CXG------- | /--* call int Program.IsXGeater $384
N006 ( 1, 1) [000289] ------------ | | | /--* const int 16 $44
N007 ( 9, 9) [000290] -A--G-----L- arg0 SETUP | | +--* copyBlk void $VN.Void
N002 ( 3, 3) [000057] L----------- | | | | /--* addr byref $248
N001 ( 3, 2) [000055] -------N---- | | | | | \--* lclVar struct V02 loc2 u:4 (last use) $2c1
N005 ( 7, 7) [000291] --------R--- | | | \--* <list> void $345
N004 ( 3, 3) [000288] L----------- | | | \--* addr byref $304
N003 ( 3, 2) [000287] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000293] L----------- arg0 in rcx | | \--* addr long $305
N009 ( 3, 2) [000292] -------N---- | | \--* lclVar struct(AX) V21 tmp13 $1ca
N014 ( 33, 21) [000061] -ACXG---R--- \--* = int $384
N013 ( 3, 2) [000060] D------N---- \--* lclVar int V06 loc6 d:3 $384
***** BB01, stmt 14 (top level)
( 33, 21) [000070] ------------ * stmtExpr void (top level) (IL 0x03E...0x044)
N012 ( 29, 18) [000064] --CXG------- | /--* call int Program.IsXGeater $386
N006 ( 1, 1) [000297] ------------ | | | /--* const int 16 $44
N007 ( 9, 9) [000298] -A--G-----L- arg0 SETUP | | +--* copyBlk void $VN.Void
N002 ( 3, 3) [000065] L----------- | | | | /--* addr byref $249
N001 ( 3, 2) [000063] -------N---- | | | | | \--* lclVar struct V03 loc3 u:4 (last use) $2c3
N005 ( 7, 7) [000299] --------R--- | | | \--* <list> void $347
N004 ( 3, 3) [000296] L----------- | | | \--* addr byref $306
N003 ( 3, 2) [000295] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000301] L----------- arg0 in rcx | | \--* addr long $307
N009 ( 3, 2) [000300] -------N---- | | \--* lclVar struct(AX) V21 tmp13 $1cb
N014 ( 33, 21) [000069] -ACXG---R--- \--* = int $386
N013 ( 3, 2) [000068] D------N---- \--* lclVar int V07 loc7 d:3 $386
***** BB01, stmt 15 (top level)
( 7, 6) [000075] ------------ * stmtExpr void (top level) (IL 0x046...0x048)
N004 ( 7, 6) [000074] ------------ \--* jmpTrue void
N002 ( 1, 1) [000072] ------------ | /--* const int 0 $40
N003 ( 5, 4) [000073] J------N---- \--* == int $400
N001 ( 3, 2) [000071] ------------ \--* lclVar int V04 loc4 u:3 (last use) $380
------------ BB02 [04A..056) -> BB10 (always), preds={BB01} succs={BB10}
***** BB02, stmt 16 (top level)
( 19, 18) [000130] ------------ * stmtExpr void (top level) (IL 0x04A...0x055)
N006 ( 19, 18) [000128] --C-G------- \--* call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000304] ----G------- arg0 in rcx \--* indir ref $3d1
N003 ( 3, 10) [000303] ------------ \--* const(h) long 0xD6273068 "Fail" $186
***** BB02, stmt 17 (top level)
( 1, 3) [000133] ------------ * stmtExpr void (top level) (IL 0x054... ???)
N001 ( 1, 1) [000131] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000308] -A-----NR--- \--* = int $41
N002 ( 1, 1) [000307] D------N---- \--* lclVar int V08 tmp0 d:7 $41
------------ BB03 [056..05A) -> BB05 (cond), preds={BB01} succs={BB04,BB05}
***** BB03, stmt 18 (top level)
( 7, 6) [000081] ------------ * stmtExpr void (top level) (IL 0x056...0x058)
N004 ( 7, 6) [000080] ------------ \--* jmpTrue void
N002 ( 1, 1) [000078] ------------ | /--* const int 0 $40
N003 ( 5, 4) [000079] J------N---- \--* != int $401
N001 ( 3, 2) [000077] ------------ \--* lclVar int V05 loc5 u:3 (last use) $382
------------ BB04 [05A..066) -> BB10 (always), preds={BB03} succs={BB10}
***** BB04, stmt 19 (top level)
( 19, 18) [000122] ------------ * stmtExpr void (top level) (IL 0x05A...0x065)
N006 ( 19, 18) [000120] --C-G------- \--* call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000310] ----G------- arg0 in rcx \--* indir ref $3ce
N003 ( 3, 10) [000309] ------------ \--* const(h) long 0xD6273068 "Fail" $186
***** BB04, stmt 20 (top level)
( 1, 3) [000125] ------------ * stmtExpr void (top level) (IL 0x064... ???)
N001 ( 1, 1) [000123] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000314] -A-----NR--- \--* = int $41
N002 ( 1, 1) [000313] D------N---- \--* lclVar int V08 tmp0 d:6 $41
------------ BB05 [066..06A) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
***** BB05, stmt 21 (top level)
( 7, 6) [000087] ------------ * stmtExpr void (top level) (IL 0x066...0x068)
N004 ( 7, 6) [000086] ------------ \--* jmpTrue void
N002 ( 1, 1) [000084] ------------ | /--* const int 0 $40
N003 ( 5, 4) [000085] J------N---- \--* == int $402
N001 ( 3, 2) [000083] ------------ \--* lclVar int V06 loc6 u:3 (last use) $384
------------ BB06 [06A..076) -> BB10 (always), preds={BB05} succs={BB10}
***** BB06, stmt 22 (top level)
( 19, 18) [000114] ------------ * stmtExpr void (top level) (IL 0x06A...0x075)
N006 ( 19, 18) [000112] --C-G------- \--* call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000316] ----G------- arg0 in rcx \--* indir ref $3cb
N003 ( 3, 10) [000315] ------------ \--* const(h) long 0xD6273068 "Fail" $186
***** BB06, stmt 23 (top level)
( 1, 3) [000117] ------------ * stmtExpr void (top level) (IL 0x074... ???)
N001 ( 1, 1) [000115] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000320] -A-----NR--- \--* = int $41
N002 ( 1, 1) [000319] D------N---- \--* lclVar int V08 tmp0 d:5 $41
------------ BB07 [076..07A) -> BB09 (cond), preds={BB05} succs={BB08,BB09}
***** BB07, stmt 24 (top level)
( 7, 6) [000093] ------------ * stmtExpr void (top level) (IL 0x076...0x078)
N004 ( 7, 6) [000092] ------------ \--* jmpTrue void
N002 ( 1, 1) [000090] ------------ | /--* const int 0 $40
N003 ( 5, 4) [000091] J------N---- \--* != int $403
N001 ( 3, 2) [000089] ------------ \--* lclVar int V07 loc7 u:3 (last use) $386
------------ BB08 [07A..086) -> BB10 (always), preds={BB07} succs={BB10}
***** BB08, stmt 25 (top level)
( 19, 18) [000106] ------------ * stmtExpr void (top level) (IL 0x07A...0x085)
N006 ( 19, 18) [000104] --C-G------- \--* call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000322] ----G------- arg0 in rcx \--* indir ref $3c8
N003 ( 3, 10) [000321] ------------ \--* const(h) long 0xD6273068 "Fail" $186
***** BB08, stmt 26 (top level)
( 1, 3) [000109] ------------ * stmtExpr void (top level) (IL 0x084... ???)
N001 ( 1, 1) [000107] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000326] -A-----NR--- \--* = int $41
N002 ( 1, 1) [000325] D------N---- \--* lclVar int V08 tmp0 d:3 $41
------------ BB09 [086..093), preds={BB07} succs={BB10}
***** BB09, stmt 27 (top level)
( 19, 18) [000098] ------------ * stmtExpr void (top level) (IL 0x086...0x092)
N006 ( 19, 18) [000096] --C-G------- \--* call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000328] ----G------- arg0 in rcx \--* indir ref $3c5
N003 ( 3, 10) [000327] ------------ \--* const(h) long 0xD6273070 "Pass" $184
***** BB09, stmt 28 (top level)
( 1, 3) [000101] ------------ * stmtExpr void (top level) (IL 0x090... ???)
N001 ( 1, 1) [000099] ------------ | /--* const int 100 $45
N003 ( 1, 3) [000332] -A-----NR--- \--* = int $45
N002 ( 1, 1) [000331] D------N---- \--* lclVar int V08 tmp0 d:4 $45
------------ BB10 [???..???) (return), preds={BB02,BB04,BB06,BB08,BB09} succs={}
***** BB10, stmt 29 (top level)
( 6, 6) [000336] ------------ * stmtExpr void (top level) (IL ???... ???)
N011 ( 6, 6) [000334] ------------ | * phi int
N001 ( 0, 0) [000345] ------------ | /--* phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ | +--* phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ | +--* phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ | +--* phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ | \--* phiArg int V08 tmp0 u:3 $41
N013 ( 6, 6) [000335] -A------R--- \--* = int
N012 ( 1, 1) [000333] D------N---- \--* lclVar int V08 tmp0 d:8
***** BB10, stmt 30 (top level)
( 2, 2) [000136] ------------ * stmtExpr void (top level) (IL ???... ???)
N002 ( 2, 2) [000135] ------------ \--* return int $38d
N001 ( 1, 1) [000134] -------N---- \--* lclVar int V08 tmp0 u:8 (last use) $440
-------------------------------------------------------------------------------------------------------------------
*************** In optOptimizeValnumCSEs()
*************** In optAssertionPropMain()
Blocks/Trees at start of phase
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 0.5 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 0.5 [056..05A)-> BB05 ( cond ) i label target gcsafe
BB04 [0000026AC4437578] 1 BB03 0.5 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 0.5 [066..06A)-> BB07 ( cond ) i label target gcsafe
BB06 [0000026AC4437788] 1 BB05 0.5 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 0.5 [076..07A)-> BB09 ( cond ) i label target gcsafe
BB08 [0000026AC4437998] 1 BB07 0.5 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 0.5 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target gcsafe
-------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..04A) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1 (top level)
( 1, 3) [000143] ------------ * stmtExpr void (top level) (IL 0x000... ???)
N001 ( 1, 1) [000004] ------------ | /--* const long 10 $81
N003 ( 1, 3) [000142] -A--G---R--- \--* = long $81
N002 ( 1, 1) [000141] D------N---- \--* lclVar long V15 tmp7 d:3 $81
***** BB01, stmt 2 (top level)
( 1, 3) [000151] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
N001 ( 1, 1) [000011] ------------ | /--* const long 20 $82
N003 ( 1, 3) [000150] -A--G---R--- \--* = long $82
N002 ( 1, 1) [000149] D------N---- \--* lclVar long V16 tmp8 d:3 $82
***** BB01, stmt 3 (top level)
( 5, 4) [000179] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000224] -------N---- | /--* lclVar long V15 tmp7 u:3 $81
N003 ( 5, 4) [000225] -A------R--- \--* = long $81
N002 ( 3, 2) [000223] D------N---- \--* lclVar long V17 tmp9 d:3 $81
***** BB01, stmt 4 (top level)
( 5, 4) [000185] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000227] -------N---- | /--* lclVar long V16 tmp8 u:3 $82
N003 ( 5, 4) [000228] -A------R--- \--* = long $82
N002 ( 3, 2) [000226] D------N---- \--* lclVar long V18 tmp10 d:3 $82
***** BB01, stmt 5 (top level)
( 10, 10) [000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N006 ( 3, 2) [000235] -------N---- | /--* lclVar long V15 tmp7 u:3 (last use) $81
N007 ( 10, 10) [000236] -A--G------- \--* = long $VN.Void
N005 ( 6, 7) [000234] *---G--N---- \--* indir long $81
N003 ( 1, 1) [000232] ------------ | /--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000233] ----G--N---- \--* + byref $241
N002 ( 3, 5) [000230] ----G------- \--* addr byref $240
N001 ( 3, 4) [000231] U------N---- \--* lclFld struct V02 loc2 ud:2->3[+0] Fseq[v1] <l:$1c0, c:$1c1>
***** BB01, stmt 6 (top level)
( 10, 10) [000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N006 ( 3, 2) [000245] -------N---- | /--* lclVar long V16 tmp8 u:3 (last use) $82
N007 ( 10, 10) [000246] -A--G------- \--* = long $VN.Void
N005 ( 6, 7) [000244] *---G--N---- \--* indir long $82
N003 ( 1, 1) [000242] ------------ | /--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000243] ----G--N---- \--* + byref $243
N002 ( 3, 5) [000240] ----G------- \--* addr byref $242
N001 ( 3, 4) [000241] U------N---- \--* lclFld struct V02 loc2 ud:3->4[+8] Fseq[v2] <l:$1c2, c:$1c3>
***** BB01, stmt 7 (top level)
( 5, 4) [000213] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000248] -------N---- | /--* lclVar long V16 tmp8 u:3 (last use) $82
N003 ( 5, 4) [000249] -A------R--- \--* = long $82
N002 ( 3, 2) [000247] D------N---- \--* lclVar long V19 tmp11 d:3 $82
***** BB01, stmt 8 (top level)
( 5, 4) [000219] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000251] -------N---- | /--* lclVar long V15 tmp7 u:3 (last use) $81
N003 ( 5, 4) [000252] -A------R--- \--* = long $81
N002 ( 3, 2) [000250] D------N---- \--* lclVar long V20 tmp12 d:3 $81
***** BB01, stmt 9 (top level)
( 10, 10) [000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N006 ( 3, 2) [000259] -------N---- | /--* lclVar long V19 tmp11 u:3 (last use) $82
N007 ( 10, 10) [000260] -A--G------- \--* = long $VN.Void
N005 ( 6, 7) [000258] *---G--N---- \--* indir long $82
N003 ( 1, 1) [000256] ------------ | /--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000257] ----G--N---- \--* + byref $245
N002 ( 3, 5) [000254] ----G------- \--* addr byref $244
N001 ( 3, 4) [000255] U------N---- \--* lclFld struct V03 loc3 ud:2->3[+0] Fseq[v1] <l:$1c4, c:$1c5>
***** BB01, stmt 10 (top level)
( 10, 10) [000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N006 ( 3, 2) [000269] -------N---- | /--* lclVar long V20 tmp12 u:3 (last use) $81
N007 ( 10, 10) [000270] -A--G------- \--* = long $VN.Void
N005 ( 6, 7) [000268] *---G--N---- \--* indir long $81
N003 ( 1, 1) [000266] ------------ | /--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000267] ----G--N---- \--* + byref $247
N002 ( 3, 5) [000264] ----G------- \--* addr byref $246
N001 ( 3, 4) [000265] U------N---- \--* lclFld struct V03 loc3 ud:3->4[+8] Fseq[v2] <l:$1c6, c:$1c7>
***** BB01, stmt 11 (top level)
( 33, 21) [000046] ------------ * stmtExpr void (top level) (IL 0x026... ???)
N012 ( 29, 18) [000040] --CXG------- | /--* call int Program.IsXGeater $380
N006 ( 1, 1) [000273] ------------ | | | /--* const int 16 $44
N007 ( 9, 9) [000274] -A--G-----L- arg0 SETUP | | +--* copyBlk void $VN.Void
N002 ( 3, 3) [000041] L----------- | | | | /--* addr byref $248
N001 ( 3, 2) [000039] -------N---- | | | | | \--* lclVar struct V02 loc2 u:4 $2c1
N005 ( 7, 7) [000275] --------R--- | | | \--* <list> void $340
N004 ( 3, 3) [000272] L----------- | | | \--* addr byref $300
N003 ( 3, 2) [000271] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000277] L----------- arg0 in rcx | | \--* addr long $301
N009 ( 3, 2) [000276] -------N---- | | \--* lclVar struct(AX) V21 tmp13 $1c8
N014 ( 33, 21) [000045] -ACXG---R--- \--* = int $380
N013 ( 3, 2) [000044] D------N---- \--* lclVar int V04 loc4 d:3 $380
***** BB01, stmt 12 (top level)
( 33, 21) [000054] ------------ * stmtExpr void (top level) (IL 0x02E...0x034)
N012 ( 29, 18) [000048] --CXG------- | /--* call int Program.IsXGeater $382
N006 ( 1, 1) [000281] ------------ | | | /--* const int 16 $44
N007 ( 9, 9) [000282] -A--G-----L- arg0 SETUP | | +--* copyBlk void $VN.Void
N002 ( 3, 3) [000049] L----------- | | | | /--* addr byref $249
N001 ( 3, 2) [000047] -------N---- | | | | | \--* lclVar struct V03 loc3 u:4 $2c3
N005 ( 7, 7) [000283] --------R--- | | | \--* <list> void $343
N004 ( 3, 3) [000280] L----------- | | | \--* addr byref $302
N003 ( 3, 2) [000279] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000285] L----------- arg0 in rcx | | \--* addr long $303
N009 ( 3, 2) [000284] -------N---- | | \--* lclVar struct(AX) V21 tmp13 $1c9
N014 ( 33, 21) [000053] -ACXG---R--- \--* = int $382
N013 ( 3, 2) [000052] D------N---- \--* lclVar int V05 loc5 d:3 $382
***** BB01, stmt 13 (top level)
( 33, 21) [000062] ------------ * stmtExpr void (top level) (IL 0x036...0x03C)
N012 ( 29, 18) [000056] --CXG------- | /--* call int Program.IsXGeater $384
N006 ( 1, 1) [000289] ------------ | | | /--* const int 16 $44
N007 ( 9, 9) [000290] -A--G-----L- arg0 SETUP | | +--* copyBlk void $VN.Void
N002 ( 3, 3) [000057] L----------- | | | | /--* addr byref $248
N001 ( 3, 2) [000055] -------N---- | | | | | \--* lclVar struct V02 loc2 u:4 (last use) $2c1
N005 ( 7, 7) [000291] --------R--- | | | \--* <list> void $345
N004 ( 3, 3) [000288] L----------- | | | \--* addr byref $304
N003 ( 3, 2) [000287] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000293] L----------- arg0 in rcx | | \--* addr long $305
N009 ( 3, 2) [000292] -------N---- | | \--* lclVar struct(AX) V21 tmp13 $1ca
N014 ( 33, 21) [000061] -ACXG---R--- \--* = int $384
N013 ( 3, 2) [000060] D------N---- \--* lclVar int V06 loc6 d:3 $384
***** BB01, stmt 14 (top level)
( 33, 21) [000070] ------------ * stmtExpr void (top level) (IL 0x03E...0x044)
N012 ( 29, 18) [000064] --CXG------- | /--* call int Program.IsXGeater $386
N006 ( 1, 1) [000297] ------------ | | | /--* const int 16 $44
N007 ( 9, 9) [000298] -A--G-----L- arg0 SETUP | | +--* copyBlk void $VN.Void
N002 ( 3, 3) [000065] L----------- | | | | /--* addr byref $249
N001 ( 3, 2) [000063] -------N---- | | | | | \--* lclVar struct V03 loc3 u:4 (last use) $2c3
N005 ( 7, 7) [000299] --------R--- | | | \--* <list> void $347
N004 ( 3, 3) [000296] L----------- | | | \--* addr byref $306
N003 ( 3, 2) [000295] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000301] L----------- arg0 in rcx | | \--* addr long $307
N009 ( 3, 2) [000300] -------N---- | | \--* lclVar struct(AX) V21 tmp13 $1cb
N014 ( 33, 21) [000069] -ACXG---R--- \--* = int $386
N013 ( 3, 2) [000068] D------N---- \--* lclVar int V07 loc7 d:3 $386
***** BB01, stmt 15 (top level)
( 7, 6) [000075] ------------ * stmtExpr void (top level) (IL 0x046...0x048)
N004 ( 7, 6) [000074] ------------ \--* jmpTrue void
N002 ( 1, 1) [000072] ------------ | /--* const int 0 $40
N003 ( 5, 4) [000073] J------N---- \--* == int $400
N001 ( 3, 2) [000071] ------------ \--* lclVar int V04 loc4 u:3 (last use) $380
------------ BB02 [04A..056) -> BB10 (always), preds={BB01} succs={BB10}
***** BB02, stmt 16 (top level)
( 19, 18) [000130] ------------ * stmtExpr void (top level) (IL 0x04A...0x055)
N006 ( 19, 18) [000128] --C-G------- \--* call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000304] ----G------- arg0 in rcx \--* indir ref $3d1
N003 ( 3, 10) [000303] ------------ \--* const(h) long 0xD6273068 "Fail" $186
***** BB02, stmt 17 (top level)
( 1, 3) [000133] ------------ * stmtExpr void (top level) (IL 0x054... ???)
N001 ( 1, 1) [000131] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000308] -A-----NR--- \--* = int $41
N002 ( 1, 1) [000307] D------N---- \--* lclVar int V08 tmp0 d:7 $41
------------ BB03 [056..05A) -> BB05 (cond), preds={BB01} succs={BB04,BB05}
***** BB03, stmt 18 (top level)
( 7, 6) [000081] ------------ * stmtExpr void (top level) (IL 0x056...0x058)
N004 ( 7, 6) [000080] ------------ \--* jmpTrue void
N002 ( 1, 1) [000078] ------------ | /--* const int 0 $40
N003 ( 5, 4) [000079] J------N---- \--* != int $401
N001 ( 3, 2) [000077] ------------ \--* lclVar int V05 loc5 u:3 (last use) $382
------------ BB04 [05A..066) -> BB10 (always), preds={BB03} succs={BB10}
***** BB04, stmt 19 (top level)
( 19, 18) [000122] ------------ * stmtExpr void (top level) (IL 0x05A...0x065)
N006 ( 19, 18) [000120] --C-G------- \--* call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000310] ----G------- arg0 in rcx \--* indir ref $3ce
N003 ( 3, 10) [000309] ------------ \--* const(h) long 0xD6273068 "Fail" $186
***** BB04, stmt 20 (top level)
( 1, 3) [000125] ------------ * stmtExpr void (top level) (IL 0x064... ???)
N001 ( 1, 1) [000123] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000314] -A-----NR--- \--* = int $41
N002 ( 1, 1) [000313] D------N---- \--* lclVar int V08 tmp0 d:6 $41
------------ BB05 [066..06A) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
***** BB05, stmt 21 (top level)
( 7, 6) [000087] ------------ * stmtExpr void (top level) (IL 0x066...0x068)
N004 ( 7, 6) [000086] ------------ \--* jmpTrue void
N002 ( 1, 1) [000084] ------------ | /--* const int 0 $40
N003 ( 5, 4) [000085] J------N---- \--* == int $402
N001 ( 3, 2) [000083] ------------ \--* lclVar int V06 loc6 u:3 (last use) $384
------------ BB06 [06A..076) -> BB10 (always), preds={BB05} succs={BB10}
***** BB06, stmt 22 (top level)
( 19, 18) [000114] ------------ * stmtExpr void (top level) (IL 0x06A...0x075)
N006 ( 19, 18) [000112] --C-G------- \--* call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000316] ----G------- arg0 in rcx \--* indir ref $3cb
N003 ( 3, 10) [000315] ------------ \--* const(h) long 0xD6273068 "Fail" $186
***** BB06, stmt 23 (top level)
( 1, 3) [000117] ------------ * stmtExpr void (top level) (IL 0x074... ???)
N001 ( 1, 1) [000115] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000320] -A-----NR--- \--* = int $41
N002 ( 1, 1) [000319] D------N---- \--* lclVar int V08 tmp0 d:5 $41
------------ BB07 [076..07A) -> BB09 (cond), preds={BB05} succs={BB08,BB09}
***** BB07, stmt 24 (top level)
( 7, 6) [000093] ------------ * stmtExpr void (top level) (IL 0x076...0x078)
N004 ( 7, 6) [000092] ------------ \--* jmpTrue void
N002 ( 1, 1) [000090] ------------ | /--* const int 0 $40
N003 ( 5, 4) [000091] J------N---- \--* != int $403
N001 ( 3, 2) [000089] ------------ \--* lclVar int V07 loc7 u:3 (last use) $386
------------ BB08 [07A..086) -> BB10 (always), preds={BB07} succs={BB10}
***** BB08, stmt 25 (top level)
( 19, 18) [000106] ------------ * stmtExpr void (top level) (IL 0x07A...0x085)
N006 ( 19, 18) [000104] --C-G------- \--* call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000322] ----G------- arg0 in rcx \--* indir ref $3c8
N003 ( 3, 10) [000321] ------------ \--* const(h) long 0xD6273068 "Fail" $186
***** BB08, stmt 26 (top level)
( 1, 3) [000109] ------------ * stmtExpr void (top level) (IL 0x084... ???)
N001 ( 1, 1) [000107] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000326] -A-----NR--- \--* = int $41
N002 ( 1, 1) [000325] D------N---- \--* lclVar int V08 tmp0 d:3 $41
------------ BB09 [086..093), preds={BB07} succs={BB10}
***** BB09, stmt 27 (top level)
( 19, 18) [000098] ------------ * stmtExpr void (top level) (IL 0x086...0x092)
N006 ( 19, 18) [000096] --C-G------- \--* call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000328] ----G------- arg0 in rcx \--* indir ref $3c5
N003 ( 3, 10) [000327] ------------ \--* const(h) long 0xD6273070 "Pass" $184
***** BB09, stmt 28 (top level)
( 1, 3) [000101] ------------ * stmtExpr void (top level) (IL 0x090... ???)
N001 ( 1, 1) [000099] ------------ | /--* const int 100 $45
N003 ( 1, 3) [000332] -A-----NR--- \--* = int $45
N002 ( 1, 1) [000331] D------N---- \--* lclVar int V08 tmp0 d:4 $45
------------ BB10 [???..???) (return), preds={BB02,BB04,BB06,BB08,BB09} succs={}
***** BB10, stmt 29 (top level)
( 6, 6) [000336] ------------ * stmtExpr void (top level) (IL ???... ???)
N011 ( 6, 6) [000334] ------------ | * phi int
N001 ( 0, 0) [000345] ------------ | /--* phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ | +--* phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ | +--* phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ | +--* phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ | \--* phiArg int V08 tmp0 u:3 $41
N013 ( 6, 6) [000335] -A------R--- \--* = int
N012 ( 1, 1) [000333] D------N---- \--* lclVar int V08 tmp0 d:8
***** BB10, stmt 30 (top level)
( 2, 2) [000136] ------------ * stmtExpr void (top level) (IL ???... ???)
N002 ( 2, 2) [000135] ------------ \--* return int $38d
N001 ( 1, 1) [000134] -------N---- \--* lclVar int V08 tmp0 u:8 (last use) $440
-------------------------------------------------------------------------------------------------------------------
GenTreeNode creates assertion:
N004 ( 7, 6) [000074] ------------ * jmpTrue void
In BB01 New Global Constant Assertion: (896, 64) ($380,$40) V04.03 == 0index=#01, mask=0000000000000001
GenTreeNode creates assertion:
N004 ( 7, 6) [000074] ------------ * jmpTrue void
In BB01 New Global Constant Assertion: (896, 64) ($380,$40) V04.03 != 0index=#02, mask=0000000000000002
GenTreeNode creates assertion:
N004 ( 7, 6) [000080] ------------ * jmpTrue void
In BB03 New Global Constant Assertion: (898, 64) ($382,$40) V05.03 != 0index=#03, mask=0000000000000004
GenTreeNode creates assertion:
N004 ( 7, 6) [000080] ------------ * jmpTrue void
In BB03 New Global Constant Assertion: (898, 64) ($382,$40) V05.03 == 0index=#04, mask=0000000000000008
GenTreeNode creates assertion:
N004 ( 7, 6) [000086] ------------ * jmpTrue void
In BB05 New Global Constant Assertion: (900, 64) ($384,$40) V06.03 == 0index=#05, mask=0000000000000010
GenTreeNode creates assertion:
N004 ( 7, 6) [000086] ------------ * jmpTrue void
In BB05 New Global Constant Assertion: (900, 64) ($384,$40) V06.03 != 0index=#06, mask=0000000000000020
GenTreeNode creates assertion:
N004 ( 7, 6) [000092] ------------ * jmpTrue void
In BB07 New Global Constant Assertion: (902, 64) ($386,$40) V07.03 != 0index=#07, mask=0000000000000040
GenTreeNode creates assertion:
N004 ( 7, 6) [000092] ------------ * jmpTrue void
In BB07 New Global Constant Assertion: (902, 64) ($386,$40) V07.03 == 0index=#08, mask=0000000000000080
BB01 valueGen = 0000000000000002 => BB03 valueGen = 0000000000000001,
BB02 valueGen = 0000000000000000
BB03 valueGen = 0000000000000008 => BB05 valueGen = 0000000000000004,
BB04 valueGen = 0000000000000000
BB05 valueGen = 0000000000000020 => BB07 valueGen = 0000000000000010,
BB06 valueGen = 0000000000000000
BB07 valueGen = 0000000000000080 => BB09 valueGen = 0000000000000040,
BB08 valueGen = 0000000000000000
BB09 valueGen = 0000000000000000
BB10 valueGen = 0000000000000000AssertionPropCallback::StartMerge: BB01 in -> 0000000000000000
AssertionPropCallback::EndMerge : BB01 in -> 0000000000000000
AssertionPropCallback::Changed : BB01 before out -> FFFFFFFFFFFFFFFF; after out -> 0000000000000002;
jumpDest before out -> FFFFFFFFFFFFFFFF; jumpDest after out -> 0000000000000001;
AssertionPropCallback::StartMerge: BB02 in -> FFFFFFFFFFFFFFFF
AssertionPropCallback::Merge : BB02 in -> FFFFFFFFFFFFFFFF, predBlock BB01 out -> 0000000000000002
AssertionPropCallback::EndMerge : BB02 in -> 0000000000000002
AssertionPropCallback::Changed : BB02 before out -> FFFFFFFFFFFFFFFF; after out -> 0000000000000002;
jumpDest before out -> FFFFFFFFFFFFFFFF; jumpDest after out -> 0000000000000002;
AssertionPropCallback::StartMerge: BB03 in -> FFFFFFFFFFFFFFFF
AssertionPropCallback::Merge : BB03 in -> FFFFFFFFFFFFFFFF, predBlock BB01 out -> 0000000000000002
AssertionPropCallback::EndMerge : BB03 in -> 0000000000000001
AssertionPropCallback::Changed : BB03 before out -> FFFFFFFFFFFFFFFF; after out -> 0000000000000009;
jumpDest before out -> FFFFFFFFFFFFFFFF; jumpDest after out -> 0000000000000005;
AssertionPropCallback::StartMerge: BB10 in -> FFFFFFFFFFFFFFFF
AssertionPropCallback::Merge : BB10 in -> FFFFFFFFFFFFFFFF, predBlock BB02 out -> 0000000000000002
AssertionPropCallback::Merge : BB10 in -> 0000000000000002, predBlock BB04 out -> FFFFFFFFFFFFFFFF
AssertionPropCallback::Merge : BB10 in -> 0000000000000002, predBlock BB06 out -> FFFFFFFFFFFFFFFF
AssertionPropCallback::Merge : BB10 in -> 0000000000000002, predBlock BB08 out -> FFFFFFFFFFFFFFFF
AssertionPropCallback::Merge : BB10 in -> 0000000000000002, predBlock BB09 out -> FFFFFFFFFFFFFFFF
AssertionPropCallback::EndMerge : BB10 in -> 0000000000000002
AssertionPropCallback::Changed : BB10 before out -> FFFFFFFFFFFFFFFF; after out -> 0000000000000002;
jumpDest before out -> FFFFFFFFFFFFFFFF; jumpDest after out -> 0000000000000002;
AssertionPropCallback::StartMerge: BB04 in -> FFFFFFFFFFFFFFFF
AssertionPropCallback::Merge : BB04 in -> FFFFFFFFFFFFFFFF, predBlock BB03 out -> 0000000000000009
AssertionPropCallback::EndMerge : BB04 in -> 0000000000000009
AssertionPropCallback::Changed : BB04 before out -> FFFFFFFFFFFFFFFF; after out -> 0000000000000009;
jumpDest before out -> FFFFFFFFFFFFFFFF; jumpDest after out -> 0000000000000009;
AssertionPropCallback::StartMerge: BB05 in -> FFFFFFFFFFFFFFFF
AssertionPropCallback::Merge : BB05 in -> FFFFFFFFFFFFFFFF, predBlock BB03 out -> 0000000000000009
AssertionPropCallback::EndMerge : BB05 in -> 0000000000000005
AssertionPropCallback::Changed : BB05 before out -> FFFFFFFFFFFFFFFF; after out -> 0000000000000025;
jumpDest before out -> FFFFFFFFFFFFFFFF; jumpDest after out -> 0000000000000015;
AssertionPropCallback::StartMerge: BB10 in -> 0000000000000002
AssertionPropCallback::Merge : BB10 in -> 0000000000000002, predBlock BB02 out -> 0000000000000002
AssertionPropCallback::Merge : BB10 in -> 0000000000000002, predBlock BB04 out -> 0000000000000009
AssertionPropCallback::Merge : BB10 in -> 0000000000000000, predBlock BB06 out -> FFFFFFFFFFFFFFFF
AssertionPropCallback::Merge : BB10 in -> 0000000000000000, predBlock BB08 out -> FFFFFFFFFFFFFFFF
AssertionPropCallback::Merge : BB10 in -> 0000000000000000, predBlock BB09 out -> FFFFFFFFFFFFFFFF
AssertionPropCallback::EndMerge : BB10 in -> 0000000000000000
AssertionPropCallback::Changed : BB10 before out -> 0000000000000002; after out -> 0000000000000000;
jumpDest before out -> 0000000000000002; jumpDest after out -> 0000000000000000;
AssertionPropCallback::StartMerge: BB06 in -> FFFFFFFFFFFFFFFF
AssertionPropCallback::Merge : BB06 in -> FFFFFFFFFFFFFFFF, predBlock BB05 out -> 0000000000000025
AssertionPropCallback::EndMerge : BB06 in -> 0000000000000025
AssertionPropCallback::Changed : BB06 before out -> FFFFFFFFFFFFFFFF; after out -> 0000000000000025;
jumpDest before out -> FFFFFFFFFFFFFFFF; jumpDest after out -> 0000000000000025;
AssertionPropCallback::StartMerge: BB07 in -> FFFFFFFFFFFFFFFF
AssertionPropCallback::Merge : BB07 in -> FFFFFFFFFFFFFFFF, predBlock BB05 out -> 0000000000000025
AssertionPropCallback::EndMerge : BB07 in -> 0000000000000015
AssertionPropCallback::Changed : BB07 before out -> FFFFFFFFFFFFFFFF; after out -> 0000000000000095;
jumpDest before out -> FFFFFFFFFFFFFFFF; jumpDest after out -> 0000000000000055;
AssertionPropCallback::StartMerge: BB10 in -> 0000000000000000
AssertionPropCallback::Merge : BB10 in -> 0000000000000000, predBlock BB02 out -> 0000000000000002
AssertionPropCallback::Merge : BB10 in -> 0000000000000000, predBlock BB04 out -> 0000000000000009
AssertionPropCallback::Merge : BB10 in -> 0000000000000000, predBlock BB06 out -> 0000000000000025
AssertionPropCallback::Merge : BB10 in -> 0000000000000000, predBlock BB08 out -> FFFFFFFFFFFFFFFF
AssertionPropCallback::Merge : BB10 in -> 0000000000000000, predBlock BB09 out -> FFFFFFFFFFFFFFFF
AssertionPropCallback::EndMerge : BB10 in -> 0000000000000000
AssertionPropCallback::Unchanged : BB10 out -> 0000000000000000; jumpDest out -> 0000000000000000
AssertionPropCallback::StartMerge: BB08 in -> FFFFFFFFFFFFFFFF
AssertionPropCallback::Merge : BB08 in -> FFFFFFFFFFFFFFFF, predBlock BB07 out -> 0000000000000095
AssertionPropCallback::EndMerge : BB08 in -> 0000000000000095
AssertionPropCallback::Changed : BB08 before out -> FFFFFFFFFFFFFFFF; after out -> 0000000000000095;
jumpDest before out -> FFFFFFFFFFFFFFFF; jumpDest after out -> 0000000000000095;
AssertionPropCallback::StartMerge: BB09 in -> FFFFFFFFFFFFFFFF
AssertionPropCallback::Merge : BB09 in -> FFFFFFFFFFFFFFFF, predBlock BB07 out -> 0000000000000095
AssertionPropCallback::EndMerge : BB09 in -> 0000000000000055
AssertionPropCallback::Changed : BB09 before out -> FFFFFFFFFFFFFFFF; after out -> 0000000000000055;
jumpDest before out -> FFFFFFFFFFFFFFFF; jumpDest after out -> 0000000000000055;
AssertionPropCallback::StartMerge: BB10 in -> 0000000000000000
AssertionPropCallback::Merge : BB10 in -> 0000000000000000, predBlock BB02 out -> 0000000000000002
AssertionPropCallback::Merge : BB10 in -> 0000000000000000, predBlock BB04 out -> 0000000000000009
AssertionPropCallback::Merge : BB10 in -> 0000000000000000, predBlock BB06 out -> 0000000000000025
AssertionPropCallback::Merge : BB10 in -> 0000000000000000, predBlock BB08 out -> 0000000000000095
AssertionPropCallback::Merge : BB10 in -> 0000000000000000, predBlock BB09 out -> 0000000000000055
AssertionPropCallback::EndMerge : BB10 in -> 0000000000000000
AssertionPropCallback::Unchanged : BB10 out -> 0000000000000000; jumpDest out -> 0000000000000000
AssertionPropCallback::StartMerge: BB10 in -> 0000000000000000
AssertionPropCallback::Merge : BB10 in -> 0000000000000000, predBlock BB02 out -> 0000000000000002
AssertionPropCallback::Merge : BB10 in -> 0000000000000000, predBlock BB04 out -> 0000000000000009
AssertionPropCallback::Merge : BB10 in -> 0000000000000000, predBlock BB06 out -> 0000000000000025
AssertionPropCallback::Merge : BB10 in -> 0000000000000000, predBlock BB08 out -> 0000000000000095
AssertionPropCallback::Merge : BB10 in -> 0000000000000000, predBlock BB09 out -> 0000000000000055
AssertionPropCallback::EndMerge : BB10 in -> 0000000000000000
AssertionPropCallback::Unchanged : BB10 out -> 0000000000000000; jumpDest out -> 0000000000000000
BB01 valueIn = 0000000000000000 valueOut = 0000000000000002 => BB03 valueOut= 0000000000000001
BB02 valueIn = 0000000000000002 valueOut = 0000000000000002
BB03 valueIn = 0000000000000001 valueOut = 0000000000000009 => BB05 valueOut= 0000000000000005
BB04 valueIn = 0000000000000009 valueOut = 0000000000000009
BB05 valueIn = 0000000000000005 valueOut = 0000000000000025 => BB07 valueOut= 0000000000000015
BB06 valueIn = 0000000000000025 valueOut = 0000000000000025
BB07 valueIn = 0000000000000015 valueOut = 0000000000000095 => BB09 valueOut= 0000000000000055
BB08 valueIn = 0000000000000095 valueOut = 0000000000000095
BB09 valueIn = 0000000000000055 valueOut = 0000000000000055
BB10 valueIn = 0000000000000000 valueOut = 0000000000000000
Propagating 0000000000000000 assertions for BB01, stmt C4440B18, tree C4440968, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4440B18, tree C4440A08, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4440B18, tree C4440AA8, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4441330, tree C4441180, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4441330, tree C4441220, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4441330, tree C44412C0, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C44475D8, tree C444B4C0, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C44475D8, tree C444B450, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C44475D8, tree C444B530, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C44478F8, tree C444B780, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C44478F8, tree C444B710, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C44478F8, tree C444B7F0, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4446D48, tree C444BC18, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4446D48, tree C444BBA8, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4446D48, tree C444BC88, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4446D48, tree C444BD28, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4446D48, tree C444BD98, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4446D48, tree C444BE08, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4446D48, tree C444BE78, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4447258, tree C444C198, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4447258, tree C444C128, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4447258, tree C444C208, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4447258, tree C444C278, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4447258, tree C444C2E8, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4447258, tree C444C358, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4447258, tree C444C3C8, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4448B58, tree C444C568, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4448B58, tree C444C4F8, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4448B58, tree C444C5D8, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4448E78, tree C444C828, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4448E78, tree C444C7B8, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4448E78, tree C444C898, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C44482C8, tree C444CB70, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C44482C8, tree C444CB00, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C44482C8, tree C444CBE0, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C44482C8, tree C444CC50, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C44482C8, tree C444CCC0, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C44482C8, tree C444CD30, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C44482C8, tree C444CDA0, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C44487D8, tree C444D090, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C44487D8, tree C444D020, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C44487D8, tree C444D100, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C44487D8, tree C444D170, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C44487D8, tree C444D1E0, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C44487D8, tree C444D250, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C44487D8, tree C444D2C0, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4439B68, tree C4439790, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4439B68, tree C44398A0, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4439B68, tree C444D4F0, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4439B68, tree C444D560, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4439B68, tree C444D6B8, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4439B68, tree C444D5D8, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4439B68, tree C444D648, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4439B68, tree C44399B0, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4439B68, tree C444D878, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4439B68, tree C444D8E8, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4439B68, tree C444D958, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4439B68, tree C4439800, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4439B68, tree C4439A88, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C4439B68, tree C4439AF8, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A060, tree C4439C88, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A060, tree C4439D98, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A060, tree C444DAB8, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A060, tree C444DB28, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A060, tree C444DC80, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A060, tree C444DBA0, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A060, tree C444DC10, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A060, tree C4439EA8, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A060, tree C444DCF0, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A060, tree C444DD60, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A060, tree C444DDD0, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A060, tree C4439CF8, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A060, tree C4439F80, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A060, tree C4439FF0, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A518, tree C443A140, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A518, tree C443A250, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A518, tree C444DF30, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A518, tree C444DFA0, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A518, tree C444E0F8, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A518, tree C444E018, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A518, tree C444E088, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A518, tree C443A360, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A518, tree C444E168, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A518, tree C444E1D8, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A518, tree C444E248, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A518, tree C443A1B0, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A518, tree C443A438, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A518, tree C443A4A8, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A9D0, tree C443A5F8, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A9D0, tree C443A708, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A9D0, tree C444E3A8, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A9D0, tree C444E418, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A9D0, tree C444E570, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A9D0, tree C444E490, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A9D0, tree C444E500, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A9D0, tree C443A818, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A9D0, tree C444E5E0, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A9D0, tree C444E650, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A9D0, tree C444E6C0, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A9D0, tree C443A668, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A9D0, tree C443A8F0, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443A9D0, tree C443A960, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443AC70, tree C443AAB0, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443AC70, tree C443AB20, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443AC70, tree C443AB90, tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt C443AC70, tree C443AC00, tree -> 1
Propagating 0000000000000002 assertions for BB02, stmt C443CE48, tree C444E968, tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt C443CE48, tree C443CD70, tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt C443CE48, tree C444E850, tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt C443CE48, tree C444E8C0, tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt C443CE48, tree C444EA58, tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt C443CE48, tree C443CCD0, tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt C443D008, tree C443CF28, tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt C443D008, tree C444EB48, tree -> 0
Propagating 0000000000000002 assertions for BB02, stmt C443D008, tree C444EBB8, tree -> 0
Propagating 0000000000000001 assertions for BB03, stmt C443AFA8, tree C443ADE8, tree -> 0
Propagating 0000000000000001 assertions for BB03, stmt C443AFA8, tree C443AE58, tree -> 0
Propagating 0000000000000001 assertions for BB03, stmt C443AFA8, tree C443AEC8, tree -> 0
Propagating 0000000000000001 assertions for BB03, stmt C443AFA8, tree C443AF38, tree -> 3
Propagating 0000000000000009 assertions for BB04, stmt C443C920, tree C444EE48, tree -> 0
Propagating 0000000000000009 assertions for BB04, stmt C443C920, tree C443C848, tree -> 0
Propagating 0000000000000009 assertions for BB04, stmt C443C920, tree C444ED30, tree -> 0
Propagating 0000000000000009 assertions for BB04, stmt C443C920, tree C444EDA0, tree -> 0
Propagating 0000000000000009 assertions for BB04, stmt C443C920, tree C444EF38, tree -> 0
Propagating 0000000000000009 assertions for BB04, stmt C443C920, tree C443C7A8, tree -> 0
Propagating 0000000000000009 assertions for BB04, stmt C443CAE0, tree C443CA00, tree -> 0
Propagating 0000000000000009 assertions for BB04, stmt C443CAE0, tree C444F028, tree -> 0
Propagating 0000000000000009 assertions for BB04, stmt C443CAE0, tree C444F098, tree -> 0
Propagating 0000000000000005 assertions for BB05, stmt C443B2E0, tree C443B120, tree -> 0
Propagating 0000000000000005 assertions for BB05, stmt C443B2E0, tree C443B190, tree -> 0
Propagating 0000000000000005 assertions for BB05, stmt C443B2E0, tree C443B200, tree -> 0
Propagating 0000000000000005 assertions for BB05, stmt C443B2E0, tree C443B270, tree -> 5
Propagating 0000000000000025 assertions for BB06, stmt C443C3F8, tree C444F328, tree -> 0
Propagating 0000000000000025 assertions for BB06, stmt C443C3F8, tree C443C320, tree -> 0
Propagating 0000000000000025 assertions for BB06, stmt C443C3F8, tree C444F210, tree -> 0
Propagating 0000000000000025 assertions for BB06, stmt C443C3F8, tree C444F280, tree -> 0
Propagating 0000000000000025 assertions for BB06, stmt C443C3F8, tree C444F418, tree -> 0
Propagating 0000000000000025 assertions for BB06, stmt C443C3F8, tree C443C280, tree -> 0
Propagating 0000000000000025 assertions for BB06, stmt C443C5B8, tree C443C4D8, tree -> 0
Propagating 0000000000000025 assertions for BB06, stmt C443C5B8, tree C444F508, tree -> 0
Propagating 0000000000000025 assertions for BB06, stmt C443C5B8, tree C444F578, tree -> 0
Propagating 0000000000000015 assertions for BB07, stmt C443B618, tree C443B458, tree -> 0
Propagating 0000000000000015 assertions for BB07, stmt C443B618, tree C443B4C8, tree -> 0
Propagating 0000000000000015 assertions for BB07, stmt C443B618, tree C443B538, tree -> 0
Propagating 0000000000000015 assertions for BB07, stmt C443B618, tree C443B5A8, tree -> 7
Propagating 0000000000000095 assertions for BB08, stmt C443BED0, tree C444F808, tree -> 0
Propagating 0000000000000095 assertions for BB08, stmt C443BED0, tree C443BDF8, tree -> 0
Propagating 0000000000000095 assertions for BB08, stmt C443BED0, tree C444F6F0, tree -> 0
Propagating 0000000000000095 assertions for BB08, stmt C443BED0, tree C444F760, tree -> 0
Propagating 0000000000000095 assertions for BB08, stmt C443BED0, tree C444F8F8, tree -> 0
Propagating 0000000000000095 assertions for BB08, stmt C443BED0, tree C443BD58, tree -> 0
Propagating 0000000000000095 assertions for BB08, stmt C443C090, tree C443BFB0, tree -> 0
Propagating 0000000000000095 assertions for BB08, stmt C443C090, tree C444F9E8, tree -> 0
Propagating 0000000000000095 assertions for BB08, stmt C443C090, tree C444FA58, tree -> 0
Propagating 0000000000000055 assertions for BB09, stmt C443B9A8, tree C444FC80, tree -> 0
Propagating 0000000000000055 assertions for BB09, stmt C443B9A8, tree C443B8D0, tree -> 0
Propagating 0000000000000055 assertions for BB09, stmt C443B9A8, tree C444FB68, tree -> 0
Propagating 0000000000000055 assertions for BB09, stmt C443B9A8, tree C444FBD8, tree -> 0
Propagating 0000000000000055 assertions for BB09, stmt C443B9A8, tree C444FD70, tree -> 0
Propagating 0000000000000055 assertions for BB09, stmt C443B9A8, tree C443B830, tree -> 0
Propagating 0000000000000055 assertions for BB09, stmt C443BB68, tree C443BA88, tree -> 0
Propagating 0000000000000055 assertions for BB09, stmt C443BB68, tree C444FE60, tree -> 0
Propagating 0000000000000055 assertions for BB09, stmt C443BB68, tree C444FED0, tree -> 0
Propagating 0000000000000000 assertions for BB10, stmt C443D2D0, tree C443D1F0, tree -> 0
Propagating 0000000000000000 assertions for BB10, stmt C443D2D0, tree C443D260, tree -> 0
*************** In fgDebugCheckBBlist
*************** In OptimizeRangeChecks()
Blocks/trees before phase
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 0.5 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 0.5 [056..05A)-> BB05 ( cond ) i label target gcsafe
BB04 [0000026AC4437578] 1 BB03 0.5 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 0.5 [066..06A)-> BB07 ( cond ) i label target gcsafe
BB06 [0000026AC4437788] 1 BB05 0.5 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 0.5 [076..07A)-> BB09 ( cond ) i label target gcsafe
BB08 [0000026AC4437998] 1 BB07 0.5 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 0.5 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target gcsafe
-------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..04A) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1 (top level)
( 1, 3) [000143] ------------ * stmtExpr void (top level) (IL 0x000... ???)
N001 ( 1, 1) [000004] ------------ | /--* const long 10 $81
N003 ( 1, 3) [000142] -A--G---R--- \--* = long $81
N002 ( 1, 1) [000141] D------N---- \--* lclVar long V15 tmp7 d:3 $81
***** BB01, stmt 2 (top level)
( 1, 3) [000151] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
N001 ( 1, 1) [000011] ------------ | /--* const long 20 $82
N003 ( 1, 3) [000150] -A--G---R--- \--* = long $82
N002 ( 1, 1) [000149] D------N---- \--* lclVar long V16 tmp8 d:3 $82
***** BB01, stmt 3 (top level)
( 5, 4) [000179] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000224] -------N---- | /--* lclVar long V15 tmp7 u:3 $81
N003 ( 5, 4) [000225] -A------R--- \--* = long $81
N002 ( 3, 2) [000223] D------N---- \--* lclVar long V17 tmp9 d:3 $81
***** BB01, stmt 4 (top level)
( 5, 4) [000185] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000227] -------N---- | /--* lclVar long V16 tmp8 u:3 $82
N003 ( 5, 4) [000228] -A------R--- \--* = long $82
N002 ( 3, 2) [000226] D------N---- \--* lclVar long V18 tmp10 d:3 $82
***** BB01, stmt 5 (top level)
( 10, 10) [000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N006 ( 3, 2) [000235] -------N---- | /--* lclVar long V15 tmp7 u:3 (last use) $81
N007 ( 10, 10) [000236] -A--G------- \--* = long $VN.Void
N005 ( 6, 7) [000234] *---G--N---- \--* indir long $81
N003 ( 1, 1) [000232] ------------ | /--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000233] ----G--N---- \--* + byref $241
N002 ( 3, 5) [000230] ----G------- \--* addr byref $240
N001 ( 3, 4) [000231] U------N---- \--* lclFld struct V02 loc2 ud:2->3[+0] Fseq[v1] <l:$1c0, c:$1c1>
***** BB01, stmt 6 (top level)
( 10, 10) [000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N006 ( 3, 2) [000245] -------N---- | /--* lclVar long V16 tmp8 u:3 (last use) $82
N007 ( 10, 10) [000246] -A--G------- \--* = long $VN.Void
N005 ( 6, 7) [000244] *---G--N---- \--* indir long $82
N003 ( 1, 1) [000242] ------------ | /--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000243] ----G--N---- \--* + byref $243
N002 ( 3, 5) [000240] ----G------- \--* addr byref $242
N001 ( 3, 4) [000241] U------N---- \--* lclFld struct V02 loc2 ud:3->4[+8] Fseq[v2] <l:$1c2, c:$1c3>
***** BB01, stmt 7 (top level)
( 5, 4) [000213] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000248] -------N---- | /--* lclVar long V16 tmp8 u:3 (last use) $82
N003 ( 5, 4) [000249] -A------R--- \--* = long $82
N002 ( 3, 2) [000247] D------N---- \--* lclVar long V19 tmp11 d:3 $82
***** BB01, stmt 8 (top level)
( 5, 4) [000219] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000251] -------N---- | /--* lclVar long V15 tmp7 u:3 (last use) $81
N003 ( 5, 4) [000252] -A------R--- \--* = long $81
N002 ( 3, 2) [000250] D------N---- \--* lclVar long V20 tmp12 d:3 $81
***** BB01, stmt 9 (top level)
( 10, 10) [000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N006 ( 3, 2) [000259] -------N---- | /--* lclVar long V19 tmp11 u:3 (last use) $82
N007 ( 10, 10) [000260] -A--G------- \--* = long $VN.Void
N005 ( 6, 7) [000258] *---G--N---- \--* indir long $82
N003 ( 1, 1) [000256] ------------ | /--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000257] ----G--N---- \--* + byref $245
N002 ( 3, 5) [000254] ----G------- \--* addr byref $244
N001 ( 3, 4) [000255] U------N---- \--* lclFld struct V03 loc3 ud:2->3[+0] Fseq[v1] <l:$1c4, c:$1c5>
***** BB01, stmt 10 (top level)
( 10, 10) [000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N006 ( 3, 2) [000269] -------N---- | /--* lclVar long V20 tmp12 u:3 (last use) $81
N007 ( 10, 10) [000270] -A--G------- \--* = long $VN.Void
N005 ( 6, 7) [000268] *---G--N---- \--* indir long $81
N003 ( 1, 1) [000266] ------------ | /--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000267] ----G--N---- \--* + byref $247
N002 ( 3, 5) [000264] ----G------- \--* addr byref $246
N001 ( 3, 4) [000265] U------N---- \--* lclFld struct V03 loc3 ud:3->4[+8] Fseq[v2] <l:$1c6, c:$1c7>
***** BB01, stmt 11 (top level)
( 33, 21) [000046] ------------ * stmtExpr void (top level) (IL 0x026... ???)
N012 ( 29, 18) [000040] --CXG------- | /--* call int Program.IsXGeater $380
N006 ( 1, 1) [000273] ------------ | | | /--* const int 16 $44
N007 ( 9, 9) [000274] -A--G-----L- arg0 SETUP | | +--* copyBlk void $VN.Void
N002 ( 3, 3) [000041] L----------- | | | | /--* addr byref $248
N001 ( 3, 2) [000039] -------N---- | | | | | \--* lclVar struct V02 loc2 u:4 $2c1
N005 ( 7, 7) [000275] --------R--- | | | \--* <list> void $340
N004 ( 3, 3) [000272] L----------- | | | \--* addr byref $300
N003 ( 3, 2) [000271] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000277] L----------- arg0 in rcx | | \--* addr long $301
N009 ( 3, 2) [000276] -------N---- | | \--* lclVar struct(AX) V21 tmp13 $1c8
N014 ( 33, 21) [000045] -ACXG---R--- \--* = int $380
N013 ( 3, 2) [000044] D------N---- \--* lclVar int V04 loc4 d:3 $380
***** BB01, stmt 12 (top level)
( 33, 21) [000054] ------------ * stmtExpr void (top level) (IL 0x02E...0x034)
N012 ( 29, 18) [000048] --CXG------- | /--* call int Program.IsXGeater $382
N006 ( 1, 1) [000281] ------------ | | | /--* const int 16 $44
N007 ( 9, 9) [000282] -A--G-----L- arg0 SETUP | | +--* copyBlk void $VN.Void
N002 ( 3, 3) [000049] L----------- | | | | /--* addr byref $249
N001 ( 3, 2) [000047] -------N---- | | | | | \--* lclVar struct V03 loc3 u:4 $2c3
N005 ( 7, 7) [000283] --------R--- | | | \--* <list> void $343
N004 ( 3, 3) [000280] L----------- | | | \--* addr byref $302
N003 ( 3, 2) [000279] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000285] L----------- arg0 in rcx | | \--* addr long $303
N009 ( 3, 2) [000284] -------N---- | | \--* lclVar struct(AX) V21 tmp13 $1c9
N014 ( 33, 21) [000053] -ACXG---R--- \--* = int $382
N013 ( 3, 2) [000052] D------N---- \--* lclVar int V05 loc5 d:3 $382
***** BB01, stmt 13 (top level)
( 33, 21) [000062] ------------ * stmtExpr void (top level) (IL 0x036...0x03C)
N012 ( 29, 18) [000056] --CXG------- | /--* call int Program.IsXGeater $384
N006 ( 1, 1) [000289] ------------ | | | /--* const int 16 $44
N007 ( 9, 9) [000290] -A--G-----L- arg0 SETUP | | +--* copyBlk void $VN.Void
N002 ( 3, 3) [000057] L----------- | | | | /--* addr byref $248
N001 ( 3, 2) [000055] -------N---- | | | | | \--* lclVar struct V02 loc2 u:4 (last use) $2c1
N005 ( 7, 7) [000291] --------R--- | | | \--* <list> void $345
N004 ( 3, 3) [000288] L----------- | | | \--* addr byref $304
N003 ( 3, 2) [000287] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000293] L----------- arg0 in rcx | | \--* addr long $305
N009 ( 3, 2) [000292] -------N---- | | \--* lclVar struct(AX) V21 tmp13 $1ca
N014 ( 33, 21) [000061] -ACXG---R--- \--* = int $384
N013 ( 3, 2) [000060] D------N---- \--* lclVar int V06 loc6 d:3 $384
***** BB01, stmt 14 (top level)
( 33, 21) [000070] ------------ * stmtExpr void (top level) (IL 0x03E...0x044)
N012 ( 29, 18) [000064] --CXG------- | /--* call int Program.IsXGeater $386
N006 ( 1, 1) [000297] ------------ | | | /--* const int 16 $44
N007 ( 9, 9) [000298] -A--G-----L- arg0 SETUP | | +--* copyBlk void $VN.Void
N002 ( 3, 3) [000065] L----------- | | | | /--* addr byref $249
N001 ( 3, 2) [000063] -------N---- | | | | | \--* lclVar struct V03 loc3 u:4 (last use) $2c3
N005 ( 7, 7) [000299] --------R--- | | | \--* <list> void $347
N004 ( 3, 3) [000296] L----------- | | | \--* addr byref $306
N003 ( 3, 2) [000295] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000301] L----------- arg0 in rcx | | \--* addr long $307
N009 ( 3, 2) [000300] -------N---- | | \--* lclVar struct(AX) V21 tmp13 $1cb
N014 ( 33, 21) [000069] -ACXG---R--- \--* = int $386
N013 ( 3, 2) [000068] D------N---- \--* lclVar int V07 loc7 d:3 $386
***** BB01, stmt 15 (top level)
( 7, 6) [000075] ------------ * stmtExpr void (top level) (IL 0x046...0x048)
N004 ( 7, 6) [000074] ------------ \--* jmpTrue void
N002 ( 1, 1) [000072] ------------ | /--* const int 0 $40
N003 ( 5, 4) [000073] J------N---- \--* == int $400
N001 ( 3, 2) [000071] ------------ \--* lclVar int V04 loc4 u:3 (last use) $380
------------ BB02 [04A..056) -> BB10 (always), preds={BB01} succs={BB10}
***** BB02, stmt 16 (top level)
( 19, 18) [000130] ------------ * stmtExpr void (top level) (IL 0x04A...0x055)
N006 ( 19, 18) [000128] --C-G------- \--* call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000304] ----G------- arg0 in rcx \--* indir ref $3d1
N003 ( 3, 10) [000303] ------------ \--* const(h) long 0xD6273068 "Fail" $186
***** BB02, stmt 17 (top level)
( 1, 3) [000133] ------------ * stmtExpr void (top level) (IL 0x054... ???)
N001 ( 1, 1) [000131] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000308] -A-----NR--- \--* = int $41
N002 ( 1, 1) [000307] D------N---- \--* lclVar int V08 tmp0 d:7 $41
------------ BB03 [056..05A) -> BB05 (cond), preds={BB01} succs={BB04,BB05}
***** BB03, stmt 18 (top level)
( 7, 6) [000081] ------------ * stmtExpr void (top level) (IL 0x056...0x058)
N004 ( 7, 6) [000080] ------------ \--* jmpTrue void
N002 ( 1, 1) [000078] ------------ | /--* const int 0 $40
N003 ( 5, 4) [000079] J------N---- \--* != int $401
N001 ( 3, 2) [000077] ------------ \--* lclVar int V05 loc5 u:3 (last use) $382
------------ BB04 [05A..066) -> BB10 (always), preds={BB03} succs={BB10}
***** BB04, stmt 19 (top level)
( 19, 18) [000122] ------------ * stmtExpr void (top level) (IL 0x05A...0x065)
N006 ( 19, 18) [000120] --C-G------- \--* call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000310] ----G------- arg0 in rcx \--* indir ref $3ce
N003 ( 3, 10) [000309] ------------ \--* const(h) long 0xD6273068 "Fail" $186
***** BB04, stmt 20 (top level)
( 1, 3) [000125] ------------ * stmtExpr void (top level) (IL 0x064... ???)
N001 ( 1, 1) [000123] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000314] -A-----NR--- \--* = int $41
N002 ( 1, 1) [000313] D------N---- \--* lclVar int V08 tmp0 d:6 $41
------------ BB05 [066..06A) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
***** BB05, stmt 21 (top level)
( 7, 6) [000087] ------------ * stmtExpr void (top level) (IL 0x066...0x068)
N004 ( 7, 6) [000086] ------------ \--* jmpTrue void
N002 ( 1, 1) [000084] ------------ | /--* const int 0 $40
N003 ( 5, 4) [000085] J------N---- \--* == int $402
N001 ( 3, 2) [000083] ------------ \--* lclVar int V06 loc6 u:3 (last use) $384
------------ BB06 [06A..076) -> BB10 (always), preds={BB05} succs={BB10}
***** BB06, stmt 22 (top level)
( 19, 18) [000114] ------------ * stmtExpr void (top level) (IL 0x06A...0x075)
N006 ( 19, 18) [000112] --C-G------- \--* call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000316] ----G------- arg0 in rcx \--* indir ref $3cb
N003 ( 3, 10) [000315] ------------ \--* const(h) long 0xD6273068 "Fail" $186
***** BB06, stmt 23 (top level)
( 1, 3) [000117] ------------ * stmtExpr void (top level) (IL 0x074... ???)
N001 ( 1, 1) [000115] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000320] -A-----NR--- \--* = int $41
N002 ( 1, 1) [000319] D------N---- \--* lclVar int V08 tmp0 d:5 $41
------------ BB07 [076..07A) -> BB09 (cond), preds={BB05} succs={BB08,BB09}
***** BB07, stmt 24 (top level)
( 7, 6) [000093] ------------ * stmtExpr void (top level) (IL 0x076...0x078)
N004 ( 7, 6) [000092] ------------ \--* jmpTrue void
N002 ( 1, 1) [000090] ------------ | /--* const int 0 $40
N003 ( 5, 4) [000091] J------N---- \--* != int $403
N001 ( 3, 2) [000089] ------------ \--* lclVar int V07 loc7 u:3 (last use) $386
------------ BB08 [07A..086) -> BB10 (always), preds={BB07} succs={BB10}
***** BB08, stmt 25 (top level)
( 19, 18) [000106] ------------ * stmtExpr void (top level) (IL 0x07A...0x085)
N006 ( 19, 18) [000104] --C-G------- \--* call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000322] ----G------- arg0 in rcx \--* indir ref $3c8
N003 ( 3, 10) [000321] ------------ \--* const(h) long 0xD6273068 "Fail" $186
***** BB08, stmt 26 (top level)
( 1, 3) [000109] ------------ * stmtExpr void (top level) (IL 0x084... ???)
N001 ( 1, 1) [000107] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000326] -A-----NR--- \--* = int $41
N002 ( 1, 1) [000325] D------N---- \--* lclVar int V08 tmp0 d:3 $41
------------ BB09 [086..093), preds={BB07} succs={BB10}
***** BB09, stmt 27 (top level)
( 19, 18) [000098] ------------ * stmtExpr void (top level) (IL 0x086...0x092)
N006 ( 19, 18) [000096] --C-G------- \--* call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000328] ----G------- arg0 in rcx \--* indir ref $3c5
N003 ( 3, 10) [000327] ------------ \--* const(h) long 0xD6273070 "Pass" $184
***** BB09, stmt 28 (top level)
( 1, 3) [000101] ------------ * stmtExpr void (top level) (IL 0x090... ???)
N001 ( 1, 1) [000099] ------------ | /--* const int 100 $45
N003 ( 1, 3) [000332] -A-----NR--- \--* = int $45
N002 ( 1, 1) [000331] D------N---- \--* lclVar int V08 tmp0 d:4 $45
------------ BB10 [???..???) (return), preds={BB02,BB04,BB06,BB08,BB09} succs={}
***** BB10, stmt 29 (top level)
( 6, 6) [000336] ------------ * stmtExpr void (top level) (IL ???... ???)
N011 ( 6, 6) [000334] ------------ | * phi int
N001 ( 0, 0) [000345] ------------ | /--* phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ | +--* phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ | +--* phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ | +--* phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ | \--* phiArg int V08 tmp0 u:3 $41
N013 ( 6, 6) [000335] -A------R--- \--* = int
N012 ( 1, 1) [000333] D------N---- \--* lclVar int V08 tmp0 d:8
***** BB10, stmt 30 (top level)
( 2, 2) [000136] ------------ * stmtExpr void (top level) (IL ???... ???)
N002 ( 2, 2) [000135] ------------ \--* return int $38d
N001 ( 1, 1) [000134] -------N---- \--* lclVar int V08 tmp0 u:8 (last use) $440
-------------------------------------------------------------------------------------------------------------------
*************** In fgDetermineFirstColdBlock()
No procedure splitting will be done for this method
*************** In IR Rationalize
Trees before IR Rationalize
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 0.5 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 0.5 [056..05A)-> BB05 ( cond ) i label target gcsafe
BB04 [0000026AC4437578] 1 BB03 0.5 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 0.5 [066..06A)-> BB07 ( cond ) i label target gcsafe
BB06 [0000026AC4437788] 1 BB05 0.5 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 0.5 [076..07A)-> BB09 ( cond ) i label target gcsafe
BB08 [0000026AC4437998] 1 BB07 0.5 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 0.5 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target gcsafe
-------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..04A) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1 (top level)
( 1, 3) [000143] ------------ * stmtExpr void (top level) (IL 0x000... ???)
N001 ( 1, 1) [000004] ------------ | /--* const long 10 $81
N003 ( 1, 3) [000142] -A--G---R--- \--* = long $81
N002 ( 1, 1) [000141] D------N---- \--* lclVar long V15 tmp7 d:3 $81
***** BB01, stmt 2 (top level)
( 1, 3) [000151] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
N001 ( 1, 1) [000011] ------------ | /--* const long 20 $82
N003 ( 1, 3) [000150] -A--G---R--- \--* = long $82
N002 ( 1, 1) [000149] D------N---- \--* lclVar long V16 tmp8 d:3 $82
***** BB01, stmt 3 (top level)
( 5, 4) [000179] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000224] -------N---- | /--* lclVar long V15 tmp7 u:3 $81
N003 ( 5, 4) [000225] -A------R--- \--* = long $81
N002 ( 3, 2) [000223] D------N---- \--* lclVar long V17 tmp9 d:3 $81
***** BB01, stmt 4 (top level)
( 5, 4) [000185] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000227] -------N---- | /--* lclVar long V16 tmp8 u:3 $82
N003 ( 5, 4) [000228] -A------R--- \--* = long $82
N002 ( 3, 2) [000226] D------N---- \--* lclVar long V18 tmp10 d:3 $82
***** BB01, stmt 5 (top level)
( 10, 10) [000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N006 ( 3, 2) [000235] -------N---- | /--* lclVar long V15 tmp7 u:3 (last use) $81
N007 ( 10, 10) [000236] -A--G------- \--* = long $VN.Void
N005 ( 6, 7) [000234] *---G--N---- \--* indir long $81
N003 ( 1, 1) [000232] ------------ | /--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000233] ----G--N---- \--* + byref $241
N002 ( 3, 5) [000230] ----G------- \--* addr byref $240
N001 ( 3, 4) [000231] U------N---- \--* lclFld struct V02 loc2 ud:2->3[+0] Fseq[v1] <l:$1c0, c:$1c1>
***** BB01, stmt 6 (top level)
( 10, 10) [000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N006 ( 3, 2) [000245] -------N---- | /--* lclVar long V16 tmp8 u:3 (last use) $82
N007 ( 10, 10) [000246] -A--G------- \--* = long $VN.Void
N005 ( 6, 7) [000244] *---G--N---- \--* indir long $82
N003 ( 1, 1) [000242] ------------ | /--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000243] ----G--N---- \--* + byref $243
N002 ( 3, 5) [000240] ----G------- \--* addr byref $242
N001 ( 3, 4) [000241] U------N---- \--* lclFld struct V02 loc2 ud:3->4[+8] Fseq[v2] <l:$1c2, c:$1c3>
***** BB01, stmt 7 (top level)
( 5, 4) [000213] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000248] -------N---- | /--* lclVar long V16 tmp8 u:3 (last use) $82
N003 ( 5, 4) [000249] -A------R--- \--* = long $82
N002 ( 3, 2) [000247] D------N---- \--* lclVar long V19 tmp11 d:3 $82
***** BB01, stmt 8 (top level)
( 5, 4) [000219] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000251] -------N---- | /--* lclVar long V15 tmp7 u:3 (last use) $81
N003 ( 5, 4) [000252] -A------R--- \--* = long $81
N002 ( 3, 2) [000250] D------N---- \--* lclVar long V20 tmp12 d:3 $81
***** BB01, stmt 9 (top level)
( 10, 10) [000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N006 ( 3, 2) [000259] -------N---- | /--* lclVar long V19 tmp11 u:3 (last use) $82
N007 ( 10, 10) [000260] -A--G------- \--* = long $VN.Void
N005 ( 6, 7) [000258] *---G--N---- \--* indir long $82
N003 ( 1, 1) [000256] ------------ | /--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000257] ----G--N---- \--* + byref $245
N002 ( 3, 5) [000254] ----G------- \--* addr byref $244
N001 ( 3, 4) [000255] U------N---- \--* lclFld struct V03 loc3 ud:2->3[+0] Fseq[v1] <l:$1c4, c:$1c5>
***** BB01, stmt 10 (top level)
( 10, 10) [000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N006 ( 3, 2) [000269] -------N---- | /--* lclVar long V20 tmp12 u:3 (last use) $81
N007 ( 10, 10) [000270] -A--G------- \--* = long $VN.Void
N005 ( 6, 7) [000268] *---G--N---- \--* indir long $81
N003 ( 1, 1) [000266] ------------ | /--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000267] ----G--N---- \--* + byref $247
N002 ( 3, 5) [000264] ----G------- \--* addr byref $246
N001 ( 3, 4) [000265] U------N---- \--* lclFld struct V03 loc3 ud:3->4[+8] Fseq[v2] <l:$1c6, c:$1c7>
***** BB01, stmt 11 (top level)
( 33, 21) [000046] ------------ * stmtExpr void (top level) (IL 0x026... ???)
N012 ( 29, 18) [000040] --CXG------- | /--* call int Program.IsXGeater $380
N006 ( 1, 1) [000273] ------------ | | | /--* const int 16 $44
N007 ( 9, 9) [000274] -A--G-----L- arg0 SETUP | | +--* copyBlk void $VN.Void
N002 ( 3, 3) [000041] L----------- | | | | /--* addr byref $248
N001 ( 3, 2) [000039] -------N---- | | | | | \--* lclVar struct V02 loc2 u:4 $2c1
N005 ( 7, 7) [000275] --------R--- | | | \--* <list> void $340
N004 ( 3, 3) [000272] L----------- | | | \--* addr byref $300
N003 ( 3, 2) [000271] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000277] L----------- arg0 in rcx | | \--* addr long $301
N009 ( 3, 2) [000276] -------N---- | | \--* lclVar struct(AX) V21 tmp13 $1c8
N014 ( 33, 21) [000045] -ACXG---R--- \--* = int $380
N013 ( 3, 2) [000044] D------N---- \--* lclVar int V04 loc4 d:3 $380
***** BB01, stmt 12 (top level)
( 33, 21) [000054] ------------ * stmtExpr void (top level) (IL 0x02E...0x034)
N012 ( 29, 18) [000048] --CXG------- | /--* call int Program.IsXGeater $382
N006 ( 1, 1) [000281] ------------ | | | /--* const int 16 $44
N007 ( 9, 9) [000282] -A--G-----L- arg0 SETUP | | +--* copyBlk void $VN.Void
N002 ( 3, 3) [000049] L----------- | | | | /--* addr byref $249
N001 ( 3, 2) [000047] -------N---- | | | | | \--* lclVar struct V03 loc3 u:4 $2c3
N005 ( 7, 7) [000283] --------R--- | | | \--* <list> void $343
N004 ( 3, 3) [000280] L----------- | | | \--* addr byref $302
N003 ( 3, 2) [000279] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000285] L----------- arg0 in rcx | | \--* addr long $303
N009 ( 3, 2) [000284] -------N---- | | \--* lclVar struct(AX) V21 tmp13 $1c9
N014 ( 33, 21) [000053] -ACXG---R--- \--* = int $382
N013 ( 3, 2) [000052] D------N---- \--* lclVar int V05 loc5 d:3 $382
***** BB01, stmt 13 (top level)
( 33, 21) [000062] ------------ * stmtExpr void (top level) (IL 0x036...0x03C)
N012 ( 29, 18) [000056] --CXG------- | /--* call int Program.IsXGeater $384
N006 ( 1, 1) [000289] ------------ | | | /--* const int 16 $44
N007 ( 9, 9) [000290] -A--G-----L- arg0 SETUP | | +--* copyBlk void $VN.Void
N002 ( 3, 3) [000057] L----------- | | | | /--* addr byref $248
N001 ( 3, 2) [000055] -------N---- | | | | | \--* lclVar struct V02 loc2 u:4 (last use) $2c1
N005 ( 7, 7) [000291] --------R--- | | | \--* <list> void $345
N004 ( 3, 3) [000288] L----------- | | | \--* addr byref $304
N003 ( 3, 2) [000287] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000293] L----------- arg0 in rcx | | \--* addr long $305
N009 ( 3, 2) [000292] -------N---- | | \--* lclVar struct(AX) V21 tmp13 $1ca
N014 ( 33, 21) [000061] -ACXG---R--- \--* = int $384
N013 ( 3, 2) [000060] D------N---- \--* lclVar int V06 loc6 d:3 $384
***** BB01, stmt 14 (top level)
( 33, 21) [000070] ------------ * stmtExpr void (top level) (IL 0x03E...0x044)
N012 ( 29, 18) [000064] --CXG------- | /--* call int Program.IsXGeater $386
N006 ( 1, 1) [000297] ------------ | | | /--* const int 16 $44
N007 ( 9, 9) [000298] -A--G-----L- arg0 SETUP | | +--* copyBlk void $VN.Void
N002 ( 3, 3) [000065] L----------- | | | | /--* addr byref $249
N001 ( 3, 2) [000063] -------N---- | | | | | \--* lclVar struct V03 loc3 u:4 (last use) $2c3
N005 ( 7, 7) [000299] --------R--- | | | \--* <list> void $347
N004 ( 3, 3) [000296] L----------- | | | \--* addr byref $306
N003 ( 3, 2) [000295] D------N---- | | | \--* lclVar struct(AX) V21 tmp13
N010 ( 3, 3) [000301] L----------- arg0 in rcx | | \--* addr long $307
N009 ( 3, 2) [000300] -------N---- | | \--* lclVar struct(AX) V21 tmp13 $1cb
N014 ( 33, 21) [000069] -ACXG---R--- \--* = int $386
N013 ( 3, 2) [000068] D------N---- \--* lclVar int V07 loc7 d:3 $386
***** BB01, stmt 15 (top level)
( 7, 6) [000075] ------------ * stmtExpr void (top level) (IL 0x046...0x048)
N004 ( 7, 6) [000074] ------------ \--* jmpTrue void
N002 ( 1, 1) [000072] ------------ | /--* const int 0 $40
N003 ( 5, 4) [000073] J------N---- \--* == int $400
N001 ( 3, 2) [000071] ------------ \--* lclVar int V04 loc4 u:3 (last use) $380
------------ BB02 [04A..056) -> BB10 (always), preds={BB01} succs={BB10}
***** BB02, stmt 16 (top level)
( 19, 18) [000130] ------------ * stmtExpr void (top level) (IL 0x04A...0x055)
N006 ( 19, 18) [000128] --C-G------- \--* call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000304] ----G------- arg0 in rcx \--* indir ref $3d1
N003 ( 3, 10) [000303] ------------ \--* const(h) long 0xD6273068 "Fail" $186
***** BB02, stmt 17 (top level)
( 1, 3) [000133] ------------ * stmtExpr void (top level) (IL 0x054... ???)
N001 ( 1, 1) [000131] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000308] -A-----NR--- \--* = int $41
N002 ( 1, 1) [000307] D------N---- \--* lclVar int V08 tmp0 d:7 $41
------------ BB03 [056..05A) -> BB05 (cond), preds={BB01} succs={BB04,BB05}
***** BB03, stmt 18 (top level)
( 7, 6) [000081] ------------ * stmtExpr void (top level) (IL 0x056...0x058)
N004 ( 7, 6) [000080] ------------ \--* jmpTrue void
N002 ( 1, 1) [000078] ------------ | /--* const int 0 $40
N003 ( 5, 4) [000079] J------N---- \--* != int $401
N001 ( 3, 2) [000077] ------------ \--* lclVar int V05 loc5 u:3 (last use) $382
------------ BB04 [05A..066) -> BB10 (always), preds={BB03} succs={BB10}
***** BB04, stmt 19 (top level)
( 19, 18) [000122] ------------ * stmtExpr void (top level) (IL 0x05A...0x065)
N006 ( 19, 18) [000120] --C-G------- \--* call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000310] ----G------- arg0 in rcx \--* indir ref $3ce
N003 ( 3, 10) [000309] ------------ \--* const(h) long 0xD6273068 "Fail" $186
***** BB04, stmt 20 (top level)
( 1, 3) [000125] ------------ * stmtExpr void (top level) (IL 0x064... ???)
N001 ( 1, 1) [000123] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000314] -A-----NR--- \--* = int $41
N002 ( 1, 1) [000313] D------N---- \--* lclVar int V08 tmp0 d:6 $41
------------ BB05 [066..06A) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
***** BB05, stmt 21 (top level)
( 7, 6) [000087] ------------ * stmtExpr void (top level) (IL 0x066...0x068)
N004 ( 7, 6) [000086] ------------ \--* jmpTrue void
N002 ( 1, 1) [000084] ------------ | /--* const int 0 $40
N003 ( 5, 4) [000085] J------N---- \--* == int $402
N001 ( 3, 2) [000083] ------------ \--* lclVar int V06 loc6 u:3 (last use) $384
------------ BB06 [06A..076) -> BB10 (always), preds={BB05} succs={BB10}
***** BB06, stmt 22 (top level)
( 19, 18) [000114] ------------ * stmtExpr void (top level) (IL 0x06A...0x075)
N006 ( 19, 18) [000112] --C-G------- \--* call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000316] ----G------- arg0 in rcx \--* indir ref $3cb
N003 ( 3, 10) [000315] ------------ \--* const(h) long 0xD6273068 "Fail" $186
***** BB06, stmt 23 (top level)
( 1, 3) [000117] ------------ * stmtExpr void (top level) (IL 0x074... ???)
N001 ( 1, 1) [000115] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000320] -A-----NR--- \--* = int $41
N002 ( 1, 1) [000319] D------N---- \--* lclVar int V08 tmp0 d:5 $41
------------ BB07 [076..07A) -> BB09 (cond), preds={BB05} succs={BB08,BB09}
***** BB07, stmt 24 (top level)
( 7, 6) [000093] ------------ * stmtExpr void (top level) (IL 0x076...0x078)
N004 ( 7, 6) [000092] ------------ \--* jmpTrue void
N002 ( 1, 1) [000090] ------------ | /--* const int 0 $40
N003 ( 5, 4) [000091] J------N---- \--* != int $403
N001 ( 3, 2) [000089] ------------ \--* lclVar int V07 loc7 u:3 (last use) $386
------------ BB08 [07A..086) -> BB10 (always), preds={BB07} succs={BB10}
***** BB08, stmt 25 (top level)
( 19, 18) [000106] ------------ * stmtExpr void (top level) (IL 0x07A...0x085)
N006 ( 19, 18) [000104] --C-G------- \--* call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000322] ----G------- arg0 in rcx \--* indir ref $3c8
N003 ( 3, 10) [000321] ------------ \--* const(h) long 0xD6273068 "Fail" $186
***** BB08, stmt 26 (top level)
( 1, 3) [000109] ------------ * stmtExpr void (top level) (IL 0x084... ???)
N001 ( 1, 1) [000107] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000326] -A-----NR--- \--* = int $41
N002 ( 1, 1) [000325] D------N---- \--* lclVar int V08 tmp0 d:3 $41
------------ BB09 [086..093), preds={BB07} succs={BB10}
***** BB09, stmt 27 (top level)
( 19, 18) [000098] ------------ * stmtExpr void (top level) (IL 0x086...0x092)
N006 ( 19, 18) [000096] --C-G------- \--* call void System.Console.WriteLine $VN.Void
N004 ( 5, 12) [000328] ----G------- arg0 in rcx \--* indir ref $3c5
N003 ( 3, 10) [000327] ------------ \--* const(h) long 0xD6273070 "Pass" $184
***** BB09, stmt 28 (top level)
( 1, 3) [000101] ------------ * stmtExpr void (top level) (IL 0x090... ???)
N001 ( 1, 1) [000099] ------------ | /--* const int 100 $45
N003 ( 1, 3) [000332] -A-----NR--- \--* = int $45
N002 ( 1, 1) [000331] D------N---- \--* lclVar int V08 tmp0 d:4 $45
------------ BB10 [???..???) (return), preds={BB02,BB04,BB06,BB08,BB09} succs={}
***** BB10, stmt 29 (top level)
( 6, 6) [000336] ------------ * stmtExpr void (top level) (IL ???... ???)
N011 ( 6, 6) [000334] ------------ | * phi int
N001 ( 0, 0) [000345] ------------ | /--* phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ | +--* phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ | +--* phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ | +--* phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ | \--* phiArg int V08 tmp0 u:3 $41
N013 ( 6, 6) [000335] -A------R--- \--* = int
N012 ( 1, 1) [000333] D------N---- \--* lclVar int V08 tmp0 d:8
***** BB10, stmt 30 (top level)
( 2, 2) [000136] ------------ * stmtExpr void (top level) (IL ???... ???)
N002 ( 2, 2) [000135] ------------ \--* return int $38d
N001 ( 1, 1) [000134] -------N---- \--* lclVar int V08 tmp0 u:8 (last use) $440
-------------------------------------------------------------------------------------------------------------------
Tree Transform Rationalization: BB01
( 1, 3) [000143] ------------ * stmtExpr void (top level) (IL 0x000... ???)
N001 ( 1, 1) [000004] ------------ | /--* const long 10 $81
N002 ( 1, 1) [000141] D------N---- | +--* lclVar long V15 tmp7 d:3 $81
N003 ( 1, 3) [000142] -A--G---R--- \--* = long $81
RewriteSimpleTransforms, with statement:
( 1, 3) [000143] ------------ * stmtExpr void (top level) (IL 0x000... ???)
N001 ( 1, 1) [000004] ------------ | /--* const long 10 $81
N002 ( 1, 1) [000141] D------N---- | +--* lclVar long V15 tmp7 d:3 $81
N003 ( 1, 3) [000142] -A--G---R--- \--* = long $81
rewriting GT_ASG(GT_LCL_VAR, X) to GT_STORE_LCL_VAR(X)
N003 ( 1, 3) [000142] DA--G------- * st.lclVar long V15 tmp7 d:3
After simple transforms:
( 1, 3) [000143] ------------ * stmtExpr void (top level) (IL 0x000... ???)
N001 ( 1, 1) [000004] ------------ | /--* const long 10 $81
N003 ( 1, 3) [000142] DA--G------- \--* st.lclVar long V15 tmp7 d:3
comma processing top level statment:
( 1, 3) [000143] ------------ * stmtExpr void (top level) (IL 0x000... ???)
N001 ( 1, 1) [000004] ------------ | /--* const long 10 $81
N003 ( 1, 3) [000142] DA--G------- \--* st.lclVar long V15 tmp7 d:3
Tree Transform Rationalization: BB01
( 1, 3) [000151] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
N001 ( 1, 1) [000011] ------------ | /--* const long 20 $82
N002 ( 1, 1) [000149] D------N---- | +--* lclVar long V16 tmp8 d:3 $82
N003 ( 1, 3) [000150] -A--G---R--- \--* = long $82
RewriteSimpleTransforms, with statement:
( 1, 3) [000151] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
N001 ( 1, 1) [000011] ------------ | /--* const long 20 $82
N002 ( 1, 1) [000149] D------N---- | +--* lclVar long V16 tmp8 d:3 $82
N003 ( 1, 3) [000150] -A--G---R--- \--* = long $82
rewriting GT_ASG(GT_LCL_VAR, X) to GT_STORE_LCL_VAR(X)
N003 ( 1, 3) [000150] DA--G------- * st.lclVar long V16 tmp8 d:3
After simple transforms:
( 1, 3) [000151] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
N001 ( 1, 1) [000011] ------------ | /--* const long 20 $82
N003 ( 1, 3) [000150] DA--G------- \--* st.lclVar long V16 tmp8 d:3
comma processing top level statment:
( 1, 3) [000151] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
N001 ( 1, 1) [000011] ------------ | /--* const long 20 $82
N003 ( 1, 3) [000150] DA--G------- \--* st.lclVar long V16 tmp8 d:3
Tree Transform Rationalization: BB01
( 5, 4) [000179] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000224] -------N---- | /--* lclVar long V15 tmp7 u:3 $81
N002 ( 3, 2) [000223] D------N---- | +--* lclVar long V17 tmp9 d:3 $81
N003 ( 5, 4) [000225] -A------R--- \--* = long $81
RewriteSimpleTransforms, with statement:
( 5, 4) [000179] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000224] -------N---- | /--* lclVar long V15 tmp7 u:3 $81
N002 ( 3, 2) [000223] D------N---- | +--* lclVar long V17 tmp9 d:3 $81
N003 ( 5, 4) [000225] -A------R--- \--* = long $81
rewriting GT_ASG(GT_LCL_VAR, X) to GT_STORE_LCL_VAR(X)
N003 ( 5, 4) [000225] DA---------- * st.lclVar long V17 tmp9 d:3
After simple transforms:
( 5, 4) [000179] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000224] -------N---- | /--* lclVar long V15 tmp7 u:3 $81
N003 ( 5, 4) [000225] DA---------- \--* st.lclVar long V17 tmp9 d:3
comma processing top level statment:
( 5, 4) [000179] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000224] -------N---- | /--* lclVar long V15 tmp7 u:3 $81
N003 ( 5, 4) [000225] DA---------- \--* st.lclVar long V17 tmp9 d:3
Tree Transform Rationalization: BB01
( 5, 4) [000185] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000227] -------N---- | /--* lclVar long V16 tmp8 u:3 $82
N002 ( 3, 2) [000226] D------N---- | +--* lclVar long V18 tmp10 d:3 $82
N003 ( 5, 4) [000228] -A------R--- \--* = long $82
RewriteSimpleTransforms, with statement:
( 5, 4) [000185] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000227] -------N---- | /--* lclVar long V16 tmp8 u:3 $82
N002 ( 3, 2) [000226] D------N---- | +--* lclVar long V18 tmp10 d:3 $82
N003 ( 5, 4) [000228] -A------R--- \--* = long $82
rewriting GT_ASG(GT_LCL_VAR, X) to GT_STORE_LCL_VAR(X)
N003 ( 5, 4) [000228] DA---------- * st.lclVar long V18 tmp10 d:3
After simple transforms:
( 5, 4) [000185] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000227] -------N---- | /--* lclVar long V16 tmp8 u:3 $82
N003 ( 5, 4) [000228] DA---------- \--* st.lclVar long V18 tmp10 d:3
comma processing top level statment:
( 5, 4) [000185] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000227] -------N---- | /--* lclVar long V16 tmp8 u:3 $82
N003 ( 5, 4) [000228] DA---------- \--* st.lclVar long V18 tmp10 d:3
Tree Transform Rationalization: BB01
( 10, 10) [000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 3, 4) [000231] U------N---- | /--* lclFld struct V02 loc2 ud:2->3[+0] Fseq[v1] <l:$1c0, c:$1c1>
N002 ( 3, 5) [000230] ----G------- | /--* addr byref $240
N003 ( 1, 1) [000232] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000233] ----G--N---- | /--* + byref $241
N005 ( 6, 7) [000234] *---G--N---- | /--* indir long $81
N006 ( 3, 2) [000235] -------N---- | +--* lclVar long V15 tmp7 u:3 (last use) $81
N007 ( 10, 10) [000236] -A--G------- \--* = long $VN.Void
RewriteSimpleTransforms, with statement:
( 10, 10) [000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 3, 4) [000231] U------N---- | /--* lclFld struct V02 loc2 ud:2->3[+0] Fseq[v1] <l:$1c0, c:$1c1>
N002 ( 3, 5) [000230] ----G------- | /--* addr byref $240
N003 ( 1, 1) [000232] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000233] ----G--N---- | /--* + byref $241
N005 ( 6, 7) [000234] *---G--N---- | /--* indir long $81
N006 ( 3, 2) [000235] -------N---- | +--* lclVar long V15 tmp7 u:3 (last use) $81
N007 ( 10, 10) [000236] -A--G------- \--* = long $VN.Void
Rewriting GT_ASG(GT_IND, X) to GT_STOREIND(X):
N001 ( 3, 4) [000231] U------N---- /--* lclFld struct V02 loc2 ud:2->3[+0] Fseq[v1] <l:$1c0, c:$1c1>
N002 ( 3, 5) [000230] ----G------- /--* addr byref $240
N003 ( 1, 1) [000232] ------------ +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000233] ----G--N---- /--* + byref $241
N006 ( 3, 2) [000235] -------N---- +--* lclVar long V15 tmp7 u:3 (last use) $81
( 10, 10) [000347] ----G------- * storeIndir long
root:
( 10, 10) [000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 3, 4) [000231] U------N---- | /--* lclFld struct V02 loc2 ud:2->3[+0] Fseq[v1] <l:$1c0, c:$1c1>
N002 ( 3, 5) [000230] ----G------- | /--* addr byref $240
N003 ( 1, 1) [000232] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000233] ----G--N---- | /--* + byref $241
N006 ( 3, 2) [000235] -------N---- | +--* lclVar long V15 tmp7 u:3 (last use) $81
( 10, 10) [000347] ----G------- \--* storeIndir long
Rewriting GT_ADDR(GT_LCL_FLD) to GT_LCL_FLD_ADDR:
=TOS=================
N002 ( 3, 5) [000230] ----G------- addr byref
N004 ( 5, 7) [000233] ----G--N---- + byref
N006.01 ( 10, 10) [000347] ----G------- storeIndir long
=====================
N001 ( 3, 4) [000231] U---G--N---- * &lclFld byref V02 loc2 ud:2->3[+0] Fseq[v1] <l:$1c0, c:$1c1>
After simple transforms:
( 10, 10) [000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 3, 4) [000231] U---G--N---- | /--* &lclFld byref V02 loc2 ud:2->3[+0] Fseq[v1] <l:$1c0, c:$1c1>
N003 ( 1, 1) [000232] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000233] ----G--N---- | /--* + byref $241
N006 ( 3, 2) [000235] -------N---- | +--* lclVar long V15 tmp7 u:3 (last use) $81
( 10, 10) [000347] ----G------- \--* storeIndir long
comma processing top level statment:
( 10, 10) [000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 3, 4) [000231] U---G--N---- | /--* &lclFld byref V02 loc2 ud:2->3[+0] Fseq[v1] <l:$1c0, c:$1c1>
N003 ( 1, 1) [000232] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000233] ----G--N---- | /--* + byref $241
N006 ( 3, 2) [000235] -------N---- | +--* lclVar long V15 tmp7 u:3 (last use) $81
( 10, 10) [000347] ----G------- \--* storeIndir long
Tree Transform Rationalization: BB01
( 10, 10) [000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 3, 4) [000241] U------N---- | /--* lclFld struct V02 loc2 ud:3->4[+8] Fseq[v2] <l:$1c2, c:$1c3>
N002 ( 3, 5) [000240] ----G------- | /--* addr byref $242
N003 ( 1, 1) [000242] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000243] ----G--N---- | /--* + byref $243
N005 ( 6, 7) [000244] *---G--N---- | /--* indir long $82
N006 ( 3, 2) [000245] -------N---- | +--* lclVar long V16 tmp8 u:3 (last use) $82
N007 ( 10, 10) [000246] -A--G------- \--* = long $VN.Void
RewriteSimpleTransforms, with statement:
( 10, 10) [000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 3, 4) [000241] U------N---- | /--* lclFld struct V02 loc2 ud:3->4[+8] Fseq[v2] <l:$1c2, c:$1c3>
N002 ( 3, 5) [000240] ----G------- | /--* addr byref $242
N003 ( 1, 1) [000242] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000243] ----G--N---- | /--* + byref $243
N005 ( 6, 7) [000244] *---G--N---- | /--* indir long $82
N006 ( 3, 2) [000245] -------N---- | +--* lclVar long V16 tmp8 u:3 (last use) $82
N007 ( 10, 10) [000246] -A--G------- \--* = long $VN.Void
Rewriting GT_ASG(GT_IND, X) to GT_STOREIND(X):
N001 ( 3, 4) [000241] U------N---- /--* lclFld struct V02 loc2 ud:3->4[+8] Fseq[v2] <l:$1c2, c:$1c3>
N002 ( 3, 5) [000240] ----G------- /--* addr byref $242
N003 ( 1, 1) [000242] ------------ +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000243] ----G--N---- /--* + byref $243
N006 ( 3, 2) [000245] -------N---- +--* lclVar long V16 tmp8 u:3 (last use) $82
( 10, 10) [000348] ----G------- * storeIndir long
root:
( 10, 10) [000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 3, 4) [000241] U------N---- | /--* lclFld struct V02 loc2 ud:3->4[+8] Fseq[v2] <l:$1c2, c:$1c3>
N002 ( 3, 5) [000240] ----G------- | /--* addr byref $242
N003 ( 1, 1) [000242] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000243] ----G--N---- | /--* + byref $243
N006 ( 3, 2) [000245] -------N---- | +--* lclVar long V16 tmp8 u:3 (last use) $82
( 10, 10) [000348] ----G------- \--* storeIndir long
Rewriting GT_ADDR(GT_LCL_FLD) to GT_LCL_FLD_ADDR:
=TOS=================
N002 ( 3, 5) [000240] ----G------- addr byref
N004 ( 5, 7) [000243] ----G--N---- + byref
N006.01 ( 10, 10) [000348] ----G------- storeIndir long
=====================
N001 ( 3, 4) [000241] U---G--N---- * &lclFld byref V02 loc2 ud:3->4[+8] Fseq[v2] <l:$1c2, c:$1c3>
After simple transforms:
( 10, 10) [000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 3, 4) [000241] U---G--N---- | /--* &lclFld byref V02 loc2 ud:3->4[+8] Fseq[v2] <l:$1c2, c:$1c3>
N003 ( 1, 1) [000242] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000243] ----G--N---- | /--* + byref $243
N006 ( 3, 2) [000245] -------N---- | +--* lclVar long V16 tmp8 u:3 (last use) $82
( 10, 10) [000348] ----G------- \--* storeIndir long
comma processing top level statment:
( 10, 10) [000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 3, 4) [000241] U---G--N---- | /--* &lclFld byref V02 loc2 ud:3->4[+8] Fseq[v2] <l:$1c2, c:$1c3>
N003 ( 1, 1) [000242] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000243] ----G--N---- | /--* + byref $243
N006 ( 3, 2) [000245] -------N---- | +--* lclVar long V16 tmp8 u:3 (last use) $82
( 10, 10) [000348] ----G------- \--* storeIndir long
Tree Transform Rationalization: BB01
( 5, 4) [000213] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000248] -------N---- | /--* lclVar long V16 tmp8 u:3 (last use) $82
N002 ( 3, 2) [000247] D------N---- | +--* lclVar long V19 tmp11 d:3 $82
N003 ( 5, 4) [000249] -A------R--- \--* = long $82
RewriteSimpleTransforms, with statement:
( 5, 4) [000213] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000248] -------N---- | /--* lclVar long V16 tmp8 u:3 (last use) $82
N002 ( 3, 2) [000247] D------N---- | +--* lclVar long V19 tmp11 d:3 $82
N003 ( 5, 4) [000249] -A------R--- \--* = long $82
rewriting GT_ASG(GT_LCL_VAR, X) to GT_STORE_LCL_VAR(X)
N003 ( 5, 4) [000249] DA---------- * st.lclVar long V19 tmp11 d:3
After simple transforms:
( 5, 4) [000213] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000248] -------N---- | /--* lclVar long V16 tmp8 u:3 (last use) $82
N003 ( 5, 4) [000249] DA---------- \--* st.lclVar long V19 tmp11 d:3
comma processing top level statment:
( 5, 4) [000213] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000248] -------N---- | /--* lclVar long V16 tmp8 u:3 (last use) $82
N003 ( 5, 4) [000249] DA---------- \--* st.lclVar long V19 tmp11 d:3
Tree Transform Rationalization: BB01
( 5, 4) [000219] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000251] -------N---- | /--* lclVar long V15 tmp7 u:3 (last use) $81
N002 ( 3, 2) [000250] D------N---- | +--* lclVar long V20 tmp12 d:3 $81
N003 ( 5, 4) [000252] -A------R--- \--* = long $81
RewriteSimpleTransforms, with statement:
( 5, 4) [000219] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000251] -------N---- | /--* lclVar long V15 tmp7 u:3 (last use) $81
N002 ( 3, 2) [000250] D------N---- | +--* lclVar long V20 tmp12 d:3 $81
N003 ( 5, 4) [000252] -A------R--- \--* = long $81
rewriting GT_ASG(GT_LCL_VAR, X) to GT_STORE_LCL_VAR(X)
N003 ( 5, 4) [000252] DA---------- * st.lclVar long V20 tmp12 d:3
After simple transforms:
( 5, 4) [000219] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000251] -------N---- | /--* lclVar long V15 tmp7 u:3 (last use) $81
N003 ( 5, 4) [000252] DA---------- \--* st.lclVar long V20 tmp12 d:3
comma processing top level statment:
( 5, 4) [000219] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000251] -------N---- | /--* lclVar long V15 tmp7 u:3 (last use) $81
N003 ( 5, 4) [000252] DA---------- \--* st.lclVar long V20 tmp12 d:3
Tree Transform Rationalization: BB01
( 10, 10) [000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 3, 4) [000255] U------N---- | /--* lclFld struct V03 loc3 ud:2->3[+0] Fseq[v1] <l:$1c4, c:$1c5>
N002 ( 3, 5) [000254] ----G------- | /--* addr byref $244
N003 ( 1, 1) [000256] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000257] ----G--N---- | /--* + byref $245
N005 ( 6, 7) [000258] *---G--N---- | /--* indir long $82
N006 ( 3, 2) [000259] -------N---- | +--* lclVar long V19 tmp11 u:3 (last use) $82
N007 ( 10, 10) [000260] -A--G------- \--* = long $VN.Void
RewriteSimpleTransforms, with statement:
( 10, 10) [000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 3, 4) [000255] U------N---- | /--* lclFld struct V03 loc3 ud:2->3[+0] Fseq[v1] <l:$1c4, c:$1c5>
N002 ( 3, 5) [000254] ----G------- | /--* addr byref $244
N003 ( 1, 1) [000256] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000257] ----G--N---- | /--* + byref $245
N005 ( 6, 7) [000258] *---G--N---- | /--* indir long $82
N006 ( 3, 2) [000259] -------N---- | +--* lclVar long V19 tmp11 u:3 (last use) $82
N007 ( 10, 10) [000260] -A--G------- \--* = long $VN.Void
Rewriting GT_ASG(GT_IND, X) to GT_STOREIND(X):
N001 ( 3, 4) [000255] U------N---- /--* lclFld struct V03 loc3 ud:2->3[+0] Fseq[v1] <l:$1c4, c:$1c5>
N002 ( 3, 5) [000254] ----G------- /--* addr byref $244
N003 ( 1, 1) [000256] ------------ +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000257] ----G--N---- /--* + byref $245
N006 ( 3, 2) [000259] -------N---- +--* lclVar long V19 tmp11 u:3 (last use) $82
( 10, 10) [000349] ----G------- * storeIndir long
root:
( 10, 10) [000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 3, 4) [000255] U------N---- | /--* lclFld struct V03 loc3 ud:2->3[+0] Fseq[v1] <l:$1c4, c:$1c5>
N002 ( 3, 5) [000254] ----G------- | /--* addr byref $244
N003 ( 1, 1) [000256] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000257] ----G--N---- | /--* + byref $245
N006 ( 3, 2) [000259] -------N---- | +--* lclVar long V19 tmp11 u:3 (last use) $82
( 10, 10) [000349] ----G------- \--* storeIndir long
Rewriting GT_ADDR(GT_LCL_FLD) to GT_LCL_FLD_ADDR:
=TOS=================
N002 ( 3, 5) [000254] ----G------- addr byref
N004 ( 5, 7) [000257] ----G--N---- + byref
N006.01 ( 10, 10) [000349] ----G------- storeIndir long
=====================
N001 ( 3, 4) [000255] U---G--N---- * &lclFld byref V03 loc3 ud:2->3[+0] Fseq[v1] <l:$1c4, c:$1c5>
After simple transforms:
( 10, 10) [000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 3, 4) [000255] U---G--N---- | /--* &lclFld byref V03 loc3 ud:2->3[+0] Fseq[v1] <l:$1c4, c:$1c5>
N003 ( 1, 1) [000256] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000257] ----G--N---- | /--* + byref $245
N006 ( 3, 2) [000259] -------N---- | +--* lclVar long V19 tmp11 u:3 (last use) $82
( 10, 10) [000349] ----G------- \--* storeIndir long
comma processing top level statment:
( 10, 10) [000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 3, 4) [000255] U---G--N---- | /--* &lclFld byref V03 loc3 ud:2->3[+0] Fseq[v1] <l:$1c4, c:$1c5>
N003 ( 1, 1) [000256] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000257] ----G--N---- | /--* + byref $245
N006 ( 3, 2) [000259] -------N---- | +--* lclVar long V19 tmp11 u:3 (last use) $82
( 10, 10) [000349] ----G------- \--* storeIndir long
Tree Transform Rationalization: BB01
( 10, 10) [000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 3, 4) [000265] U------N---- | /--* lclFld struct V03 loc3 ud:3->4[+8] Fseq[v2] <l:$1c6, c:$1c7>
N002 ( 3, 5) [000264] ----G------- | /--* addr byref $246
N003 ( 1, 1) [000266] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000267] ----G--N---- | /--* + byref $247
N005 ( 6, 7) [000268] *---G--N---- | /--* indir long $81
N006 ( 3, 2) [000269] -------N---- | +--* lclVar long V20 tmp12 u:3 (last use) $81
N007 ( 10, 10) [000270] -A--G------- \--* = long $VN.Void
RewriteSimpleTransforms, with statement:
( 10, 10) [000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 3, 4) [000265] U------N---- | /--* lclFld struct V03 loc3 ud:3->4[+8] Fseq[v2] <l:$1c6, c:$1c7>
N002 ( 3, 5) [000264] ----G------- | /--* addr byref $246
N003 ( 1, 1) [000266] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000267] ----G--N---- | /--* + byref $247
N005 ( 6, 7) [000268] *---G--N---- | /--* indir long $81
N006 ( 3, 2) [000269] -------N---- | +--* lclVar long V20 tmp12 u:3 (last use) $81
N007 ( 10, 10) [000270] -A--G------- \--* = long $VN.Void
Rewriting GT_ASG(GT_IND, X) to GT_STOREIND(X):
N001 ( 3, 4) [000265] U------N---- /--* lclFld struct V03 loc3 ud:3->4[+8] Fseq[v2] <l:$1c6, c:$1c7>
N002 ( 3, 5) [000264] ----G------- /--* addr byref $246
N003 ( 1, 1) [000266] ------------ +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000267] ----G--N---- /--* + byref $247
N006 ( 3, 2) [000269] -------N---- +--* lclVar long V20 tmp12 u:3 (last use) $81
( 10, 10) [000350] ----G------- * storeIndir long
root:
( 10, 10) [000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 3, 4) [000265] U------N---- | /--* lclFld struct V03 loc3 ud:3->4[+8] Fseq[v2] <l:$1c6, c:$1c7>
N002 ( 3, 5) [000264] ----G------- | /--* addr byref $246
N003 ( 1, 1) [000266] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000267] ----G--N---- | /--* + byref $247
N006 ( 3, 2) [000269] -------N---- | +--* lclVar long V20 tmp12 u:3 (last use) $81
( 10, 10) [000350] ----G------- \--* storeIndir long
Rewriting GT_ADDR(GT_LCL_FLD) to GT_LCL_FLD_ADDR:
=TOS=================
N002 ( 3, 5) [000264] ----G------- addr byref
N004 ( 5, 7) [000267] ----G--N---- + byref
N006.01 ( 10, 10) [000350] ----G------- storeIndir long
=====================
N001 ( 3, 4) [000265] U---G--N---- * &lclFld byref V03 loc3 ud:3->4[+8] Fseq[v2] <l:$1c6, c:$1c7>
After simple transforms:
( 10, 10) [000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 3, 4) [000265] U---G--N---- | /--* &lclFld byref V03 loc3 ud:3->4[+8] Fseq[v2] <l:$1c6, c:$1c7>
N003 ( 1, 1) [000266] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000267] ----G--N---- | /--* + byref $247
N006 ( 3, 2) [000269] -------N---- | +--* lclVar long V20 tmp12 u:3 (last use) $81
( 10, 10) [000350] ----G------- \--* storeIndir long
comma processing top level statment:
( 10, 10) [000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 3, 4) [000265] U---G--N---- | /--* &lclFld byref V03 loc3 ud:3->4[+8] Fseq[v2] <l:$1c6, c:$1c7>
N003 ( 1, 1) [000266] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000267] ----G--N---- | /--* + byref $247
N006 ( 3, 2) [000269] -------N---- | +--* lclVar long V20 tmp12 u:3 (last use) $81
( 10, 10) [000350] ----G------- \--* storeIndir long
Tree Transform Rationalization: BB01
( 33, 21) [000046] ------------ * stmtExpr void (top level) (IL 0x026... ???)
N001 ( 3, 2) [000039] -------N---- | /--* lclVar struct V02 loc2 u:4 $2c1
N002 ( 3, 3) [000041] L----------- Source | /--* addr byref $248
N003 ( 3, 2) [000271] D------N---- | | /--* lclVar struct(AX) V21 tmp13
N004 ( 3, 3) [000272] L----------- Destination | +--* addr byref $300
N006 ( 1, 1) [000273] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000274] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000276] -------N---- | | /--* lclVar struct(AX) V21 tmp13 $1c8
N010 ( 3, 3) [000277] L----------- arg0 in rcx | +--* addr long $301
N012 ( 29, 18) [000040] --CXG------- | /--* call int Program.IsXGeater $380
N013 ( 3, 2) [000044] D------N---- | +--* lclVar int V04 loc4 d:3 $380
N014 ( 33, 21) [000045] -ACXG---R--- \--* = int $380
RewriteSimpleTransforms, with statement:
( 33, 21) [000046] ------------ * stmtExpr void (top level) (IL 0x026... ???)
N001 ( 3, 2) [000039] -------N---- | /--* lclVar struct V02 loc2 u:4 $2c1
N002 ( 3, 3) [000041] L----------- Source | /--* addr byref $248
N003 ( 3, 2) [000271] D------N---- | | /--* lclVar struct(AX) V21 tmp13
N004 ( 3, 3) [000272] L----------- Destination | +--* addr byref $300
N006 ( 1, 1) [000273] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000274] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000276] -------N---- | | /--* lclVar struct(AX) V21 tmp13 $1c8
N010 ( 3, 3) [000277] L----------- arg0 in rcx | +--* addr long $301
N012 ( 29, 18) [000040] --CXG------- | /--* call int Program.IsXGeater $380
N013 ( 3, 2) [000044] D------N---- | +--* lclVar int V04 loc4 d:3 $380
N014 ( 33, 21) [000045] -ACXG---R--- \--* = int $380
rewriting GT_ASG(GT_LCL_VAR, X) to GT_STORE_LCL_VAR(X)
N014 ( 33, 21) [000045] DACXG------- * st.lclVar int V04 loc4 d:3
Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR:
=TOS=================
N004 ( 3, 3) [000272] L----------- addr byref
N005 ( 7, 7) [000275] --------R--- <list> void
N007 ( 9, 9) [000274] -A--G-----L- copyBlk void
N012 ( 29, 18) [000040] --CXG------- call int
N014 ( 33, 21) [000045] DACXG------- st.lclVar int
=====================
N003 ( 3, 2) [000271] D------N---- * &lclVar byref V21 tmp13
Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR:
=TOS=================
N002 ( 3, 3) [000041] L----------- addr byref
N005 ( 7, 7) [000275] --------R--- <list> void
N007 ( 9, 9) [000274] -A--G-----L- copyBlk void
N012 ( 29, 18) [000040] --CXG------- call int
N014 ( 33, 21) [000045] DACXG------- st.lclVar int
=====================
N001 ( 3, 2) [000039] -------N---- * &lclVar byref V02 loc2 u:4 $2c1
Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR:
parent call was :
N001 ( 3, 2) [000039] -------N---- Source /--* &lclVar byref V02 loc2 u:4 $2c1
N003 ( 3, 2) [000271] D------N---- Destination +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000273] ------------ +--* const int 16 $44
N007 ( 9, 9) [000274] -A--G-----L- arg0 SETUP /--* copyBlk void $VN.Void
N009 ( 3, 2) [000276] -------N---- arg0 in rcx +--* &lclVar byref V21 tmp13 $1c8
N012 ( 29, 18) [000040] --CXG------- * call int Program.IsXGeater $380
old child was :
N009 ( 3, 2) [000276] -------N---- /--* &lclVar byref V21 tmp13 $1c8
N010 ( 3, 3) [000277] L----------- * addr long $301
parent call:
N001 ( 3, 2) [000039] -------N---- Source /--* &lclVar byref V02 loc2 u:4 $2c1
N003 ( 3, 2) [000271] D------N---- Destination +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000273] ------------ +--* const int 16 $44
N007 ( 9, 9) [000274] -A--G-----L- arg0 SETUP /--* copyBlk void $VN.Void
N009 ( 3, 2) [000276] -------N---- arg0 in rcx +--* &lclVar byref V21 tmp13 $1c8
N012 ( 29, 18) [000040] --CXG------- * call int Program.IsXGeater $380
N009 ( 3, 2) [000276] -------N---- * &lclVar byref V21 tmp13 $1c8
After simple transforms:
( 33, 21) [000046] ------------ * stmtExpr void (top level) (IL 0x026... ???)
N001 ( 3, 2) [000039] -------N---- Source | /--* &lclVar byref V02 loc2 u:4 $2c1
N003 ( 3, 2) [000271] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000273] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000274] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000276] -------N---- arg0 in rcx | +--* &lclVar byref V21 tmp13 $1c8
N012 ( 29, 18) [000040] --CXG------- | /--* call int Program.IsXGeater $380
N014 ( 33, 21) [000045] DACXG------- \--* st.lclVar int V04 loc4 d:3
comma processing top level statment:
( 33, 21) [000046] ------------ * stmtExpr void (top level) (IL 0x026... ???)
N001 ( 3, 2) [000039] -------N---- Source | /--* &lclVar byref V02 loc2 u:4 $2c1
N003 ( 3, 2) [000271] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000273] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000274] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000276] -------N---- arg0 in rcx | +--* &lclVar byref V21 tmp13 $1c8
N012 ( 29, 18) [000040] --CXG------- | /--* call int Program.IsXGeater $380
N014 ( 33, 21) [000045] DACXG------- \--* st.lclVar int V04 loc4 d:3
Tree Transform Rationalization: BB01
( 33, 21) [000054] ------------ * stmtExpr void (top level) (IL 0x02E...0x034)
N001 ( 3, 2) [000047] -------N---- | /--* lclVar struct V03 loc3 u:4 $2c3
N002 ( 3, 3) [000049] L----------- Source | /--* addr byref $249
N003 ( 3, 2) [000279] D------N---- | | /--* lclVar struct(AX) V21 tmp13
N004 ( 3, 3) [000280] L----------- Destination | +--* addr byref $302
N006 ( 1, 1) [000281] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000282] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000284] -------N---- | | /--* lclVar struct(AX) V21 tmp13 $1c9
N010 ( 3, 3) [000285] L----------- arg0 in rcx | +--* addr long $303
N012 ( 29, 18) [000048] --CXG------- | /--* call int Program.IsXGeater $382
N013 ( 3, 2) [000052] D------N---- | +--* lclVar int V05 loc5 d:3 $382
N014 ( 33, 21) [000053] -ACXG---R--- \--* = int $382
RewriteSimpleTransforms, with statement:
( 33, 21) [000054] ------------ * stmtExpr void (top level) (IL 0x02E...0x034)
N001 ( 3, 2) [000047] -------N---- | /--* lclVar struct V03 loc3 u:4 $2c3
N002 ( 3, 3) [000049] L----------- Source | /--* addr byref $249
N003 ( 3, 2) [000279] D------N---- | | /--* lclVar struct(AX) V21 tmp13
N004 ( 3, 3) [000280] L----------- Destination | +--* addr byref $302
N006 ( 1, 1) [000281] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000282] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000284] -------N---- | | /--* lclVar struct(AX) V21 tmp13 $1c9
N010 ( 3, 3) [000285] L----------- arg0 in rcx | +--* addr long $303
N012 ( 29, 18) [000048] --CXG------- | /--* call int Program.IsXGeater $382
N013 ( 3, 2) [000052] D------N---- | +--* lclVar int V05 loc5 d:3 $382
N014 ( 33, 21) [000053] -ACXG---R--- \--* = int $382
rewriting GT_ASG(GT_LCL_VAR, X) to GT_STORE_LCL_VAR(X)
N014 ( 33, 21) [000053] DACXG------- * st.lclVar int V05 loc5 d:3
Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR:
=TOS=================
N004 ( 3, 3) [000280] L----------- addr byref
N005 ( 7, 7) [000283] --------R--- <list> void
N007 ( 9, 9) [000282] -A--G-----L- copyBlk void
N012 ( 29, 18) [000048] --CXG------- call int
N014 ( 33, 21) [000053] DACXG------- st.lclVar int
=====================
N003 ( 3, 2) [000279] D------N---- * &lclVar byref V21 tmp13
Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR:
=TOS=================
N002 ( 3, 3) [000049] L----------- addr byref
N005 ( 7, 7) [000283] --------R--- <list> void
N007 ( 9, 9) [000282] -A--G-----L- copyBlk void
N012 ( 29, 18) [000048] --CXG------- call int
N014 ( 33, 21) [000053] DACXG------- st.lclVar int
=====================
N001 ( 3, 2) [000047] -------N---- * &lclVar byref V03 loc3 u:4 $2c3
Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR:
parent call was :
N001 ( 3, 2) [000047] -------N---- Source /--* &lclVar byref V03 loc3 u:4 $2c3
N003 ( 3, 2) [000279] D------N---- Destination +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000281] ------------ +--* const int 16 $44
N007 ( 9, 9) [000282] -A--G-----L- arg0 SETUP /--* copyBlk void $VN.Void
N009 ( 3, 2) [000284] -------N---- arg0 in rcx +--* &lclVar byref V21 tmp13 $1c9
N012 ( 29, 18) [000048] --CXG------- * call int Program.IsXGeater $382
old child was :
N009 ( 3, 2) [000284] -------N---- /--* &lclVar byref V21 tmp13 $1c9
N010 ( 3, 3) [000285] L----------- * addr long $303
parent call:
N001 ( 3, 2) [000047] -------N---- Source /--* &lclVar byref V03 loc3 u:4 $2c3
N003 ( 3, 2) [000279] D------N---- Destination +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000281] ------------ +--* const int 16 $44
N007 ( 9, 9) [000282] -A--G-----L- arg0 SETUP /--* copyBlk void $VN.Void
N009 ( 3, 2) [000284] -------N---- arg0 in rcx +--* &lclVar byref V21 tmp13 $1c9
N012 ( 29, 18) [000048] --CXG------- * call int Program.IsXGeater $382
N009 ( 3, 2) [000284] -------N---- * &lclVar byref V21 tmp13 $1c9
After simple transforms:
( 33, 21) [000054] ------------ * stmtExpr void (top level) (IL 0x02E...0x034)
N001 ( 3, 2) [000047] -------N---- Source | /--* &lclVar byref V03 loc3 u:4 $2c3
N003 ( 3, 2) [000279] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000281] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000282] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000284] -------N---- arg0 in rcx | +--* &lclVar byref V21 tmp13 $1c9
N012 ( 29, 18) [000048] --CXG------- | /--* call int Program.IsXGeater $382
N014 ( 33, 21) [000053] DACXG------- \--* st.lclVar int V05 loc5 d:3
comma processing top level statment:
( 33, 21) [000054] ------------ * stmtExpr void (top level) (IL 0x02E...0x034)
N001 ( 3, 2) [000047] -------N---- Source | /--* &lclVar byref V03 loc3 u:4 $2c3
N003 ( 3, 2) [000279] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000281] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000282] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000284] -------N---- arg0 in rcx | +--* &lclVar byref V21 tmp13 $1c9
N012 ( 29, 18) [000048] --CXG------- | /--* call int Program.IsXGeater $382
N014 ( 33, 21) [000053] DACXG------- \--* st.lclVar int V05 loc5 d:3
Tree Transform Rationalization: BB01
( 33, 21) [000062] ------------ * stmtExpr void (top level) (IL 0x036...0x03C)
N001 ( 3, 2) [000055] -------N---- | /--* lclVar struct V02 loc2 u:4 (last use) $2c1
N002 ( 3, 3) [000057] L----------- Source | /--* addr byref $248
N003 ( 3, 2) [000287] D------N---- | | /--* lclVar struct(AX) V21 tmp13
N004 ( 3, 3) [000288] L----------- Destination | +--* addr byref $304
N006 ( 1, 1) [000289] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000290] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000292] -------N---- | | /--* lclVar struct(AX) V21 tmp13 $1ca
N010 ( 3, 3) [000293] L----------- arg0 in rcx | +--* addr long $305
N012 ( 29, 18) [000056] --CXG------- | /--* call int Program.IsXGeater $384
N013 ( 3, 2) [000060] D------N---- | +--* lclVar int V06 loc6 d:3 $384
N014 ( 33, 21) [000061] -ACXG---R--- \--* = int $384
RewriteSimpleTransforms, with statement:
( 33, 21) [000062] ------------ * stmtExpr void (top level) (IL 0x036...0x03C)
N001 ( 3, 2) [000055] -------N---- | /--* lclVar struct V02 loc2 u:4 (last use) $2c1
N002 ( 3, 3) [000057] L----------- Source | /--* addr byref $248
N003 ( 3, 2) [000287] D------N---- | | /--* lclVar struct(AX) V21 tmp13
N004 ( 3, 3) [000288] L----------- Destination | +--* addr byref $304
N006 ( 1, 1) [000289] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000290] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000292] -------N---- | | /--* lclVar struct(AX) V21 tmp13 $1ca
N010 ( 3, 3) [000293] L----------- arg0 in rcx | +--* addr long $305
N012 ( 29, 18) [000056] --CXG------- | /--* call int Program.IsXGeater $384
N013 ( 3, 2) [000060] D------N---- | +--* lclVar int V06 loc6 d:3 $384
N014 ( 33, 21) [000061] -ACXG---R--- \--* = int $384
rewriting GT_ASG(GT_LCL_VAR, X) to GT_STORE_LCL_VAR(X)
N014 ( 33, 21) [000061] DACXG------- * st.lclVar int V06 loc6 d:3
Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR:
=TOS=================
N004 ( 3, 3) [000288] L----------- addr byref
N005 ( 7, 7) [000291] --------R--- <list> void
N007 ( 9, 9) [000290] -A--G-----L- copyBlk void
N012 ( 29, 18) [000056] --CXG------- call int
N014 ( 33, 21) [000061] DACXG------- st.lclVar int
=====================
N003 ( 3, 2) [000287] D------N---- * &lclVar byref V21 tmp13
Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR:
=TOS=================
N002 ( 3, 3) [000057] L----------- addr byref
N005 ( 7, 7) [000291] --------R--- <list> void
N007 ( 9, 9) [000290] -A--G-----L- copyBlk void
N012 ( 29, 18) [000056] --CXG------- call int
N014 ( 33, 21) [000061] DACXG------- st.lclVar int
=====================
N001 ( 3, 2) [000055] -------N---- * &lclVar byref V02 loc2 u:4 (last use) $2c1
Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR:
parent call was :
N001 ( 3, 2) [000055] -------N---- Source /--* &lclVar byref V02 loc2 u:4 (last use) $2c1
N003 ( 3, 2) [000287] D------N---- Destination +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000289] ------------ +--* const int 16 $44
N007 ( 9, 9) [000290] -A--G-----L- arg0 SETUP /--* copyBlk void $VN.Void
N009 ( 3, 2) [000292] -------N---- arg0 in rcx +--* &lclVar byref V21 tmp13 $1ca
N012 ( 29, 18) [000056] --CXG------- * call int Program.IsXGeater $384
old child was :
N009 ( 3, 2) [000292] -------N---- /--* &lclVar byref V21 tmp13 $1ca
N010 ( 3, 3) [000293] L----------- * addr long $305
parent call:
N001 ( 3, 2) [000055] -------N---- Source /--* &lclVar byref V02 loc2 u:4 (last use) $2c1
N003 ( 3, 2) [000287] D------N---- Destination +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000289] ------------ +--* const int 16 $44
N007 ( 9, 9) [000290] -A--G-----L- arg0 SETUP /--* copyBlk void $VN.Void
N009 ( 3, 2) [000292] -------N---- arg0 in rcx +--* &lclVar byref V21 tmp13 $1ca
N012 ( 29, 18) [000056] --CXG------- * call int Program.IsXGeater $384
N009 ( 3, 2) [000292] -------N---- * &lclVar byref V21 tmp13 $1ca
After simple transforms:
( 33, 21) [000062] ------------ * stmtExpr void (top level) (IL 0x036...0x03C)
N001 ( 3, 2) [000055] -------N---- Source | /--* &lclVar byref V02 loc2 u:4 (last use) $2c1
N003 ( 3, 2) [000287] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000289] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000290] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000292] -------N---- arg0 in rcx | +--* &lclVar byref V21 tmp13 $1ca
N012 ( 29, 18) [000056] --CXG------- | /--* call int Program.IsXGeater $384
N014 ( 33, 21) [000061] DACXG------- \--* st.lclVar int V06 loc6 d:3
comma processing top level statment:
( 33, 21) [000062] ------------ * stmtExpr void (top level) (IL 0x036...0x03C)
N001 ( 3, 2) [000055] -------N---- Source | /--* &lclVar byref V02 loc2 u:4 (last use) $2c1
N003 ( 3, 2) [000287] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000289] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000290] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000292] -------N---- arg0 in rcx | +--* &lclVar byref V21 tmp13 $1ca
N012 ( 29, 18) [000056] --CXG------- | /--* call int Program.IsXGeater $384
N014 ( 33, 21) [000061] DACXG------- \--* st.lclVar int V06 loc6 d:3
Tree Transform Rationalization: BB01
( 33, 21) [000070] ------------ * stmtExpr void (top level) (IL 0x03E...0x044)
N001 ( 3, 2) [000063] -------N---- | /--* lclVar struct V03 loc3 u:4 (last use) $2c3
N002 ( 3, 3) [000065] L----------- Source | /--* addr byref $249
N003 ( 3, 2) [000295] D------N---- | | /--* lclVar struct(AX) V21 tmp13
N004 ( 3, 3) [000296] L----------- Destination | +--* addr byref $306
N006 ( 1, 1) [000297] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000298] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000300] -------N---- | | /--* lclVar struct(AX) V21 tmp13 $1cb
N010 ( 3, 3) [000301] L----------- arg0 in rcx | +--* addr long $307
N012 ( 29, 18) [000064] --CXG------- | /--* call int Program.IsXGeater $386
N013 ( 3, 2) [000068] D------N---- | +--* lclVar int V07 loc7 d:3 $386
N014 ( 33, 21) [000069] -ACXG---R--- \--* = int $386
RewriteSimpleTransforms, with statement:
( 33, 21) [000070] ------------ * stmtExpr void (top level) (IL 0x03E...0x044)
N001 ( 3, 2) [000063] -------N---- | /--* lclVar struct V03 loc3 u:4 (last use) $2c3
N002 ( 3, 3) [000065] L----------- Source | /--* addr byref $249
N003 ( 3, 2) [000295] D------N---- | | /--* lclVar struct(AX) V21 tmp13
N004 ( 3, 3) [000296] L----------- Destination | +--* addr byref $306
N006 ( 1, 1) [000297] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000298] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000300] -------N---- | | /--* lclVar struct(AX) V21 tmp13 $1cb
N010 ( 3, 3) [000301] L----------- arg0 in rcx | +--* addr long $307
N012 ( 29, 18) [000064] --CXG------- | /--* call int Program.IsXGeater $386
N013 ( 3, 2) [000068] D------N---- | +--* lclVar int V07 loc7 d:3 $386
N014 ( 33, 21) [000069] -ACXG---R--- \--* = int $386
rewriting GT_ASG(GT_LCL_VAR, X) to GT_STORE_LCL_VAR(X)
N014 ( 33, 21) [000069] DACXG------- * st.lclVar int V07 loc7 d:3
Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR:
=TOS=================
N004 ( 3, 3) [000296] L----------- addr byref
N005 ( 7, 7) [000299] --------R--- <list> void
N007 ( 9, 9) [000298] -A--G-----L- copyBlk void
N012 ( 29, 18) [000064] --CXG------- call int
N014 ( 33, 21) [000069] DACXG------- st.lclVar int
=====================
N003 ( 3, 2) [000295] D------N---- * &lclVar byref V21 tmp13
Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR:
=TOS=================
N002 ( 3, 3) [000065] L----------- addr byref
N005 ( 7, 7) [000299] --------R--- <list> void
N007 ( 9, 9) [000298] -A--G-----L- copyBlk void
N012 ( 29, 18) [000064] --CXG------- call int
N014 ( 33, 21) [000069] DACXG------- st.lclVar int
=====================
N001 ( 3, 2) [000063] -------N---- * &lclVar byref V03 loc3 u:4 (last use) $2c3
Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR:
parent call was :
N001 ( 3, 2) [000063] -------N---- Source /--* &lclVar byref V03 loc3 u:4 (last use) $2c3
N003 ( 3, 2) [000295] D------N---- Destination +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000297] ------------ +--* const int 16 $44
N007 ( 9, 9) [000298] -A--G-----L- arg0 SETUP /--* copyBlk void $VN.Void
N009 ( 3, 2) [000300] -------N---- arg0 in rcx +--* &lclVar byref V21 tmp13 $1cb
N012 ( 29, 18) [000064] --CXG------- * call int Program.IsXGeater $386
old child was :
N009 ( 3, 2) [000300] -------N---- /--* &lclVar byref V21 tmp13 $1cb
N010 ( 3, 3) [000301] L----------- * addr long $307
parent call:
N001 ( 3, 2) [000063] -------N---- Source /--* &lclVar byref V03 loc3 u:4 (last use) $2c3
N003 ( 3, 2) [000295] D------N---- Destination +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000297] ------------ +--* const int 16 $44
N007 ( 9, 9) [000298] -A--G-----L- arg0 SETUP /--* copyBlk void $VN.Void
N009 ( 3, 2) [000300] -------N---- arg0 in rcx +--* &lclVar byref V21 tmp13 $1cb
N012 ( 29, 18) [000064] --CXG------- * call int Program.IsXGeater $386
N009 ( 3, 2) [000300] -------N---- * &lclVar byref V21 tmp13 $1cb
After simple transforms:
( 33, 21) [000070] ------------ * stmtExpr void (top level) (IL 0x03E...0x044)
N001 ( 3, 2) [000063] -------N---- Source | /--* &lclVar byref V03 loc3 u:4 (last use) $2c3
N003 ( 3, 2) [000295] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000297] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000298] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000300] -------N---- arg0 in rcx | +--* &lclVar byref V21 tmp13 $1cb
N012 ( 29, 18) [000064] --CXG------- | /--* call int Program.IsXGeater $386
N014 ( 33, 21) [000069] DACXG------- \--* st.lclVar int V07 loc7 d:3
comma processing top level statment:
( 33, 21) [000070] ------------ * stmtExpr void (top level) (IL 0x03E...0x044)
N001 ( 3, 2) [000063] -------N---- Source | /--* &lclVar byref V03 loc3 u:4 (last use) $2c3
N003 ( 3, 2) [000295] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000297] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000298] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000300] -------N---- arg0 in rcx | +--* &lclVar byref V21 tmp13 $1cb
N012 ( 29, 18) [000064] --CXG------- | /--* call int Program.IsXGeater $386
N014 ( 33, 21) [000069] DACXG------- \--* st.lclVar int V07 loc7 d:3
Tree Transform Rationalization: BB01
( 7, 6) [000075] ------------ * stmtExpr void (top level) (IL 0x046...0x048)
N001 ( 3, 2) [000071] ------------ | /--* lclVar int V04 loc4 u:3 (last use) $380
N002 ( 1, 1) [000072] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000073] J------N---- | /--* == int $400
N004 ( 7, 6) [000074] ------------ \--* jmpTrue void
RewriteSimpleTransforms, with statement:
( 7, 6) [000075] ------------ * stmtExpr void (top level) (IL 0x046...0x048)
N001 ( 3, 2) [000071] ------------ | /--* lclVar int V04 loc4 u:3 (last use) $380
N002 ( 1, 1) [000072] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000073] J------N---- | /--* == int $400
N004 ( 7, 6) [000074] ------------ \--* jmpTrue void
After simple transforms:
( 7, 6) [000075] ------------ * stmtExpr void (top level) (IL 0x046...0x048)
N001 ( 3, 2) [000071] ------------ | /--* lclVar int V04 loc4 u:3 (last use) $380
N002 ( 1, 1) [000072] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000073] J------N---- | /--* == int $400
N004 ( 7, 6) [000074] ------------ \--* jmpTrue void
comma processing top level statment:
( 7, 6) [000075] ------------ * stmtExpr void (top level) (IL 0x046...0x048)
N001 ( 3, 2) [000071] ------------ | /--* lclVar int V04 loc4 u:3 (last use) $380
N002 ( 1, 1) [000072] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000073] J------N---- | /--* == int $400
N004 ( 7, 6) [000074] ------------ \--* jmpTrue void
Tree Transform Rationalization: BB02
( 19, 18) [000130] ------------ * stmtExpr void (top level) (IL 0x04A...0x055)
N001 ( 0, 0) [000305] ----------L- arg0 SETUP | /--* argPlace ref $3d1
N003 ( 3, 10) [000303] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000304] ----G------- arg0 in rcx | +--* indir ref $3d1
N006 ( 19, 18) [000128] --C-G------- \--* call void System.Console.WriteLine $VN.Void
RewriteSimpleTransforms, with statement:
( 19, 18) [000130] ------------ * stmtExpr void (top level) (IL 0x04A...0x055)
N001 ( 0, 0) [000305] ----------L- arg0 SETUP | /--* argPlace ref $3d1
N003 ( 3, 10) [000303] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000304] ----G------- arg0 in rcx | +--* indir ref $3d1
N006 ( 19, 18) [000128] --C-G------- \--* call void System.Console.WriteLine $VN.Void
After simple transforms:
( 19, 18) [000130] ------------ * stmtExpr void (top level) (IL 0x04A...0x055)
N001 ( 0, 0) [000305] ----------L- arg0 SETUP | /--* argPlace ref $3d1
N003 ( 3, 10) [000303] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000304] ----G------- arg0 in rcx | +--* indir ref $3d1
N006 ( 19, 18) [000128] --C-G------- \--* call void System.Console.WriteLine $VN.Void
comma processing top level statment:
( 19, 18) [000130] ------------ * stmtExpr void (top level) (IL 0x04A...0x055)
N001 ( 0, 0) [000305] ----------L- arg0 SETUP | /--* argPlace ref $3d1
N003 ( 3, 10) [000303] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000304] ----G------- arg0 in rcx | +--* indir ref $3d1
N006 ( 19, 18) [000128] --C-G------- \--* call void System.Console.WriteLine $VN.Void
Tree Transform Rationalization: BB02
( 1, 3) [000133] ------------ * stmtExpr void (top level) (IL 0x054... ???)
N001 ( 1, 1) [000131] ------------ | /--* const int -1 $41
N002 ( 1, 1) [000307] D------N---- | +--* lclVar int V08 tmp0 d:7 $41
N003 ( 1, 3) [000308] -A-----NR--- \--* = int $41
RewriteSimpleTransforms, with statement:
( 1, 3) [000133] ------------ * stmtExpr void (top level) (IL 0x054... ???)
N001 ( 1, 1) [000131] ------------ | /--* const int -1 $41
N002 ( 1, 1) [000307] D------N---- | +--* lclVar int V08 tmp0 d:7 $41
N003 ( 1, 3) [000308] -A-----NR--- \--* = int $41
rewriting GT_ASG(GT_LCL_VAR, X) to GT_STORE_LCL_VAR(X)
N003 ( 1, 3) [000308] DA-----N---- * st.lclVar int V08 tmp0 d:7
After simple transforms:
( 1, 3) [000133] ------------ * stmtExpr void (top level) (IL 0x054... ???)
N001 ( 1, 1) [000131] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000308] DA-----N---- \--* st.lclVar int V08 tmp0 d:7
comma processing top level statment:
( 1, 3) [000133] ------------ * stmtExpr void (top level) (IL 0x054... ???)
N001 ( 1, 1) [000131] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000308] DA-----N---- \--* st.lclVar int V08 tmp0 d:7
Tree Transform Rationalization: BB03
( 7, 6) [000081] ------------ * stmtExpr void (top level) (IL 0x056...0x058)
N001 ( 3, 2) [000077] ------------ | /--* lclVar int V05 loc5 u:3 (last use) $382
N002 ( 1, 1) [000078] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000079] J------N---- | /--* != int $401
N004 ( 7, 6) [000080] ------------ \--* jmpTrue void
RewriteSimpleTransforms, with statement:
( 7, 6) [000081] ------------ * stmtExpr void (top level) (IL 0x056...0x058)
N001 ( 3, 2) [000077] ------------ | /--* lclVar int V05 loc5 u:3 (last use) $382
N002 ( 1, 1) [000078] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000079] J------N---- | /--* != int $401
N004 ( 7, 6) [000080] ------------ \--* jmpTrue void
After simple transforms:
( 7, 6) [000081] ------------ * stmtExpr void (top level) (IL 0x056...0x058)
N001 ( 3, 2) [000077] ------------ | /--* lclVar int V05 loc5 u:3 (last use) $382
N002 ( 1, 1) [000078] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000079] J------N---- | /--* != int $401
N004 ( 7, 6) [000080] ------------ \--* jmpTrue void
comma processing top level statment:
( 7, 6) [000081] ------------ * stmtExpr void (top level) (IL 0x056...0x058)
N001 ( 3, 2) [000077] ------------ | /--* lclVar int V05 loc5 u:3 (last use) $382
N002 ( 1, 1) [000078] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000079] J------N---- | /--* != int $401
N004 ( 7, 6) [000080] ------------ \--* jmpTrue void
Tree Transform Rationalization: BB04
( 19, 18) [000122] ------------ * stmtExpr void (top level) (IL 0x05A...0x065)
N001 ( 0, 0) [000311] ----------L- arg0 SETUP | /--* argPlace ref $3ce
N003 ( 3, 10) [000309] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000310] ----G------- arg0 in rcx | +--* indir ref $3ce
N006 ( 19, 18) [000120] --C-G------- \--* call void System.Console.WriteLine $VN.Void
RewriteSimpleTransforms, with statement:
( 19, 18) [000122] ------------ * stmtExpr void (top level) (IL 0x05A...0x065)
N001 ( 0, 0) [000311] ----------L- arg0 SETUP | /--* argPlace ref $3ce
N003 ( 3, 10) [000309] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000310] ----G------- arg0 in rcx | +--* indir ref $3ce
N006 ( 19, 18) [000120] --C-G------- \--* call void System.Console.WriteLine $VN.Void
After simple transforms:
( 19, 18) [000122] ------------ * stmtExpr void (top level) (IL 0x05A...0x065)
N001 ( 0, 0) [000311] ----------L- arg0 SETUP | /--* argPlace ref $3ce
N003 ( 3, 10) [000309] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000310] ----G------- arg0 in rcx | +--* indir ref $3ce
N006 ( 19, 18) [000120] --C-G------- \--* call void System.Console.WriteLine $VN.Void
comma processing top level statment:
( 19, 18) [000122] ------------ * stmtExpr void (top level) (IL 0x05A...0x065)
N001 ( 0, 0) [000311] ----------L- arg0 SETUP | /--* argPlace ref $3ce
N003 ( 3, 10) [000309] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000310] ----G------- arg0 in rcx | +--* indir ref $3ce
N006 ( 19, 18) [000120] --C-G------- \--* call void System.Console.WriteLine $VN.Void
Tree Transform Rationalization: BB04
( 1, 3) [000125] ------------ * stmtExpr void (top level) (IL 0x064... ???)
N001 ( 1, 1) [000123] ------------ | /--* const int -1 $41
N002 ( 1, 1) [000313] D------N---- | +--* lclVar int V08 tmp0 d:6 $41
N003 ( 1, 3) [000314] -A-----NR--- \--* = int $41
RewriteSimpleTransforms, with statement:
( 1, 3) [000125] ------------ * stmtExpr void (top level) (IL 0x064... ???)
N001 ( 1, 1) [000123] ------------ | /--* const int -1 $41
N002 ( 1, 1) [000313] D------N---- | +--* lclVar int V08 tmp0 d:6 $41
N003 ( 1, 3) [000314] -A-----NR--- \--* = int $41
rewriting GT_ASG(GT_LCL_VAR, X) to GT_STORE_LCL_VAR(X)
N003 ( 1, 3) [000314] DA-----N---- * st.lclVar int V08 tmp0 d:6
After simple transforms:
( 1, 3) [000125] ------------ * stmtExpr void (top level) (IL 0x064... ???)
N001 ( 1, 1) [000123] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000314] DA-----N---- \--* st.lclVar int V08 tmp0 d:6
comma processing top level statment:
( 1, 3) [000125] ------------ * stmtExpr void (top level) (IL 0x064... ???)
N001 ( 1, 1) [000123] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000314] DA-----N---- \--* st.lclVar int V08 tmp0 d:6
Tree Transform Rationalization: BB05
( 7, 6) [000087] ------------ * stmtExpr void (top level) (IL 0x066...0x068)
N001 ( 3, 2) [000083] ------------ | /--* lclVar int V06 loc6 u:3 (last use) $384
N002 ( 1, 1) [000084] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000085] J------N---- | /--* == int $402
N004 ( 7, 6) [000086] ------------ \--* jmpTrue void
RewriteSimpleTransforms, with statement:
( 7, 6) [000087] ------------ * stmtExpr void (top level) (IL 0x066...0x068)
N001 ( 3, 2) [000083] ------------ | /--* lclVar int V06 loc6 u:3 (last use) $384
N002 ( 1, 1) [000084] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000085] J------N---- | /--* == int $402
N004 ( 7, 6) [000086] ------------ \--* jmpTrue void
After simple transforms:
( 7, 6) [000087] ------------ * stmtExpr void (top level) (IL 0x066...0x068)
N001 ( 3, 2) [000083] ------------ | /--* lclVar int V06 loc6 u:3 (last use) $384
N002 ( 1, 1) [000084] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000085] J------N---- | /--* == int $402
N004 ( 7, 6) [000086] ------------ \--* jmpTrue void
comma processing top level statment:
( 7, 6) [000087] ------------ * stmtExpr void (top level) (IL 0x066...0x068)
N001 ( 3, 2) [000083] ------------ | /--* lclVar int V06 loc6 u:3 (last use) $384
N002 ( 1, 1) [000084] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000085] J------N---- | /--* == int $402
N004 ( 7, 6) [000086] ------------ \--* jmpTrue void
Tree Transform Rationalization: BB06
( 19, 18) [000114] ------------ * stmtExpr void (top level) (IL 0x06A...0x075)
N001 ( 0, 0) [000317] ----------L- arg0 SETUP | /--* argPlace ref $3cb
N003 ( 3, 10) [000315] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000316] ----G------- arg0 in rcx | +--* indir ref $3cb
N006 ( 19, 18) [000112] --C-G------- \--* call void System.Console.WriteLine $VN.Void
RewriteSimpleTransforms, with statement:
( 19, 18) [000114] ------------ * stmtExpr void (top level) (IL 0x06A...0x075)
N001 ( 0, 0) [000317] ----------L- arg0 SETUP | /--* argPlace ref $3cb
N003 ( 3, 10) [000315] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000316] ----G------- arg0 in rcx | +--* indir ref $3cb
N006 ( 19, 18) [000112] --C-G------- \--* call void System.Console.WriteLine $VN.Void
After simple transforms:
( 19, 18) [000114] ------------ * stmtExpr void (top level) (IL 0x06A...0x075)
N001 ( 0, 0) [000317] ----------L- arg0 SETUP | /--* argPlace ref $3cb
N003 ( 3, 10) [000315] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000316] ----G------- arg0 in rcx | +--* indir ref $3cb
N006 ( 19, 18) [000112] --C-G------- \--* call void System.Console.WriteLine $VN.Void
comma processing top level statment:
( 19, 18) [000114] ------------ * stmtExpr void (top level) (IL 0x06A...0x075)
N001 ( 0, 0) [000317] ----------L- arg0 SETUP | /--* argPlace ref $3cb
N003 ( 3, 10) [000315] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000316] ----G------- arg0 in rcx | +--* indir ref $3cb
N006 ( 19, 18) [000112] --C-G------- \--* call void System.Console.WriteLine $VN.Void
Tree Transform Rationalization: BB06
( 1, 3) [000117] ------------ * stmtExpr void (top level) (IL 0x074... ???)
N001 ( 1, 1) [000115] ------------ | /--* const int -1 $41
N002 ( 1, 1) [000319] D------N---- | +--* lclVar int V08 tmp0 d:5 $41
N003 ( 1, 3) [000320] -A-----NR--- \--* = int $41
RewriteSimpleTransforms, with statement:
( 1, 3) [000117] ------------ * stmtExpr void (top level) (IL 0x074... ???)
N001 ( 1, 1) [000115] ------------ | /--* const int -1 $41
N002 ( 1, 1) [000319] D------N---- | +--* lclVar int V08 tmp0 d:5 $41
N003 ( 1, 3) [000320] -A-----NR--- \--* = int $41
rewriting GT_ASG(GT_LCL_VAR, X) to GT_STORE_LCL_VAR(X)
N003 ( 1, 3) [000320] DA-----N---- * st.lclVar int V08 tmp0 d:5
After simple transforms:
( 1, 3) [000117] ------------ * stmtExpr void (top level) (IL 0x074... ???)
N001 ( 1, 1) [000115] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000320] DA-----N---- \--* st.lclVar int V08 tmp0 d:5
comma processing top level statment:
( 1, 3) [000117] ------------ * stmtExpr void (top level) (IL 0x074... ???)
N001 ( 1, 1) [000115] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000320] DA-----N---- \--* st.lclVar int V08 tmp0 d:5
Tree Transform Rationalization: BB07
( 7, 6) [000093] ------------ * stmtExpr void (top level) (IL 0x076...0x078)
N001 ( 3, 2) [000089] ------------ | /--* lclVar int V07 loc7 u:3 (last use) $386
N002 ( 1, 1) [000090] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000091] J------N---- | /--* != int $403
N004 ( 7, 6) [000092] ------------ \--* jmpTrue void
RewriteSimpleTransforms, with statement:
( 7, 6) [000093] ------------ * stmtExpr void (top level) (IL 0x076...0x078)
N001 ( 3, 2) [000089] ------------ | /--* lclVar int V07 loc7 u:3 (last use) $386
N002 ( 1, 1) [000090] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000091] J------N---- | /--* != int $403
N004 ( 7, 6) [000092] ------------ \--* jmpTrue void
After simple transforms:
( 7, 6) [000093] ------------ * stmtExpr void (top level) (IL 0x076...0x078)
N001 ( 3, 2) [000089] ------------ | /--* lclVar int V07 loc7 u:3 (last use) $386
N002 ( 1, 1) [000090] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000091] J------N---- | /--* != int $403
N004 ( 7, 6) [000092] ------------ \--* jmpTrue void
comma processing top level statment:
( 7, 6) [000093] ------------ * stmtExpr void (top level) (IL 0x076...0x078)
N001 ( 3, 2) [000089] ------------ | /--* lclVar int V07 loc7 u:3 (last use) $386
N002 ( 1, 1) [000090] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000091] J------N---- | /--* != int $403
N004 ( 7, 6) [000092] ------------ \--* jmpTrue void
Tree Transform Rationalization: BB08
( 19, 18) [000106] ------------ * stmtExpr void (top level) (IL 0x07A...0x085)
N001 ( 0, 0) [000323] ----------L- arg0 SETUP | /--* argPlace ref $3c8
N003 ( 3, 10) [000321] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000322] ----G------- arg0 in rcx | +--* indir ref $3c8
N006 ( 19, 18) [000104] --C-G------- \--* call void System.Console.WriteLine $VN.Void
RewriteSimpleTransforms, with statement:
( 19, 18) [000106] ------------ * stmtExpr void (top level) (IL 0x07A...0x085)
N001 ( 0, 0) [000323] ----------L- arg0 SETUP | /--* argPlace ref $3c8
N003 ( 3, 10) [000321] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000322] ----G------- arg0 in rcx | +--* indir ref $3c8
N006 ( 19, 18) [000104] --C-G------- \--* call void System.Console.WriteLine $VN.Void
After simple transforms:
( 19, 18) [000106] ------------ * stmtExpr void (top level) (IL 0x07A...0x085)
N001 ( 0, 0) [000323] ----------L- arg0 SETUP | /--* argPlace ref $3c8
N003 ( 3, 10) [000321] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000322] ----G------- arg0 in rcx | +--* indir ref $3c8
N006 ( 19, 18) [000104] --C-G------- \--* call void System.Console.WriteLine $VN.Void
comma processing top level statment:
( 19, 18) [000106] ------------ * stmtExpr void (top level) (IL 0x07A...0x085)
N001 ( 0, 0) [000323] ----------L- arg0 SETUP | /--* argPlace ref $3c8
N003 ( 3, 10) [000321] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000322] ----G------- arg0 in rcx | +--* indir ref $3c8
N006 ( 19, 18) [000104] --C-G------- \--* call void System.Console.WriteLine $VN.Void
Tree Transform Rationalization: BB08
( 1, 3) [000109] ------------ * stmtExpr void (top level) (IL 0x084... ???)
N001 ( 1, 1) [000107] ------------ | /--* const int -1 $41
N002 ( 1, 1) [000325] D------N---- | +--* lclVar int V08 tmp0 d:3 $41
N003 ( 1, 3) [000326] -A-----NR--- \--* = int $41
RewriteSimpleTransforms, with statement:
( 1, 3) [000109] ------------ * stmtExpr void (top level) (IL 0x084... ???)
N001 ( 1, 1) [000107] ------------ | /--* const int -1 $41
N002 ( 1, 1) [000325] D------N---- | +--* lclVar int V08 tmp0 d:3 $41
N003 ( 1, 3) [000326] -A-----NR--- \--* = int $41
rewriting GT_ASG(GT_LCL_VAR, X) to GT_STORE_LCL_VAR(X)
N003 ( 1, 3) [000326] DA-----N---- * st.lclVar int V08 tmp0 d:3
After simple transforms:
( 1, 3) [000109] ------------ * stmtExpr void (top level) (IL 0x084... ???)
N001 ( 1, 1) [000107] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000326] DA-----N---- \--* st.lclVar int V08 tmp0 d:3
comma processing top level statment:
( 1, 3) [000109] ------------ * stmtExpr void (top level) (IL 0x084... ???)
N001 ( 1, 1) [000107] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000326] DA-----N---- \--* st.lclVar int V08 tmp0 d:3
Tree Transform Rationalization: BB09
( 19, 18) [000098] ------------ * stmtExpr void (top level) (IL 0x086...0x092)
N001 ( 0, 0) [000329] ----------L- arg0 SETUP | /--* argPlace ref $3c5
N003 ( 3, 10) [000327] ------------ | | /--* const(h) long 0xD6273070 "Pass" $184
N004 ( 5, 12) [000328] ----G------- arg0 in rcx | +--* indir ref $3c5
N006 ( 19, 18) [000096] --C-G------- \--* call void System.Console.WriteLine $VN.Void
RewriteSimpleTransforms, with statement:
( 19, 18) [000098] ------------ * stmtExpr void (top level) (IL 0x086...0x092)
N001 ( 0, 0) [000329] ----------L- arg0 SETUP | /--* argPlace ref $3c5
N003 ( 3, 10) [000327] ------------ | | /--* const(h) long 0xD6273070 "Pass" $184
N004 ( 5, 12) [000328] ----G------- arg0 in rcx | +--* indir ref $3c5
N006 ( 19, 18) [000096] --C-G------- \--* call void System.Console.WriteLine $VN.Void
After simple transforms:
( 19, 18) [000098] ------------ * stmtExpr void (top level) (IL 0x086...0x092)
N001 ( 0, 0) [000329] ----------L- arg0 SETUP | /--* argPlace ref $3c5
N003 ( 3, 10) [000327] ------------ | | /--* const(h) long 0xD6273070 "Pass" $184
N004 ( 5, 12) [000328] ----G------- arg0 in rcx | +--* indir ref $3c5
N006 ( 19, 18) [000096] --C-G------- \--* call void System.Console.WriteLine $VN.Void
comma processing top level statment:
( 19, 18) [000098] ------------ * stmtExpr void (top level) (IL 0x086...0x092)
N001 ( 0, 0) [000329] ----------L- arg0 SETUP | /--* argPlace ref $3c5
N003 ( 3, 10) [000327] ------------ | | /--* const(h) long 0xD6273070 "Pass" $184
N004 ( 5, 12) [000328] ----G------- arg0 in rcx | +--* indir ref $3c5
N006 ( 19, 18) [000096] --C-G------- \--* call void System.Console.WriteLine $VN.Void
Tree Transform Rationalization: BB09
( 1, 3) [000101] ------------ * stmtExpr void (top level) (IL 0x090... ???)
N001 ( 1, 1) [000099] ------------ | /--* const int 100 $45
N002 ( 1, 1) [000331] D------N---- | +--* lclVar int V08 tmp0 d:4 $45
N003 ( 1, 3) [000332] -A-----NR--- \--* = int $45
RewriteSimpleTransforms, with statement:
( 1, 3) [000101] ------------ * stmtExpr void (top level) (IL 0x090... ???)
N001 ( 1, 1) [000099] ------------ | /--* const int 100 $45
N002 ( 1, 1) [000331] D------N---- | +--* lclVar int V08 tmp0 d:4 $45
N003 ( 1, 3) [000332] -A-----NR--- \--* = int $45
rewriting GT_ASG(GT_LCL_VAR, X) to GT_STORE_LCL_VAR(X)
N003 ( 1, 3) [000332] DA-----N---- * st.lclVar int V08 tmp0 d:4
After simple transforms:
( 1, 3) [000101] ------------ * stmtExpr void (top level) (IL 0x090... ???)
N001 ( 1, 1) [000099] ------------ | /--* const int 100 $45
N003 ( 1, 3) [000332] DA-----N---- \--* st.lclVar int V08 tmp0 d:4
comma processing top level statment:
( 1, 3) [000101] ------------ * stmtExpr void (top level) (IL 0x090... ???)
N001 ( 1, 1) [000099] ------------ | /--* const int 100 $45
N003 ( 1, 3) [000332] DA-----N---- \--* st.lclVar int V08 tmp0 d:4
Tree Transform Rationalization: BB10
( 6, 6) [000336] ------------ * stmtExpr void (top level) (IL ???... ???)
N001 ( 0, 0) [000345] ------------ List Item 0 | /--* phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ List Item 1 | +--* phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ List Item 2 | +--* phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ List Item 3 | +--* phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ List Item 4 | +--* phiArg int V08 tmp0 u:3 $41
N011 ( 6, 6) [000334] ------------ | * phi int
N001 ( 0, 0) [000345] ------------ * phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ * phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ * phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ * phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ * phiArg int V08 tmp0 u:3 $41
N012 ( 1, 1) [000333] D------N---- | +--* lclVar int V08 tmp0 d:8
N013 ( 6, 6) [000335] -A------R--- \--* = int
RewriteSimpleTransforms, with statement:
( 6, 6) [000336] ------------ * stmtExpr void (top level) (IL ???... ???)
N001 ( 0, 0) [000345] ------------ List Item 0 | /--* phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ List Item 1 | +--* phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ List Item 2 | +--* phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ List Item 3 | +--* phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ List Item 4 | +--* phiArg int V08 tmp0 u:3 $41
N011 ( 6, 6) [000334] ------------ | * phi int
N001 ( 0, 0) [000345] ------------ * phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ * phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ * phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ * phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ * phiArg int V08 tmp0 u:3 $41
N012 ( 1, 1) [000333] D------N---- | +--* lclVar int V08 tmp0 d:8
N013 ( 6, 6) [000335] -A------R--- \--* = int
rewriting GT_ASG(GT_LCL_VAR, X) to GT_STORE_LCL_VAR(X)
N013 ( 6, 6) [000335] DA---------- * st.lclVar int V08 tmp0 d:8
After simple transforms:
( 6, 6) [000336] ------------ * stmtExpr void (top level) (IL ???... ???)
N001 ( 0, 0) [000345] ------------ List Item 0 | /--* phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ List Item 1 | +--* phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ List Item 2 | +--* phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ List Item 3 | +--* phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ List Item 4 | +--* phiArg int V08 tmp0 u:3 $41
N011 ( 6, 6) [000334] ------------ | * phi int
N001 ( 0, 0) [000345] ------------ * phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ * phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ * phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ * phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ * phiArg int V08 tmp0 u:3 $41
N013 ( 6, 6) [000335] DA---------- \--* st.lclVar int V08 tmp0 d:8
comma processing top level statment:
( 6, 6) [000336] ------------ * stmtExpr void (top level) (IL ???... ???)
N001 ( 0, 0) [000345] ------------ List Item 0 | /--* phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ List Item 1 | +--* phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ List Item 2 | +--* phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ List Item 3 | +--* phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ List Item 4 | +--* phiArg int V08 tmp0 u:3 $41
N011 ( 6, 6) [000334] ------------ | * phi int
N001 ( 0, 0) [000345] ------------ * phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ * phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ * phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ * phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ * phiArg int V08 tmp0 u:3 $41
N013 ( 6, 6) [000335] DA---------- \--* st.lclVar int V08 tmp0 d:8
Tree Transform Rationalization: BB10
( 2, 2) [000136] ------------ * stmtExpr void (top level) (IL ???... ???)
N001 ( 1, 1) [000134] -------N---- | /--* lclVar int V08 tmp0 u:8 (last use) $440
N002 ( 2, 2) [000135] ------------ \--* return int $38d
RewriteSimpleTransforms, with statement:
( 2, 2) [000136] ------------ * stmtExpr void (top level) (IL ???... ???)
N001 ( 1, 1) [000134] -------N---- | /--* lclVar int V08 tmp0 u:8 (last use) $440
N002 ( 2, 2) [000135] ------------ \--* return int $38d
After simple transforms:
( 2, 2) [000136] ------------ * stmtExpr void (top level) (IL ???... ???)
N001 ( 1, 1) [000134] -------N---- | /--* lclVar int V08 tmp0 u:8 (last use) $440
N002 ( 2, 2) [000135] ------------ \--* return int $38d
comma processing top level statment:
( 2, 2) [000136] ------------ * stmtExpr void (top level) (IL ???... ???)
N001 ( 1, 1) [000134] -------N---- | /--* lclVar int V08 tmp0 u:8 (last use) $440
N002 ( 2, 2) [000135] ------------ \--* return int $38d
*************** Exiting IR Rationalize
Trees after IR Rationalize
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 0.5 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 0.5 [056..05A)-> BB05 ( cond ) i label target gcsafe
BB04 [0000026AC4437578] 1 BB03 0.5 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 0.5 [066..06A)-> BB07 ( cond ) i label target gcsafe
BB06 [0000026AC4437788] 1 BB05 0.5 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 0.5 [076..07A)-> BB09 ( cond ) i label target gcsafe
BB08 [0000026AC4437998] 1 BB07 0.5 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 0.5 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target gcsafe
-------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..04A) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1 (top level)
( 1, 3) [000143] ------------ * stmtExpr void (top level) (IL 0x000... ???)
N001 ( 1, 1) [000004] ------------ | /--* const long 10 $81
N003 ( 1, 3) [000142] DA--G------- \--* st.lclVar long V15 tmp7 d:3
***** BB01, stmt 2 (top level)
( 1, 3) [000151] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
N001 ( 1, 1) [000011] ------------ | /--* const long 20 $82
N003 ( 1, 3) [000150] DA--G------- \--* st.lclVar long V16 tmp8 d:3
***** BB01, stmt 3 (top level)
( 5, 4) [000179] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000224] -------N---- | /--* lclVar long V15 tmp7 u:3 $81
N003 ( 5, 4) [000225] DA---------- \--* st.lclVar long V17 tmp9 d:3
***** BB01, stmt 4 (top level)
( 5, 4) [000185] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000227] -------N---- | /--* lclVar long V16 tmp8 u:3 $82
N003 ( 5, 4) [000228] DA---------- \--* st.lclVar long V18 tmp10 d:3
***** BB01, stmt 5 (top level)
( 10, 10) [000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 3, 4) [000231] U---G--N---- | /--* &lclFld byref V02 loc2 ud:2->3[+0] Fseq[v1] <l:$1c0, c:$1c1>
N003 ( 1, 1) [000232] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000233] ----G--N---- | /--* + byref $241
N006 ( 3, 2) [000235] -------N---- | +--* lclVar long V15 tmp7 u:3 (last use) $81
( 10, 10) [000347] ----G------- \--* storeIndir long
***** BB01, stmt 6 (top level)
( 10, 10) [000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 3, 4) [000241] U---G--N---- | /--* &lclFld byref V02 loc2 ud:3->4[+8] Fseq[v2] <l:$1c2, c:$1c3>
N003 ( 1, 1) [000242] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000243] ----G--N---- | /--* + byref $243
N006 ( 3, 2) [000245] -------N---- | +--* lclVar long V16 tmp8 u:3 (last use) $82
( 10, 10) [000348] ----G------- \--* storeIndir long
***** BB01, stmt 7 (top level)
( 5, 4) [000213] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000248] -------N---- | /--* lclVar long V16 tmp8 u:3 (last use) $82
N003 ( 5, 4) [000249] DA---------- \--* st.lclVar long V19 tmp11 d:3
***** BB01, stmt 8 (top level)
( 5, 4) [000219] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000251] -------N---- | /--* lclVar long V15 tmp7 u:3 (last use) $81
N003 ( 5, 4) [000252] DA---------- \--* st.lclVar long V20 tmp12 d:3
***** BB01, stmt 9 (top level)
( 10, 10) [000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 3, 4) [000255] U---G--N---- | /--* &lclFld byref V03 loc3 ud:2->3[+0] Fseq[v1] <l:$1c4, c:$1c5>
N003 ( 1, 1) [000256] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000257] ----G--N---- | /--* + byref $245
N006 ( 3, 2) [000259] -------N---- | +--* lclVar long V19 tmp11 u:3 (last use) $82
( 10, 10) [000349] ----G------- \--* storeIndir long
***** BB01, stmt 10 (top level)
( 10, 10) [000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 3, 4) [000265] U---G--N---- | /--* &lclFld byref V03 loc3 ud:3->4[+8] Fseq[v2] <l:$1c6, c:$1c7>
N003 ( 1, 1) [000266] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000267] ----G--N---- | /--* + byref $247
N006 ( 3, 2) [000269] -------N---- | +--* lclVar long V20 tmp12 u:3 (last use) $81
( 10, 10) [000350] ----G------- \--* storeIndir long
***** BB01, stmt 11 (top level)
( 33, 21) [000046] ------------ * stmtExpr void (top level) (IL 0x026... ???)
N001 ( 3, 2) [000039] -------N---- Source | /--* &lclVar byref V02 loc2 u:4 $2c1
N003 ( 3, 2) [000271] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000273] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000274] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000276] -------N---- arg0 in rcx | +--* &lclVar byref V21 tmp13 $1c8
N012 ( 29, 18) [000040] --CXG------- | /--* call int Program.IsXGeater $380
N014 ( 33, 21) [000045] DACXG------- \--* st.lclVar int V04 loc4 d:3
***** BB01, stmt 12 (top level)
( 33, 21) [000054] ------------ * stmtExpr void (top level) (IL 0x02E...0x034)
N001 ( 3, 2) [000047] -------N---- Source | /--* &lclVar byref V03 loc3 u:4 $2c3
N003 ( 3, 2) [000279] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000281] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000282] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000284] -------N---- arg0 in rcx | +--* &lclVar byref V21 tmp13 $1c9
N012 ( 29, 18) [000048] --CXG------- | /--* call int Program.IsXGeater $382
N014 ( 33, 21) [000053] DACXG------- \--* st.lclVar int V05 loc5 d:3
***** BB01, stmt 13 (top level)
( 33, 21) [000062] ------------ * stmtExpr void (top level) (IL 0x036...0x03C)
N001 ( 3, 2) [000055] -------N---- Source | /--* &lclVar byref V02 loc2 u:4 (last use) $2c1
N003 ( 3, 2) [000287] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000289] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000290] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000292] -------N---- arg0 in rcx | +--* &lclVar byref V21 tmp13 $1ca
N012 ( 29, 18) [000056] --CXG------- | /--* call int Program.IsXGeater $384
N014 ( 33, 21) [000061] DACXG------- \--* st.lclVar int V06 loc6 d:3
***** BB01, stmt 14 (top level)
( 33, 21) [000070] ------------ * stmtExpr void (top level) (IL 0x03E...0x044)
N001 ( 3, 2) [000063] -------N---- Source | /--* &lclVar byref V03 loc3 u:4 (last use) $2c3
N003 ( 3, 2) [000295] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000297] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000298] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000300] -------N---- arg0 in rcx | +--* &lclVar byref V21 tmp13 $1cb
N012 ( 29, 18) [000064] --CXG------- | /--* call int Program.IsXGeater $386
N014 ( 33, 21) [000069] DACXG------- \--* st.lclVar int V07 loc7 d:3
***** BB01, stmt 15 (top level)
( 7, 6) [000075] ------------ * stmtExpr void (top level) (IL 0x046...0x048)
N001 ( 3, 2) [000071] ------------ | /--* lclVar int V04 loc4 u:3 (last use) $380
N002 ( 1, 1) [000072] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000073] J------N---- | /--* == int $400
N004 ( 7, 6) [000074] ------------ \--* jmpTrue void
------------ BB02 [04A..056) -> BB10 (always), preds={BB01} succs={BB10}
***** BB02, stmt 16 (top level)
( 19, 18) [000130] ------------ * stmtExpr void (top level) (IL 0x04A...0x055)
N001 ( 0, 0) [000305] ----------L- arg0 SETUP | /--* argPlace ref $3d1
N003 ( 3, 10) [000303] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000304] ----G------- arg0 in rcx | +--* indir ref $3d1
N006 ( 19, 18) [000128] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB02, stmt 17 (top level)
( 1, 3) [000133] ------------ * stmtExpr void (top level) (IL 0x054... ???)
N001 ( 1, 1) [000131] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000308] DA-----N---- \--* st.lclVar int V08 tmp0 d:7
------------ BB03 [056..05A) -> BB05 (cond), preds={BB01} succs={BB04,BB05}
***** BB03, stmt 18 (top level)
( 7, 6) [000081] ------------ * stmtExpr void (top level) (IL 0x056...0x058)
N001 ( 3, 2) [000077] ------------ | /--* lclVar int V05 loc5 u:3 (last use) $382
N002 ( 1, 1) [000078] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000079] J------N---- | /--* != int $401
N004 ( 7, 6) [000080] ------------ \--* jmpTrue void
------------ BB04 [05A..066) -> BB10 (always), preds={BB03} succs={BB10}
***** BB04, stmt 19 (top level)
( 19, 18) [000122] ------------ * stmtExpr void (top level) (IL 0x05A...0x065)
N001 ( 0, 0) [000311] ----------L- arg0 SETUP | /--* argPlace ref $3ce
N003 ( 3, 10) [000309] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000310] ----G------- arg0 in rcx | +--* indir ref $3ce
N006 ( 19, 18) [000120] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB04, stmt 20 (top level)
( 1, 3) [000125] ------------ * stmtExpr void (top level) (IL 0x064... ???)
N001 ( 1, 1) [000123] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000314] DA-----N---- \--* st.lclVar int V08 tmp0 d:6
------------ BB05 [066..06A) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
***** BB05, stmt 21 (top level)
( 7, 6) [000087] ------------ * stmtExpr void (top level) (IL 0x066...0x068)
N001 ( 3, 2) [000083] ------------ | /--* lclVar int V06 loc6 u:3 (last use) $384
N002 ( 1, 1) [000084] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000085] J------N---- | /--* == int $402
N004 ( 7, 6) [000086] ------------ \--* jmpTrue void
------------ BB06 [06A..076) -> BB10 (always), preds={BB05} succs={BB10}
***** BB06, stmt 22 (top level)
( 19, 18) [000114] ------------ * stmtExpr void (top level) (IL 0x06A...0x075)
N001 ( 0, 0) [000317] ----------L- arg0 SETUP | /--* argPlace ref $3cb
N003 ( 3, 10) [000315] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000316] ----G------- arg0 in rcx | +--* indir ref $3cb
N006 ( 19, 18) [000112] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB06, stmt 23 (top level)
( 1, 3) [000117] ------------ * stmtExpr void (top level) (IL 0x074... ???)
N001 ( 1, 1) [000115] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000320] DA-----N---- \--* st.lclVar int V08 tmp0 d:5
------------ BB07 [076..07A) -> BB09 (cond), preds={BB05} succs={BB08,BB09}
***** BB07, stmt 24 (top level)
( 7, 6) [000093] ------------ * stmtExpr void (top level) (IL 0x076...0x078)
N001 ( 3, 2) [000089] ------------ | /--* lclVar int V07 loc7 u:3 (last use) $386
N002 ( 1, 1) [000090] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000091] J------N---- | /--* != int $403
N004 ( 7, 6) [000092] ------------ \--* jmpTrue void
------------ BB08 [07A..086) -> BB10 (always), preds={BB07} succs={BB10}
***** BB08, stmt 25 (top level)
( 19, 18) [000106] ------------ * stmtExpr void (top level) (IL 0x07A...0x085)
N001 ( 0, 0) [000323] ----------L- arg0 SETUP | /--* argPlace ref $3c8
N003 ( 3, 10) [000321] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000322] ----G------- arg0 in rcx | +--* indir ref $3c8
N006 ( 19, 18) [000104] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB08, stmt 26 (top level)
( 1, 3) [000109] ------------ * stmtExpr void (top level) (IL 0x084... ???)
N001 ( 1, 1) [000107] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000326] DA-----N---- \--* st.lclVar int V08 tmp0 d:3
------------ BB09 [086..093), preds={BB07} succs={BB10}
***** BB09, stmt 27 (top level)
( 19, 18) [000098] ------------ * stmtExpr void (top level) (IL 0x086...0x092)
N001 ( 0, 0) [000329] ----------L- arg0 SETUP | /--* argPlace ref $3c5
N003 ( 3, 10) [000327] ------------ | | /--* const(h) long 0xD6273070 "Pass" $184
N004 ( 5, 12) [000328] ----G------- arg0 in rcx | +--* indir ref $3c5
N006 ( 19, 18) [000096] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB09, stmt 28 (top level)
( 1, 3) [000101] ------------ * stmtExpr void (top level) (IL 0x090... ???)
N001 ( 1, 1) [000099] ------------ | /--* const int 100 $45
N003 ( 1, 3) [000332] DA-----N---- \--* st.lclVar int V08 tmp0 d:4
------------ BB10 [???..???) (return), preds={BB02,BB04,BB06,BB08,BB09} succs={}
***** BB10, stmt 29 (top level)
( 6, 6) [000336] ------------ * stmtExpr void (top level) (IL ???... ???)
N001 ( 0, 0) [000345] ------------ List Item 0 | /--* phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ List Item 1 | +--* phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ List Item 2 | +--* phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ List Item 3 | +--* phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ List Item 4 | +--* phiArg int V08 tmp0 u:3 $41
N011 ( 6, 6) [000334] ------------ | * phi int
N001 ( 0, 0) [000345] ------------ * phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ * phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ * phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ * phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ * phiArg int V08 tmp0 u:3 $41
N013 ( 6, 6) [000335] DA---------- \--* st.lclVar int V08 tmp0 d:8
***** BB10, stmt 30 (top level)
( 2, 2) [000136] ------------ * stmtExpr void (top level) (IL ???... ???)
N001 ( 1, 1) [000134] -------N---- | /--* lclVar int V08 tmp0 u:8 (last use) $440
N002 ( 2, 2) [000135] ------------ \--* return int $38d
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckBBlist
*************** In Lowering
Trees before Lowering
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 0.5 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 0.5 [056..05A)-> BB05 ( cond ) i label target gcsafe
BB04 [0000026AC4437578] 1 BB03 0.5 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 0.5 [066..06A)-> BB07 ( cond ) i label target gcsafe
BB06 [0000026AC4437788] 1 BB05 0.5 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 0.5 [076..07A)-> BB09 ( cond ) i label target gcsafe
BB08 [0000026AC4437998] 1 BB07 0.5 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 0.5 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target gcsafe
-------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..04A) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1 (top level)
( 1, 3) [000143] ------------ * stmtExpr void (top level) (IL 0x000... ???)
N001 ( 1, 1) [000004] ------------ | /--* const long 10 $81
N003 ( 1, 3) [000142] DA--G------- \--* st.lclVar long V15 tmp7 d:3
***** BB01, stmt 2 (top level)
( 1, 3) [000151] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
N001 ( 1, 1) [000011] ------------ | /--* const long 20 $82
N003 ( 1, 3) [000150] DA--G------- \--* st.lclVar long V16 tmp8 d:3
***** BB01, stmt 3 (top level)
( 5, 4) [000179] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000224] -------N---- | /--* lclVar long V15 tmp7 u:3 $81
N003 ( 5, 4) [000225] DA---------- \--* st.lclVar long V17 tmp9 d:3
***** BB01, stmt 4 (top level)
( 5, 4) [000185] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000227] -------N---- | /--* lclVar long V16 tmp8 u:3 $82
N003 ( 5, 4) [000228] DA---------- \--* st.lclVar long V18 tmp10 d:3
***** BB01, stmt 5 (top level)
( 10, 10) [000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 3, 4) [000231] U---G--N---- | /--* &lclFld byref V02 loc2 ud:2->3[+0] Fseq[v1] <l:$1c0, c:$1c1>
N003 ( 1, 1) [000232] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000233] ----G--N---- | /--* + byref $241
N006 ( 3, 2) [000235] -------N---- | +--* lclVar long V15 tmp7 u:3 (last use) $81
( 10, 10) [000347] ----G------- \--* storeIndir long
***** BB01, stmt 6 (top level)
( 10, 10) [000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 3, 4) [000241] U---G--N---- | /--* &lclFld byref V02 loc2 ud:3->4[+8] Fseq[v2] <l:$1c2, c:$1c3>
N003 ( 1, 1) [000242] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000243] ----G--N---- | /--* + byref $243
N006 ( 3, 2) [000245] -------N---- | +--* lclVar long V16 tmp8 u:3 (last use) $82
( 10, 10) [000348] ----G------- \--* storeIndir long
***** BB01, stmt 7 (top level)
( 5, 4) [000213] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000248] -------N---- | /--* lclVar long V16 tmp8 u:3 (last use) $82
N003 ( 5, 4) [000249] DA---------- \--* st.lclVar long V19 tmp11 d:3
***** BB01, stmt 8 (top level)
( 5, 4) [000219] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000251] -------N---- | /--* lclVar long V15 tmp7 u:3 (last use) $81
N003 ( 5, 4) [000252] DA---------- \--* st.lclVar long V20 tmp12 d:3
***** BB01, stmt 9 (top level)
( 10, 10) [000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 3, 4) [000255] U---G--N---- | /--* &lclFld byref V03 loc3 ud:2->3[+0] Fseq[v1] <l:$1c4, c:$1c5>
N003 ( 1, 1) [000256] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000257] ----G--N---- | /--* + byref $245
N006 ( 3, 2) [000259] -------N---- | +--* lclVar long V19 tmp11 u:3 (last use) $82
( 10, 10) [000349] ----G------- \--* storeIndir long
***** BB01, stmt 10 (top level)
( 10, 10) [000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 3, 4) [000265] U---G--N---- | /--* &lclFld byref V03 loc3 ud:3->4[+8] Fseq[v2] <l:$1c6, c:$1c7>
N003 ( 1, 1) [000266] ------------ | +--* const long 0 Fseq[val] $80
N004 ( 5, 7) [000267] ----G--N---- | /--* + byref $247
N006 ( 3, 2) [000269] -------N---- | +--* lclVar long V20 tmp12 u:3 (last use) $81
( 10, 10) [000350] ----G------- \--* storeIndir long
***** BB01, stmt 11 (top level)
( 33, 21) [000046] ------------ * stmtExpr void (top level) (IL 0x026... ???)
N001 ( 3, 2) [000039] -------N---- Source | /--* &lclVar byref V02 loc2 u:4 $2c1
N003 ( 3, 2) [000271] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000273] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000274] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000276] -------N---- arg0 in rcx | +--* &lclVar byref V21 tmp13 $1c8
N012 ( 29, 18) [000040] --CXG------- | /--* call int Program.IsXGeater $380
N014 ( 33, 21) [000045] DACXG------- \--* st.lclVar int V04 loc4 d:3
***** BB01, stmt 12 (top level)
( 33, 21) [000054] ------------ * stmtExpr void (top level) (IL 0x02E...0x034)
N001 ( 3, 2) [000047] -------N---- Source | /--* &lclVar byref V03 loc3 u:4 $2c3
N003 ( 3, 2) [000279] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000281] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000282] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000284] -------N---- arg0 in rcx | +--* &lclVar byref V21 tmp13 $1c9
N012 ( 29, 18) [000048] --CXG------- | /--* call int Program.IsXGeater $382
N014 ( 33, 21) [000053] DACXG------- \--* st.lclVar int V05 loc5 d:3
***** BB01, stmt 13 (top level)
( 33, 21) [000062] ------------ * stmtExpr void (top level) (IL 0x036...0x03C)
N001 ( 3, 2) [000055] -------N---- Source | /--* &lclVar byref V02 loc2 u:4 (last use) $2c1
N003 ( 3, 2) [000287] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000289] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000290] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000292] -------N---- arg0 in rcx | +--* &lclVar byref V21 tmp13 $1ca
N012 ( 29, 18) [000056] --CXG------- | /--* call int Program.IsXGeater $384
N014 ( 33, 21) [000061] DACXG------- \--* st.lclVar int V06 loc6 d:3
***** BB01, stmt 14 (top level)
( 33, 21) [000070] ------------ * stmtExpr void (top level) (IL 0x03E...0x044)
N001 ( 3, 2) [000063] -------N---- Source | /--* &lclVar byref V03 loc3 u:4 (last use) $2c3
N003 ( 3, 2) [000295] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000297] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000298] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000300] -------N---- arg0 in rcx | +--* &lclVar byref V21 tmp13 $1cb
N012 ( 29, 18) [000064] --CXG------- | /--* call int Program.IsXGeater $386
N014 ( 33, 21) [000069] DACXG------- \--* st.lclVar int V07 loc7 d:3
***** BB01, stmt 15 (top level)
( 7, 6) [000075] ------------ * stmtExpr void (top level) (IL 0x046...0x048)
N001 ( 3, 2) [000071] ------------ | /--* lclVar int V04 loc4 u:3 (last use) $380
N002 ( 1, 1) [000072] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000073] J------N---- | /--* == int $400
N004 ( 7, 6) [000074] ------------ \--* jmpTrue void
------------ BB02 [04A..056) -> BB10 (always), preds={BB01} succs={BB10}
***** BB02, stmt 16 (top level)
( 19, 18) [000130] ------------ * stmtExpr void (top level) (IL 0x04A...0x055)
N001 ( 0, 0) [000305] ----------L- arg0 SETUP | /--* argPlace ref $3d1
N003 ( 3, 10) [000303] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000304] ----G------- arg0 in rcx | +--* indir ref $3d1
N006 ( 19, 18) [000128] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB02, stmt 17 (top level)
( 1, 3) [000133] ------------ * stmtExpr void (top level) (IL 0x054... ???)
N001 ( 1, 1) [000131] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000308] DA-----N---- \--* st.lclVar int V08 tmp0 d:7
------------ BB03 [056..05A) -> BB05 (cond), preds={BB01} succs={BB04,BB05}
***** BB03, stmt 18 (top level)
( 7, 6) [000081] ------------ * stmtExpr void (top level) (IL 0x056...0x058)
N001 ( 3, 2) [000077] ------------ | /--* lclVar int V05 loc5 u:3 (last use) $382
N002 ( 1, 1) [000078] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000079] J------N---- | /--* != int $401
N004 ( 7, 6) [000080] ------------ \--* jmpTrue void
------------ BB04 [05A..066) -> BB10 (always), preds={BB03} succs={BB10}
***** BB04, stmt 19 (top level)
( 19, 18) [000122] ------------ * stmtExpr void (top level) (IL 0x05A...0x065)
N001 ( 0, 0) [000311] ----------L- arg0 SETUP | /--* argPlace ref $3ce
N003 ( 3, 10) [000309] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000310] ----G------- arg0 in rcx | +--* indir ref $3ce
N006 ( 19, 18) [000120] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB04, stmt 20 (top level)
( 1, 3) [000125] ------------ * stmtExpr void (top level) (IL 0x064... ???)
N001 ( 1, 1) [000123] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000314] DA-----N---- \--* st.lclVar int V08 tmp0 d:6
------------ BB05 [066..06A) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
***** BB05, stmt 21 (top level)
( 7, 6) [000087] ------------ * stmtExpr void (top level) (IL 0x066...0x068)
N001 ( 3, 2) [000083] ------------ | /--* lclVar int V06 loc6 u:3 (last use) $384
N002 ( 1, 1) [000084] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000085] J------N---- | /--* == int $402
N004 ( 7, 6) [000086] ------------ \--* jmpTrue void
------------ BB06 [06A..076) -> BB10 (always), preds={BB05} succs={BB10}
***** BB06, stmt 22 (top level)
( 19, 18) [000114] ------------ * stmtExpr void (top level) (IL 0x06A...0x075)
N001 ( 0, 0) [000317] ----------L- arg0 SETUP | /--* argPlace ref $3cb
N003 ( 3, 10) [000315] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000316] ----G------- arg0 in rcx | +--* indir ref $3cb
N006 ( 19, 18) [000112] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB06, stmt 23 (top level)
( 1, 3) [000117] ------------ * stmtExpr void (top level) (IL 0x074... ???)
N001 ( 1, 1) [000115] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000320] DA-----N---- \--* st.lclVar int V08 tmp0 d:5
------------ BB07 [076..07A) -> BB09 (cond), preds={BB05} succs={BB08,BB09}
***** BB07, stmt 24 (top level)
( 7, 6) [000093] ------------ * stmtExpr void (top level) (IL 0x076...0x078)
N001 ( 3, 2) [000089] ------------ | /--* lclVar int V07 loc7 u:3 (last use) $386
N002 ( 1, 1) [000090] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000091] J------N---- | /--* != int $403
N004 ( 7, 6) [000092] ------------ \--* jmpTrue void
------------ BB08 [07A..086) -> BB10 (always), preds={BB07} succs={BB10}
***** BB08, stmt 25 (top level)
( 19, 18) [000106] ------------ * stmtExpr void (top level) (IL 0x07A...0x085)
N001 ( 0, 0) [000323] ----------L- arg0 SETUP | /--* argPlace ref $3c8
N003 ( 3, 10) [000321] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000322] ----G------- arg0 in rcx | +--* indir ref $3c8
N006 ( 19, 18) [000104] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB08, stmt 26 (top level)
( 1, 3) [000109] ------------ * stmtExpr void (top level) (IL 0x084... ???)
N001 ( 1, 1) [000107] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000326] DA-----N---- \--* st.lclVar int V08 tmp0 d:3
------------ BB09 [086..093), preds={BB07} succs={BB10}
***** BB09, stmt 27 (top level)
( 19, 18) [000098] ------------ * stmtExpr void (top level) (IL 0x086...0x092)
N001 ( 0, 0) [000329] ----------L- arg0 SETUP | /--* argPlace ref $3c5
N003 ( 3, 10) [000327] ------------ | | /--* const(h) long 0xD6273070 "Pass" $184
N004 ( 5, 12) [000328] ----G------- arg0 in rcx | +--* indir ref $3c5
N006 ( 19, 18) [000096] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB09, stmt 28 (top level)
( 1, 3) [000101] ------------ * stmtExpr void (top level) (IL 0x090... ???)
N001 ( 1, 1) [000099] ------------ | /--* const int 100 $45
N003 ( 1, 3) [000332] DA-----N---- \--* st.lclVar int V08 tmp0 d:4
------------ BB10 [???..???) (return), preds={BB02,BB04,BB06,BB08,BB09} succs={}
***** BB10, stmt 29 (top level)
( 6, 6) [000336] ------------ * stmtExpr void (top level) (IL ???... ???)
N001 ( 0, 0) [000345] ------------ List Item 0 | /--* phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ List Item 1 | +--* phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ List Item 2 | +--* phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ List Item 3 | +--* phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ List Item 4 | +--* phiArg int V08 tmp0 u:3 $41
N011 ( 6, 6) [000334] ------------ | * phi int
N001 ( 0, 0) [000345] ------------ * phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ * phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ * phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ * phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ * phiArg int V08 tmp0 u:3 $41
N013 ( 6, 6) [000335] DA---------- \--* st.lclVar int V08 tmp0 d:8
***** BB10, stmt 30 (top level)
( 2, 2) [000136] ------------ * stmtExpr void (top level) (IL ???... ???)
N001 ( 1, 1) [000134] -------N---- | /--* lclVar int V08 tmp0 u:8 (last use) $440
N002 ( 2, 2) [000135] ------------ \--* return int $38d
-------------------------------------------------------------------------------------------------------------------
Lowering BB01, stmt 1
Lowering BB01, stmt 2
Lowering BB01, stmt 3
Lowering BB01, stmt 4
Lowering BB01, stmt 5
( 10, 10) [000347] ----G------- * storeIndir long
Addressing mode:
Base
N001 ( 3, 4) [000231] U---G--N---- * &lclFld byref V02 loc2 ud:2->3[+0] Fseq[v1] <l:$1c0, c:$1c1>
+ 0
New addressing mode node:
( 5, 7) [000351] ----G------- * lea(b+0) byref
Lowering BB01, stmt 6
( 10, 10) [000348] ----G------- * storeIndir long
Addressing mode:
Base
N001 ( 3, 4) [000241] U---G--N---- * &lclFld byref V02 loc2 ud:3->4[+8] Fseq[v2] <l:$1c2, c:$1c3>
+ 0
New addressing mode node:
( 5, 7) [000352] ----G------- * lea(b+0) byref
Lowering BB01, stmt 7
Lowering BB01, stmt 8
Lowering BB01, stmt 9
( 10, 10) [000349] ----G------- * storeIndir long
Addressing mode:
Base
N001 ( 3, 4) [000255] U---G--N---- * &lclFld byref V03 loc3 ud:2->3[+0] Fseq[v1] <l:$1c4, c:$1c5>
+ 0
New addressing mode node:
( 5, 7) [000353] ----G------- * lea(b+0) byref
Lowering BB01, stmt 10
( 10, 10) [000350] ----G------- * storeIndir long
Addressing mode:
Base
N001 ( 3, 4) [000265] U---G--N---- * &lclFld byref V03 loc3 ud:3->4[+8] Fseq[v2] <l:$1c6, c:$1c7>
+ 0
New addressing mode node:
( 5, 7) [000354] ----G------- * lea(b+0) byref
Lowering BB01, stmt 11
lowering call:
N001 ( 3, 2) [000039] -------N---- Source /--* &lclVar byref V02 loc2 u:4 $2c1
N003 ( 3, 2) [000271] D------N---- Destination +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000273] ------------ +--* const int 16 $44
N007 ( 9, 9) [000274] -A--G-----L- arg0 SETUP /--* copyBlk void $VN.Void
N009 ( 3, 2) [000276] -------N---- arg0 in rcx +--* &lclVar byref V21 tmp13 $1c8
N012 ( 29, 18) [000040] --CXG------- * call int Program.IsXGeater $380
objp:
======
args:
======
lowering arg : N007 ( 9, 9) [000274] -A--G-----L- * copyBlk void $VN.Void
late:
======
lowering arg : N009 ( 3, 2) [000276] -------N---- * &lclVar byref V21 tmp13 $1c8
new node is : ( 3, 2) [000355] ------------ * putarg_reg byref
after:
=====
N001 ( 3, 2) [000039] -------N---- Source /--* &lclVar byref V02 loc2 u:4 $2c1
N003 ( 3, 2) [000271] D------N---- Destination +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000273] ------------ +--* const int 16 $44
N007 ( 9, 9) [000274] -A--G-----L- arg0 SETUP /--* copyBlk void $VN.Void
N009 ( 3, 2) [000276] -------N---- | /--* &lclVar byref V21 tmp13 $1c8
( 3, 2) [000355] ------------ arg0 in rcx +--* putarg_reg byref
N012 ( 29, 18) [000040] --CXG------- * call int Program.IsXGeater $380
Lowering BB01, stmt 12
lowering call:
N001 ( 3, 2) [000047] -------N---- Source /--* &lclVar byref V03 loc3 u:4 $2c3
N003 ( 3, 2) [000279] D------N---- Destination +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000281] ------------ +--* const int 16 $44
N007 ( 9, 9) [000282] -A--G-----L- arg0 SETUP /--* copyBlk void $VN.Void
N009 ( 3, 2) [000284] -------N---- arg0 in rcx +--* &lclVar byref V21 tmp13 $1c9
N012 ( 29, 18) [000048] --CXG------- * call int Program.IsXGeater $382
objp:
======
args:
======
lowering arg : N007 ( 9, 9) [000282] -A--G-----L- * copyBlk void $VN.Void
late:
======
lowering arg : N009 ( 3, 2) [000284] -------N---- * &lclVar byref V21 tmp13 $1c9
new node is : ( 3, 2) [000356] ------------ * putarg_reg byref
after:
=====
N001 ( 3, 2) [000047] -------N---- Source /--* &lclVar byref V03 loc3 u:4 $2c3
N003 ( 3, 2) [000279] D------N---- Destination +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000281] ------------ +--* const int 16 $44
N007 ( 9, 9) [000282] -A--G-----L- arg0 SETUP /--* copyBlk void $VN.Void
N009 ( 3, 2) [000284] -------N---- | /--* &lclVar byref V21 tmp13 $1c9
( 3, 2) [000356] ------------ arg0 in rcx +--* putarg_reg byref
N012 ( 29, 18) [000048] --CXG------- * call int Program.IsXGeater $382
Lowering BB01, stmt 13
lowering call:
N001 ( 3, 2) [000055] -------N---- Source /--* &lclVar byref V02 loc2 u:4 (last use) $2c1
N003 ( 3, 2) [000287] D------N---- Destination +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000289] ------------ +--* const int 16 $44
N007 ( 9, 9) [000290] -A--G-----L- arg0 SETUP /--* copyBlk void $VN.Void
N009 ( 3, 2) [000292] -------N---- arg0 in rcx +--* &lclVar byref V21 tmp13 $1ca
N012 ( 29, 18) [000056] --CXG------- * call int Program.IsXGeater $384
objp:
======
args:
======
lowering arg : N007 ( 9, 9) [000290] -A--G-----L- * copyBlk void $VN.Void
late:
======
lowering arg : N009 ( 3, 2) [000292] -------N---- * &lclVar byref V21 tmp13 $1ca
new node is : ( 3, 2) [000357] ------------ * putarg_reg byref
after:
=====
N001 ( 3, 2) [000055] -------N---- Source /--* &lclVar byref V02 loc2 u:4 (last use) $2c1
N003 ( 3, 2) [000287] D------N---- Destination +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000289] ------------ +--* const int 16 $44
N007 ( 9, 9) [000290] -A--G-----L- arg0 SETUP /--* copyBlk void $VN.Void
N009 ( 3, 2) [000292] -------N---- | /--* &lclVar byref V21 tmp13 $1ca
( 3, 2) [000357] ------------ arg0 in rcx +--* putarg_reg byref
N012 ( 29, 18) [000056] --CXG------- * call int Program.IsXGeater $384
Lowering BB01, stmt 14
lowering call:
N001 ( 3, 2) [000063] -------N---- Source /--* &lclVar byref V03 loc3 u:4 (last use) $2c3
N003 ( 3, 2) [000295] D------N---- Destination +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000297] ------------ +--* const int 16 $44
N007 ( 9, 9) [000298] -A--G-----L- arg0 SETUP /--* copyBlk void $VN.Void
N009 ( 3, 2) [000300] -------N---- arg0 in rcx +--* &lclVar byref V21 tmp13 $1cb
N012 ( 29, 18) [000064] --CXG------- * call int Program.IsXGeater $386
objp:
======
args:
======
lowering arg : N007 ( 9, 9) [000298] -A--G-----L- * copyBlk void $VN.Void
late:
======
lowering arg : N009 ( 3, 2) [000300] -------N---- * &lclVar byref V21 tmp13 $1cb
new node is : ( 3, 2) [000358] ------------ * putarg_reg byref
after:
=====
N001 ( 3, 2) [000063] -------N---- Source /--* &lclVar byref V03 loc3 u:4 (last use) $2c3
N003 ( 3, 2) [000295] D------N---- Destination +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000297] ------------ +--* const int 16 $44
N007 ( 9, 9) [000298] -A--G-----L- arg0 SETUP /--* copyBlk void $VN.Void
N009 ( 3, 2) [000300] -------N---- | /--* &lclVar byref V21 tmp13 $1cb
( 3, 2) [000358] ------------ arg0 in rcx +--* putarg_reg byref
N012 ( 29, 18) [000064] --CXG------- * call int Program.IsXGeater $386
Lowering BB01, stmt 15
Lowering BB02, stmt 16
N004 ( 5, 12) [000304] ----G------- * indir ref $3d1
No addressing mode
lowering call:
N001 ( 0, 0) [000305] ----------L- arg0 SETUP /--* argPlace ref $3d1
N003 ( 3, 10) [000303] ------------ | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000304] ----G------- arg0 in rcx +--* indir ref $3d1
N006 ( 19, 18) [000128] --C-G------- * call void System.Console.WriteLine $VN.Void
objp:
======
args:
======
lowering arg : N001 ( 0, 0) [000305] ----------L- * argPlace ref $3d1
late:
======
lowering arg : N004 ( 5, 12) [000304] ----G------- * indir ref $3d1
new node is : ( 5, 12) [000359] ----G------- * putarg_reg ref
after:
=====
N001 ( 0, 0) [000305] ----------L- arg0 SETUP /--* argPlace ref $3d1
N003 ( 3, 10) [000303] ------------ | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000304] ----G------- | /--* indir ref $3d1
( 5, 12) [000359] ----G------- arg0 in rcx +--* putarg_reg ref
N006 ( 19, 18) [000128] --C-G------- * call void System.Console.WriteLine $VN.Void
Lowering BB02, stmt 17
Lowering BB03, stmt 18
Lowering BB04, stmt 19
N004 ( 5, 12) [000310] ----G------- * indir ref $3ce
No addressing mode
lowering call:
N001 ( 0, 0) [000311] ----------L- arg0 SETUP /--* argPlace ref $3ce
N003 ( 3, 10) [000309] ------------ | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000310] ----G------- arg0 in rcx +--* indir ref $3ce
N006 ( 19, 18) [000120] --C-G------- * call void System.Console.WriteLine $VN.Void
objp:
======
args:
======
lowering arg : N001 ( 0, 0) [000311] ----------L- * argPlace ref $3ce
late:
======
lowering arg : N004 ( 5, 12) [000310] ----G------- * indir ref $3ce
new node is : ( 5, 12) [000360] ----G------- * putarg_reg ref
after:
=====
N001 ( 0, 0) [000311] ----------L- arg0 SETUP /--* argPlace ref $3ce
N003 ( 3, 10) [000309] ------------ | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000310] ----G------- | /--* indir ref $3ce
( 5, 12) [000360] ----G------- arg0 in rcx +--* putarg_reg ref
N006 ( 19, 18) [000120] --C-G------- * call void System.Console.WriteLine $VN.Void
Lowering BB04, stmt 20
Lowering BB05, stmt 21
Lowering BB06, stmt 22
N004 ( 5, 12) [000316] ----G------- * indir ref $3cb
No addressing mode
lowering call:
N001 ( 0, 0) [000317] ----------L- arg0 SETUP /--* argPlace ref $3cb
N003 ( 3, 10) [000315] ------------ | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000316] ----G------- arg0 in rcx +--* indir ref $3cb
N006 ( 19, 18) [000112] --C-G------- * call void System.Console.WriteLine $VN.Void
objp:
======
args:
======
lowering arg : N001 ( 0, 0) [000317] ----------L- * argPlace ref $3cb
late:
======
lowering arg : N004 ( 5, 12) [000316] ----G------- * indir ref $3cb
new node is : ( 5, 12) [000361] ----G------- * putarg_reg ref
after:
=====
N001 ( 0, 0) [000317] ----------L- arg0 SETUP /--* argPlace ref $3cb
N003 ( 3, 10) [000315] ------------ | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000316] ----G------- | /--* indir ref $3cb
( 5, 12) [000361] ----G------- arg0 in rcx +--* putarg_reg ref
N006 ( 19, 18) [000112] --C-G------- * call void System.Console.WriteLine $VN.Void
Lowering BB06, stmt 23
Lowering BB07, stmt 24
Lowering BB08, stmt 25
N004 ( 5, 12) [000322] ----G------- * indir ref $3c8
No addressing mode
lowering call:
N001 ( 0, 0) [000323] ----------L- arg0 SETUP /--* argPlace ref $3c8
N003 ( 3, 10) [000321] ------------ | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000322] ----G------- arg0 in rcx +--* indir ref $3c8
N006 ( 19, 18) [000104] --C-G------- * call void System.Console.WriteLine $VN.Void
objp:
======
args:
======
lowering arg : N001 ( 0, 0) [000323] ----------L- * argPlace ref $3c8
late:
======
lowering arg : N004 ( 5, 12) [000322] ----G------- * indir ref $3c8
new node is : ( 5, 12) [000362] ----G------- * putarg_reg ref
after:
=====
N001 ( 0, 0) [000323] ----------L- arg0 SETUP /--* argPlace ref $3c8
N003 ( 3, 10) [000321] ------------ | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000322] ----G------- | /--* indir ref $3c8
( 5, 12) [000362] ----G------- arg0 in rcx +--* putarg_reg ref
N006 ( 19, 18) [000104] --C-G------- * call void System.Console.WriteLine $VN.Void
Lowering BB08, stmt 26
Lowering BB09, stmt 27
N004 ( 5, 12) [000328] ----G------- * indir ref $3c5
No addressing mode
lowering call:
N001 ( 0, 0) [000329] ----------L- arg0 SETUP /--* argPlace ref $3c5
N003 ( 3, 10) [000327] ------------ | /--* const(h) long 0xD6273070 "Pass" $184
N004 ( 5, 12) [000328] ----G------- arg0 in rcx +--* indir ref $3c5
N006 ( 19, 18) [000096] --C-G------- * call void System.Console.WriteLine $VN.Void
objp:
======
args:
======
lowering arg : N001 ( 0, 0) [000329] ----------L- * argPlace ref $3c5
late:
======
lowering arg : N004 ( 5, 12) [000328] ----G------- * indir ref $3c5
new node is : ( 5, 12) [000363] ----G------- * putarg_reg ref
after:
=====
N001 ( 0, 0) [000329] ----------L- arg0 SETUP /--* argPlace ref $3c5
N003 ( 3, 10) [000327] ------------ | /--* const(h) long 0xD6273070 "Pass" $184
N004 ( 5, 12) [000328] ----G------- | /--* indir ref $3c5
( 5, 12) [000363] ----G------- arg0 in rcx +--* putarg_reg ref
N006 ( 19, 18) [000096] --C-G------- * call void System.Console.WriteLine $VN.Void
Lowering BB09, stmt 28
Lowering BB10, stmt 29
Lowering BB10, stmt 30
lowering GT_RETURN
N001 ( 1, 1) [000134] -------N---- /--* lclVar int V08 tmp0 u:8 (last use) $440
N002 ( 2, 2) [000135] ------------ * return int $38d
============Lower has completed modifying nodes, proceeding to initialize LSRA TreeNodeInfo structs...
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 0.5 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 0.5 [056..05A)-> BB05 ( cond ) i label target gcsafe
BB04 [0000026AC4437578] 1 BB03 0.5 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 0.5 [066..06A)-> BB07 ( cond ) i label target gcsafe
BB06 [0000026AC4437788] 1 BB05 0.5 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 0.5 [076..07A)-> BB09 ( cond ) i label target gcsafe
BB08 [0000026AC4437998] 1 BB07 0.5 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 0.5 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target gcsafe
-------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..04A) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1 (top level)
( 1, 3) [000143] ------------ * stmtExpr void (top level) (IL 0x000... ???)
N001 ( 1, 1) [000004] ------------ | /--* const long 10 $81
N003 ( 1, 3) [000142] DA--G------- \--* st.lclVar long V15 tmp7 d:3
***** BB01, stmt 2 (top level)
( 1, 3) [000151] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
N001 ( 1, 1) [000011] ------------ | /--* const long 20 $82
N003 ( 1, 3) [000150] DA--G------- \--* st.lclVar long V16 tmp8 d:3
***** BB01, stmt 3 (top level)
( 5, 4) [000179] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000224] -------N---- | /--* lclVar long V15 tmp7 u:3 $81
N003 ( 5, 4) [000225] DA---------- \--* st.lclVar long V17 tmp9 d:3
***** BB01, stmt 4 (top level)
( 5, 4) [000185] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000227] -------N---- | /--* lclVar long V16 tmp8 u:3 $82
N003 ( 5, 4) [000228] DA---------- \--* st.lclVar long V18 tmp10 d:3
***** BB01, stmt 5 (top level)
( 10, 10) [000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 3, 4) [000231] U---G--N---- | /--* &lclFld byref V02 loc2 ud:2->3[+0] Fseq[v1] <l:$1c0, c:$1c1>
( 5, 7) [000351] ----G------- | /--* lea(b+0) byref
N006 ( 3, 2) [000235] -------N---- | +--* lclVar long V15 tmp7 u:3 (last use) $81
( 10, 10) [000347] ----G------- \--* storeIndir long
***** BB01, stmt 6 (top level)
( 10, 10) [000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 3, 4) [000241] U---G--N---- | /--* &lclFld byref V02 loc2 ud:3->4[+8] Fseq[v2] <l:$1c2, c:$1c3>
( 5, 7) [000352] ----G------- | /--* lea(b+0) byref
N006 ( 3, 2) [000245] -------N---- | +--* lclVar long V16 tmp8 u:3 (last use) $82
( 10, 10) [000348] ----G------- \--* storeIndir long
***** BB01, stmt 7 (top level)
( 5, 4) [000213] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000248] -------N---- | /--* lclVar long V16 tmp8 u:3 (last use) $82
N003 ( 5, 4) [000249] DA---------- \--* st.lclVar long V19 tmp11 d:3
***** BB01, stmt 8 (top level)
( 5, 4) [000219] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000251] -------N---- | /--* lclVar long V15 tmp7 u:3 (last use) $81
N003 ( 5, 4) [000252] DA---------- \--* st.lclVar long V20 tmp12 d:3
***** BB01, stmt 9 (top level)
( 10, 10) [000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 3, 4) [000255] U---G--N---- | /--* &lclFld byref V03 loc3 ud:2->3[+0] Fseq[v1] <l:$1c4, c:$1c5>
( 5, 7) [000353] ----G------- | /--* lea(b+0) byref
N006 ( 3, 2) [000259] -------N---- | +--* lclVar long V19 tmp11 u:3 (last use) $82
( 10, 10) [000349] ----G------- \--* storeIndir long
***** BB01, stmt 10 (top level)
( 10, 10) [000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 3, 4) [000265] U---G--N---- | /--* &lclFld byref V03 loc3 ud:3->4[+8] Fseq[v2] <l:$1c6, c:$1c7>
( 5, 7) [000354] ----G------- | /--* lea(b+0) byref
N006 ( 3, 2) [000269] -------N---- | +--* lclVar long V20 tmp12 u:3 (last use) $81
( 10, 10) [000350] ----G------- \--* storeIndir long
***** BB01, stmt 11 (top level)
( 33, 21) [000046] ------------ * stmtExpr void (top level) (IL 0x026... ???)
N001 ( 3, 2) [000039] -------N---- Source | /--* &lclVar byref V02 loc2 u:4 $2c1
N003 ( 3, 2) [000271] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000273] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000274] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000276] -------N---- | | /--* &lclVar byref V21 tmp13 $1c8
( 3, 2) [000355] ------------ arg0 in rcx | +--* putarg_reg byref
N012 ( 29, 18) [000040] --CXG------- | /--* call int Program.IsXGeater $380
N014 ( 33, 21) [000045] DACXG------- \--* st.lclVar int V04 loc4 d:3
***** BB01, stmt 12 (top level)
( 33, 21) [000054] ------------ * stmtExpr void (top level) (IL 0x02E...0x034)
N001 ( 3, 2) [000047] -------N---- Source | /--* &lclVar byref V03 loc3 u:4 $2c3
N003 ( 3, 2) [000279] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000281] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000282] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000284] -------N---- | | /--* &lclVar byref V21 tmp13 $1c9
( 3, 2) [000356] ------------ arg0 in rcx | +--* putarg_reg byref
N012 ( 29, 18) [000048] --CXG------- | /--* call int Program.IsXGeater $382
N014 ( 33, 21) [000053] DACXG------- \--* st.lclVar int V05 loc5 d:3
***** BB01, stmt 13 (top level)
( 33, 21) [000062] ------------ * stmtExpr void (top level) (IL 0x036...0x03C)
N001 ( 3, 2) [000055] -------N---- Source | /--* &lclVar byref V02 loc2 u:4 (last use) $2c1
N003 ( 3, 2) [000287] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000289] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000290] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000292] -------N---- | | /--* &lclVar byref V21 tmp13 $1ca
( 3, 2) [000357] ------------ arg0 in rcx | +--* putarg_reg byref
N012 ( 29, 18) [000056] --CXG------- | /--* call int Program.IsXGeater $384
N014 ( 33, 21) [000061] DACXG------- \--* st.lclVar int V06 loc6 d:3
***** BB01, stmt 14 (top level)
( 33, 21) [000070] ------------ * stmtExpr void (top level) (IL 0x03E...0x044)
N001 ( 3, 2) [000063] -------N---- Source | /--* &lclVar byref V03 loc3 u:4 (last use) $2c3
N003 ( 3, 2) [000295] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000297] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000298] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000300] -------N---- | | /--* &lclVar byref V21 tmp13 $1cb
( 3, 2) [000358] ------------ arg0 in rcx | +--* putarg_reg byref
N012 ( 29, 18) [000064] --CXG------- | /--* call int Program.IsXGeater $386
N014 ( 33, 21) [000069] DACXG------- \--* st.lclVar int V07 loc7 d:3
***** BB01, stmt 15 (top level)
( 7, 6) [000075] ------------ * stmtExpr void (top level) (IL 0x046...0x048)
N001 ( 3, 2) [000071] ------------ | /--* lclVar int V04 loc4 u:3 (last use) $380
N002 ( 1, 1) [000072] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000073] J------N---- | /--* == int $400
N004 ( 7, 6) [000074] ------------ \--* jmpTrue void
------------ BB02 [04A..056) -> BB10 (always), preds={BB01} succs={BB10}
***** BB02, stmt 16 (top level)
( 19, 18) [000130] ------------ * stmtExpr void (top level) (IL 0x04A...0x055)
N001 ( 0, 0) [000305] ----------L- arg0 SETUP | /--* argPlace ref $3d1
N003 ( 3, 10) [000303] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000304] ----G------- | | /--* indir ref $3d1
( 5, 12) [000359] ----G------- arg0 in rcx | +--* putarg_reg ref
N006 ( 19, 18) [000128] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB02, stmt 17 (top level)
( 1, 3) [000133] ------------ * stmtExpr void (top level) (IL 0x054... ???)
N001 ( 1, 1) [000131] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000308] DA-----N---- \--* st.lclVar int V08 tmp0 d:7
------------ BB03 [056..05A) -> BB05 (cond), preds={BB01} succs={BB04,BB05}
***** BB03, stmt 18 (top level)
( 7, 6) [000081] ------------ * stmtExpr void (top level) (IL 0x056...0x058)
N001 ( 3, 2) [000077] ------------ | /--* lclVar int V05 loc5 u:3 (last use) $382
N002 ( 1, 1) [000078] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000079] J------N---- | /--* != int $401
N004 ( 7, 6) [000080] ------------ \--* jmpTrue void
------------ BB04 [05A..066) -> BB10 (always), preds={BB03} succs={BB10}
***** BB04, stmt 19 (top level)
( 19, 18) [000122] ------------ * stmtExpr void (top level) (IL 0x05A...0x065)
N001 ( 0, 0) [000311] ----------L- arg0 SETUP | /--* argPlace ref $3ce
N003 ( 3, 10) [000309] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000310] ----G------- | | /--* indir ref $3ce
( 5, 12) [000360] ----G------- arg0 in rcx | +--* putarg_reg ref
N006 ( 19, 18) [000120] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB04, stmt 20 (top level)
( 1, 3) [000125] ------------ * stmtExpr void (top level) (IL 0x064... ???)
N001 ( 1, 1) [000123] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000314] DA-----N---- \--* st.lclVar int V08 tmp0 d:6
------------ BB05 [066..06A) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
***** BB05, stmt 21 (top level)
( 7, 6) [000087] ------------ * stmtExpr void (top level) (IL 0x066...0x068)
N001 ( 3, 2) [000083] ------------ | /--* lclVar int V06 loc6 u:3 (last use) $384
N002 ( 1, 1) [000084] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000085] J------N---- | /--* == int $402
N004 ( 7, 6) [000086] ------------ \--* jmpTrue void
------------ BB06 [06A..076) -> BB10 (always), preds={BB05} succs={BB10}
***** BB06, stmt 22 (top level)
( 19, 18) [000114] ------------ * stmtExpr void (top level) (IL 0x06A...0x075)
N001 ( 0, 0) [000317] ----------L- arg0 SETUP | /--* argPlace ref $3cb
N003 ( 3, 10) [000315] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000316] ----G------- | | /--* indir ref $3cb
( 5, 12) [000361] ----G------- arg0 in rcx | +--* putarg_reg ref
N006 ( 19, 18) [000112] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB06, stmt 23 (top level)
( 1, 3) [000117] ------------ * stmtExpr void (top level) (IL 0x074... ???)
N001 ( 1, 1) [000115] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000320] DA-----N---- \--* st.lclVar int V08 tmp0 d:5
------------ BB07 [076..07A) -> BB09 (cond), preds={BB05} succs={BB08,BB09}
***** BB07, stmt 24 (top level)
( 7, 6) [000093] ------------ * stmtExpr void (top level) (IL 0x076...0x078)
N001 ( 3, 2) [000089] ------------ | /--* lclVar int V07 loc7 u:3 (last use) $386
N002 ( 1, 1) [000090] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000091] J------N---- | /--* != int $403
N004 ( 7, 6) [000092] ------------ \--* jmpTrue void
------------ BB08 [07A..086) -> BB10 (always), preds={BB07} succs={BB10}
***** BB08, stmt 25 (top level)
( 19, 18) [000106] ------------ * stmtExpr void (top level) (IL 0x07A...0x085)
N001 ( 0, 0) [000323] ----------L- arg0 SETUP | /--* argPlace ref $3c8
N003 ( 3, 10) [000321] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000322] ----G------- | | /--* indir ref $3c8
( 5, 12) [000362] ----G------- arg0 in rcx | +--* putarg_reg ref
N006 ( 19, 18) [000104] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB08, stmt 26 (top level)
( 1, 3) [000109] ------------ * stmtExpr void (top level) (IL 0x084... ???)
N001 ( 1, 1) [000107] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000326] DA-----N---- \--* st.lclVar int V08 tmp0 d:3
------------ BB09 [086..093), preds={BB07} succs={BB10}
***** BB09, stmt 27 (top level)
( 19, 18) [000098] ------------ * stmtExpr void (top level) (IL 0x086...0x092)
N001 ( 0, 0) [000329] ----------L- arg0 SETUP | /--* argPlace ref $3c5
N003 ( 3, 10) [000327] ------------ | | /--* const(h) long 0xD6273070 "Pass" $184
N004 ( 5, 12) [000328] ----G------- | | /--* indir ref $3c5
( 5, 12) [000363] ----G------- arg0 in rcx | +--* putarg_reg ref
N006 ( 19, 18) [000096] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB09, stmt 28 (top level)
( 1, 3) [000101] ------------ * stmtExpr void (top level) (IL 0x090... ???)
N001 ( 1, 1) [000099] ------------ | /--* const int 100 $45
N003 ( 1, 3) [000332] DA-----N---- \--* st.lclVar int V08 tmp0 d:4
------------ BB10 [???..???) (return), preds={BB02,BB04,BB06,BB08,BB09} succs={}
***** BB10, stmt 29 (top level)
( 6, 6) [000336] ------------ * stmtExpr void (top level) (IL ???... ???)
N001 ( 0, 0) [000345] ------------ List Item 0 | /--* phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ List Item 1 | +--* phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ List Item 2 | +--* phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ List Item 3 | +--* phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ List Item 4 | +--* phiArg int V08 tmp0 u:3 $41
N011 ( 6, 6) [000334] ------------ | * phi int
N001 ( 0, 0) [000345] ------------ * phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ * phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ * phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ * phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ * phiArg int V08 tmp0 u:3 $41
N013 ( 6, 6) [000335] DA---------- \--* st.lclVar int V08 tmp0 d:8
***** BB10, stmt 30 (top level)
( 2, 2) [000136] ------------ * stmtExpr void (top level) (IL ???... ???)
N001 ( 1, 1) [000134] -------N---- | /--* lclVar int V08 tmp0 u:8 (last use) $440
N002 ( 2, 2) [000135] ------------ \--* return int $38d
-------------------------------------------------------------------------------------------------------------------
*************** In fgLocalVarLiveness()
; Initial local variable assignments
;
; V00 loc0 struct ( 8) ld-addr-op
; V01 loc1 struct ( 8) ld-addr-op
; V02 loc2 struct (16) do-not-enreg[SFB] must-init ld-addr-op
; V03 loc3 struct (16) do-not-enreg[SFB] must-init ld-addr-op
; V04 loc4 bool
; V05 loc5 bool
; V06 loc6 bool
; V07 loc7 bool
; V08 tmp0 int
; V09 tmp1 long
; V10 tmp2 long
; V11 tmp3 struct ( 8) ld-addr-op
; V12 tmp4 struct ( 8) ld-addr-op
; V13 tmp5 struct ( 8) ld-addr-op
; V14 tmp6 struct ( 8) ld-addr-op
; V15 tmp7 long V00.val(offs=0x00) P-INDEP
; V16 tmp8 long V01.val(offs=0x00) P-INDEP
; V17 tmp9 long V11.val(offs=0x00) P-INDEP
; V18 tmp10 long V12.val(offs=0x00) P-INDEP
; V19 tmp11 long V13.val(offs=0x00) P-INDEP
; V20 tmp12 long V14.val(offs=0x00) P-INDEP
; V21 tmp13 struct (16) do-not-enreg[XSB] addr-exposed
; V22 OutArgs lclBlk (32)
In fgLocalVarLivenessInit, sorting locals
Local V02 should not be enregistered because: it is a struct
Local V03 should not be enregistered because: it is a struct
refCnt table for 'Main':
V08 tmp0 [ int]: refCnt = 6, refCntWtd = 7 pref [rax]
V02 loc2 [struct]: refCnt = 4, refCntWtd = 4
V03 loc3 [struct]: refCnt = 4, refCntWtd = 4
V15 tmp7 [ long]: refCnt = 4, refCntWtd = 4
V16 tmp8 [ long]: refCnt = 4, refCntWtd = 4
V04 loc4 [ bool]: refCnt = 2, refCntWtd = 2
V19 tmp11 [ long]: refCnt = 2, refCntWtd = 2
V20 tmp12 [ long]: refCnt = 2, refCntWtd = 2
V05 loc5 [ bool]: refCnt = 2, refCntWtd = 1.5
V06 loc6 [ bool]: refCnt = 2, refCntWtd = 1.5
V07 loc7 [ bool]: refCnt = 2, refCntWtd = 1.5
V17 tmp9 [ long]: refCnt = 1, refCntWtd = 1
V18 tmp10 [ long]: refCnt = 1, refCntWtd = 1
V21 tmp13 [struct]: refCnt = 12, refCntWtd = 24
V22 OutArgs [lclBlk]: refCnt = 1, refCntWtd = 1
*************** In fgPerBlockLocalVarLiveness()
BB01 USE(2)={V02 V03 } + HEAP
DEF(12)={V02 V03 V15 V16 V04 V19 V20 V05 V06 V07 V17 V18} + HEAP*
BB02 USE(0)={ } + HEAP
DEF(1)={V08} + HEAP*
BB03 USE(1)={V05}
DEF(0)={ }
BB04 USE(0)={ } + HEAP
DEF(1)={V08} + HEAP*
BB05 USE(1)={V06}
DEF(0)={ }
BB06 USE(0)={ } + HEAP
DEF(1)={V08} + HEAP*
BB07 USE(1)={V07}
DEF(0)={ }
BB08 USE(0)={ } + HEAP
DEF(1)={V08} + HEAP*
BB09 USE(0)={ } + HEAP
DEF(1)={V08} + HEAP*
BB10 USE(1)={V08}
DEF(0)={ }
*************** In fgInterBlockLocalVarLiveness()
BB liveness after fgLiveVarAnalysis():
BB01 IN (2)={V02 V03 } + HEAP
OUT(3)={ V05 V06 V07} + HEAP
BB02 IN (0)={ } + HEAP
OUT(1)={V08}
BB03 IN (3)={V05 V06 V07} + HEAP
OUT(2)={ V06 V07} + HEAP
BB04 IN (0)={ } + HEAP
OUT(1)={V08}
BB05 IN (2)={V06 V07} + HEAP
OUT(1)={ V07} + HEAP
BB06 IN (0)={ } + HEAP
OUT(1)={V08}
BB07 IN (1)={V07} + HEAP
OUT(0)={ } + HEAP
BB08 IN (0)={ } + HEAP
OUT(1)={V08}
BB09 IN (0)={ } + HEAP
OUT(1)={V08}
BB10 IN (1)={V08}
OUT(0)={ }
top level assign
removing stmt with no side effects
Removing statement [000185] in BB01 as useless:
( 5, 4) [000185] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000227] -------N---- | /--* lclVar long V16 tmp8 u:3 $82
N003 ( 5, 4) [000228] DA---------- \--* st.lclVar long V18 tmp10 d:3 (last use)
New refCnts for V18: refCnt = 0, refCntWtd = 0
New refCnts for V16: refCnt = 3, refCntWtd = 3
top level assign
removing stmt with no side effects
Removing statement [000179] in BB01 as useless:
( 5, 4) [000179] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 1, 1) [000224] -------N---- | /--* lclVar long V15 tmp7 u:3 $81
N003 ( 5, 4) [000225] DA---------- \--* st.lclVar long V17 tmp9 d:3 (last use)
New refCnts for V17: refCnt = 0, refCntWtd = 0
New refCnts for V15: refCnt = 3, refCntWtd = 3
In fgLocalVarLiveness, setting lvaSortAgain back to false (set during dead-code removal)
*************** In fgUpdateFlowGraph()
Before updating the flow graph:
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 0.5 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 0.5 [056..05A)-> BB05 ( cond ) i label target gcsafe
BB04 [0000026AC4437578] 1 BB03 0.5 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 0.5 [066..06A)-> BB07 ( cond ) i label target gcsafe
BB06 [0000026AC4437788] 1 BB05 0.5 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 0.5 [076..07A)-> BB09 ( cond ) i label target gcsafe
BB08 [0000026AC4437998] 1 BB07 0.5 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 0.5 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target gcsafe
-------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
Liveness pass finished after lowering, IR:
lvasortagain = 0
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 0.5 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 0.5 [056..05A)-> BB05 ( cond ) i label target gcsafe
BB04 [0000026AC4437578] 1 BB03 0.5 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 0.5 [066..06A)-> BB07 ( cond ) i label target gcsafe
BB06 [0000026AC4437788] 1 BB05 0.5 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 0.5 [076..07A)-> BB09 ( cond ) i label target gcsafe
BB08 [0000026AC4437998] 1 BB07 0.5 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 0.5 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target gcsafe
-------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..04A) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1 (top level)
( 1, 3) [000143] ------------ * stmtExpr void (top level) (IL 0x000... ???)
N001 ( 1, 1) [000004] ------------ | /--* const long 10 $81
N003 ( 1, 3) [000142] DA--G------- \--* st.lclVar long V15 tmp7 d:3
***** BB01, stmt 2 (top level)
( 1, 3) [000151] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
N001 ( 1, 1) [000011] ------------ | /--* const long 20 $82
N003 ( 1, 3) [000150] DA--G------- \--* st.lclVar long V16 tmp8 d:3
***** BB01, stmt 3 (top level)
( 10, 10) [000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 3, 4) [000231] U---G--N---- | /--* &lclFld byref V02 loc2 ud:2->3[+0] Fseq[v1] <l:$1c0, c:$1c1>
( 5, 7) [000351] ----G------- | /--* lea(b+0) byref
N006 ( 3, 2) [000235] -------N---- | +--* lclVar long V15 tmp7 u:3 $81
( 10, 10) [000347] ----G------- \--* storeIndir long
***** BB01, stmt 4 (top level)
( 10, 10) [000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N001 ( 3, 4) [000241] U---G--N---- | /--* &lclFld byref V02 loc2 ud:3->4[+8] Fseq[v2] <l:$1c2, c:$1c3>
( 5, 7) [000352] ----G------- | /--* lea(b+0) byref
N006 ( 3, 2) [000245] -------N---- | +--* lclVar long V16 tmp8 u:3 $82
( 10, 10) [000348] ----G------- \--* storeIndir long
***** BB01, stmt 5 (top level)
( 5, 4) [000213] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000248] -------N---- | /--* lclVar long V16 tmp8 u:3 (last use) $82
N003 ( 5, 4) [000249] DA---------- \--* st.lclVar long V19 tmp11 d:3
***** BB01, stmt 6 (top level)
( 5, 4) [000219] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 1, 1) [000251] -------N---- | /--* lclVar long V15 tmp7 u:3 (last use) $81
N003 ( 5, 4) [000252] DA---------- \--* st.lclVar long V20 tmp12 d:3
***** BB01, stmt 7 (top level)
( 10, 10) [000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 3, 4) [000255] U---G--N---- | /--* &lclFld byref V03 loc3 ud:2->3[+0] Fseq[v1] <l:$1c4, c:$1c5>
( 5, 7) [000353] ----G------- | /--* lea(b+0) byref
N006 ( 3, 2) [000259] -------N---- | +--* lclVar long V19 tmp11 u:3 (last use) $82
( 10, 10) [000349] ----G------- \--* storeIndir long
***** BB01, stmt 8 (top level)
( 10, 10) [000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N001 ( 3, 4) [000265] U---G--N---- | /--* &lclFld byref V03 loc3 ud:3->4[+8] Fseq[v2] <l:$1c6, c:$1c7>
( 5, 7) [000354] ----G------- | /--* lea(b+0) byref
N006 ( 3, 2) [000269] -------N---- | +--* lclVar long V20 tmp12 u:3 (last use) $81
( 10, 10) [000350] ----G------- \--* storeIndir long
***** BB01, stmt 9 (top level)
( 33, 21) [000046] ------------ * stmtExpr void (top level) (IL 0x026... ???)
N001 ( 3, 2) [000039] -------N---- Source | /--* &lclVar byref V02 loc2 u:4 $2c1
N003 ( 3, 2) [000271] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000273] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000274] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000276] -------N---- | | /--* &lclVar byref V21 tmp13 $1c8
( 3, 2) [000355] ------------ arg0 in rcx | +--* putarg_reg byref
N012 ( 29, 18) [000040] --CXG------- | /--* call int Program.IsXGeater $380
N014 ( 33, 21) [000045] DACXG------- \--* st.lclVar int V04 loc4 d:3
***** BB01, stmt 10 (top level)
( 33, 21) [000054] ------------ * stmtExpr void (top level) (IL 0x02E...0x034)
N001 ( 3, 2) [000047] -------N---- Source | /--* &lclVar byref V03 loc3 u:4 $2c3
N003 ( 3, 2) [000279] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000281] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000282] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000284] -------N---- | | /--* &lclVar byref V21 tmp13 $1c9
( 3, 2) [000356] ------------ arg0 in rcx | +--* putarg_reg byref
N012 ( 29, 18) [000048] --CXG------- | /--* call int Program.IsXGeater $382
N014 ( 33, 21) [000053] DACXG------- \--* st.lclVar int V05 loc5 d:3
***** BB01, stmt 11 (top level)
( 33, 21) [000062] ------------ * stmtExpr void (top level) (IL 0x036...0x03C)
N001 ( 3, 2) [000055] -------N---- Source | /--* &lclVar byref V02 loc2 u:4 (last use) $2c1
N003 ( 3, 2) [000287] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000289] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000290] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000292] -------N---- | | /--* &lclVar byref V21 tmp13 $1ca
( 3, 2) [000357] ------------ arg0 in rcx | +--* putarg_reg byref
N012 ( 29, 18) [000056] --CXG------- | /--* call int Program.IsXGeater $384
N014 ( 33, 21) [000061] DACXG------- \--* st.lclVar int V06 loc6 d:3
***** BB01, stmt 12 (top level)
( 33, 21) [000070] ------------ * stmtExpr void (top level) (IL 0x03E...0x044)
N001 ( 3, 2) [000063] -------N---- Source | /--* &lclVar byref V03 loc3 u:4 (last use) $2c3
N003 ( 3, 2) [000295] D------N---- Destination | +--* &lclVar byref V21 tmp13
N006 ( 1, 1) [000297] ------------ | +--* const int 16 $44
N007 ( 9, 9) [000298] -A--G-----L- arg0 SETUP | /--* copyBlk void $VN.Void
N009 ( 3, 2) [000300] -------N---- | | /--* &lclVar byref V21 tmp13 $1cb
( 3, 2) [000358] ------------ arg0 in rcx | +--* putarg_reg byref
N012 ( 29, 18) [000064] --CXG------- | /--* call int Program.IsXGeater $386
N014 ( 33, 21) [000069] DACXG------- \--* st.lclVar int V07 loc7 d:3
***** BB01, stmt 13 (top level)
( 7, 6) [000075] ------------ * stmtExpr void (top level) (IL 0x046...0x048)
N001 ( 3, 2) [000071] ------------ | /--* lclVar int V04 loc4 u:3 (last use) $380
N002 ( 1, 1) [000072] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000073] J------N---- | /--* == int $400
N004 ( 7, 6) [000074] ------------ \--* jmpTrue void
------------ BB02 [04A..056) -> BB10 (always), preds={BB01} succs={BB10}
***** BB02, stmt 14 (top level)
( 19, 18) [000130] ------------ * stmtExpr void (top level) (IL 0x04A...0x055)
N001 ( 0, 0) [000305] ----------L- arg0 SETUP | /--* argPlace ref $3d1
N003 ( 3, 10) [000303] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000304] ----G------- | | /--* indir ref $3d1
( 5, 12) [000359] ----G------- arg0 in rcx | +--* putarg_reg ref
N006 ( 19, 18) [000128] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB02, stmt 15 (top level)
( 1, 3) [000133] ------------ * stmtExpr void (top level) (IL 0x054... ???)
N001 ( 1, 1) [000131] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000308] DA-----N---- \--* st.lclVar int V08 tmp0 d:7
------------ BB03 [056..05A) -> BB05 (cond), preds={BB01} succs={BB04,BB05}
***** BB03, stmt 16 (top level)
( 7, 6) [000081] ------------ * stmtExpr void (top level) (IL 0x056...0x058)
N001 ( 3, 2) [000077] ------------ | /--* lclVar int V05 loc5 u:3 (last use) $382
N002 ( 1, 1) [000078] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000079] J------N---- | /--* != int $401
N004 ( 7, 6) [000080] ------------ \--* jmpTrue void
------------ BB04 [05A..066) -> BB10 (always), preds={BB03} succs={BB10}
***** BB04, stmt 17 (top level)
( 19, 18) [000122] ------------ * stmtExpr void (top level) (IL 0x05A...0x065)
N001 ( 0, 0) [000311] ----------L- arg0 SETUP | /--* argPlace ref $3ce
N003 ( 3, 10) [000309] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000310] ----G------- | | /--* indir ref $3ce
( 5, 12) [000360] ----G------- arg0 in rcx | +--* putarg_reg ref
N006 ( 19, 18) [000120] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB04, stmt 18 (top level)
( 1, 3) [000125] ------------ * stmtExpr void (top level) (IL 0x064... ???)
N001 ( 1, 1) [000123] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000314] DA-----N---- \--* st.lclVar int V08 tmp0 d:6
------------ BB05 [066..06A) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
***** BB05, stmt 19 (top level)
( 7, 6) [000087] ------------ * stmtExpr void (top level) (IL 0x066...0x068)
N001 ( 3, 2) [000083] ------------ | /--* lclVar int V06 loc6 u:3 (last use) $384
N002 ( 1, 1) [000084] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000085] J------N---- | /--* == int $402
N004 ( 7, 6) [000086] ------------ \--* jmpTrue void
------------ BB06 [06A..076) -> BB10 (always), preds={BB05} succs={BB10}
***** BB06, stmt 20 (top level)
( 19, 18) [000114] ------------ * stmtExpr void (top level) (IL 0x06A...0x075)
N001 ( 0, 0) [000317] ----------L- arg0 SETUP | /--* argPlace ref $3cb
N003 ( 3, 10) [000315] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000316] ----G------- | | /--* indir ref $3cb
( 5, 12) [000361] ----G------- arg0 in rcx | +--* putarg_reg ref
N006 ( 19, 18) [000112] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB06, stmt 21 (top level)
( 1, 3) [000117] ------------ * stmtExpr void (top level) (IL 0x074... ???)
N001 ( 1, 1) [000115] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000320] DA-----N---- \--* st.lclVar int V08 tmp0 d:5
------------ BB07 [076..07A) -> BB09 (cond), preds={BB05} succs={BB08,BB09}
***** BB07, stmt 22 (top level)
( 7, 6) [000093] ------------ * stmtExpr void (top level) (IL 0x076...0x078)
N001 ( 3, 2) [000089] ------------ | /--* lclVar int V07 loc7 u:3 (last use) $386
N002 ( 1, 1) [000090] ------------ | +--* const int 0 $40
N003 ( 5, 4) [000091] J------N---- | /--* != int $403
N004 ( 7, 6) [000092] ------------ \--* jmpTrue void
------------ BB08 [07A..086) -> BB10 (always), preds={BB07} succs={BB10}
***** BB08, stmt 23 (top level)
( 19, 18) [000106] ------------ * stmtExpr void (top level) (IL 0x07A...0x085)
N001 ( 0, 0) [000323] ----------L- arg0 SETUP | /--* argPlace ref $3c8
N003 ( 3, 10) [000321] ------------ | | /--* const(h) long 0xD6273068 "Fail" $186
N004 ( 5, 12) [000322] ----G------- | | /--* indir ref $3c8
( 5, 12) [000362] ----G------- arg0 in rcx | +--* putarg_reg ref
N006 ( 19, 18) [000104] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB08, stmt 24 (top level)
( 1, 3) [000109] ------------ * stmtExpr void (top level) (IL 0x084... ???)
N001 ( 1, 1) [000107] ------------ | /--* const int -1 $41
N003 ( 1, 3) [000326] DA-----N---- \--* st.lclVar int V08 tmp0 d:3
------------ BB09 [086..093), preds={BB07} succs={BB10}
***** BB09, stmt 25 (top level)
( 19, 18) [000098] ------------ * stmtExpr void (top level) (IL 0x086...0x092)
N001 ( 0, 0) [000329] ----------L- arg0 SETUP | /--* argPlace ref $3c5
N003 ( 3, 10) [000327] ------------ | | /--* const(h) long 0xD6273070 "Pass" $184
N004 ( 5, 12) [000328] ----G------- | | /--* indir ref $3c5
( 5, 12) [000363] ----G------- arg0 in rcx | +--* putarg_reg ref
N006 ( 19, 18) [000096] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB09, stmt 26 (top level)
( 1, 3) [000101] ------------ * stmtExpr void (top level) (IL 0x090... ???)
N001 ( 1, 1) [000099] ------------ | /--* const int 100 $45
N003 ( 1, 3) [000332] DA-----N---- \--* st.lclVar int V08 tmp0 d:4
------------ BB10 [???..???) (return), preds={BB02,BB04,BB06,BB08,BB09} succs={}
***** BB10, stmt 27 (top level)
( 6, 6) [000336] ------------ * stmtExpr void (top level) (IL ???... ???)
N001 ( 0, 0) [000345] ------------ List Item 0 | /--* phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ List Item 1 | +--* phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ List Item 2 | +--* phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ List Item 3 | +--* phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ List Item 4 | +--* phiArg int V08 tmp0 u:3 $41
N011 ( 6, 6) [000334] ------------ | * phi int
N001 ( 0, 0) [000345] ------------ * phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ * phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ * phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ * phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ * phiArg int V08 tmp0 u:3 $41
N013 ( 6, 6) [000335] DA---------- \--* st.lclVar int V08 tmp0 d:8
***** BB10, stmt 28 (top level)
( 2, 2) [000136] ------------ * stmtExpr void (top level) (IL ???... ???)
N001 ( 1, 1) [000134] -------N---- | /--* lclVar int V08 tmp0 u:8 (last use) $440
N002 ( 2, 2) [000135] ------------ \--* return int $38d
-------------------------------------------------------------------------------------------------------------------
Lower of StoreInd didn't mark the node as self contained for reason: 4
N011 ( 3, 4) [000231] U---G--N---- /--* &lclFld byref V02 loc2 ud:2->3[+0] Fseq[v1] REG NA <l:$1c0, c:$1c1>
N013 ( 5, 7) [000351] ----G------- /--* lea(b+0) byref REG NA
N015 ( 3, 2) [000235] -------N---- +--* lclVar long V15 tmp7 u:3 REG NA $81
N017 ( 10, 10) [000347] ----G------- * storeIndir long REG NA
Lower of StoreInd didn't mark the node as self contained for reason: 4
N019 ( 3, 4) [000241] U---G--N---- /--* &lclFld byref V02 loc2 ud:3->4[+8] Fseq[v2] REG NA <l:$1c2, c:$1c3>
N021 ( 5, 7) [000352] ----G------- /--* lea(b+0) byref REG NA
N023 ( 3, 2) [000245] -------N---- +--* lclVar long V16 tmp8 u:3 REG NA $82
N025 ( 10, 10) [000348] ----G------- * storeIndir long REG NA
Lower of StoreInd didn't mark the node as self contained for reason: 4
N035 ( 3, 4) [000255] U---G--N---- /--* &lclFld byref V03 loc3 ud:2->3[+0] Fseq[v1] REG NA <l:$1c4, c:$1c5>
N037 ( 5, 7) [000353] ----G------- /--* lea(b+0) byref REG NA
N039 ( 3, 2) [000259] -------N---- +--* lclVar long V19 tmp11 u:3 (last use) REG NA $82
N041 ( 10, 10) [000349] ----G------- * storeIndir long REG NA
Lower of StoreInd didn't mark the node as self contained for reason: 4
N043 ( 3, 4) [000265] U---G--N---- /--* &lclFld byref V03 loc3 ud:3->4[+8] Fseq[v2] REG NA <l:$1c6, c:$1c7>
N045 ( 5, 7) [000354] ----G------- /--* lea(b+0) byref REG NA
N047 ( 3, 2) [000269] -------N---- +--* lclVar long V20 tmp12 u:3 (last use) REG NA $81
N049 ( 10, 10) [000350] ----G------- * storeIndir long REG NA
-----------------------------
TREE NODE INFO DUMP
-----------------------------
N003 ( 1, 1) [000004] ------------ * const long 10 REG NA $81
+<TreeNodeInfo @ 3 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N005 ( 1, 3) [000142] DA--G------- * st.lclVar long V15 tmp7 d:3 REG NA
+<TreeNodeInfo @ 5 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N007 ( 1, 1) [000011] ------------ * const long 20 REG NA $82
+<TreeNodeInfo @ 7 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N009 ( 1, 3) [000150] DA--G------- * st.lclVar long V16 tmp8 d:3 REG NA
+<TreeNodeInfo @ 9 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N011 ( 3, 4) [000231] U---G--N---- * &lclFld byref V02 loc2 ud:2->3[+0] Fseq[v1] REG NA <l:$1c0, c:$1c1>
+<TreeNodeInfo @ 11 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N013 ( 5, 7) [000351] ----G------- * lea(b+0) byref REG NA
+<TreeNodeInfo @ 13 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N015 ( 3, 2) [000235] -------N---- * lclVar long V15 tmp7 u:3 REG NA $81
+<TreeNodeInfo @ 15 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N017 ( 10, 10) [000347] ----G------- * storeIndir long REG NA
+<TreeNodeInfo @ 17 0=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N019 ( 3, 4) [000241] U---G--N---- * &lclFld byref V02 loc2 ud:3->4[+8] Fseq[v2] REG NA <l:$1c2, c:$1c3>
+<TreeNodeInfo @ 19 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N021 ( 5, 7) [000352] ----G------- * lea(b+0) byref REG NA
+<TreeNodeInfo @ 21 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N023 ( 3, 2) [000245] -------N---- * lclVar long V16 tmp8 u:3 REG NA $82
+<TreeNodeInfo @ 23 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N025 ( 10, 10) [000348] ----G------- * storeIndir long REG NA
+<TreeNodeInfo @ 25 0=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N027 ( 1, 1) [000248] -------N---- * lclVar long V16 tmp8 u:3 (last use) REG NA $82
+<TreeNodeInfo @ 27 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N029 ( 5, 4) [000249] DA---------- * st.lclVar long V19 tmp11 d:3 REG NA
+<TreeNodeInfo @ 29 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N031 ( 1, 1) [000251] -------N---- * lclVar long V15 tmp7 u:3 (last use) REG NA $81
+<TreeNodeInfo @ 31 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N033 ( 5, 4) [000252] DA---------- * st.lclVar long V20 tmp12 d:3 REG NA
+<TreeNodeInfo @ 33 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N035 ( 3, 4) [000255] U---G--N---- * &lclFld byref V03 loc3 ud:2->3[+0] Fseq[v1] REG NA <l:$1c4, c:$1c5>
+<TreeNodeInfo @ 35 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N037 ( 5, 7) [000353] ----G------- * lea(b+0) byref REG NA
+<TreeNodeInfo @ 37 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N039 ( 3, 2) [000259] -------N---- * lclVar long V19 tmp11 u:3 (last use) REG NA $82
+<TreeNodeInfo @ 39 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N041 ( 10, 10) [000349] ----G------- * storeIndir long REG NA
+<TreeNodeInfo @ 41 0=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N043 ( 3, 4) [000265] U---G--N---- * &lclFld byref V03 loc3 ud:3->4[+8] Fseq[v2] REG NA <l:$1c6, c:$1c7>
+<TreeNodeInfo @ 43 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N045 ( 5, 7) [000354] ----G------- * lea(b+0) byref REG NA
+<TreeNodeInfo @ 45 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N047 ( 3, 2) [000269] -------N---- * lclVar long V20 tmp12 u:3 (last use) REG NA $81
+<TreeNodeInfo @ 47 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N049 ( 10, 10) [000350] ----G------- * storeIndir long REG NA
+<TreeNodeInfo @ 49 0=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N051 ( 3, 2) [000039] -------N---- * &lclVar byref V02 loc2 u:4 REG NA $2c1
+<TreeNodeInfo @ 51 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N053 ( 3, 2) [000271] D------N---- * &lclVar byref V21 tmp13 REG NA
+<TreeNodeInfo @ 53 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N055 ( 7, 7) [000275] --------R--- * <list> void REG NA $340
+<TreeNodeInfo @ 55 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N057 ( 1, 1) [000273] ------------ * const int 16 REG NA $44
+<TreeNodeInfo @ 57 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N059 ( 9, 9) [000274] -A--G-----L- * copyBlk void REG NA $VN.Void
+<TreeNodeInfo @ 59 0=0 0i 1f src=[allInt] int=[rax rcx rdx rbx rbp rsi rdi r8-r15 mm0-mm5] dst=[allInt] I>
N061 ( 12, 9) [000043] -A--G------- * <list> void REG NA $341
+<TreeNodeInfo @ 61 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N063 ( 3, 2) [000276] -------N---- * &lclVar byref V21 tmp13 REG NA $1c8
+<TreeNodeInfo @ 63 1=0 0i 0f src=[rcx] int=[allInt] dst=[allInt] I>
N065 ( 3, 2) [000355] ------------ * putarg_reg byref REG NA
+<TreeNodeInfo @ 65 1=1 0i 0f src=[rcx] int=[allInt] dst=[rcx] I>
N067 ( 3, 4) [000278] ------------ * <list> void REG NA $342
+<TreeNodeInfo @ 67 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N069 ( 29, 18) [000040] --CXG------- * call int Program.IsXGeater $380
+<TreeNodeInfo @ 69 1=1 0i 0f src=[allInt] int=[allInt] dst=[rax] I>
N071 ( 33, 21) [000045] DACXG------- * st.lclVar int V04 loc4 d:3 REG NA
+<TreeNodeInfo @ 71 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N073 ( 3, 2) [000047] -------N---- * &lclVar byref V03 loc3 u:4 REG NA $2c3
+<TreeNodeInfo @ 73 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N075 ( 3, 2) [000279] D------N---- * &lclVar byref V21 tmp13 REG NA
+<TreeNodeInfo @ 75 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N077 ( 7, 7) [000283] --------R--- * <list> void REG NA $343
+<TreeNodeInfo @ 77 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N079 ( 1, 1) [000281] ------------ * const int 16 REG NA $44
+<TreeNodeInfo @ 79 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N081 ( 9, 9) [000282] -A--G-----L- * copyBlk void REG NA $VN.Void
+<TreeNodeInfo @ 81 0=0 0i 1f src=[allInt] int=[rax rcx rdx rbx rbp rsi rdi r8-r15 mm0-mm5] dst=[allInt] I>
N083 ( 12, 9) [000051] -A--G------- * <list> void REG NA $341
+<TreeNodeInfo @ 83 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N085 ( 3, 2) [000284] -------N---- * &lclVar byref V21 tmp13 REG NA $1c9
+<TreeNodeInfo @ 85 1=0 0i 0f src=[rcx] int=[allInt] dst=[allInt] I>
N087 ( 3, 2) [000356] ------------ * putarg_reg byref REG NA
+<TreeNodeInfo @ 87 1=1 0i 0f src=[rcx] int=[allInt] dst=[rcx] I>
N089 ( 3, 4) [000286] ------------ * <list> void REG NA $344
+<TreeNodeInfo @ 89 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N091 ( 29, 18) [000048] --CXG------- * call int Program.IsXGeater $382
+<TreeNodeInfo @ 91 1=1 0i 0f src=[allInt] int=[allInt] dst=[rax] I>
N093 ( 33, 21) [000053] DACXG------- * st.lclVar int V05 loc5 d:3 REG NA
+<TreeNodeInfo @ 93 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N095 ( 3, 2) [000055] -------N---- * &lclVar byref V02 loc2 u:4 (last use) REG NA $2c1
+<TreeNodeInfo @ 95 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N097 ( 3, 2) [000287] D------N---- * &lclVar byref V21 tmp13 REG NA
+<TreeNodeInfo @ 97 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N099 ( 7, 7) [000291] --------R--- * <list> void REG NA $345
+<TreeNodeInfo @ 99 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N101 ( 1, 1) [000289] ------------ * const int 16 REG NA $44
+<TreeNodeInfo @ 101 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N103 ( 9, 9) [000290] -A--G-----L- * copyBlk void REG NA $VN.Void
+<TreeNodeInfo @ 103 0=0 0i 1f src=[allInt] int=[rax rcx rdx rbx rbp rsi rdi r8-r15 mm0-mm5] dst=[allInt] I>
N105 ( 12, 9) [000059] -A--G------- * <list> void REG NA $341
+<TreeNodeInfo @ 105 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N107 ( 3, 2) [000292] -------N---- * &lclVar byref V21 tmp13 REG NA $1ca
+<TreeNodeInfo @ 107 1=0 0i 0f src=[rcx] int=[allInt] dst=[allInt] I>
N109 ( 3, 2) [000357] ------------ * putarg_reg byref REG NA
+<TreeNodeInfo @ 109 1=1 0i 0f src=[rcx] int=[allInt] dst=[rcx] I>
N111 ( 3, 4) [000294] ------------ * <list> void REG NA $346
+<TreeNodeInfo @ 111 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N113 ( 29, 18) [000056] --CXG------- * call int Program.IsXGeater $384
+<TreeNodeInfo @ 113 1=1 0i 0f src=[allInt] int=[allInt] dst=[rax] I>
N115 ( 33, 21) [000061] DACXG------- * st.lclVar int V06 loc6 d:3 REG NA
+<TreeNodeInfo @ 115 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N117 ( 3, 2) [000063] -------N---- * &lclVar byref V03 loc3 u:4 (last use) REG NA $2c3
+<TreeNodeInfo @ 117 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N119 ( 3, 2) [000295] D------N---- * &lclVar byref V21 tmp13 REG NA
+<TreeNodeInfo @ 119 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N121 ( 7, 7) [000299] --------R--- * <list> void REG NA $347
+<TreeNodeInfo @ 121 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N123 ( 1, 1) [000297] ------------ * const int 16 REG NA $44
+<TreeNodeInfo @ 123 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N125 ( 9, 9) [000298] -A--G-----L- * copyBlk void REG NA $VN.Void
+<TreeNodeInfo @ 125 0=0 0i 1f src=[allInt] int=[rax rcx rdx rbx rbp rsi rdi r8-r15 mm0-mm5] dst=[allInt] I>
N127 ( 12, 9) [000067] -A--G------- * <list> void REG NA $341
+<TreeNodeInfo @ 127 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N129 ( 3, 2) [000300] -------N---- * &lclVar byref V21 tmp13 REG NA $1cb
+<TreeNodeInfo @ 129 1=0 0i 0f src=[rcx] int=[allInt] dst=[allInt] I>
N131 ( 3, 2) [000358] ------------ * putarg_reg byref REG NA
+<TreeNodeInfo @ 131 1=1 0i 0f src=[rcx] int=[allInt] dst=[rcx] I>
N133 ( 3, 4) [000302] ------------ * <list> void REG NA $348
+<TreeNodeInfo @ 133 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N135 ( 29, 18) [000064] --CXG------- * call int Program.IsXGeater $386
+<TreeNodeInfo @ 135 1=1 0i 0f src=[allInt] int=[allInt] dst=[rax] I>
N137 ( 33, 21) [000069] DACXG------- * st.lclVar int V07 loc7 d:3 REG NA
+<TreeNodeInfo @ 137 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N139 ( 3, 2) [000071] ------------ * lclVar int V04 loc4 u:3 (last use) REG NA $380
+<TreeNodeInfo @ 139 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N141 ( 1, 1) [000072] ------------ * const int 0 REG NA $40
+<TreeNodeInfo @ 141 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N143 ( 5, 4) [000073] J------N---- * == int REG NA $400
+<TreeNodeInfo @ 143 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N145 ( 7, 6) [000074] ------------ * jmpTrue void REG NA
+<TreeNodeInfo @ 145 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N149 ( 0, 0) [000305] ----------L- * argPlace ref REG NA $3d1
+<TreeNodeInfo @ 149 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N151 ( 0, 0) [000129] ------------ * <list> void REG NA $352
+<TreeNodeInfo @ 151 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N153 ( 3, 10) [000303] ------------ * const(h) long 0xD6273068 "Fail" REG NA $186
+<TreeNodeInfo @ 153 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N155 ( 5, 12) [000304] ----G------- * indir ref REG NA $3d1
+<TreeNodeInfo @ 155 1=1 0i 0f src=[rcx] int=[allInt] dst=[allInt] I>
N157 ( 5, 12) [000359] ----G------- * putarg_reg ref REG NA
+<TreeNodeInfo @ 157 1=1 0i 0f src=[rcx] int=[allInt] dst=[rcx] I>
N159 ( 5, 13) [000306] ----G------- * <list> void REG NA $352
+<TreeNodeInfo @ 159 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N161 ( 19, 18) [000128] --C-G------- * call void System.Console.WriteLine $VN.Void
+<TreeNodeInfo @ 161 0=1 0i 0f src=[allInt] int=[allInt] dst=[rax] I>
N163 ( 1, 1) [000131] ------------ * const int -1 REG NA $41
+<TreeNodeInfo @ 163 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N165 ( 1, 3) [000308] DA-----N---- * st.lclVar int V08 tmp0 d:7 REG NA
+<TreeNodeInfo @ 165 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N169 ( 3, 2) [000077] ------------ * lclVar int V05 loc5 u:3 (last use) REG NA $382
+<TreeNodeInfo @ 169 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N171 ( 1, 1) [000078] ------------ * const int 0 REG NA $40
+<TreeNodeInfo @ 171 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N173 ( 5, 4) [000079] J------N---- * != int REG NA $401
+<TreeNodeInfo @ 173 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N175 ( 7, 6) [000080] ------------ * jmpTrue void REG NA
+<TreeNodeInfo @ 175 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N179 ( 0, 0) [000311] ----------L- * argPlace ref REG NA $3ce
+<TreeNodeInfo @ 179 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N181 ( 0, 0) [000121] ------------ * <list> void REG NA $350
+<TreeNodeInfo @ 181 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N183 ( 3, 10) [000309] ------------ * const(h) long 0xD6273068 "Fail" REG NA $186
+<TreeNodeInfo @ 183 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N185 ( 5, 12) [000310] ----G------- * indir ref REG NA $3ce
+<TreeNodeInfo @ 185 1=1 0i 0f src=[rcx] int=[allInt] dst=[allInt] I>
N187 ( 5, 12) [000360] ----G------- * putarg_reg ref REG NA
+<TreeNodeInfo @ 187 1=1 0i 0f src=[rcx] int=[allInt] dst=[rcx] I>
N189 ( 5, 13) [000312] ----G------- * <list> void REG NA $350
+<TreeNodeInfo @ 189 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N191 ( 19, 18) [000120] --C-G------- * call void System.Console.WriteLine $VN.Void
+<TreeNodeInfo @ 191 0=1 0i 0f src=[allInt] int=[allInt] dst=[rax] I>
N193 ( 1, 1) [000123] ------------ * const int -1 REG NA $41
+<TreeNodeInfo @ 193 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N195 ( 1, 3) [000314] DA-----N---- * st.lclVar int V08 tmp0 d:6 REG NA
+<TreeNodeInfo @ 195 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N199 ( 3, 2) [000083] ------------ * lclVar int V06 loc6 u:3 (last use) REG NA $384
+<TreeNodeInfo @ 199 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N201 ( 1, 1) [000084] ------------ * const int 0 REG NA $40
+<TreeNodeInfo @ 201 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N203 ( 5, 4) [000085] J------N---- * == int REG NA $402
+<TreeNodeInfo @ 203 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N205 ( 7, 6) [000086] ------------ * jmpTrue void REG NA
+<TreeNodeInfo @ 205 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N209 ( 0, 0) [000317] ----------L- * argPlace ref REG NA $3cb
+<TreeNodeInfo @ 209 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N211 ( 0, 0) [000113] ------------ * <list> void REG NA $34e
+<TreeNodeInfo @ 211 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N213 ( 3, 10) [000315] ------------ * const(h) long 0xD6273068 "Fail" REG NA $186
+<TreeNodeInfo @ 213 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N215 ( 5, 12) [000316] ----G------- * indir ref REG NA $3cb
+<TreeNodeInfo @ 215 1=1 0i 0f src=[rcx] int=[allInt] dst=[allInt] I>
N217 ( 5, 12) [000361] ----G------- * putarg_reg ref REG NA
+<TreeNodeInfo @ 217 1=1 0i 0f src=[rcx] int=[allInt] dst=[rcx] I>
N219 ( 5, 13) [000318] ----G------- * <list> void REG NA $34e
+<TreeNodeInfo @ 219 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N221 ( 19, 18) [000112] --C-G------- * call void System.Console.WriteLine $VN.Void
+<TreeNodeInfo @ 221 0=1 0i 0f src=[allInt] int=[allInt] dst=[rax] I>
N223 ( 1, 1) [000115] ------------ * const int -1 REG NA $41
+<TreeNodeInfo @ 223 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N225 ( 1, 3) [000320] DA-----N---- * st.lclVar int V08 tmp0 d:5 REG NA
+<TreeNodeInfo @ 225 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N229 ( 3, 2) [000089] ------------ * lclVar int V07 loc7 u:3 (last use) REG NA $386
+<TreeNodeInfo @ 229 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N231 ( 1, 1) [000090] ------------ * const int 0 REG NA $40
+<TreeNodeInfo @ 231 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N233 ( 5, 4) [000091] J------N---- * != int REG NA $403
+<TreeNodeInfo @ 233 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N235 ( 7, 6) [000092] ------------ * jmpTrue void REG NA
+<TreeNodeInfo @ 235 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N239 ( 0, 0) [000323] ----------L- * argPlace ref REG NA $3c8
+<TreeNodeInfo @ 239 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N241 ( 0, 0) [000105] ------------ * <list> void REG NA $34c
+<TreeNodeInfo @ 241 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N243 ( 3, 10) [000321] ------------ * const(h) long 0xD6273068 "Fail" REG NA $186
+<TreeNodeInfo @ 243 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N245 ( 5, 12) [000322] ----G------- * indir ref REG NA $3c8
+<TreeNodeInfo @ 245 1=1 0i 0f src=[rcx] int=[allInt] dst=[allInt] I>
N247 ( 5, 12) [000362] ----G------- * putarg_reg ref REG NA
+<TreeNodeInfo @ 247 1=1 0i 0f src=[rcx] int=[allInt] dst=[rcx] I>
N249 ( 5, 13) [000324] ----G------- * <list> void REG NA $34c
+<TreeNodeInfo @ 249 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N251 ( 19, 18) [000104] --C-G------- * call void System.Console.WriteLine $VN.Void
+<TreeNodeInfo @ 251 0=1 0i 0f src=[allInt] int=[allInt] dst=[rax] I>
N253 ( 1, 1) [000107] ------------ * const int -1 REG NA $41
+<TreeNodeInfo @ 253 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N255 ( 1, 3) [000326] DA-----N---- * st.lclVar int V08 tmp0 d:3 REG NA
+<TreeNodeInfo @ 255 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N259 ( 0, 0) [000329] ----------L- * argPlace ref REG NA $3c5
+<TreeNodeInfo @ 259 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N261 ( 0, 0) [000097] ------------ * <list> void REG NA $34a
+<TreeNodeInfo @ 261 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N263 ( 3, 10) [000327] ------------ * const(h) long 0xD6273070 "Pass" REG NA $184
+<TreeNodeInfo @ 263 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N265 ( 5, 12) [000328] ----G------- * indir ref REG NA $3c5
+<TreeNodeInfo @ 265 1=1 0i 0f src=[rcx] int=[allInt] dst=[allInt] I>
N267 ( 5, 12) [000363] ----G------- * putarg_reg ref REG NA
+<TreeNodeInfo @ 267 1=1 0i 0f src=[rcx] int=[allInt] dst=[rcx] I>
N269 ( 5, 13) [000330] ----G------- * <list> void REG NA $34a
+<TreeNodeInfo @ 269 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N271 ( 19, 18) [000096] --C-G------- * call void System.Console.WriteLine $VN.Void
+<TreeNodeInfo @ 271 0=1 0i 0f src=[allInt] int=[allInt] dst=[rax] I>
N273 ( 1, 1) [000099] ------------ * const int 100 REG NA $45
+<TreeNodeInfo @ 273 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N275 ( 1, 3) [000332] DA-----N---- * st.lclVar int V08 tmp0 d:4 REG NA
+<TreeNodeInfo @ 275 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
N279 ( 1, 1) [000134] -------N---- * lclVar int V08 tmp0 u:8 (last use) REG NA $440
+<TreeNodeInfo @ 279 1=0 0i 0f src=[rax] int=[allInt] dst=[allInt] I>
N281 ( 2, 2) [000135] ------------ * return int REG NA $38d
+<TreeNodeInfo @ 281 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>
*************** Exiting Lowering
Trees after Lowering
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 0.5 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 0.5 [056..05A)-> BB05 ( cond ) i label target gcsafe
BB04 [0000026AC4437578] 1 BB03 0.5 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 0.5 [066..06A)-> BB07 ( cond ) i label target gcsafe
BB06 [0000026AC4437788] 1 BB05 0.5 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 0.5 [076..07A)-> BB09 ( cond ) i label target gcsafe
BB08 [0000026AC4437998] 1 BB07 0.5 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 0.5 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target gcsafe
-------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..04A) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1 (top level)
( 1, 3) [000143] ------------ * stmtExpr void (top level) (IL 0x000... ???)
N003 ( 1, 1) [000004] ------------ | /--* const long 10 REG NA $81
N005 ( 1, 3) [000142] DA--G------- \--* st.lclVar long V15 tmp7 d:3 REG NA
***** BB01, stmt 2 (top level)
( 1, 3) [000151] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
N007 ( 1, 1) [000011] ------------ | /--* const long 20 REG NA $82
N009 ( 1, 3) [000150] DA--G------- \--* st.lclVar long V16 tmp8 d:3 REG NA
***** BB01, stmt 3 (top level)
( 10, 10) [000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N011 ( 3, 4) [000231] U---G--N---- | /--* &lclFld byref V02 loc2 ud:2->3[+0] Fseq[v1] REG NA <l:$1c0, c:$1c1>
N013 ( 5, 7) [000351] ----G------- | /--* lea(b+0) byref REG NA
N015 ( 3, 2) [000235] -------N---- | +--* lclVar long V15 tmp7 u:3 REG NA $81
N017 ( 10, 10) [000347] ----G------- \--* storeIndir long REG NA
***** BB01, stmt 4 (top level)
( 10, 10) [000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N019 ( 3, 4) [000241] U---G--N---- | /--* &lclFld byref V02 loc2 ud:3->4[+8] Fseq[v2] REG NA <l:$1c2, c:$1c3>
N021 ( 5, 7) [000352] ----G------- | /--* lea(b+0) byref REG NA
N023 ( 3, 2) [000245] -------N---- | +--* lclVar long V16 tmp8 u:3 REG NA $82
N025 ( 10, 10) [000348] ----G------- \--* storeIndir long REG NA
***** BB01, stmt 5 (top level)
( 5, 4) [000213] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N027 ( 1, 1) [000248] -------N---- | /--* lclVar long V16 tmp8 u:3 (last use) REG NA $82
N029 ( 5, 4) [000249] DA---------- \--* st.lclVar long V19 tmp11 d:3 REG NA
***** BB01, stmt 6 (top level)
( 5, 4) [000219] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N031 ( 1, 1) [000251] -------N---- | /--* lclVar long V15 tmp7 u:3 (last use) REG NA $81
N033 ( 5, 4) [000252] DA---------- \--* st.lclVar long V20 tmp12 d:3 REG NA
***** BB01, stmt 7 (top level)
( 10, 10) [000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N035 ( 3, 4) [000255] U---G--N---- | /--* &lclFld byref V03 loc3 ud:2->3[+0] Fseq[v1] REG NA <l:$1c4, c:$1c5>
N037 ( 5, 7) [000353] ----G------- | /--* lea(b+0) byref REG NA
N039 ( 3, 2) [000259] -------N---- | +--* lclVar long V19 tmp11 u:3 (last use) REG NA $82
N041 ( 10, 10) [000349] ----G------- \--* storeIndir long REG NA
***** BB01, stmt 8 (top level)
( 10, 10) [000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N043 ( 3, 4) [000265] U---G--N---- | /--* &lclFld byref V03 loc3 ud:3->4[+8] Fseq[v2] REG NA <l:$1c6, c:$1c7>
N045 ( 5, 7) [000354] ----G------- | /--* lea(b+0) byref REG NA
N047 ( 3, 2) [000269] -------N---- | +--* lclVar long V20 tmp12 u:3 (last use) REG NA $81
N049 ( 10, 10) [000350] ----G------- \--* storeIndir long REG NA
***** BB01, stmt 9 (top level)
( 33, 21) [000046] ------------ * stmtExpr void (top level) (IL 0x026... ???)
N051 ( 3, 2) [000039] -------N---- Source | /--* &lclVar byref V02 loc2 u:4 REG NA $2c1
N053 ( 3, 2) [000271] D------N---- Destination | +--* &lclVar byref V21 tmp13 REG NA
N057 ( 1, 1) [000273] ------------ | +--* const int 16 REG NA $44
N059 ( 9, 9) [000274] -A--G-----L- arg0 SETUP | /--* copyBlk void REG NA $VN.Void
N063 ( 3, 2) [000276] -------N---- | | /--* &lclVar byref V21 tmp13 REG NA $1c8
N065 ( 3, 2) [000355] ------------ arg0 in rcx | +--* putarg_reg byref REG NA
N069 ( 29, 18) [000040] --CXG------- | /--* call int Program.IsXGeater $380
N071 ( 33, 21) [000045] DACXG------- \--* st.lclVar int V04 loc4 d:3 REG NA
***** BB01, stmt 10 (top level)
( 33, 21) [000054] ------------ * stmtExpr void (top level) (IL 0x02E...0x034)
N073 ( 3, 2) [000047] -------N---- Source | /--* &lclVar byref V03 loc3 u:4 REG NA $2c3
N075 ( 3, 2) [000279] D------N---- Destination | +--* &lclVar byref V21 tmp13 REG NA
N079 ( 1, 1) [000281] ------------ | +--* const int 16 REG NA $44
N081 ( 9, 9) [000282] -A--G-----L- arg0 SETUP | /--* copyBlk void REG NA $VN.Void
N085 ( 3, 2) [000284] -------N---- | | /--* &lclVar byref V21 tmp13 REG NA $1c9
N087 ( 3, 2) [000356] ------------ arg0 in rcx | +--* putarg_reg byref REG NA
N091 ( 29, 18) [000048] --CXG------- | /--* call int Program.IsXGeater $382
N093 ( 33, 21) [000053] DACXG------- \--* st.lclVar int V05 loc5 d:3 REG NA
***** BB01, stmt 11 (top level)
( 33, 21) [000062] ------------ * stmtExpr void (top level) (IL 0x036...0x03C)
N095 ( 3, 2) [000055] -------N---- Source | /--* &lclVar byref V02 loc2 u:4 (last use) REG NA $2c1
N097 ( 3, 2) [000287] D------N---- Destination | +--* &lclVar byref V21 tmp13 REG NA
N101 ( 1, 1) [000289] ------------ | +--* const int 16 REG NA $44
N103 ( 9, 9) [000290] -A--G-----L- arg0 SETUP | /--* copyBlk void REG NA $VN.Void
N107 ( 3, 2) [000292] -------N---- | | /--* &lclVar byref V21 tmp13 REG NA $1ca
N109 ( 3, 2) [000357] ------------ arg0 in rcx | +--* putarg_reg byref REG NA
N113 ( 29, 18) [000056] --CXG------- | /--* call int Program.IsXGeater $384
N115 ( 33, 21) [000061] DACXG------- \--* st.lclVar int V06 loc6 d:3 REG NA
***** BB01, stmt 12 (top level)
( 33, 21) [000070] ------------ * stmtExpr void (top level) (IL 0x03E...0x044)
N117 ( 3, 2) [000063] -------N---- Source | /--* &lclVar byref V03 loc3 u:4 (last use) REG NA $2c3
N119 ( 3, 2) [000295] D------N---- Destination | +--* &lclVar byref V21 tmp13 REG NA
N123 ( 1, 1) [000297] ------------ | +--* const int 16 REG NA $44
N125 ( 9, 9) [000298] -A--G-----L- arg0 SETUP | /--* copyBlk void REG NA $VN.Void
N129 ( 3, 2) [000300] -------N---- | | /--* &lclVar byref V21 tmp13 REG NA $1cb
N131 ( 3, 2) [000358] ------------ arg0 in rcx | +--* putarg_reg byref REG NA
N135 ( 29, 18) [000064] --CXG------- | /--* call int Program.IsXGeater $386
N137 ( 33, 21) [000069] DACXG------- \--* st.lclVar int V07 loc7 d:3 REG NA
***** BB01, stmt 13 (top level)
( 7, 6) [000075] ------------ * stmtExpr void (top level) (IL 0x046...0x048)
N139 ( 3, 2) [000071] ------------ | /--* lclVar int V04 loc4 u:3 (last use) REG NA $380
N141 ( 1, 1) [000072] ------------ | +--* const int 0 REG NA $40
N143 ( 5, 4) [000073] J------N---- | /--* == int REG NA $400
N145 ( 7, 6) [000074] ------------ \--* jmpTrue void REG NA
------------ BB02 [04A..056) -> BB10 (always), preds={BB01} succs={BB10}
***** BB02, stmt 14 (top level)
( 19, 18) [000130] ------------ * stmtExpr void (top level) (IL 0x04A...0x055)
N149 ( 0, 0) [000305] ----------L- arg0 SETUP | /--* argPlace ref REG NA $3d1
N153 ( 3, 10) [000303] ------------ | | /--* const(h) long 0xD6273068 "Fail" REG NA $186
N155 ( 5, 12) [000304] ----G------- | | /--* indir ref REG NA $3d1
N157 ( 5, 12) [000359] ----G------- arg0 in rcx | +--* putarg_reg ref REG NA
N161 ( 19, 18) [000128] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB02, stmt 15 (top level)
( 1, 3) [000133] ------------ * stmtExpr void (top level) (IL 0x054... ???)
N163 ( 1, 1) [000131] ------------ | /--* const int -1 REG NA $41
N165 ( 1, 3) [000308] DA-----N---- \--* st.lclVar int V08 tmp0 d:7 REG NA
------------ BB03 [056..05A) -> BB05 (cond), preds={BB01} succs={BB04,BB05}
***** BB03, stmt 16 (top level)
( 7, 6) [000081] ------------ * stmtExpr void (top level) (IL 0x056...0x058)
N169 ( 3, 2) [000077] ------------ | /--* lclVar int V05 loc5 u:3 (last use) REG NA $382
N171 ( 1, 1) [000078] ------------ | +--* const int 0 REG NA $40
N173 ( 5, 4) [000079] J------N---- | /--* != int REG NA $401
N175 ( 7, 6) [000080] ------------ \--* jmpTrue void REG NA
------------ BB04 [05A..066) -> BB10 (always), preds={BB03} succs={BB10}
***** BB04, stmt 17 (top level)
( 19, 18) [000122] ------------ * stmtExpr void (top level) (IL 0x05A...0x065)
N179 ( 0, 0) [000311] ----------L- arg0 SETUP | /--* argPlace ref REG NA $3ce
N183 ( 3, 10) [000309] ------------ | | /--* const(h) long 0xD6273068 "Fail" REG NA $186
N185 ( 5, 12) [000310] ----G------- | | /--* indir ref REG NA $3ce
N187 ( 5, 12) [000360] ----G------- arg0 in rcx | +--* putarg_reg ref REG NA
N191 ( 19, 18) [000120] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB04, stmt 18 (top level)
( 1, 3) [000125] ------------ * stmtExpr void (top level) (IL 0x064... ???)
N193 ( 1, 1) [000123] ------------ | /--* const int -1 REG NA $41
N195 ( 1, 3) [000314] DA-----N---- \--* st.lclVar int V08 tmp0 d:6 REG NA
------------ BB05 [066..06A) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
***** BB05, stmt 19 (top level)
( 7, 6) [000087] ------------ * stmtExpr void (top level) (IL 0x066...0x068)
N199 ( 3, 2) [000083] ------------ | /--* lclVar int V06 loc6 u:3 (last use) REG NA $384
N201 ( 1, 1) [000084] ------------ | +--* const int 0 REG NA $40
N203 ( 5, 4) [000085] J------N---- | /--* == int REG NA $402
N205 ( 7, 6) [000086] ------------ \--* jmpTrue void REG NA
------------ BB06 [06A..076) -> BB10 (always), preds={BB05} succs={BB10}
***** BB06, stmt 20 (top level)
( 19, 18) [000114] ------------ * stmtExpr void (top level) (IL 0x06A...0x075)
N209 ( 0, 0) [000317] ----------L- arg0 SETUP | /--* argPlace ref REG NA $3cb
N213 ( 3, 10) [000315] ------------ | | /--* const(h) long 0xD6273068 "Fail" REG NA $186
N215 ( 5, 12) [000316] ----G------- | | /--* indir ref REG NA $3cb
N217 ( 5, 12) [000361] ----G------- arg0 in rcx | +--* putarg_reg ref REG NA
N221 ( 19, 18) [000112] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB06, stmt 21 (top level)
( 1, 3) [000117] ------------ * stmtExpr void (top level) (IL 0x074... ???)
N223 ( 1, 1) [000115] ------------ | /--* const int -1 REG NA $41
N225 ( 1, 3) [000320] DA-----N---- \--* st.lclVar int V08 tmp0 d:5 REG NA
------------ BB07 [076..07A) -> BB09 (cond), preds={BB05} succs={BB08,BB09}
***** BB07, stmt 22 (top level)
( 7, 6) [000093] ------------ * stmtExpr void (top level) (IL 0x076...0x078)
N229 ( 3, 2) [000089] ------------ | /--* lclVar int V07 loc7 u:3 (last use) REG NA $386
N231 ( 1, 1) [000090] ------------ | +--* const int 0 REG NA $40
N233 ( 5, 4) [000091] J------N---- | /--* != int REG NA $403
N235 ( 7, 6) [000092] ------------ \--* jmpTrue void REG NA
------------ BB08 [07A..086) -> BB10 (always), preds={BB07} succs={BB10}
***** BB08, stmt 23 (top level)
( 19, 18) [000106] ------------ * stmtExpr void (top level) (IL 0x07A...0x085)
N239 ( 0, 0) [000323] ----------L- arg0 SETUP | /--* argPlace ref REG NA $3c8
N243 ( 3, 10) [000321] ------------ | | /--* const(h) long 0xD6273068 "Fail" REG NA $186
N245 ( 5, 12) [000322] ----G------- | | /--* indir ref REG NA $3c8
N247 ( 5, 12) [000362] ----G------- arg0 in rcx | +--* putarg_reg ref REG NA
N251 ( 19, 18) [000104] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB08, stmt 24 (top level)
( 1, 3) [000109] ------------ * stmtExpr void (top level) (IL 0x084... ???)
N253 ( 1, 1) [000107] ------------ | /--* const int -1 REG NA $41
N255 ( 1, 3) [000326] DA-----N---- \--* st.lclVar int V08 tmp0 d:3 REG NA
------------ BB09 [086..093), preds={BB07} succs={BB10}
***** BB09, stmt 25 (top level)
( 19, 18) [000098] ------------ * stmtExpr void (top level) (IL 0x086...0x092)
N259 ( 0, 0) [000329] ----------L- arg0 SETUP | /--* argPlace ref REG NA $3c5
N263 ( 3, 10) [000327] ------------ | | /--* const(h) long 0xD6273070 "Pass" REG NA $184
N265 ( 5, 12) [000328] ----G------- | | /--* indir ref REG NA $3c5
N267 ( 5, 12) [000363] ----G------- arg0 in rcx | +--* putarg_reg ref REG NA
N271 ( 19, 18) [000096] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB09, stmt 26 (top level)
( 1, 3) [000101] ------------ * stmtExpr void (top level) (IL 0x090... ???)
N273 ( 1, 1) [000099] ------------ | /--* const int 100 REG NA $45
N275 ( 1, 3) [000332] DA-----N---- \--* st.lclVar int V08 tmp0 d:4 REG NA
------------ BB10 [???..???) (return), preds={BB02,BB04,BB06,BB08,BB09} succs={}
***** BB10, stmt 27 (top level)
( 6, 6) [000336] ------------ * stmtExpr void (top level) (IL ???... ???)
N001 ( 0, 0) [000345] ------------ List Item 0 | /--* phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ List Item 1 | +--* phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ List Item 2 | +--* phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ List Item 3 | +--* phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ List Item 4 | +--* phiArg int V08 tmp0 u:3 $41
N011 ( 6, 6) [000334] ------------ | * phi int
N001 ( 0, 0) [000345] ------------ * phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ * phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ * phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ * phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ * phiArg int V08 tmp0 u:3 $41
N013 ( 6, 6) [000335] DA---------- \--* st.lclVar int V08 tmp0 d:8
***** BB10, stmt 28 (top level)
( 2, 2) [000136] ------------ * stmtExpr void (top level) (IL ???... ???)
N279 ( 1, 1) [000134] -------N---- | /--* lclVar int V08 tmp0 u:8 (last use) REG NA $440
N281 ( 2, 2) [000135] ------------ \--* return int REG NA $38d
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In doLinearScan
Trees before linear scan register allocator (LSRA)
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 0.5 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 0.5 [056..05A)-> BB05 ( cond ) i label target gcsafe
BB04 [0000026AC4437578] 1 BB03 0.5 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 0.5 [066..06A)-> BB07 ( cond ) i label target gcsafe
BB06 [0000026AC4437788] 1 BB05 0.5 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 0.5 [076..07A)-> BB09 ( cond ) i label target gcsafe
BB08 [0000026AC4437998] 1 BB07 0.5 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 0.5 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target gcsafe
-------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..04A) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1 (top level)
( 1, 3) [000143] ------------ * stmtExpr void (top level) (IL 0x000... ???)
N003 ( 1, 1) [000004] ------------ | /--* const long 10 REG NA $81
N005 ( 1, 3) [000142] DA--G------- \--* st.lclVar long V15 tmp7 d:3 REG NA
***** BB01, stmt 2 (top level)
( 1, 3) [000151] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
N007 ( 1, 1) [000011] ------------ | /--* const long 20 REG NA $82
N009 ( 1, 3) [000150] DA--G------- \--* st.lclVar long V16 tmp8 d:3 REG NA
***** BB01, stmt 3 (top level)
( 10, 10) [000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N011 ( 3, 4) [000231] U---G--N---- | /--* &lclFld byref V02 loc2 ud:2->3[+0] Fseq[v1] REG NA <l:$1c0, c:$1c1>
N013 ( 5, 7) [000351] ----G------- | /--* lea(b+0) byref REG NA
N015 ( 3, 2) [000235] -------N---- | +--* lclVar long V15 tmp7 u:3 REG NA $81
N017 ( 10, 10) [000347] ----G------- \--* storeIndir long REG NA
***** BB01, stmt 4 (top level)
( 10, 10) [000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N019 ( 3, 4) [000241] U---G--N---- | /--* &lclFld byref V02 loc2 ud:3->4[+8] Fseq[v2] REG NA <l:$1c2, c:$1c3>
N021 ( 5, 7) [000352] ----G------- | /--* lea(b+0) byref REG NA
N023 ( 3, 2) [000245] -------N---- | +--* lclVar long V16 tmp8 u:3 REG NA $82
N025 ( 10, 10) [000348] ----G------- \--* storeIndir long REG NA
***** BB01, stmt 5 (top level)
( 5, 4) [000213] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N027 ( 1, 1) [000248] -------N---- | /--* lclVar long V16 tmp8 u:3 (last use) REG NA $82
N029 ( 5, 4) [000249] DA---------- \--* st.lclVar long V19 tmp11 d:3 REG NA
***** BB01, stmt 6 (top level)
( 5, 4) [000219] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N031 ( 1, 1) [000251] -------N---- | /--* lclVar long V15 tmp7 u:3 (last use) REG NA $81
N033 ( 5, 4) [000252] DA---------- \--* st.lclVar long V20 tmp12 d:3 REG NA
***** BB01, stmt 7 (top level)
( 10, 10) [000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N035 ( 3, 4) [000255] U---G--N---- | /--* &lclFld byref V03 loc3 ud:2->3[+0] Fseq[v1] REG NA <l:$1c4, c:$1c5>
N037 ( 5, 7) [000353] ----G------- | /--* lea(b+0) byref REG NA
N039 ( 3, 2) [000259] -------N---- | +--* lclVar long V19 tmp11 u:3 (last use) REG NA $82
N041 ( 10, 10) [000349] ----G------- \--* storeIndir long REG NA
***** BB01, stmt 8 (top level)
( 10, 10) [000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N043 ( 3, 4) [000265] U---G--N---- | /--* &lclFld byref V03 loc3 ud:3->4[+8] Fseq[v2] REG NA <l:$1c6, c:$1c7>
N045 ( 5, 7) [000354] ----G------- | /--* lea(b+0) byref REG NA
N047 ( 3, 2) [000269] -------N---- | +--* lclVar long V20 tmp12 u:3 (last use) REG NA $81
N049 ( 10, 10) [000350] ----G------- \--* storeIndir long REG NA
***** BB01, stmt 9 (top level)
( 33, 21) [000046] ------------ * stmtExpr void (top level) (IL 0x026... ???)
N051 ( 3, 2) [000039] -------N---- Source | /--* &lclVar byref V02 loc2 u:4 REG NA $2c1
N053 ( 3, 2) [000271] D------N---- Destination | +--* &lclVar byref V21 tmp13 REG NA
N057 ( 1, 1) [000273] ------------ | +--* const int 16 REG NA $44
N059 ( 9, 9) [000274] -A--G-----L- arg0 SETUP | /--* copyBlk void REG NA $VN.Void
N063 ( 3, 2) [000276] -------N---- | | /--* &lclVar byref V21 tmp13 REG NA $1c8
N065 ( 3, 2) [000355] ------------ arg0 in rcx | +--* putarg_reg byref REG NA
N069 ( 29, 18) [000040] --CXG------- | /--* call int Program.IsXGeater $380
N071 ( 33, 21) [000045] DACXG------- \--* st.lclVar int V04 loc4 d:3 REG NA
***** BB01, stmt 10 (top level)
( 33, 21) [000054] ------------ * stmtExpr void (top level) (IL 0x02E...0x034)
N073 ( 3, 2) [000047] -------N---- Source | /--* &lclVar byref V03 loc3 u:4 REG NA $2c3
N075 ( 3, 2) [000279] D------N---- Destination | +--* &lclVar byref V21 tmp13 REG NA
N079 ( 1, 1) [000281] ------------ | +--* const int 16 REG NA $44
N081 ( 9, 9) [000282] -A--G-----L- arg0 SETUP | /--* copyBlk void REG NA $VN.Void
N085 ( 3, 2) [000284] -------N---- | | /--* &lclVar byref V21 tmp13 REG NA $1c9
N087 ( 3, 2) [000356] ------------ arg0 in rcx | +--* putarg_reg byref REG NA
N091 ( 29, 18) [000048] --CXG------- | /--* call int Program.IsXGeater $382
N093 ( 33, 21) [000053] DACXG------- \--* st.lclVar int V05 loc5 d:3 REG NA
***** BB01, stmt 11 (top level)
( 33, 21) [000062] ------------ * stmtExpr void (top level) (IL 0x036...0x03C)
N095 ( 3, 2) [000055] -------N---- Source | /--* &lclVar byref V02 loc2 u:4 (last use) REG NA $2c1
N097 ( 3, 2) [000287] D------N---- Destination | +--* &lclVar byref V21 tmp13 REG NA
N101 ( 1, 1) [000289] ------------ | +--* const int 16 REG NA $44
N103 ( 9, 9) [000290] -A--G-----L- arg0 SETUP | /--* copyBlk void REG NA $VN.Void
N107 ( 3, 2) [000292] -------N---- | | /--* &lclVar byref V21 tmp13 REG NA $1ca
N109 ( 3, 2) [000357] ------------ arg0 in rcx | +--* putarg_reg byref REG NA
N113 ( 29, 18) [000056] --CXG------- | /--* call int Program.IsXGeater $384
N115 ( 33, 21) [000061] DACXG------- \--* st.lclVar int V06 loc6 d:3 REG NA
***** BB01, stmt 12 (top level)
( 33, 21) [000070] ------------ * stmtExpr void (top level) (IL 0x03E...0x044)
N117 ( 3, 2) [000063] -------N---- Source | /--* &lclVar byref V03 loc3 u:4 (last use) REG NA $2c3
N119 ( 3, 2) [000295] D------N---- Destination | +--* &lclVar byref V21 tmp13 REG NA
N123 ( 1, 1) [000297] ------------ | +--* const int 16 REG NA $44
N125 ( 9, 9) [000298] -A--G-----L- arg0 SETUP | /--* copyBlk void REG NA $VN.Void
N129 ( 3, 2) [000300] -------N---- | | /--* &lclVar byref V21 tmp13 REG NA $1cb
N131 ( 3, 2) [000358] ------------ arg0 in rcx | +--* putarg_reg byref REG NA
N135 ( 29, 18) [000064] --CXG------- | /--* call int Program.IsXGeater $386
N137 ( 33, 21) [000069] DACXG------- \--* st.lclVar int V07 loc7 d:3 REG NA
***** BB01, stmt 13 (top level)
( 7, 6) [000075] ------------ * stmtExpr void (top level) (IL 0x046...0x048)
N139 ( 3, 2) [000071] ------------ | /--* lclVar int V04 loc4 u:3 (last use) REG NA $380
N141 ( 1, 1) [000072] ------------ | +--* const int 0 REG NA $40
N143 ( 5, 4) [000073] J------N---- | /--* == int REG NA $400
N145 ( 7, 6) [000074] ------------ \--* jmpTrue void REG NA
------------ BB02 [04A..056) -> BB10 (always), preds={BB01} succs={BB10}
***** BB02, stmt 14 (top level)
( 19, 18) [000130] ------------ * stmtExpr void (top level) (IL 0x04A...0x055)
N149 ( 0, 0) [000305] ----------L- arg0 SETUP | /--* argPlace ref REG NA $3d1
N153 ( 3, 10) [000303] ------------ | | /--* const(h) long 0xD6273068 "Fail" REG NA $186
N155 ( 5, 12) [000304] ----G------- | | /--* indir ref REG NA $3d1
N157 ( 5, 12) [000359] ----G------- arg0 in rcx | +--* putarg_reg ref REG NA
N161 ( 19, 18) [000128] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB02, stmt 15 (top level)
( 1, 3) [000133] ------------ * stmtExpr void (top level) (IL 0x054... ???)
N163 ( 1, 1) [000131] ------------ | /--* const int -1 REG NA $41
N165 ( 1, 3) [000308] DA-----N---- \--* st.lclVar int V08 tmp0 d:7 REG NA
------------ BB03 [056..05A) -> BB05 (cond), preds={BB01} succs={BB04,BB05}
***** BB03, stmt 16 (top level)
( 7, 6) [000081] ------------ * stmtExpr void (top level) (IL 0x056...0x058)
N169 ( 3, 2) [000077] ------------ | /--* lclVar int V05 loc5 u:3 (last use) REG NA $382
N171 ( 1, 1) [000078] ------------ | +--* const int 0 REG NA $40
N173 ( 5, 4) [000079] J------N---- | /--* != int REG NA $401
N175 ( 7, 6) [000080] ------------ \--* jmpTrue void REG NA
------------ BB04 [05A..066) -> BB10 (always), preds={BB03} succs={BB10}
***** BB04, stmt 17 (top level)
( 19, 18) [000122] ------------ * stmtExpr void (top level) (IL 0x05A...0x065)
N179 ( 0, 0) [000311] ----------L- arg0 SETUP | /--* argPlace ref REG NA $3ce
N183 ( 3, 10) [000309] ------------ | | /--* const(h) long 0xD6273068 "Fail" REG NA $186
N185 ( 5, 12) [000310] ----G------- | | /--* indir ref REG NA $3ce
N187 ( 5, 12) [000360] ----G------- arg0 in rcx | +--* putarg_reg ref REG NA
N191 ( 19, 18) [000120] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB04, stmt 18 (top level)
( 1, 3) [000125] ------------ * stmtExpr void (top level) (IL 0x064... ???)
N193 ( 1, 1) [000123] ------------ | /--* const int -1 REG NA $41
N195 ( 1, 3) [000314] DA-----N---- \--* st.lclVar int V08 tmp0 d:6 REG NA
------------ BB05 [066..06A) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
***** BB05, stmt 19 (top level)
( 7, 6) [000087] ------------ * stmtExpr void (top level) (IL 0x066...0x068)
N199 ( 3, 2) [000083] ------------ | /--* lclVar int V06 loc6 u:3 (last use) REG NA $384
N201 ( 1, 1) [000084] ------------ | +--* const int 0 REG NA $40
N203 ( 5, 4) [000085] J------N---- | /--* == int REG NA $402
N205 ( 7, 6) [000086] ------------ \--* jmpTrue void REG NA
------------ BB06 [06A..076) -> BB10 (always), preds={BB05} succs={BB10}
***** BB06, stmt 20 (top level)
( 19, 18) [000114] ------------ * stmtExpr void (top level) (IL 0x06A...0x075)
N209 ( 0, 0) [000317] ----------L- arg0 SETUP | /--* argPlace ref REG NA $3cb
N213 ( 3, 10) [000315] ------------ | | /--* const(h) long 0xD6273068 "Fail" REG NA $186
N215 ( 5, 12) [000316] ----G------- | | /--* indir ref REG NA $3cb
N217 ( 5, 12) [000361] ----G------- arg0 in rcx | +--* putarg_reg ref REG NA
N221 ( 19, 18) [000112] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB06, stmt 21 (top level)
( 1, 3) [000117] ------------ * stmtExpr void (top level) (IL 0x074... ???)
N223 ( 1, 1) [000115] ------------ | /--* const int -1 REG NA $41
N225 ( 1, 3) [000320] DA-----N---- \--* st.lclVar int V08 tmp0 d:5 REG NA
------------ BB07 [076..07A) -> BB09 (cond), preds={BB05} succs={BB08,BB09}
***** BB07, stmt 22 (top level)
( 7, 6) [000093] ------------ * stmtExpr void (top level) (IL 0x076...0x078)
N229 ( 3, 2) [000089] ------------ | /--* lclVar int V07 loc7 u:3 (last use) REG NA $386
N231 ( 1, 1) [000090] ------------ | +--* const int 0 REG NA $40
N233 ( 5, 4) [000091] J------N---- | /--* != int REG NA $403
N235 ( 7, 6) [000092] ------------ \--* jmpTrue void REG NA
------------ BB08 [07A..086) -> BB10 (always), preds={BB07} succs={BB10}
***** BB08, stmt 23 (top level)
( 19, 18) [000106] ------------ * stmtExpr void (top level) (IL 0x07A...0x085)
N239 ( 0, 0) [000323] ----------L- arg0 SETUP | /--* argPlace ref REG NA $3c8
N243 ( 3, 10) [000321] ------------ | | /--* const(h) long 0xD6273068 "Fail" REG NA $186
N245 ( 5, 12) [000322] ----G------- | | /--* indir ref REG NA $3c8
N247 ( 5, 12) [000362] ----G------- arg0 in rcx | +--* putarg_reg ref REG NA
N251 ( 19, 18) [000104] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB08, stmt 24 (top level)
( 1, 3) [000109] ------------ * stmtExpr void (top level) (IL 0x084... ???)
N253 ( 1, 1) [000107] ------------ | /--* const int -1 REG NA $41
N255 ( 1, 3) [000326] DA-----N---- \--* st.lclVar int V08 tmp0 d:3 REG NA
------------ BB09 [086..093), preds={BB07} succs={BB10}
***** BB09, stmt 25 (top level)
( 19, 18) [000098] ------------ * stmtExpr void (top level) (IL 0x086...0x092)
N259 ( 0, 0) [000329] ----------L- arg0 SETUP | /--* argPlace ref REG NA $3c5
N263 ( 3, 10) [000327] ------------ | | /--* const(h) long 0xD6273070 "Pass" REG NA $184
N265 ( 5, 12) [000328] ----G------- | | /--* indir ref REG NA $3c5
N267 ( 5, 12) [000363] ----G------- arg0 in rcx | +--* putarg_reg ref REG NA
N271 ( 19, 18) [000096] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB09, stmt 26 (top level)
( 1, 3) [000101] ------------ * stmtExpr void (top level) (IL 0x090... ???)
N273 ( 1, 1) [000099] ------------ | /--* const int 100 REG NA $45
N275 ( 1, 3) [000332] DA-----N---- \--* st.lclVar int V08 tmp0 d:4 REG NA
------------ BB10 [???..???) (return), preds={BB02,BB04,BB06,BB08,BB09} succs={}
***** BB10, stmt 27 (top level)
( 6, 6) [000336] ------------ * stmtExpr void (top level) (IL ???... ???)
N001 ( 0, 0) [000345] ------------ List Item 0 | /--* phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ List Item 1 | +--* phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ List Item 2 | +--* phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ List Item 3 | +--* phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ List Item 4 | +--* phiArg int V08 tmp0 u:3 $41
N011 ( 6, 6) [000334] ------------ | * phi int
N001 ( 0, 0) [000345] ------------ * phiArg int V08 tmp0 u:7
N002 ( 0, 0) [000343] ------------ * phiArg int V08 tmp0 u:6 $41
N003 ( 0, 0) [000341] ------------ * phiArg int V08 tmp0 u:5 $41
N004 ( 0, 0) [000339] ------------ * phiArg int V08 tmp0 u:4 $45
N005 ( 0, 0) [000337] ------------ * phiArg int V08 tmp0 u:3 $41
N013 ( 6, 6) [000335] DA---------- \--* st.lclVar int V08 tmp0 d:8
***** BB10, stmt 28 (top level)
( 2, 2) [000136] ------------ * stmtExpr void (top level) (IL ???... ???)
N279 ( 1, 1) [000134] -------N---- | /--* lclVar int V08 tmp0 u:8 (last use) REG NA $440
N281 ( 2, 2) [000135] ------------ \--* return int REG NA $38d
-------------------------------------------------------------------------------------------------------------------
Clearing modified regs.
buildIntervals ========
-----------------
LIVENESS:
-----------------
BB01 use def in out
{V02 V03}
{V02 V03 V04 V05 V06 V07 V15 V16 V17 V18 V19 V20}
{V02 V03}
{V05 V06 V07}
BB02 use def in out
{}
{V08}
{}
{V08}
BB03 use def in out
{V05}
{}
{V05 V06 V07}
{V06 V07}
BB04 use def in out
{}
{V08}
{}
{V08}
BB05 use def in out
{V06}
{}
{V06 V07}
{V07}
BB06 use def in out
{}
{V08}
{}
{V08}
BB07 use def in out
{V07}
{}
{V07}
{}
BB08 use def in out
{}
{V08}
{}
{V08}
BB09 use def in out
{}
{V08}
{}
{V08}
BB10 use def in out
{V08}
{}
{V08}
{}
Interval 0: RefPositions {} physReg:NA Preferences=[allInt]
Interval 1: RefPositions {} physReg:NA Preferences=[allInt]
Interval 2: RefPositions {} physReg:NA Preferences=[allInt]
Local V02 should not be enregistered because: it is a struct
Interval 3: RefPositions {} physReg:NA Preferences=[allInt]
Local V03 should not be enregistered because: it is a struct
Interval 4: RefPositions {} physReg:NA Preferences=[allInt]
Interval 5: RefPositions {} physReg:NA Preferences=[allInt]
Interval 6: RefPositions {} physReg:NA Preferences=[allInt]
Interval 7: RefPositions {} physReg:NA Preferences=[allInt]
Interval 8: RefPositions {} physReg:NA Preferences=[allInt]
Interval 9: RefPositions {} physReg:NA Preferences=[allInt]
Interval 10: RefPositions {} physReg:NA Preferences=[allInt]
Interval 11: RefPositions {} physReg:NA Preferences=[allInt]
Interval 12: RefPositions {} physReg:NA Preferences=[allInt]
Interval 13: RefPositions {} physReg:NA Preferences=[allInt]
Interval 14: RefPositions {} physReg:NA Preferences=[allInt]
Interval 15: RefPositions {} physReg:NA Preferences=[allInt]
Interval 16: RefPositions {} physReg:NA Preferences=[allInt]
Interval 17: RefPositions {} physReg:NA Preferences=[allInt]
Interval 18: RefPositions {} physReg:NA Preferences=[allInt]
Interval 19: RefPositions {} physReg:NA Preferences=[allInt]
Interval 20: RefPositions {} physReg:NA Preferences=[allInt]
Interval 21: RefPositions {} physReg:NA Preferences=[allInt]
Interval 22: RefPositions {} physReg:NA Preferences=[allInt]
FP callee save candidate vars: None
floatVarCount = 0; hasLoops = 0, singleExit = 1
TUPLE STYLE DUMP BEFORE LSRA
BB01 [000..04A) -> BB03 (cond), preds={} succs={BB02,BB03}
=====
N003. const 10 REG NA
N005. V15(t5)
N007. const 20 REG NA
N009. V16(t9)
N011. t11 = &lclFld V02 loc2 ud:2->3[+0] Fseq[v1] REG NA
N013. lea(b+0)
N015. V15(t15)
N017. storeIndir; t11,t15
N019. t19 = &lclFld V02 loc2 ud:3->4[+8] Fseq[v2] REG NA
N021. lea(b+0)
N023. V16(t23)
N025. storeIndir; t19,t23
N027. V16(t27*)
N029. V19(t29); t27*
N031. V15(t31*)
N033. V20(t33); t31*
N035. t35 = &lclFld V03 loc3 ud:2->3[+0] Fseq[v1] REG NA
N037. lea(b+0)
N039. V19(t39*)
N041. storeIndir; t35,t39*
N043. t43 = &lclFld V03 loc3 ud:3->4[+8] Fseq[v2] REG NA
N045. lea(b+0)
N047. V20(t47*)
N049. storeIndir; t43,t47*
N051. &lclVar V02 loc2 u:4 REG NA
N053. &lclVar V21 tmp13 REG NA
N057. const 16 REG NA
N059. copyBlk
internal (1):
N063. t63 = &lclVar V21 tmp13 REG NA
N065. t65 = putarg_reg; t63
N069. t69 = call ; t65
N071. V04(t71); t69
N073. &lclVar V03 loc3 u:4 REG NA
N075. &lclVar V21 tmp13 REG NA
N079. const 16 REG NA
N081. copyBlk
internal (1):
N085. t85 = &lclVar V21 tmp13 REG NA
N087. t87 = putarg_reg; t85
N091. t91 = call ; t87
N093. V05(t93); t91
N095. &lclVar V02 loc2 u:4 (last use) REG NA
N097. &lclVar V21 tmp13 REG NA
N101. const 16 REG NA
N103. copyBlk
internal (1):
N107. t107 = &lclVar V21 tmp13 REG NA
N109. t109 = putarg_reg; t107
N113. t113 = call ; t109
N115. V06(t115); t113
N117. &lclVar V03 loc3 u:4 (last use) REG NA
N119. &lclVar V21 tmp13 REG NA
N123. const 16 REG NA
N125. copyBlk
internal (1):
N129. t129 = &lclVar V21 tmp13 REG NA
N131. t131 = putarg_reg; t129
N135. t135 = call ; t131
N137. V07(t137); t135
N139. V04(t139*)
N141. const 0 REG NA
N143. == ; t139*
N145. jmpTrue
BB02 [04A..056) -> BB10 (always), preds={BB01} succs={BB10}
=====
N153. t153 = const(h) 0xD6273068 "Fail" REG NA
N155. t155 = indir ; t153
N157. t157 = putarg_reg; t155
N161. call ; t157
N163. const -1 REG NA
N165. V08(t165)
BB03 [056..05A) -> BB05 (cond), preds={BB01} succs={BB04,BB05}
=====
N169. V05(t169*)
N171. const 0 REG NA
N173. != ; t169*
N175. jmpTrue
BB04 [05A..066) -> BB10 (always), preds={BB03} succs={BB10}
=====
N183. t183 = const(h) 0xD6273068 "Fail" REG NA
N185. t185 = indir ; t183
N187. t187 = putarg_reg; t185
N191. call ; t187
N193. const -1 REG NA
N195. V08(t195)
BB05 [066..06A) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
=====
N199. V06(t199*)
N201. const 0 REG NA
N203. == ; t199*
N205. jmpTrue
BB06 [06A..076) -> BB10 (always), preds={BB05} succs={BB10}
=====
N213. t213 = const(h) 0xD6273068 "Fail" REG NA
N215. t215 = indir ; t213
N217. t217 = putarg_reg; t215
N221. call ; t217
N223. const -1 REG NA
N225. V08(t225)
BB07 [076..07A) -> BB09 (cond), preds={BB05} succs={BB08,BB09}
=====
N229. V07(t229*)
N231. const 0 REG NA
N233. != ; t229*
N235. jmpTrue
BB08 [07A..086) -> BB10 (always), preds={BB07} succs={BB10}
=====
N243. t243 = const(h) 0xD6273068 "Fail" REG NA
N245. t245 = indir ; t243
N247. t247 = putarg_reg; t245
N251. call ; t247
N253. const -1 REG NA
N255. V08(t255)
BB09 [086..093), preds={BB07} succs={BB10}
=====
N263. t263 = const(h) 0xD6273070 "Pass" REG NA
N265. t265 = indir ; t263
N267. t267 = putarg_reg; t265
N271. call ; t267
N273. const 100 REG NA
N275. V08(t275)
BB10 [???..???) (return), preds={BB02,BB04,BB06,BB08,BB09} succs={}
=====
N279. V08(t279*)
N281. return ; t279*
buildIntervals second part ========
NEW BLOCK BB01
<RefPosition #0 @0 RefTypeBB BB01 regmask=[]>
at start of tree, stack is : [ ]
N003. const 10 REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N005. V15(L15)
consume=0 produce=0
t5 (i:15) = op
Def candidates [allInt], Use candidates [allInt]
<RefPosition #1 @6 RefTypeDef <Ivl:15 V15> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #1 @6 RefTypeDef <Ivl:15 V15> STORE_LCL_VAR BB01 regmask=[allInt]>
stack height after tree processed was 0
at start of tree, stack is : [ ]
N007. const 20 REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N009. V16(L16)
consume=0 produce=0
t9 (i:16) = op
Def candidates [allInt], Use candidates [allInt]
<RefPosition #2 @10 RefTypeDef <Ivl:16 V16> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #2 @10 RefTypeDef <Ivl:16 V16> STORE_LCL_VAR BB01 regmask=[allInt]>
stack height after tree processed was 0
at start of tree, stack is : [ ]
N011. t11 = &lclFld V02 loc2 ud:2->3[+0] Fseq[v1] REG NA
consume=0 produce=1
t11 = op
Def candidates [allInt], Use candidates [allInt]
Interval 23: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #3 @12 RefTypeDef <Ivl:23> LCL_FLD_ADDR BB01 regmask=[allInt]>
<RefPosition #3 @12 RefTypeDef <Ivl:23> LCL_FLD_ADDR BB01 regmask=[allInt]>
at start of tree, stack is : [ 12.&lclFld ]
N013. lea(b+0)
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ 12.&lclFld ]
t15 (i:15)
at start of tree, stack is : [ 15.lclVar 12.&lclFld ]
N017. storeIndir
consume=2 produce=0
op
t12 <RefPosition #4 @17 RefTypeUse <Ivl:23> BB01 regmask=[allInt]>
t15 <RefPosition #5 @17 RefTypeUse <Ivl:15 V15> LCL_VAR BB01 regmask=[allInt]>
Def candidates [allInt], Use candidates [allInt]
stack height after tree processed was 0
at start of tree, stack is : [ ]
N019. t19 = &lclFld V02 loc2 ud:3->4[+8] Fseq[v2] REG NA
consume=0 produce=1
t19 = op
Def candidates [allInt], Use candidates [allInt]
Interval 24: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #6 @20 RefTypeDef <Ivl:24> LCL_FLD_ADDR BB01 regmask=[allInt]>
<RefPosition #6 @20 RefTypeDef <Ivl:24> LCL_FLD_ADDR BB01 regmask=[allInt]>
at start of tree, stack is : [ 20.&lclFld ]
N021. lea(b+0)
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ 20.&lclFld ]
t23 (i:16)
at start of tree, stack is : [ 23.lclVar 20.&lclFld ]
N025. storeIndir
consume=2 produce=0
op
t20 <RefPosition #7 @25 RefTypeUse <Ivl:24> BB01 regmask=[allInt]>
t23 <RefPosition #8 @25 RefTypeUse <Ivl:16 V16> LCL_VAR BB01 regmask=[allInt]>
Def candidates [allInt], Use candidates [allInt]
stack height after tree processed was 0
at start of tree, stack is : [ ]
t27 (i:16)
at start of tree, stack is : [ 27.lclVar ]
N029. V19(L19)
consume=1 produce=0
Assigning related <L19> to <L16>
t29 (i:19) = op
t27 <RefPosition #9 @29 RefTypeUse <Ivl:16 V16> LCL_VAR BB01 regmask=[allInt]>
Def candidates [allInt], Use candidates [allInt]
<RefPosition #10 @30 RefTypeDef <Ivl:19 V19> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #10 @30 RefTypeDef <Ivl:19 V19> STORE_LCL_VAR BB01 regmask=[allInt]>
stack height after tree processed was 0
at start of tree, stack is : [ ]
t31 (i:15)
at start of tree, stack is : [ 31.lclVar ]
N033. V20(L20)
consume=1 produce=0
Assigning related <L20> to <L15>
t33 (i:20) = op
t31 <RefPosition #11 @33 RefTypeUse <Ivl:15 V15> LCL_VAR BB01 regmask=[allInt]>
Def candidates [allInt], Use candidates [allInt]
<RefPosition #12 @34 RefTypeDef <Ivl:20 V20> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #12 @34 RefTypeDef <Ivl:20 V20> STORE_LCL_VAR BB01 regmask=[allInt]>
stack height after tree processed was 0
at start of tree, stack is : [ ]
N035. t35 = &lclFld V03 loc3 ud:2->3[+0] Fseq[v1] REG NA
consume=0 produce=1
t35 = op
Def candidates [allInt], Use candidates [allInt]
Interval 25: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #13 @36 RefTypeDef <Ivl:25> LCL_FLD_ADDR BB01 regmask=[allInt]>
<RefPosition #13 @36 RefTypeDef <Ivl:25> LCL_FLD_ADDR BB01 regmask=[allInt]>
at start of tree, stack is : [ 36.&lclFld ]
N037. lea(b+0)
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ 36.&lclFld ]
t39 (i:19)
at start of tree, stack is : [ 39.lclVar 36.&lclFld ]
N041. storeIndir
consume=2 produce=0
op
t36 <RefPosition #14 @41 RefTypeUse <Ivl:25> BB01 regmask=[allInt]>
t39 <RefPosition #15 @41 RefTypeUse <Ivl:19 V19> LCL_VAR BB01 regmask=[allInt]>
Def candidates [allInt], Use candidates [allInt]
stack height after tree processed was 0
at start of tree, stack is : [ ]
N043. t43 = &lclFld V03 loc3 ud:3->4[+8] Fseq[v2] REG NA
consume=0 produce=1
t43 = op
Def candidates [allInt], Use candidates [allInt]
Interval 26: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #16 @44 RefTypeDef <Ivl:26> LCL_FLD_ADDR BB01 regmask=[allInt]>
<RefPosition #16 @44 RefTypeDef <Ivl:26> LCL_FLD_ADDR BB01 regmask=[allInt]>
at start of tree, stack is : [ 44.&lclFld ]
N045. lea(b+0)
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ 44.&lclFld ]
t47 (i:20)
at start of tree, stack is : [ 47.lclVar 44.&lclFld ]
N049. storeIndir
consume=2 produce=0
op
t44 <RefPosition #17 @49 RefTypeUse <Ivl:26> BB01 regmask=[allInt]>
t47 <RefPosition #18 @49 RefTypeUse <Ivl:20 V20> LCL_VAR BB01 regmask=[allInt]>
Def candidates [allInt], Use candidates [allInt]
stack height after tree processed was 0
at start of tree, stack is : [ ]
N051. &lclVar V02 loc2 u:4 REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N053. &lclVar V21 tmp13 REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N057. const 16 REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N059. copyBlk
consume=0 produce=0
op
Interval 27: RefPositions {} physReg:NA Preferences=[allFloat]
<RefPosition #19 @59 RefTypeDef <Ivl:27 internal> COPYBLK BB01 regmask=[mm0-mm5]>
<RefPosition #20 @59 RefTypeUse <Ivl:27 internal> COPYBLK BB01 regmask=[mm0-mm5]>
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N063. t63 = &lclVar V21 tmp13 REG NA
consume=0 produce=1
t63 = op
Def candidates [allInt], Use candidates [rcx]
Interval 28: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #21 @64 RefTypeDef <Ivl:28> LCL_VAR_ADDR BB01 regmask=[allInt]>
<RefPosition #21 @64 RefTypeDef <Ivl:28> LCL_VAR_ADDR BB01 regmask=[allInt]>
at start of tree, stack is : [ 64.&lclVar ]
N065. t65 = putarg_reg
consume=1 produce=1
t65 = op
t64 <RefPosition #22 @65 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #23 @65 RefTypeUse <Ivl:28> BB01 regmask=[rcx] fixed>
Def candidates [rcx], Use candidates [rcx]
Interval 29: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #24 @66 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #25 @66 RefTypeDef <Ivl:29> PUTARG_REG BB01 regmask=[rcx] fixed>
<RefPosition #25 @66 RefTypeDef <Ivl:29> PUTARG_REG BB01 regmask=[rcx] fixed>
at start of tree, stack is : [ 66.putarg_reg ]
N069. t69 = call
consume=1 produce=1
t69 = op
t66 <RefPosition #26 @69 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #27 @69 RefTypeUse <Ivl:29> BB01 regmask=[rcx] fixed>
Def candidates [rax], Use candidates [allInt]
<RefPosition #28 @70 RefTypeKill <Reg:rax> BB01 regmask=[rax]>
<RefPosition #29 @70 RefTypeKill <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #30 @70 RefTypeKill <Reg:rdx> BB01 regmask=[rdx]>
<RefPosition #31 @70 RefTypeKill <Reg:r8 > BB01 regmask=[r8]>
<RefPosition #32 @70 RefTypeKill <Reg:r9 > BB01 regmask=[r9]>
<RefPosition #33 @70 RefTypeKill <Reg:r10> BB01 regmask=[r10]>
<RefPosition #34 @70 RefTypeKill <Reg:r11> BB01 regmask=[r11]>
Interval 30: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #35 @70 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax]>
<RefPosition #36 @70 RefTypeDef <Ivl:30> CALL BB01 regmask=[rax] fixed>
<RefPosition #36 @70 RefTypeDef <Ivl:30> CALL BB01 regmask=[rax] fixed>
at start of tree, stack is : [ 70.call() ]
N071. V04(L4)
consume=1 produce=0
Assigning related <L4> to <I30>
t71 (i:4) = op
t70 <RefPosition #37 @71 RefTypeUse <Ivl:30> BB01 regmask=[allInt]>
Def candidates [allInt], Use candidates [allInt]
<RefPosition #38 @72 RefTypeDef <Ivl:4 V04> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #38 @72 RefTypeDef <Ivl:4 V04> STORE_LCL_VAR BB01 regmask=[allInt]>
stack height after tree processed was 0
at start of tree, stack is : [ ]
N073. &lclVar V03 loc3 u:4 REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N075. &lclVar V21 tmp13 REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N079. const 16 REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N081. copyBlk
consume=0 produce=0
op
Interval 31: RefPositions {} physReg:NA Preferences=[allFloat]
<RefPosition #39 @81 RefTypeDef <Ivl:31 internal> COPYBLK BB01 regmask=[mm0-mm5]>
<RefPosition #40 @81 RefTypeUse <Ivl:31 internal> COPYBLK BB01 regmask=[mm0-mm5]>
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N085. t85 = &lclVar V21 tmp13 REG NA
consume=0 produce=1
t85 = op
Def candidates [allInt], Use candidates [rcx]
Interval 32: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #41 @86 RefTypeDef <Ivl:32> LCL_VAR_ADDR BB01 regmask=[allInt]>
<RefPosition #41 @86 RefTypeDef <Ivl:32> LCL_VAR_ADDR BB01 regmask=[allInt]>
at start of tree, stack is : [ 86.&lclVar ]
N087. t87 = putarg_reg
consume=1 produce=1
t87 = op
t86 <RefPosition #42 @87 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #43 @87 RefTypeUse <Ivl:32> BB01 regmask=[rcx] fixed>
Def candidates [rcx], Use candidates [rcx]
Interval 33: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #44 @88 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #45 @88 RefTypeDef <Ivl:33> PUTARG_REG BB01 regmask=[rcx] fixed>
<RefPosition #45 @88 RefTypeDef <Ivl:33> PUTARG_REG BB01 regmask=[rcx] fixed>
at start of tree, stack is : [ 88.putarg_reg ]
N091. t91 = call
consume=1 produce=1
t91 = op
t88 <RefPosition #46 @91 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #47 @91 RefTypeUse <Ivl:33> BB01 regmask=[rcx] fixed>
Def candidates [rax], Use candidates [allInt]
<RefPosition #48 @92 RefTypeKill <Reg:rax> BB01 regmask=[rax]>
<RefPosition #49 @92 RefTypeKill <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #50 @92 RefTypeKill <Reg:rdx> BB01 regmask=[rdx]>
<RefPosition #51 @92 RefTypeKill <Reg:r8 > BB01 regmask=[r8]>
<RefPosition #52 @92 RefTypeKill <Reg:r9 > BB01 regmask=[r9]>
<RefPosition #53 @92 RefTypeKill <Reg:r10> BB01 regmask=[r10]>
<RefPosition #54 @92 RefTypeKill <Reg:r11> BB01 regmask=[r11]>
Interval 34: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #55 @92 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax]>
<RefPosition #56 @92 RefTypeDef <Ivl:34> CALL BB01 regmask=[rax] fixed>
<RefPosition #56 @92 RefTypeDef <Ivl:34> CALL BB01 regmask=[rax] fixed>
at start of tree, stack is : [ 92.call() ]
N093. V05(L5)
consume=1 produce=0
Assigning related <L5> to <I34>
t93 (i:5) = op
t92 <RefPosition #57 @93 RefTypeUse <Ivl:34> BB01 regmask=[allInt]>
Def candidates [allInt], Use candidates [allInt]
<RefPosition #58 @94 RefTypeDef <Ivl:5 V05> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #58 @94 RefTypeDef <Ivl:5 V05> STORE_LCL_VAR BB01 regmask=[allInt]>
stack height after tree processed was 0
at start of tree, stack is : [ ]
N095. &lclVar V02 loc2 u:4 (last use) REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N097. &lclVar V21 tmp13 REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N101. const 16 REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N103. copyBlk
consume=0 produce=0
op
Interval 35: RefPositions {} physReg:NA Preferences=[allFloat]
<RefPosition #59 @103 RefTypeDef <Ivl:35 internal> COPYBLK BB01 regmask=[mm0-mm5]>
<RefPosition #60 @103 RefTypeUse <Ivl:35 internal> COPYBLK BB01 regmask=[mm0-mm5]>
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N107. t107 = &lclVar V21 tmp13 REG NA
consume=0 produce=1
t107 = op
Def candidates [allInt], Use candidates [rcx]
Interval 36: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #61 @108 RefTypeDef <Ivl:36> LCL_VAR_ADDR BB01 regmask=[allInt]>
<RefPosition #61 @108 RefTypeDef <Ivl:36> LCL_VAR_ADDR BB01 regmask=[allInt]>
at start of tree, stack is : [ 108.&lclVar ]
N109. t109 = putarg_reg
consume=1 produce=1
t109 = op
t108 <RefPosition #62 @109 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #63 @109 RefTypeUse <Ivl:36> BB01 regmask=[rcx] fixed>
Def candidates [rcx], Use candidates [rcx]
Interval 37: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #64 @110 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #65 @110 RefTypeDef <Ivl:37> PUTARG_REG BB01 regmask=[rcx] fixed>
<RefPosition #65 @110 RefTypeDef <Ivl:37> PUTARG_REG BB01 regmask=[rcx] fixed>
at start of tree, stack is : [ 110.putarg_reg ]
N113. t113 = call
consume=1 produce=1
t113 = op
t110 <RefPosition #66 @113 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #67 @113 RefTypeUse <Ivl:37> BB01 regmask=[rcx] fixed>
Def candidates [rax], Use candidates [allInt]
<RefPosition #68 @114 RefTypeKill <Reg:rax> BB01 regmask=[rax]>
<RefPosition #69 @114 RefTypeKill <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #70 @114 RefTypeKill <Reg:rdx> BB01 regmask=[rdx]>
<RefPosition #71 @114 RefTypeKill <Reg:r8 > BB01 regmask=[r8]>
<RefPosition #72 @114 RefTypeKill <Reg:r9 > BB01 regmask=[r9]>
<RefPosition #73 @114 RefTypeKill <Reg:r10> BB01 regmask=[r10]>
<RefPosition #74 @114 RefTypeKill <Reg:r11> BB01 regmask=[r11]>
Interval 38: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #75 @114 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax]>
<RefPosition #76 @114 RefTypeDef <Ivl:38> CALL BB01 regmask=[rax] fixed>
<RefPosition #76 @114 RefTypeDef <Ivl:38> CALL BB01 regmask=[rax] fixed>
at start of tree, stack is : [ 114.call() ]
N115. V06(L6)
consume=1 produce=0
Assigning related <L6> to <I38>
t115 (i:6) = op
t114 <RefPosition #77 @115 RefTypeUse <Ivl:38> BB01 regmask=[allInt]>
Def candidates [allInt], Use candidates [allInt]
<RefPosition #78 @116 RefTypeDef <Ivl:6 V06> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #78 @116 RefTypeDef <Ivl:6 V06> STORE_LCL_VAR BB01 regmask=[allInt]>
stack height after tree processed was 0
at start of tree, stack is : [ ]
N117. &lclVar V03 loc3 u:4 (last use) REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N119. &lclVar V21 tmp13 REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N123. const 16 REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N125. copyBlk
consume=0 produce=0
op
Interval 39: RefPositions {} physReg:NA Preferences=[allFloat]
<RefPosition #79 @125 RefTypeDef <Ivl:39 internal> COPYBLK BB01 regmask=[mm0-mm5]>
<RefPosition #80 @125 RefTypeUse <Ivl:39 internal> COPYBLK BB01 regmask=[mm0-mm5]>
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N129. t129 = &lclVar V21 tmp13 REG NA
consume=0 produce=1
t129 = op
Def candidates [allInt], Use candidates [rcx]
Interval 40: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #81 @130 RefTypeDef <Ivl:40> LCL_VAR_ADDR BB01 regmask=[allInt]>
<RefPosition #81 @130 RefTypeDef <Ivl:40> LCL_VAR_ADDR BB01 regmask=[allInt]>
at start of tree, stack is : [ 130.&lclVar ]
N131. t131 = putarg_reg
consume=1 produce=1
t131 = op
t130 <RefPosition #82 @131 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #83 @131 RefTypeUse <Ivl:40> BB01 regmask=[rcx] fixed>
Def candidates [rcx], Use candidates [rcx]
Interval 41: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #84 @132 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #85 @132 RefTypeDef <Ivl:41> PUTARG_REG BB01 regmask=[rcx] fixed>
<RefPosition #85 @132 RefTypeDef <Ivl:41> PUTARG_REG BB01 regmask=[rcx] fixed>
at start of tree, stack is : [ 132.putarg_reg ]
N135. t135 = call
consume=1 produce=1
t135 = op
t132 <RefPosition #86 @135 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #87 @135 RefTypeUse <Ivl:41> BB01 regmask=[rcx] fixed>
Def candidates [rax], Use candidates [allInt]
<RefPosition #88 @136 RefTypeKill <Reg:rax> BB01 regmask=[rax]>
<RefPosition #89 @136 RefTypeKill <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #90 @136 RefTypeKill <Reg:rdx> BB01 regmask=[rdx]>
<RefPosition #91 @136 RefTypeKill <Reg:r8 > BB01 regmask=[r8]>
<RefPosition #92 @136 RefTypeKill <Reg:r9 > BB01 regmask=[r9]>
<RefPosition #93 @136 RefTypeKill <Reg:r10> BB01 regmask=[r10]>
<RefPosition #94 @136 RefTypeKill <Reg:r11> BB01 regmask=[r11]>
Interval 42: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #95 @136 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax]>
<RefPosition #96 @136 RefTypeDef <Ivl:42> CALL BB01 regmask=[rax] fixed>
<RefPosition #96 @136 RefTypeDef <Ivl:42> CALL BB01 regmask=[rax] fixed>
at start of tree, stack is : [ 136.call() ]
N137. V07(L7)
consume=1 produce=0
Assigning related <L7> to <I42>
t137 (i:7) = op
t136 <RefPosition #97 @137 RefTypeUse <Ivl:42> BB01 regmask=[allInt]>
Def candidates [allInt], Use candidates [allInt]
<RefPosition #98 @138 RefTypeDef <Ivl:7 V07> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #98 @138 RefTypeDef <Ivl:7 V07> STORE_LCL_VAR BB01 regmask=[allInt]>
stack height after tree processed was 0
at start of tree, stack is : [ ]
t139 (i:4)
at start of tree, stack is : [ 139.lclVar ]
N141. const 0 REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ 139.lclVar ]
N143. ==
consume=1 produce=0
op
t139 <RefPosition #99 @143 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[allInt]>
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N145. jmpTrue
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
stack height after tree processed was 0
CALCULATING LAST USES for block 1, liveout={V05 V06 V07}
==============================
last use of V04 @143
last use of V20 @49
last use of V19 @41
last use of V15 @33
last use of V16 @29
use: {V02 V03}
def: {V02 V03 V04 V05 V06 V07 V15 V16 V17 V18 V19 V20}
NEW BLOCK BB02
Setting incoming variable registers of BB02 to outVarToRegMap of BB01
<RefPosition #100 @147 RefTypeBB BB02 regmask=[]>
at start of tree, stack is : [ ]
N153. t153 = const(h) 0xD6273068 "Fail" REG NA
consume=0 produce=1
t153 = op
Def candidates [allInt], Use candidates [allInt]
Interval 43: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #101 @154 RefTypeDef <Ivl:43> CNS_INT BB02 regmask=[allInt]>
<RefPosition #101 @154 RefTypeDef <Ivl:43> CNS_INT BB02 regmask=[allInt]>
at start of tree, stack is : [ 154.const ]
N155. t155 = indir
consume=1 produce=1
t155 = op
t154 <RefPosition #102 @155 RefTypeUse <Ivl:43> BB02 regmask=[allInt]>
Def candidates [allInt], Use candidates [rcx]
Interval 44: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #103 @156 RefTypeDef <Ivl:44> IND BB02 regmask=[allInt]>
<RefPosition #103 @156 RefTypeDef <Ivl:44> IND BB02 regmask=[allInt]>
at start of tree, stack is : [ 156.indir ]
N157. t157 = putarg_reg
consume=1 produce=1
t157 = op
t156 <RefPosition #104 @157 RefTypeFixedReg <Reg:rcx> BB02 regmask=[rcx]>
<RefPosition #105 @157 RefTypeUse <Ivl:44> BB02 regmask=[rcx] fixed>
Def candidates [rcx], Use candidates [rcx]
Interval 45: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #106 @158 RefTypeFixedReg <Reg:rcx> BB02 regmask=[rcx]>
<RefPosition #107 @158 RefTypeDef <Ivl:45> PUTARG_REG BB02 regmask=[rcx] fixed>
<RefPosition #107 @158 RefTypeDef <Ivl:45> PUTARG_REG BB02 regmask=[rcx] fixed>
at start of tree, stack is : [ 158.putarg_reg ]
N161. call
consume=1 produce=0
op
t158 <RefPosition #108 @161 RefTypeFixedReg <Reg:rcx> BB02 regmask=[rcx]>
<RefPosition #109 @161 RefTypeUse <Ivl:45> BB02 regmask=[rcx] fixed>
Def candidates [rax], Use candidates [allInt]
<RefPosition #110 @162 RefTypeKill <Reg:rax> BB02 regmask=[rax]>
<RefPosition #111 @162 RefTypeKill <Reg:rcx> BB02 regmask=[rcx]>
<RefPosition #112 @162 RefTypeKill <Reg:rdx> BB02 regmask=[rdx]>
<RefPosition #113 @162 RefTypeKill <Reg:r8 > BB02 regmask=[r8]>
<RefPosition #114 @162 RefTypeKill <Reg:r9 > BB02 regmask=[r9]>
<RefPosition #115 @162 RefTypeKill <Reg:r10> BB02 regmask=[r10]>
<RefPosition #116 @162 RefTypeKill <Reg:r11> BB02 regmask=[r11]>
stack height after tree processed was 0
at start of tree, stack is : [ ]
N163. const -1 REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N165. V08(L8)
consume=0 produce=0
t165 (i:8) = op
Def candidates [allInt], Use candidates [allInt]
<RefPosition #117 @166 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB02 regmask=[allInt]>
<RefPosition #117 @166 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB02 regmask=[allInt]>
stack height after tree processed was 0
CALCULATING LAST USES for block 2, liveout={V08}
==============================
use: {}
def: {V08}
NEW BLOCK BB03
Setting incoming variable registers of BB03 to outVarToRegMap of BB01
<RefPosition #118 @167 RefTypeBB BB03 regmask=[]>
at start of tree, stack is : [ ]
t169 (i:5)
at start of tree, stack is : [ 169.lclVar ]
N171. const 0 REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ 169.lclVar ]
N173. !=
consume=1 produce=0
op
t169 <RefPosition #119 @173 RefTypeUse <Ivl:5 V05> LCL_VAR BB03 regmask=[allInt]>
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N175. jmpTrue
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
stack height after tree processed was 0
CALCULATING LAST USES for block 3, liveout={V06 V07}
==============================
last use of V05 @173
use: {V05}
def: {}
NEW BLOCK BB04
Setting incoming variable registers of BB04 to outVarToRegMap of BB03
<RefPosition #120 @177 RefTypeBB BB04 regmask=[]>
at start of tree, stack is : [ ]
N183. t183 = const(h) 0xD6273068 "Fail" REG NA
consume=0 produce=1
t183 = op
Def candidates [allInt], Use candidates [allInt]
Interval 46: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #121 @184 RefTypeDef <Ivl:46> CNS_INT BB04 regmask=[allInt]>
<RefPosition #121 @184 RefTypeDef <Ivl:46> CNS_INT BB04 regmask=[allInt]>
at start of tree, stack is : [ 184.const ]
N185. t185 = indir
consume=1 produce=1
t185 = op
t184 <RefPosition #122 @185 RefTypeUse <Ivl:46> BB04 regmask=[allInt]>
Def candidates [allInt], Use candidates [rcx]
Interval 47: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #123 @186 RefTypeDef <Ivl:47> IND BB04 regmask=[allInt]>
<RefPosition #123 @186 RefTypeDef <Ivl:47> IND BB04 regmask=[allInt]>
at start of tree, stack is : [ 186.indir ]
N187. t187 = putarg_reg
consume=1 produce=1
t187 = op
t186 <RefPosition #124 @187 RefTypeFixedReg <Reg:rcx> BB04 regmask=[rcx]>
<RefPosition #125 @187 RefTypeUse <Ivl:47> BB04 regmask=[rcx] fixed>
Def candidates [rcx], Use candidates [rcx]
Interval 48: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #126 @188 RefTypeFixedReg <Reg:rcx> BB04 regmask=[rcx]>
<RefPosition #127 @188 RefTypeDef <Ivl:48> PUTARG_REG BB04 regmask=[rcx] fixed>
<RefPosition #127 @188 RefTypeDef <Ivl:48> PUTARG_REG BB04 regmask=[rcx] fixed>
at start of tree, stack is : [ 188.putarg_reg ]
N191. call
consume=1 produce=0
op
t188 <RefPosition #128 @191 RefTypeFixedReg <Reg:rcx> BB04 regmask=[rcx]>
<RefPosition #129 @191 RefTypeUse <Ivl:48> BB04 regmask=[rcx] fixed>
Def candidates [rax], Use candidates [allInt]
<RefPosition #130 @192 RefTypeKill <Reg:rax> BB04 regmask=[rax]>
<RefPosition #131 @192 RefTypeKill <Reg:rcx> BB04 regmask=[rcx]>
<RefPosition #132 @192 RefTypeKill <Reg:rdx> BB04 regmask=[rdx]>
<RefPosition #133 @192 RefTypeKill <Reg:r8 > BB04 regmask=[r8]>
<RefPosition #134 @192 RefTypeKill <Reg:r9 > BB04 regmask=[r9]>
<RefPosition #135 @192 RefTypeKill <Reg:r10> BB04 regmask=[r10]>
<RefPosition #136 @192 RefTypeKill <Reg:r11> BB04 regmask=[r11]>
stack height after tree processed was 0
at start of tree, stack is : [ ]
N193. const -1 REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N195. V08(L8)
consume=0 produce=0
t195 (i:8) = op
Def candidates [allInt], Use candidates [allInt]
<RefPosition #137 @196 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB04 regmask=[allInt]>
<RefPosition #137 @196 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB04 regmask=[allInt]>
stack height after tree processed was 0
CALCULATING LAST USES for block 4, liveout={V08}
==============================
use: {}
def: {V08}
NEW BLOCK BB05
Setting incoming variable registers of BB05 to outVarToRegMap of BB03
<RefPosition #138 @197 RefTypeBB BB05 regmask=[]>
at start of tree, stack is : [ ]
t199 (i:6)
at start of tree, stack is : [ 199.lclVar ]
N201. const 0 REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ 199.lclVar ]
N203. ==
consume=1 produce=0
op
t199 <RefPosition #139 @203 RefTypeUse <Ivl:6 V06> LCL_VAR BB05 regmask=[allInt]>
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N205. jmpTrue
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
stack height after tree processed was 0
CALCULATING LAST USES for block 5, liveout={V07}
==============================
last use of V06 @203
use: {V06}
def: {}
NEW BLOCK BB06
Setting incoming variable registers of BB06 to outVarToRegMap of BB05
<RefPosition #140 @207 RefTypeBB BB06 regmask=[]>
at start of tree, stack is : [ ]
N213. t213 = const(h) 0xD6273068 "Fail" REG NA
consume=0 produce=1
t213 = op
Def candidates [allInt], Use candidates [allInt]
Interval 49: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #141 @214 RefTypeDef <Ivl:49> CNS_INT BB06 regmask=[allInt]>
<RefPosition #141 @214 RefTypeDef <Ivl:49> CNS_INT BB06 regmask=[allInt]>
at start of tree, stack is : [ 214.const ]
N215. t215 = indir
consume=1 produce=1
t215 = op
t214 <RefPosition #142 @215 RefTypeUse <Ivl:49> BB06 regmask=[allInt]>
Def candidates [allInt], Use candidates [rcx]
Interval 50: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #143 @216 RefTypeDef <Ivl:50> IND BB06 regmask=[allInt]>
<RefPosition #143 @216 RefTypeDef <Ivl:50> IND BB06 regmask=[allInt]>
at start of tree, stack is : [ 216.indir ]
N217. t217 = putarg_reg
consume=1 produce=1
t217 = op
t216 <RefPosition #144 @217 RefTypeFixedReg <Reg:rcx> BB06 regmask=[rcx]>
<RefPosition #145 @217 RefTypeUse <Ivl:50> BB06 regmask=[rcx] fixed>
Def candidates [rcx], Use candidates [rcx]
Interval 51: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #146 @218 RefTypeFixedReg <Reg:rcx> BB06 regmask=[rcx]>
<RefPosition #147 @218 RefTypeDef <Ivl:51> PUTARG_REG BB06 regmask=[rcx] fixed>
<RefPosition #147 @218 RefTypeDef <Ivl:51> PUTARG_REG BB06 regmask=[rcx] fixed>
at start of tree, stack is : [ 218.putarg_reg ]
N221. call
consume=1 produce=0
op
t218 <RefPosition #148 @221 RefTypeFixedReg <Reg:rcx> BB06 regmask=[rcx]>
<RefPosition #149 @221 RefTypeUse <Ivl:51> BB06 regmask=[rcx] fixed>
Def candidates [rax], Use candidates [allInt]
<RefPosition #150 @222 RefTypeKill <Reg:rax> BB06 regmask=[rax]>
<RefPosition #151 @222 RefTypeKill <Reg:rcx> BB06 regmask=[rcx]>
<RefPosition #152 @222 RefTypeKill <Reg:rdx> BB06 regmask=[rdx]>
<RefPosition #153 @222 RefTypeKill <Reg:r8 > BB06 regmask=[r8]>
<RefPosition #154 @222 RefTypeKill <Reg:r9 > BB06 regmask=[r9]>
<RefPosition #155 @222 RefTypeKill <Reg:r10> BB06 regmask=[r10]>
<RefPosition #156 @222 RefTypeKill <Reg:r11> BB06 regmask=[r11]>
stack height after tree processed was 0
at start of tree, stack is : [ ]
N223. const -1 REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N225. V08(L8)
consume=0 produce=0
t225 (i:8) = op
Def candidates [allInt], Use candidates [allInt]
<RefPosition #157 @226 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB06 regmask=[allInt]>
<RefPosition #157 @226 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB06 regmask=[allInt]>
stack height after tree processed was 0
CALCULATING LAST USES for block 6, liveout={V08}
==============================
use: {}
def: {V08}
NEW BLOCK BB07
Setting incoming variable registers of BB07 to outVarToRegMap of BB05
<RefPosition #158 @227 RefTypeBB BB07 regmask=[]>
at start of tree, stack is : [ ]
t229 (i:7)
at start of tree, stack is : [ 229.lclVar ]
N231. const 0 REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ 229.lclVar ]
N233. !=
consume=1 produce=0
op
t229 <RefPosition #159 @233 RefTypeUse <Ivl:7 V07> LCL_VAR BB07 regmask=[allInt]>
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N235. jmpTrue
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
stack height after tree processed was 0
CALCULATING LAST USES for block 7, liveout={}
==============================
last use of V07 @233
use: {V07}
def: {}
NEW BLOCK BB08
Setting incoming variable registers of BB08 to outVarToRegMap of BB07
<RefPosition #160 @237 RefTypeBB BB08 regmask=[]>
at start of tree, stack is : [ ]
N243. t243 = const(h) 0xD6273068 "Fail" REG NA
consume=0 produce=1
t243 = op
Def candidates [allInt], Use candidates [allInt]
Interval 52: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #161 @244 RefTypeDef <Ivl:52> CNS_INT BB08 regmask=[allInt]>
<RefPosition #161 @244 RefTypeDef <Ivl:52> CNS_INT BB08 regmask=[allInt]>
at start of tree, stack is : [ 244.const ]
N245. t245 = indir
consume=1 produce=1
t245 = op
t244 <RefPosition #162 @245 RefTypeUse <Ivl:52> BB08 regmask=[allInt]>
Def candidates [allInt], Use candidates [rcx]
Interval 53: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #163 @246 RefTypeDef <Ivl:53> IND BB08 regmask=[allInt]>
<RefPosition #163 @246 RefTypeDef <Ivl:53> IND BB08 regmask=[allInt]>
at start of tree, stack is : [ 246.indir ]
N247. t247 = putarg_reg
consume=1 produce=1
t247 = op
t246 <RefPosition #164 @247 RefTypeFixedReg <Reg:rcx> BB08 regmask=[rcx]>
<RefPosition #165 @247 RefTypeUse <Ivl:53> BB08 regmask=[rcx] fixed>
Def candidates [rcx], Use candidates [rcx]
Interval 54: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #166 @248 RefTypeFixedReg <Reg:rcx> BB08 regmask=[rcx]>
<RefPosition #167 @248 RefTypeDef <Ivl:54> PUTARG_REG BB08 regmask=[rcx] fixed>
<RefPosition #167 @248 RefTypeDef <Ivl:54> PUTARG_REG BB08 regmask=[rcx] fixed>
at start of tree, stack is : [ 248.putarg_reg ]
N251. call
consume=1 produce=0
op
t248 <RefPosition #168 @251 RefTypeFixedReg <Reg:rcx> BB08 regmask=[rcx]>
<RefPosition #169 @251 RefTypeUse <Ivl:54> BB08 regmask=[rcx] fixed>
Def candidates [rax], Use candidates [allInt]
<RefPosition #170 @252 RefTypeKill <Reg:rax> BB08 regmask=[rax]>
<RefPosition #171 @252 RefTypeKill <Reg:rcx> BB08 regmask=[rcx]>
<RefPosition #172 @252 RefTypeKill <Reg:rdx> BB08 regmask=[rdx]>
<RefPosition #173 @252 RefTypeKill <Reg:r8 > BB08 regmask=[r8]>
<RefPosition #174 @252 RefTypeKill <Reg:r9 > BB08 regmask=[r9]>
<RefPosition #175 @252 RefTypeKill <Reg:r10> BB08 regmask=[r10]>
<RefPosition #176 @252 RefTypeKill <Reg:r11> BB08 regmask=[r11]>
stack height after tree processed was 0
at start of tree, stack is : [ ]
N253. const -1 REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N255. V08(L8)
consume=0 produce=0
t255 (i:8) = op
Def candidates [allInt], Use candidates [allInt]
<RefPosition #177 @256 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB08 regmask=[allInt]>
<RefPosition #177 @256 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB08 regmask=[allInt]>
stack height after tree processed was 0
CALCULATING LAST USES for block 8, liveout={V08}
==============================
use: {}
def: {V08}
NEW BLOCK BB09
Setting incoming variable registers of BB09 to outVarToRegMap of BB07
<RefPosition #178 @257 RefTypeBB BB09 regmask=[]>
at start of tree, stack is : [ ]
N263. t263 = const(h) 0xD6273070 "Pass" REG NA
consume=0 produce=1
t263 = op
Def candidates [allInt], Use candidates [allInt]
Interval 55: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #179 @264 RefTypeDef <Ivl:55> CNS_INT BB09 regmask=[allInt]>
<RefPosition #179 @264 RefTypeDef <Ivl:55> CNS_INT BB09 regmask=[allInt]>
at start of tree, stack is : [ 264.const ]
N265. t265 = indir
consume=1 produce=1
t265 = op
t264 <RefPosition #180 @265 RefTypeUse <Ivl:55> BB09 regmask=[allInt]>
Def candidates [allInt], Use candidates [rcx]
Interval 56: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #181 @266 RefTypeDef <Ivl:56> IND BB09 regmask=[allInt]>
<RefPosition #181 @266 RefTypeDef <Ivl:56> IND BB09 regmask=[allInt]>
at start of tree, stack is : [ 266.indir ]
N267. t267 = putarg_reg
consume=1 produce=1
t267 = op
t266 <RefPosition #182 @267 RefTypeFixedReg <Reg:rcx> BB09 regmask=[rcx]>
<RefPosition #183 @267 RefTypeUse <Ivl:56> BB09 regmask=[rcx] fixed>
Def candidates [rcx], Use candidates [rcx]
Interval 57: RefPositions {} physReg:NA Preferences=[allInt]
<RefPosition #184 @268 RefTypeFixedReg <Reg:rcx> BB09 regmask=[rcx]>
<RefPosition #185 @268 RefTypeDef <Ivl:57> PUTARG_REG BB09 regmask=[rcx] fixed>
<RefPosition #185 @268 RefTypeDef <Ivl:57> PUTARG_REG BB09 regmask=[rcx] fixed>
at start of tree, stack is : [ 268.putarg_reg ]
N271. call
consume=1 produce=0
op
t268 <RefPosition #186 @271 RefTypeFixedReg <Reg:rcx> BB09 regmask=[rcx]>
<RefPosition #187 @271 RefTypeUse <Ivl:57> BB09 regmask=[rcx] fixed>
Def candidates [rax], Use candidates [allInt]
<RefPosition #188 @272 RefTypeKill <Reg:rax> BB09 regmask=[rax]>
<RefPosition #189 @272 RefTypeKill <Reg:rcx> BB09 regmask=[rcx]>
<RefPosition #190 @272 RefTypeKill <Reg:rdx> BB09 regmask=[rdx]>
<RefPosition #191 @272 RefTypeKill <Reg:r8 > BB09 regmask=[r8]>
<RefPosition #192 @272 RefTypeKill <Reg:r9 > BB09 regmask=[r9]>
<RefPosition #193 @272 RefTypeKill <Reg:r10> BB09 regmask=[r10]>
<RefPosition #194 @272 RefTypeKill <Reg:r11> BB09 regmask=[r11]>
stack height after tree processed was 0
at start of tree, stack is : [ ]
N273. const 100 REG NA
consume=0 produce=0
op
Def candidates [allInt], Use candidates [allInt]
at start of tree, stack is : [ ]
N275. V08(L8)
consume=0 produce=0
t275 (i:8) = op
Def candidates [allInt], Use candidates [allInt]
<RefPosition #195 @276 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB09 regmask=[allInt]>
<RefPosition #195 @276 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB09 regmask=[allInt]>
stack height after tree processed was 0
CALCULATING LAST USES for block 9, liveout={V08}
==============================
use: {}
def: {V08}
NEW BLOCK BB10
Setting incoming variable registers of BB10 to outVarToRegMap of BB02
<RefPosition #196 @277 RefTypeBB BB10 regmask=[]>
at start of tree, stack is : [ ]
t279 (i:8)
at start of tree, stack is : [ 279.lclVar ]
N281. return
consume=1 produce=0
op
t279 <RefPosition #197 @281 RefTypeFixedReg <Reg:rax> BB10 regmask=[rax]>
<RefPosition #198 @281 RefTypeUse <Ivl:8 V08> LCL_VAR BB10 regmask=[rax] fixed>
Def candidates [allInt], Use candidates [allInt]
stack height after tree processed was 0
CALCULATING LAST USES for block 10, liveout={}
==============================
last use of V08 @281
use: {V08}
def: {}
Linear scan intervals BEFORE VALIDATING INTERVALS:
Interval 0: (V00) RefPositions {} physReg:NA Preferences=[allInt]
Interval 1: (V01) RefPositions {} physReg:NA Preferences=[allInt]
Interval 2: (V02) RefPositions {} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15]
Interval 3: (V03) RefPositions {} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15]
Interval 4: (V04) RefPositions {#38@72 #99@143} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15]
Interval 5: (V05) RefPositions {#58@94 #119@173} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15]
Interval 6: (V06) RefPositions {#78@116 #139@203} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15]
Interval 7: (V07) RefPositions {#98@138 #159@233} physReg:NA Preferences=[allInt]
Interval 8: (V08) RefPositions {#117@166 #137@196 #157@226 #177@256 #195@276 #198@281} physReg:NA Preferences=[rax]
Interval 9: (V09) RefPositions {} physReg:NA Preferences=[allInt]
Interval 10: (V10) RefPositions {} physReg:NA Preferences=[allInt]
Interval 11: (V11) RefPositions {} physReg:NA Preferences=[allInt]
Interval 12: (V12) RefPositions {} physReg:NA Preferences=[allInt]
Interval 13: (V13) RefPositions {} physReg:NA Preferences=[allInt]
Interval 14: (V14) RefPositions {} physReg:NA Preferences=[allInt]
Interval 15: (V15) (struct) RefPositions {#1@6 #5@17 #11@33} physReg:NA Preferences=[allInt] RelatedInterval <L20>[0000026AC446C088]
Interval 16: (V16) (struct) RefPositions {#2@10 #8@25 #9@29} physReg:NA Preferences=[allInt] RelatedInterval <L19>[0000026AC446C040]
Interval 17: (V17) (struct) RefPositions {} physReg:NA Preferences=[allInt]
Interval 18: (V18) (struct) RefPositions {} physReg:NA Preferences=[allInt]
Interval 19: (V19) (struct) RefPositions {#10@30 #15@41} physReg:NA Preferences=[allInt]
Interval 20: (V20) (struct) RefPositions {#12@34 #18@49} physReg:NA Preferences=[allInt]
Interval 21: (V21) RefPositions {} physReg:NA Preferences=[allInt]
Interval 22: (V22) RefPositions {} physReg:NA Preferences=[allInt]
Interval 23: RefPositions {#3@12 #4@17} physReg:NA Preferences=[allInt]
Interval 24: RefPositions {#6@20 #7@25} physReg:NA Preferences=[allInt]
Interval 25: RefPositions {#13@36 #14@41} physReg:NA Preferences=[allInt]
Interval 26: RefPositions {#16@44 #17@49} physReg:NA Preferences=[allInt]
Interval 27: (INTERNAL) RefPositions {#19@59 #20@59} physReg:NA Preferences=[mm0-mm5]
Interval 28: RefPositions {#21@64 #23@65} physReg:NA Preferences=[rcx]
Interval 29: RefPositions {#25@66 #27@69} physReg:NA Preferences=[rcx]
Interval 30: RefPositions {#36@70 #37@71} physReg:NA Preferences=[rax] RelatedInterval <L4>[0000026AC446BC08]
Interval 31: (INTERNAL) RefPositions {#39@81 #40@81} physReg:NA Preferences=[mm0-mm5]
Interval 32: RefPositions {#41@86 #43@87} physReg:NA Preferences=[rcx]
Interval 33: RefPositions {#45@88 #47@91} physReg:NA Preferences=[rcx]
Interval 34: RefPositions {#56@92 #57@93} physReg:NA Preferences=[rax] RelatedInterval <L5>[0000026AC446BC50]
Interval 35: (INTERNAL) RefPositions {#59@103 #60@103} physReg:NA Preferences=[mm0-mm5]
Interval 36: RefPositions {#61@108 #63@109} physReg:NA Preferences=[rcx]
Interval 37: RefPositions {#65@110 #67@113} physReg:NA Preferences=[rcx]
Interval 38: RefPositions {#76@114 #77@115} physReg:NA Preferences=[rax] RelatedInterval <L6>[0000026AC446BC98]
Interval 39: (INTERNAL) RefPositions {#79@125 #80@125} physReg:NA Preferences=[mm0-mm5]
Interval 40: RefPositions {#81@130 #83@131} physReg:NA Preferences=[rcx]
Interval 41: RefPositions {#85@132 #87@135} physReg:NA Preferences=[rcx]
Interval 42: RefPositions {#96@136 #97@137} physReg:NA Preferences=[rax] RelatedInterval <L7>[0000026AC446BCE0]
Interval 43: (constant) RefPositions {#101@154 #102@155} physReg:NA Preferences=[allInt]
Interval 44: RefPositions {#103@156 #105@157} physReg:NA Preferences=[rcx]
Interval 45: RefPositions {#107@158 #109@161} physReg:NA Preferences=[rcx]
Interval 46: (constant) RefPositions {#121@184 #122@185} physReg:NA Preferences=[allInt]
Interval 47: RefPositions {#123@186 #125@187} physReg:NA Preferences=[rcx]
Interval 48: RefPositions {#127@188 #129@191} physReg:NA Preferences=[rcx]
Interval 49: (constant) RefPositions {#141@214 #142@215} physReg:NA Preferences=[allInt]
Interval 50: RefPositions {#143@216 #145@217} physReg:NA Preferences=[rcx]
Interval 51: RefPositions {#147@218 #149@221} physReg:NA Preferences=[rcx]
Interval 52: (constant) RefPositions {#161@244 #162@245} physReg:NA Preferences=[allInt]
Interval 53: RefPositions {#163@246 #165@247} physReg:NA Preferences=[rcx]
Interval 54: RefPositions {#167@248 #169@251} physReg:NA Preferences=[rcx]
Interval 55: (constant) RefPositions {#179@264 #180@265} physReg:NA Preferences=[allInt]
Interval 56: RefPositions {#181@266 #183@267} physReg:NA Preferences=[rcx]
Interval 57: RefPositions {#185@268 #187@271} physReg:NA Preferences=[rcx]
------------
REFPOSITIONS BEFORE VALIDATING INTERVALS:
------------
<RefPosition #0 @0 RefTypeBB BB01 regmask=[]>
<RefPosition #1 @6 ->#5 RefTypeDef <Ivl:15 V15> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #2 @10 ->#8 RefTypeDef <Ivl:16 V16> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #3 @12 ->#4 RefTypeDef <Ivl:23> LCL_FLD_ADDR BB01 regmask=[allInt]>
<RefPosition #4 @17 RefTypeUse <Ivl:23> BB01 regmask=[allInt] last>
<RefPosition #5 @17 ->#11 RefTypeUse <Ivl:15 V15> LCL_VAR BB01 regmask=[allInt]>
<RefPosition #6 @20 ->#7 RefTypeDef <Ivl:24> LCL_FLD_ADDR BB01 regmask=[allInt]>
<RefPosition #7 @25 RefTypeUse <Ivl:24> BB01 regmask=[allInt] last>
<RefPosition #8 @25 ->#9 RefTypeUse <Ivl:16 V16> LCL_VAR BB01 regmask=[allInt]>
<RefPosition #9 @29 RefTypeUse <Ivl:16 V16> LCL_VAR BB01 regmask=[allInt] last>
<RefPosition #10 @30 ->#15 RefTypeDef <Ivl:19 V19> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #11 @33 RefTypeUse <Ivl:15 V15> LCL_VAR BB01 regmask=[allInt] last>
<RefPosition #12 @34 ->#18 RefTypeDef <Ivl:20 V20> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #13 @36 ->#14 RefTypeDef <Ivl:25> LCL_FLD_ADDR BB01 regmask=[allInt]>
<RefPosition #14 @41 RefTypeUse <Ivl:25> BB01 regmask=[allInt] last>
<RefPosition #15 @41 RefTypeUse <Ivl:19 V19> LCL_VAR BB01 regmask=[allInt] last>
<RefPosition #16 @44 ->#17 RefTypeDef <Ivl:26> LCL_FLD_ADDR BB01 regmask=[allInt]>
<RefPosition #17 @49 RefTypeUse <Ivl:26> BB01 regmask=[allInt] last>
<RefPosition #18 @49 RefTypeUse <Ivl:20 V20> LCL_VAR BB01 regmask=[allInt] last>
<RefPosition #19 @59 ->#20 RefTypeDef <Ivl:27 internal> COPYBLK BB01 regmask=[mm0-mm5]>
<RefPosition #20 @59 RefTypeUse <Ivl:27 internal> COPYBLK BB01 regmask=[mm0-mm5] last>
<RefPosition #21 @64 ->#23 RefTypeDef <Ivl:28> LCL_VAR_ADDR BB01 regmask=[rcx]>
<RefPosition #22 @65 ->#24 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #23 @65 RefTypeUse <Ivl:28> BB01 regmask=[rcx] last fixed>
<RefPosition #24 @66 ->#26 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #25 @66 ->#27 RefTypeDef <Ivl:29> PUTARG_REG BB01 regmask=[rcx] fixed>
<RefPosition #26 @69 ->#29 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #27 @69 RefTypeUse <Ivl:29> BB01 regmask=[rcx] last fixed>
<RefPosition #28 @70 ->#35 RefTypeKill <Reg:rax> BB01 regmask=[rax] last>
<RefPosition #29 @70 ->#42 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] last>
<RefPosition #30 @70 ->#50 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] last>
<RefPosition #31 @70 ->#51 RefTypeKill <Reg:r8 > BB01 regmask=[r8] last>
<RefPosition #32 @70 ->#52 RefTypeKill <Reg:r9 > BB01 regmask=[r9] last>
<RefPosition #33 @70 ->#53 RefTypeKill <Reg:r10> BB01 regmask=[r10] last>
<RefPosition #34 @70 ->#54 RefTypeKill <Reg:r11> BB01 regmask=[r11] last>
<RefPosition #35 @70 ->#48 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax]>
<RefPosition #36 @70 ->#37 RefTypeDef <Ivl:30> CALL BB01 regmask=[rax] fixed>
<RefPosition #37 @71 RefTypeUse <Ivl:30> BB01 regmask=[allInt] last>
<RefPosition #38 @72 ->#99 RefTypeDef <Ivl:4 V04> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #39 @81 ->#40 RefTypeDef <Ivl:31 internal> COPYBLK BB01 regmask=[mm0-mm5]>
<RefPosition #40 @81 RefTypeUse <Ivl:31 internal> COPYBLK BB01 regmask=[mm0-mm5] last>
<RefPosition #41 @86 ->#43 RefTypeDef <Ivl:32> LCL_VAR_ADDR BB01 regmask=[rcx]>
<RefPosition #42 @87 ->#44 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #43 @87 RefTypeUse <Ivl:32> BB01 regmask=[rcx] last fixed>
<RefPosition #44 @88 ->#46 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #45 @88 ->#47 RefTypeDef <Ivl:33> PUTARG_REG BB01 regmask=[rcx] fixed>
<RefPosition #46 @91 ->#49 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #47 @91 RefTypeUse <Ivl:33> BB01 regmask=[rcx] last fixed>
<RefPosition #48 @92 ->#55 RefTypeKill <Reg:rax> BB01 regmask=[rax] last>
<RefPosition #49 @92 ->#62 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] last>
<RefPosition #50 @92 ->#70 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] last>
<RefPosition #51 @92 ->#71 RefTypeKill <Reg:r8 > BB01 regmask=[r8] last>
<RefPosition #52 @92 ->#72 RefTypeKill <Reg:r9 > BB01 regmask=[r9] last>
<RefPosition #53 @92 ->#73 RefTypeKill <Reg:r10> BB01 regmask=[r10] last>
<RefPosition #54 @92 ->#74 RefTypeKill <Reg:r11> BB01 regmask=[r11] last>
<RefPosition #55 @92 ->#68 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax]>
<RefPosition #56 @92 ->#57 RefTypeDef <Ivl:34> CALL BB01 regmask=[rax] fixed>
<RefPosition #57 @93 RefTypeUse <Ivl:34> BB01 regmask=[allInt] last>
<RefPosition #58 @94 ->#119 RefTypeDef <Ivl:5 V05> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #59 @103 ->#60 RefTypeDef <Ivl:35 internal> COPYBLK BB01 regmask=[mm0-mm5]>
<RefPosition #60 @103 RefTypeUse <Ivl:35 internal> COPYBLK BB01 regmask=[mm0-mm5] last>
<RefPosition #61 @108 ->#63 RefTypeDef <Ivl:36> LCL_VAR_ADDR BB01 regmask=[rcx]>
<RefPosition #62 @109 ->#64 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #63 @109 RefTypeUse <Ivl:36> BB01 regmask=[rcx] last fixed>
<RefPosition #64 @110 ->#66 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #65 @110 ->#67 RefTypeDef <Ivl:37> PUTARG_REG BB01 regmask=[rcx] fixed>
<RefPosition #66 @113 ->#69 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #67 @113 RefTypeUse <Ivl:37> BB01 regmask=[rcx] last fixed>
<RefPosition #68 @114 ->#75 RefTypeKill <Reg:rax> BB01 regmask=[rax] last>
<RefPosition #69 @114 ->#82 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] last>
<RefPosition #70 @114 ->#90 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] last>
<RefPosition #71 @114 ->#91 RefTypeKill <Reg:r8 > BB01 regmask=[r8] last>
<RefPosition #72 @114 ->#92 RefTypeKill <Reg:r9 > BB01 regmask=[r9] last>
<RefPosition #73 @114 ->#93 RefTypeKill <Reg:r10> BB01 regmask=[r10] last>
<RefPosition #74 @114 ->#94 RefTypeKill <Reg:r11> BB01 regmask=[r11] last>
<RefPosition #75 @114 ->#88 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax]>
<RefPosition #76 @114 ->#77 RefTypeDef <Ivl:38> CALL BB01 regmask=[rax] fixed>
<RefPosition #77 @115 RefTypeUse <Ivl:38> BB01 regmask=[allInt] last>
<RefPosition #78 @116 ->#139 RefTypeDef <Ivl:6 V06> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #79 @125 ->#80 RefTypeDef <Ivl:39 internal> COPYBLK BB01 regmask=[mm0-mm5]>
<RefPosition #80 @125 RefTypeUse <Ivl:39 internal> COPYBLK BB01 regmask=[mm0-mm5] last>
<RefPosition #81 @130 ->#83 RefTypeDef <Ivl:40> LCL_VAR_ADDR BB01 regmask=[rcx]>
<RefPosition #82 @131 ->#84 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #83 @131 RefTypeUse <Ivl:40> BB01 regmask=[rcx] last fixed>
<RefPosition #84 @132 ->#86 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #85 @132 ->#87 RefTypeDef <Ivl:41> PUTARG_REG BB01 regmask=[rcx] fixed>
<RefPosition #86 @135 ->#89 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #87 @135 RefTypeUse <Ivl:41> BB01 regmask=[rcx] last fixed>
<RefPosition #88 @136 ->#95 RefTypeKill <Reg:rax> BB01 regmask=[rax] last>
<RefPosition #89 @136 ->#104 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] last>
<RefPosition #90 @136 ->#112 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] last>
<RefPosition #91 @136 ->#113 RefTypeKill <Reg:r8 > BB01 regmask=[r8] last>
<RefPosition #92 @136 ->#114 RefTypeKill <Reg:r9 > BB01 regmask=[r9] last>
<RefPosition #93 @136 ->#115 RefTypeKill <Reg:r10> BB01 regmask=[r10] last>
<RefPosition #94 @136 ->#116 RefTypeKill <Reg:r11> BB01 regmask=[r11] last>
<RefPosition #95 @136 ->#110 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax]>
<RefPosition #96 @136 ->#97 RefTypeDef <Ivl:42> CALL BB01 regmask=[rax] fixed>
<RefPosition #97 @137 RefTypeUse <Ivl:42> BB01 regmask=[allInt] last>
<RefPosition #98 @138 ->#159 RefTypeDef <Ivl:7 V07> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #99 @143 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[allInt] last>
<RefPosition #100 @147 RefTypeBB BB02 regmask=[]>
<RefPosition #101 @154 ->#102 RefTypeDef <Ivl:43> CNS_INT BB02 regmask=[allInt]>
<RefPosition #102 @155 RefTypeUse <Ivl:43> BB02 regmask=[allInt] last>
<RefPosition #103 @156 ->#105 RefTypeDef <Ivl:44> IND BB02 regmask=[rcx]>
<RefPosition #104 @157 ->#106 RefTypeFixedReg <Reg:rcx> BB02 regmask=[rcx]>
<RefPosition #105 @157 RefTypeUse <Ivl:44> BB02 regmask=[rcx] last fixed>
<RefPosition #106 @158 ->#108 RefTypeFixedReg <Reg:rcx> BB02 regmask=[rcx]>
<RefPosition #107 @158 ->#109 RefTypeDef <Ivl:45> PUTARG_REG BB02 regmask=[rcx] fixed>
<RefPosition #108 @161 ->#111 RefTypeFixedReg <Reg:rcx> BB02 regmask=[rcx]>
<RefPosition #109 @161 RefTypeUse <Ivl:45> BB02 regmask=[rcx] last fixed>
<RefPosition #110 @162 ->#130 RefTypeKill <Reg:rax> BB02 regmask=[rax] last>
<RefPosition #111 @162 ->#124 RefTypeKill <Reg:rcx> BB02 regmask=[rcx] last>
<RefPosition #112 @162 ->#132 RefTypeKill <Reg:rdx> BB02 regmask=[rdx] last>
<RefPosition #113 @162 ->#133 RefTypeKill <Reg:r8 > BB02 regmask=[r8] last>
<RefPosition #114 @162 ->#134 RefTypeKill <Reg:r9 > BB02 regmask=[r9] last>
<RefPosition #115 @162 ->#135 RefTypeKill <Reg:r10> BB02 regmask=[r10] last>
<RefPosition #116 @162 ->#136 RefTypeKill <Reg:r11> BB02 regmask=[r11] last>
<RefPosition #117 @166 ->#137 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB02 regmask=[allInt]>
<RefPosition #118 @167 RefTypeBB BB03 regmask=[]>
<RefPosition #119 @173 RefTypeUse <Ivl:5 V05> LCL_VAR BB03 regmask=[allInt] last>
<RefPosition #120 @177 RefTypeBB BB04 regmask=[]>
<RefPosition #121 @184 ->#122 RefTypeDef <Ivl:46> CNS_INT BB04 regmask=[allInt]>
<RefPosition #122 @185 RefTypeUse <Ivl:46> BB04 regmask=[allInt] last>
<RefPosition #123 @186 ->#125 RefTypeDef <Ivl:47> IND BB04 regmask=[rcx]>
<RefPosition #124 @187 ->#126 RefTypeFixedReg <Reg:rcx> BB04 regmask=[rcx]>
<RefPosition #125 @187 RefTypeUse <Ivl:47> BB04 regmask=[rcx] last fixed>
<RefPosition #126 @188 ->#128 RefTypeFixedReg <Reg:rcx> BB04 regmask=[rcx]>
<RefPosition #127 @188 ->#129 RefTypeDef <Ivl:48> PUTARG_REG BB04 regmask=[rcx] fixed>
<RefPosition #128 @191 ->#131 RefTypeFixedReg <Reg:rcx> BB04 regmask=[rcx]>
<RefPosition #129 @191 RefTypeUse <Ivl:48> BB04 regmask=[rcx] last fixed>
<RefPosition #130 @192 ->#150 RefTypeKill <Reg:rax> BB04 regmask=[rax] last>
<RefPosition #131 @192 ->#144 RefTypeKill <Reg:rcx> BB04 regmask=[rcx] last>
<RefPosition #132 @192 ->#152 RefTypeKill <Reg:rdx> BB04 regmask=[rdx] last>
<RefPosition #133 @192 ->#153 RefTypeKill <Reg:r8 > BB04 regmask=[r8] last>
<RefPosition #134 @192 ->#154 RefTypeKill <Reg:r9 > BB04 regmask=[r9] last>
<RefPosition #135 @192 ->#155 RefTypeKill <Reg:r10> BB04 regmask=[r10] last>
<RefPosition #136 @192 ->#156 RefTypeKill <Reg:r11> BB04 regmask=[r11] last>
<RefPosition #137 @196 ->#157 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB04 regmask=[allInt]>
<RefPosition #138 @197 RefTypeBB BB05 regmask=[]>
<RefPosition #139 @203 RefTypeUse <Ivl:6 V06> LCL_VAR BB05 regmask=[allInt] last>
<RefPosition #140 @207 RefTypeBB BB06 regmask=[]>
<RefPosition #141 @214 ->#142 RefTypeDef <Ivl:49> CNS_INT BB06 regmask=[allInt]>
<RefPosition #142 @215 RefTypeUse <Ivl:49> BB06 regmask=[allInt] last>
<RefPosition #143 @216 ->#145 RefTypeDef <Ivl:50> IND BB06 regmask=[rcx]>
<RefPosition #144 @217 ->#146 RefTypeFixedReg <Reg:rcx> BB06 regmask=[rcx]>
<RefPosition #145 @217 RefTypeUse <Ivl:50> BB06 regmask=[rcx] last fixed>
<RefPosition #146 @218 ->#148 RefTypeFixedReg <Reg:rcx> BB06 regmask=[rcx]>
<RefPosition #147 @218 ->#149 RefTypeDef <Ivl:51> PUTARG_REG BB06 regmask=[rcx] fixed>
<RefPosition #148 @221 ->#151 RefTypeFixedReg <Reg:rcx> BB06 regmask=[rcx]>
<RefPosition #149 @221 RefTypeUse <Ivl:51> BB06 regmask=[rcx] last fixed>
<RefPosition #150 @222 ->#170 RefTypeKill <Reg:rax> BB06 regmask=[rax] last>
<RefPosition #151 @222 ->#164 RefTypeKill <Reg:rcx> BB06 regmask=[rcx] last>
<RefPosition #152 @222 ->#172 RefTypeKill <Reg:rdx> BB06 regmask=[rdx] last>
<RefPosition #153 @222 ->#173 RefTypeKill <Reg:r8 > BB06 regmask=[r8] last>
<RefPosition #154 @222 ->#174 RefTypeKill <Reg:r9 > BB06 regmask=[r9] last>
<RefPosition #155 @222 ->#175 RefTypeKill <Reg:r10> BB06 regmask=[r10] last>
<RefPosition #156 @222 ->#176 RefTypeKill <Reg:r11> BB06 regmask=[r11] last>
<RefPosition #157 @226 ->#177 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB06 regmask=[allInt]>
<RefPosition #158 @227 RefTypeBB BB07 regmask=[]>
<RefPosition #159 @233 RefTypeUse <Ivl:7 V07> LCL_VAR BB07 regmask=[allInt] last>
<RefPosition #160 @237 RefTypeBB BB08 regmask=[]>
<RefPosition #161 @244 ->#162 RefTypeDef <Ivl:52> CNS_INT BB08 regmask=[allInt]>
<RefPosition #162 @245 RefTypeUse <Ivl:52> BB08 regmask=[allInt] last>
<RefPosition #163 @246 ->#165 RefTypeDef <Ivl:53> IND BB08 regmask=[rcx]>
<RefPosition #164 @247 ->#166 RefTypeFixedReg <Reg:rcx> BB08 regmask=[rcx]>
<RefPosition #165 @247 RefTypeUse <Ivl:53> BB08 regmask=[rcx] last fixed>
<RefPosition #166 @248 ->#168 RefTypeFixedReg <Reg:rcx> BB08 regmask=[rcx]>
<RefPosition #167 @248 ->#169 RefTypeDef <Ivl:54> PUTARG_REG BB08 regmask=[rcx] fixed>
<RefPosition #168 @251 ->#171 RefTypeFixedReg <Reg:rcx> BB08 regmask=[rcx]>
<RefPosition #169 @251 RefTypeUse <Ivl:54> BB08 regmask=[rcx] last fixed>
<RefPosition #170 @252 ->#188 RefTypeKill <Reg:rax> BB08 regmask=[rax] last>
<RefPosition #171 @252 ->#182 RefTypeKill <Reg:rcx> BB08 regmask=[rcx] last>
<RefPosition #172 @252 ->#190 RefTypeKill <Reg:rdx> BB08 regmask=[rdx] last>
<RefPosition #173 @252 ->#191 RefTypeKill <Reg:r8 > BB08 regmask=[r8] last>
<RefPosition #174 @252 ->#192 RefTypeKill <Reg:r9 > BB08 regmask=[r9] last>
<RefPosition #175 @252 ->#193 RefTypeKill <Reg:r10> BB08 regmask=[r10] last>
<RefPosition #176 @252 ->#194 RefTypeKill <Reg:r11> BB08 regmask=[r11] last>
<RefPosition #177 @256 ->#195 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB08 regmask=[allInt]>
<RefPosition #178 @257 RefTypeBB BB09 regmask=[]>
<RefPosition #179 @264 ->#180 RefTypeDef <Ivl:55> CNS_INT BB09 regmask=[allInt]>
<RefPosition #180 @265 RefTypeUse <Ivl:55> BB09 regmask=[allInt] last>
<RefPosition #181 @266 ->#183 RefTypeDef <Ivl:56> IND BB09 regmask=[rcx]>
<RefPosition #182 @267 ->#184 RefTypeFixedReg <Reg:rcx> BB09 regmask=[rcx]>
<RefPosition #183 @267 RefTypeUse <Ivl:56> BB09 regmask=[rcx] last fixed>
<RefPosition #184 @268 ->#186 RefTypeFixedReg <Reg:rcx> BB09 regmask=[rcx]>
<RefPosition #185 @268 ->#187 RefTypeDef <Ivl:57> PUTARG_REG BB09 regmask=[rcx] fixed>
<RefPosition #186 @271 ->#189 RefTypeFixedReg <Reg:rcx> BB09 regmask=[rcx]>
<RefPosition #187 @271 RefTypeUse <Ivl:57> BB09 regmask=[rcx] last fixed>
<RefPosition #188 @272 ->#197 RefTypeKill <Reg:rax> BB09 regmask=[rax] last>
<RefPosition #189 @272 RefTypeKill <Reg:rcx> BB09 regmask=[rcx] last>
<RefPosition #190 @272 RefTypeKill <Reg:rdx> BB09 regmask=[rdx] last>
<RefPosition #191 @272 RefTypeKill <Reg:r8 > BB09 regmask=[r8] last>
<RefPosition #192 @272 RefTypeKill <Reg:r9 > BB09 regmask=[r9] last>
<RefPosition #193 @272 RefTypeKill <Reg:r10> BB09 regmask=[r10] last>
<RefPosition #194 @272 RefTypeKill <Reg:r11> BB09 regmask=[r11] last>
<RefPosition #195 @276 ->#198 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB09 regmask=[allInt]>
<RefPosition #196 @277 RefTypeBB BB10 regmask=[]>
<RefPosition #197 @281 RefTypeFixedReg <Reg:rax> BB10 regmask=[rax]>
<RefPosition #198 @281 RefTypeUse <Ivl:8 V08> LCL_VAR BB10 regmask=[rax] last fixed>
-----------------
-----------------
-----------------
-----------------
-----------------
<RefPosition #38 @72 ->#99 RefTypeDef <Ivl:4 V04> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #99 @143 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[allInt] last>
-----------------
<RefPosition #58 @94 ->#119 RefTypeDef <Ivl:5 V05> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #119 @173 RefTypeUse <Ivl:5 V05> LCL_VAR BB03 regmask=[allInt] last>
-----------------
<RefPosition #78 @116 ->#139 RefTypeDef <Ivl:6 V06> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #139 @203 RefTypeUse <Ivl:6 V06> LCL_VAR BB05 regmask=[allInt] last>
-----------------
<RefPosition #98 @138 ->#159 RefTypeDef <Ivl:7 V07> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #159 @233 RefTypeUse <Ivl:7 V07> LCL_VAR BB07 regmask=[allInt] last>
-----------------
<RefPosition #117 @166 ->#137 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB02 regmask=[allInt]>
<RefPosition #137 @196 ->#157 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB04 regmask=[allInt]>
<RefPosition #157 @226 ->#177 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB06 regmask=[allInt]>
<RefPosition #177 @256 ->#195 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB08 regmask=[allInt]>
<RefPosition #195 @276 ->#198 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB09 regmask=[allInt]>
<RefPosition #198 @281 RefTypeUse <Ivl:8 V08> LCL_VAR BB10 regmask=[rax] last fixed>
-----------------
-----------------
-----------------
-----------------
-----------------
-----------------
-----------------
<RefPosition #1 @6 ->#5 RefTypeDef <Ivl:15 V15> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #5 @17 ->#11 RefTypeUse <Ivl:15 V15> LCL_VAR BB01 regmask=[allInt]>
<RefPosition #11 @33 RefTypeUse <Ivl:15 V15> LCL_VAR BB01 regmask=[allInt] last>
-----------------
<RefPosition #2 @10 ->#8 RefTypeDef <Ivl:16 V16> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #8 @25 ->#9 RefTypeUse <Ivl:16 V16> LCL_VAR BB01 regmask=[allInt]>
<RefPosition #9 @29 RefTypeUse <Ivl:16 V16> LCL_VAR BB01 regmask=[allInt] last>
-----------------
-----------------
-----------------
<RefPosition #10 @30 ->#15 RefTypeDef <Ivl:19 V19> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #15 @41 RefTypeUse <Ivl:19 V19> LCL_VAR BB01 regmask=[allInt] last>
-----------------
<RefPosition #12 @34 ->#18 RefTypeDef <Ivl:20 V20> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #18 @49 RefTypeUse <Ivl:20 V20> LCL_VAR BB01 regmask=[allInt] last>
-----------------
-----------------
TUPLE STYLE DUMP WITH REF POSITIONS
Incoming Parameters:
BB01 [000..04A) -> BB03 (cond), preds={} succs={BB02,BB03}
=====
N003. const 10 REG NA
N005. V15(L15)
Def:<L15>(#1) Pref:<L20>
N007. const 20 REG NA
N009. V16(L16)
Def:<L16>(#2) Pref:<L19>
N011. &lclFld V02 loc2 ud:2->3[+0] Fseq[v1] REG NA
Def:<I23>(#3)
N013. lea(b+0)
N015. V15(L15)
N017. storeIndir
Use:<I23>(#4) *
Use:<L15>(#5)
N019. &lclFld V02 loc2 ud:3->4[+8] Fseq[v2] REG NA
Def:<I24>(#6)
N021. lea(b+0)
N023. V16(L16)
N025. storeIndir
Use:<I24>(#7) *
Use:<L16>(#8)
N027. V16(L16)
N029. V19(L19)
Use:<L16>(#9) *
Def:<L19>(#10)
N031. V15(L15)
N033. V20(L20)
Use:<L15>(#11) *
Def:<L20>(#12)
N035. &lclFld V03 loc3 ud:2->3[+0] Fseq[v1] REG NA
Def:<I25>(#13)
N037. lea(b+0)
N039. V19(L19)
N041. storeIndir
Use:<I25>(#14) *
Use:<L19>(#15) *
N043. &lclFld V03 loc3 ud:3->4[+8] Fseq[v2] REG NA
Def:<I26>(#16)
N045. lea(b+0)
N047. V20(L20)
N049. storeIndir
Use:<I26>(#17) *
Use:<L20>(#18) *
N051. &lclVar V02 loc2 u:4 REG NA
N053. &lclVar V21 tmp13 REG NA
N057. const 16 REG NA
N059. copyBlk
Def:<T27>(#19)
Use:<T27>(#20) *
N063. &lclVar V21 tmp13 REG NA
Def:<I28>(#21)
N065. putarg_reg
Use:<I28>(#23) Fixed:rcx(#22) *
Def:<I29>(#25) rcx
N069. call
Use:<I29>(#27) Fixed:rcx(#26) *
Kill: rax rcx rdx r8 r9 r10 r11
Def:<I30>(#36) rax Pref:<L4>
N071. V04(L4)
Use:<I30>(#37) *
Def:<L4>(#38)
N073. &lclVar V03 loc3 u:4 REG NA
N075. &lclVar V21 tmp13 REG NA
N079. const 16 REG NA
N081. copyBlk
Def:<T31>(#39)
Use:<T31>(#40) *
N085. &lclVar V21 tmp13 REG NA
Def:<I32>(#41)
N087. putarg_reg
Use:<I32>(#43) Fixed:rcx(#42) *
Def:<I33>(#45) rcx
N091. call
Use:<I33>(#47) Fixed:rcx(#46) *
Kill: rax rcx rdx r8 r9 r10 r11
Def:<I34>(#56) rax Pref:<L5>
N093. V05(L5)
Use:<I34>(#57) *
Def:<L5>(#58)
N095. &lclVar V02 loc2 u:4 (last use) REG NA
N097. &lclVar V21 tmp13 REG NA
N101. const 16 REG NA
N103. copyBlk
Def:<T35>(#59)
Use:<T35>(#60) *
N107. &lclVar V21 tmp13 REG NA
Def:<I36>(#61)
N109. putarg_reg
Use:<I36>(#63) Fixed:rcx(#62) *
Def:<I37>(#65) rcx
N113. call
Use:<I37>(#67) Fixed:rcx(#66) *
Kill: rax rcx rdx r8 r9 r10 r11
Def:<I38>(#76) rax Pref:<L6>
N115. V06(L6)
Use:<I38>(#77) *
Def:<L6>(#78)
N117. &lclVar V03 loc3 u:4 (last use) REG NA
N119. &lclVar V21 tmp13 REG NA
N123. const 16 REG NA
N125. copyBlk
Def:<T39>(#79)
Use:<T39>(#80) *
N129. &lclVar V21 tmp13 REG NA
Def:<I40>(#81)
N131. putarg_reg
Use:<I40>(#83) Fixed:rcx(#82) *
Def:<I41>(#85) rcx
N135. call
Use:<I41>(#87) Fixed:rcx(#86) *
Kill: rax rcx rdx r8 r9 r10 r11
Def:<I42>(#96) rax Pref:<L7>
N137. V07(L7)
Use:<I42>(#97) *
Def:<L7>(#98)
N139. V04(L4)
N141. const 0 REG NA
N143. ==
Use:<L4>(#99) *
N145. jmpTrue
BB02 [04A..056) -> BB10 (always), preds={BB01} succs={BB10}
=====
N153. const(h) 0xD6273068 "Fail" REG NA
Def:<I43>(#101)
N155. indir
Use:<I43>(#102) *
Def:<I44>(#103)
N157. putarg_reg
Use:<I44>(#105) Fixed:rcx(#104) *
Def:<I45>(#107) rcx
N161. call
Use:<I45>(#109) Fixed:rcx(#108) *
Kill: rax rcx rdx r8 r9 r10 r11
N163. const -1 REG NA
N165. V08(L8)
Def:<L8>(#117)
BB03 [056..05A) -> BB05 (cond), preds={BB01} succs={BB04,BB05}
=====
N169. V05(L5)
N171. const 0 REG NA
N173. !=
Use:<L5>(#119) *
N175. jmpTrue
BB04 [05A..066) -> BB10 (always), preds={BB03} succs={BB10}
=====
N183. const(h) 0xD6273068 "Fail" REG NA
Def:<I46>(#121)
N185. indir
Use:<I46>(#122) *
Def:<I47>(#123)
N187. putarg_reg
Use:<I47>(#125) Fixed:rcx(#124) *
Def:<I48>(#127) rcx
N191. call
Use:<I48>(#129) Fixed:rcx(#128) *
Kill: rax rcx rdx r8 r9 r10 r11
N193. const -1 REG NA
N195. V08(L8)
Def:<L8>(#137)
BB05 [066..06A) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
=====
N199. V06(L6)
N201. const 0 REG NA
N203. ==
Use:<L6>(#139) *
N205. jmpTrue
BB06 [06A..076) -> BB10 (always), preds={BB05} succs={BB10}
=====
N213. const(h) 0xD6273068 "Fail" REG NA
Def:<I49>(#141)
N215. indir
Use:<I49>(#142) *
Def:<I50>(#143)
N217. putarg_reg
Use:<I50>(#145) Fixed:rcx(#144) *
Def:<I51>(#147) rcx
N221. call
Use:<I51>(#149) Fixed:rcx(#148) *
Kill: rax rcx rdx r8 r9 r10 r11
N223. const -1 REG NA
N225. V08(L8)
Def:<L8>(#157)
BB07 [076..07A) -> BB09 (cond), preds={BB05} succs={BB08,BB09}
=====
N229. V07(L7)
N231. const 0 REG NA
N233. !=
Use:<L7>(#159) *
N235. jmpTrue
BB08 [07A..086) -> BB10 (always), preds={BB07} succs={BB10}
=====
N243. const(h) 0xD6273068 "Fail" REG NA
Def:<I52>(#161)
N245. indir
Use:<I52>(#162) *
Def:<I53>(#163)
N247. putarg_reg
Use:<I53>(#165) Fixed:rcx(#164) *
Def:<I54>(#167) rcx
N251. call
Use:<I54>(#169) Fixed:rcx(#168) *
Kill: rax rcx rdx r8 r9 r10 r11
N253. const -1 REG NA
N255. V08(L8)
Def:<L8>(#177)
BB09 [086..093), preds={BB07} succs={BB10}
=====
N263. const(h) 0xD6273070 "Pass" REG NA
Def:<I55>(#179)
N265. indir
Use:<I55>(#180) *
Def:<I56>(#181)
N267. putarg_reg
Use:<I56>(#183) Fixed:rcx(#182) *
Def:<I57>(#185) rcx
N271. call
Use:<I57>(#187) Fixed:rcx(#186) *
Kill: rax rcx rdx r8 r9 r10 r11
N273. const 100 REG NA
N275. V08(L8)
Def:<L8>(#195)
BB10 [???..???) (return), preds={BB02,BB04,BB06,BB08,BB09} succs={}
=====
N279. V08(L8)
N281. return
Use:<L8>(#198) Fixed:rax(#197) *
Linear scan intervals after buildIntervals:
Interval 0: (V00) RefPositions {} physReg:NA Preferences=[allInt]
Interval 1: (V01) RefPositions {} physReg:NA Preferences=[allInt]
Interval 2: (V02) RefPositions {} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15]
Interval 3: (V03) RefPositions {} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15]
Interval 4: (V04) RefPositions {#38@72 #99@143} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15]
Interval 5: (V05) RefPositions {#58@94 #119@173} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15]
Interval 6: (V06) RefPositions {#78@116 #139@203} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15]
Interval 7: (V07) RefPositions {#98@138 #159@233} physReg:NA Preferences=[allInt]
Interval 8: (V08) RefPositions {#117@166 #137@196 #157@226 #177@256 #195@276 #198@281} physReg:NA Preferences=[rax]
Interval 9: (V09) RefPositions {} physReg:NA Preferences=[allInt]
Interval 10: (V10) RefPositions {} physReg:NA Preferences=[allInt]
Interval 11: (V11) RefPositions {} physReg:NA Preferences=[allInt]
Interval 12: (V12) RefPositions {} physReg:NA Preferences=[allInt]
Interval 13: (V13) RefPositions {} physReg:NA Preferences=[allInt]
Interval 14: (V14) RefPositions {} physReg:NA Preferences=[allInt]
Interval 15: (V15) (struct) RefPositions {#1@6 #5@17 #11@33} physReg:NA Preferences=[allInt] RelatedInterval <L20>[0000026AC446C088]
Interval 16: (V16) (struct) RefPositions {#2@10 #8@25 #9@29} physReg:NA Preferences=[allInt] RelatedInterval <L19>[0000026AC446C040]
Interval 17: (V17) (struct) RefPositions {} physReg:NA Preferences=[allInt]
Interval 18: (V18) (struct) RefPositions {} physReg:NA Preferences=[allInt]
Interval 19: (V19) (struct) RefPositions {#10@30 #15@41} physReg:NA Preferences=[allInt]
Interval 20: (V20) (struct) RefPositions {#12@34 #18@49} physReg:NA Preferences=[allInt]
Interval 21: (V21) RefPositions {} physReg:NA Preferences=[allInt]
Interval 22: (V22) RefPositions {} physReg:NA Preferences=[allInt]
Interval 23: RefPositions {#3@12 #4@17} physReg:NA Preferences=[allInt]
Interval 24: RefPositions {#6@20 #7@25} physReg:NA Preferences=[allInt]
Interval 25: RefPositions {#13@36 #14@41} physReg:NA Preferences=[allInt]
Interval 26: RefPositions {#16@44 #17@49} physReg:NA Preferences=[allInt]
Interval 27: (INTERNAL) RefPositions {#19@59 #20@59} physReg:NA Preferences=[mm0-mm5]
Interval 28: RefPositions {#21@64 #23@65} physReg:NA Preferences=[rcx]
Interval 29: RefPositions {#25@66 #27@69} physReg:NA Preferences=[rcx]
Interval 30: RefPositions {#36@70 #37@71} physReg:NA Preferences=[rax] RelatedInterval <L4>[0000026AC446BC08]
Interval 31: (INTERNAL) RefPositions {#39@81 #40@81} physReg:NA Preferences=[mm0-mm5]
Interval 32: RefPositions {#41@86 #43@87} physReg:NA Preferences=[rcx]
Interval 33: RefPositions {#45@88 #47@91} physReg:NA Preferences=[rcx]
Interval 34: RefPositions {#56@92 #57@93} physReg:NA Preferences=[rax] RelatedInterval <L5>[0000026AC446BC50]
Interval 35: (INTERNAL) RefPositions {#59@103 #60@103} physReg:NA Preferences=[mm0-mm5]
Interval 36: RefPositions {#61@108 #63@109} physReg:NA Preferences=[rcx]
Interval 37: RefPositions {#65@110 #67@113} physReg:NA Preferences=[rcx]
Interval 38: RefPositions {#76@114 #77@115} physReg:NA Preferences=[rax] RelatedInterval <L6>[0000026AC446BC98]
Interval 39: (INTERNAL) RefPositions {#79@125 #80@125} physReg:NA Preferences=[mm0-mm5]
Interval 40: RefPositions {#81@130 #83@131} physReg:NA Preferences=[rcx]
Interval 41: RefPositions {#85@132 #87@135} physReg:NA Preferences=[rcx]
Interval 42: RefPositions {#96@136 #97@137} physReg:NA Preferences=[rax] RelatedInterval <L7>[0000026AC446BCE0]
Interval 43: (constant) RefPositions {#101@154 #102@155} physReg:NA Preferences=[allInt]
Interval 44: RefPositions {#103@156 #105@157} physReg:NA Preferences=[rcx]
Interval 45: RefPositions {#107@158 #109@161} physReg:NA Preferences=[rcx]
Interval 46: (constant) RefPositions {#121@184 #122@185} physReg:NA Preferences=[allInt]
Interval 47: RefPositions {#123@186 #125@187} physReg:NA Preferences=[rcx]
Interval 48: RefPositions {#127@188 #129@191} physReg:NA Preferences=[rcx]
Interval 49: (constant) RefPositions {#141@214 #142@215} physReg:NA Preferences=[allInt]
Interval 50: RefPositions {#143@216 #145@217} physReg:NA Preferences=[rcx]
Interval 51: RefPositions {#147@218 #149@221} physReg:NA Preferences=[rcx]
Interval 52: (constant) RefPositions {#161@244 #162@245} physReg:NA Preferences=[allInt]
Interval 53: RefPositions {#163@246 #165@247} physReg:NA Preferences=[rcx]
Interval 54: RefPositions {#167@248 #169@251} physReg:NA Preferences=[rcx]
Interval 55: (constant) RefPositions {#179@264 #180@265} physReg:NA Preferences=[allInt]
Interval 56: RefPositions {#181@266 #183@267} physReg:NA Preferences=[rcx]
Interval 57: RefPositions {#185@268 #187@271} physReg:NA Preferences=[rcx]
*************** In LinearScan::allocateRegisters()
Linear scan intervals before allocateRegisters:
Interval 0: (V00) RefPositions {} physReg:NA Preferences=[allInt]
Interval 1: (V01) RefPositions {} physReg:NA Preferences=[allInt]
Interval 2: (V02) RefPositions {} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15]
Interval 3: (V03) RefPositions {} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15]
Interval 4: (V04) RefPositions {#38@72 #99@143} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15]
Interval 5: (V05) RefPositions {#58@94 #119@173} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15]
Interval 6: (V06) RefPositions {#78@116 #139@203} physReg:NA Preferences=[rbx rbp rsi rdi r12-r15]
Interval 7: (V07) RefPositions {#98@138 #159@233} physReg:NA Preferences=[allInt]
Interval 8: (V08) RefPositions {#117@166 #137@196 #157@226 #177@256 #195@276 #198@281} physReg:NA Preferences=[rax]
Interval 9: (V09) RefPositions {} physReg:NA Preferences=[allInt]
Interval 10: (V10) RefPositions {} physReg:NA Preferences=[allInt]
Interval 11: (V11) RefPositions {} physReg:NA Preferences=[allInt]
Interval 12: (V12) RefPositions {} physReg:NA Preferences=[allInt]
Interval 13: (V13) RefPositions {} physReg:NA Preferences=[allInt]
Interval 14: (V14) RefPositions {} physReg:NA Preferences=[allInt]
Interval 15: (V15) (struct) RefPositions {#1@6 #5@17 #11@33} physReg:NA Preferences=[allInt] RelatedInterval <L20>[0000026AC446C088]
Interval 16: (V16) (struct) RefPositions {#2@10 #8@25 #9@29} physReg:NA Preferences=[allInt] RelatedInterval <L19>[0000026AC446C040]
Interval 17: (V17) (struct) RefPositions {} physReg:NA Preferences=[allInt]
Interval 18: (V18) (struct) RefPositions {} physReg:NA Preferences=[allInt]
Interval 19: (V19) (struct) RefPositions {#10@30 #15@41} physReg:NA Preferences=[allInt]
Interval 20: (V20) (struct) RefPositions {#12@34 #18@49} physReg:NA Preferences=[allInt]
Interval 21: (V21) RefPositions {} physReg:NA Preferences=[allInt]
Interval 22: (V22) RefPositions {} physReg:NA Preferences=[allInt]
Interval 23: RefPositions {#3@12 #4@17} physReg:NA Preferences=[allInt]
Interval 24: RefPositions {#6@20 #7@25} physReg:NA Preferences=[allInt]
Interval 25: RefPositions {#13@36 #14@41} physReg:NA Preferences=[allInt]
Interval 26: RefPositions {#16@44 #17@49} physReg:NA Preferences=[allInt]
Interval 27: (INTERNAL) RefPositions {#19@59 #20@59} physReg:NA Preferences=[mm0-mm5]
Interval 28: RefPositions {#21@64 #23@65} physReg:NA Preferences=[rcx]
Interval 29: RefPositions {#25@66 #27@69} physReg:NA Preferences=[rcx]
Interval 30: RefPositions {#36@70 #37@71} physReg:NA Preferences=[rax] RelatedInterval <L4>[0000026AC446BC08]
Interval 31: (INTERNAL) RefPositions {#39@81 #40@81} physReg:NA Preferences=[mm0-mm5]
Interval 32: RefPositions {#41@86 #43@87} physReg:NA Preferences=[rcx]
Interval 33: RefPositions {#45@88 #47@91} physReg:NA Preferences=[rcx]
Interval 34: RefPositions {#56@92 #57@93} physReg:NA Preferences=[rax] RelatedInterval <L5>[0000026AC446BC50]
Interval 35: (INTERNAL) RefPositions {#59@103 #60@103} physReg:NA Preferences=[mm0-mm5]
Interval 36: RefPositions {#61@108 #63@109} physReg:NA Preferences=[rcx]
Interval 37: RefPositions {#65@110 #67@113} physReg:NA Preferences=[rcx]
Interval 38: RefPositions {#76@114 #77@115} physReg:NA Preferences=[rax] RelatedInterval <L6>[0000026AC446BC98]
Interval 39: (INTERNAL) RefPositions {#79@125 #80@125} physReg:NA Preferences=[mm0-mm5]
Interval 40: RefPositions {#81@130 #83@131} physReg:NA Preferences=[rcx]
Interval 41: RefPositions {#85@132 #87@135} physReg:NA Preferences=[rcx]
Interval 42: RefPositions {#96@136 #97@137} physReg:NA Preferences=[rax] RelatedInterval <L7>[0000026AC446BCE0]
Interval 43: (constant) RefPositions {#101@154 #102@155} physReg:NA Preferences=[allInt]
Interval 44: RefPositions {#103@156 #105@157} physReg:NA Preferences=[rcx]
Interval 45: RefPositions {#107@158 #109@161} physReg:NA Preferences=[rcx]
Interval 46: (constant) RefPositions {#121@184 #122@185} physReg:NA Preferences=[allInt]
Interval 47: RefPositions {#123@186 #125@187} physReg:NA Preferences=[rcx]
Interval 48: RefPositions {#127@188 #129@191} physReg:NA Preferences=[rcx]
Interval 49: (constant) RefPositions {#141@214 #142@215} physReg:NA Preferences=[allInt]
Interval 50: RefPositions {#143@216 #145@217} physReg:NA Preferences=[rcx]
Interval 51: RefPositions {#147@218 #149@221} physReg:NA Preferences=[rcx]
Interval 52: (constant) RefPositions {#161@244 #162@245} physReg:NA Preferences=[allInt]
Interval 53: RefPositions {#163@246 #165@247} physReg:NA Preferences=[rcx]
Interval 54: RefPositions {#167@248 #169@251} physReg:NA Preferences=[rcx]
Interval 55: (constant) RefPositions {#179@264 #180@265} physReg:NA Preferences=[allInt]
Interval 56: RefPositions {#181@266 #183@267} physReg:NA Preferences=[rcx]
Interval 57: RefPositions {#185@268 #187@271} physReg:NA Preferences=[rcx]
------------
REFPOSITIONS BEFORE ALLOCATION:
------------
<RefPosition #0 @0 RefTypeBB BB01 regmask=[]>
<RefPosition #1 @6 ->#5 RefTypeDef <Ivl:15 V15> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #2 @10 ->#8 RefTypeDef <Ivl:16 V16> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #3 @12 ->#4 RefTypeDef <Ivl:23> LCL_FLD_ADDR BB01 regmask=[allInt]>
<RefPosition #4 @17 RefTypeUse <Ivl:23> BB01 regmask=[allInt] last>
<RefPosition #5 @17 ->#11 RefTypeUse <Ivl:15 V15> LCL_VAR BB01 regmask=[allInt]>
<RefPosition #6 @20 ->#7 RefTypeDef <Ivl:24> LCL_FLD_ADDR BB01 regmask=[allInt]>
<RefPosition #7 @25 RefTypeUse <Ivl:24> BB01 regmask=[allInt] last>
<RefPosition #8 @25 ->#9 RefTypeUse <Ivl:16 V16> LCL_VAR BB01 regmask=[allInt]>
<RefPosition #9 @29 RefTypeUse <Ivl:16 V16> LCL_VAR BB01 regmask=[allInt] last>
<RefPosition #10 @30 ->#15 RefTypeDef <Ivl:19 V19> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #11 @33 RefTypeUse <Ivl:15 V15> LCL_VAR BB01 regmask=[allInt] last>
<RefPosition #12 @34 ->#18 RefTypeDef <Ivl:20 V20> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #13 @36 ->#14 RefTypeDef <Ivl:25> LCL_FLD_ADDR BB01 regmask=[allInt]>
<RefPosition #14 @41 RefTypeUse <Ivl:25> BB01 regmask=[allInt] last>
<RefPosition #15 @41 RefTypeUse <Ivl:19 V19> LCL_VAR BB01 regmask=[allInt] last>
<RefPosition #16 @44 ->#17 RefTypeDef <Ivl:26> LCL_FLD_ADDR BB01 regmask=[allInt]>
<RefPosition #17 @49 RefTypeUse <Ivl:26> BB01 regmask=[allInt] last>
<RefPosition #18 @49 RefTypeUse <Ivl:20 V20> LCL_VAR BB01 regmask=[allInt] last>
<RefPosition #19 @59 ->#20 RefTypeDef <Ivl:27 internal> COPYBLK BB01 regmask=[mm0-mm5]>
<RefPosition #20 @59 RefTypeUse <Ivl:27 internal> COPYBLK BB01 regmask=[mm0-mm5] last>
<RefPosition #21 @64 ->#23 RefTypeDef <Ivl:28> LCL_VAR_ADDR BB01 regmask=[rcx]>
<RefPosition #22 @65 ->#24 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #23 @65 RefTypeUse <Ivl:28> BB01 regmask=[rcx] last fixed>
<RefPosition #24 @66 ->#26 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #25 @66 ->#27 RefTypeDef <Ivl:29> PUTARG_REG BB01 regmask=[rcx] fixed>
<RefPosition #26 @69 ->#29 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #27 @69 RefTypeUse <Ivl:29> BB01 regmask=[rcx] last fixed>
<RefPosition #28 @70 ->#35 RefTypeKill <Reg:rax> BB01 regmask=[rax] last>
<RefPosition #29 @70 ->#42 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] last>
<RefPosition #30 @70 ->#50 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] last>
<RefPosition #31 @70 ->#51 RefTypeKill <Reg:r8 > BB01 regmask=[r8] last>
<RefPosition #32 @70 ->#52 RefTypeKill <Reg:r9 > BB01 regmask=[r9] last>
<RefPosition #33 @70 ->#53 RefTypeKill <Reg:r10> BB01 regmask=[r10] last>
<RefPosition #34 @70 ->#54 RefTypeKill <Reg:r11> BB01 regmask=[r11] last>
<RefPosition #35 @70 ->#48 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax]>
<RefPosition #36 @70 ->#37 RefTypeDef <Ivl:30> CALL BB01 regmask=[rax] fixed>
<RefPosition #37 @71 RefTypeUse <Ivl:30> BB01 regmask=[allInt] last>
<RefPosition #38 @72 ->#99 RefTypeDef <Ivl:4 V04> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #39 @81 ->#40 RefTypeDef <Ivl:31 internal> COPYBLK BB01 regmask=[mm0-mm5]>
<RefPosition #40 @81 RefTypeUse <Ivl:31 internal> COPYBLK BB01 regmask=[mm0-mm5] last>
<RefPosition #41 @86 ->#43 RefTypeDef <Ivl:32> LCL_VAR_ADDR BB01 regmask=[rcx]>
<RefPosition #42 @87 ->#44 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #43 @87 RefTypeUse <Ivl:32> BB01 regmask=[rcx] last fixed>
<RefPosition #44 @88 ->#46 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #45 @88 ->#47 RefTypeDef <Ivl:33> PUTARG_REG BB01 regmask=[rcx] fixed>
<RefPosition #46 @91 ->#49 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #47 @91 RefTypeUse <Ivl:33> BB01 regmask=[rcx] last fixed>
<RefPosition #48 @92 ->#55 RefTypeKill <Reg:rax> BB01 regmask=[rax] last>
<RefPosition #49 @92 ->#62 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] last>
<RefPosition #50 @92 ->#70 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] last>
<RefPosition #51 @92 ->#71 RefTypeKill <Reg:r8 > BB01 regmask=[r8] last>
<RefPosition #52 @92 ->#72 RefTypeKill <Reg:r9 > BB01 regmask=[r9] last>
<RefPosition #53 @92 ->#73 RefTypeKill <Reg:r10> BB01 regmask=[r10] last>
<RefPosition #54 @92 ->#74 RefTypeKill <Reg:r11> BB01 regmask=[r11] last>
<RefPosition #55 @92 ->#68 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax]>
<RefPosition #56 @92 ->#57 RefTypeDef <Ivl:34> CALL BB01 regmask=[rax] fixed>
<RefPosition #57 @93 RefTypeUse <Ivl:34> BB01 regmask=[allInt] last>
<RefPosition #58 @94 ->#119 RefTypeDef <Ivl:5 V05> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #59 @103 ->#60 RefTypeDef <Ivl:35 internal> COPYBLK BB01 regmask=[mm0-mm5]>
<RefPosition #60 @103 RefTypeUse <Ivl:35 internal> COPYBLK BB01 regmask=[mm0-mm5] last>
<RefPosition #61 @108 ->#63 RefTypeDef <Ivl:36> LCL_VAR_ADDR BB01 regmask=[rcx]>
<RefPosition #62 @109 ->#64 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #63 @109 RefTypeUse <Ivl:36> BB01 regmask=[rcx] last fixed>
<RefPosition #64 @110 ->#66 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #65 @110 ->#67 RefTypeDef <Ivl:37> PUTARG_REG BB01 regmask=[rcx] fixed>
<RefPosition #66 @113 ->#69 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #67 @113 RefTypeUse <Ivl:37> BB01 regmask=[rcx] last fixed>
<RefPosition #68 @114 ->#75 RefTypeKill <Reg:rax> BB01 regmask=[rax] last>
<RefPosition #69 @114 ->#82 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] last>
<RefPosition #70 @114 ->#90 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] last>
<RefPosition #71 @114 ->#91 RefTypeKill <Reg:r8 > BB01 regmask=[r8] last>
<RefPosition #72 @114 ->#92 RefTypeKill <Reg:r9 > BB01 regmask=[r9] last>
<RefPosition #73 @114 ->#93 RefTypeKill <Reg:r10> BB01 regmask=[r10] last>
<RefPosition #74 @114 ->#94 RefTypeKill <Reg:r11> BB01 regmask=[r11] last>
<RefPosition #75 @114 ->#88 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax]>
<RefPosition #76 @114 ->#77 RefTypeDef <Ivl:38> CALL BB01 regmask=[rax] fixed>
<RefPosition #77 @115 RefTypeUse <Ivl:38> BB01 regmask=[allInt] last>
<RefPosition #78 @116 ->#139 RefTypeDef <Ivl:6 V06> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #79 @125 ->#80 RefTypeDef <Ivl:39 internal> COPYBLK BB01 regmask=[mm0-mm5]>
<RefPosition #80 @125 RefTypeUse <Ivl:39 internal> COPYBLK BB01 regmask=[mm0-mm5] last>
<RefPosition #81 @130 ->#83 RefTypeDef <Ivl:40> LCL_VAR_ADDR BB01 regmask=[rcx]>
<RefPosition #82 @131 ->#84 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #83 @131 RefTypeUse <Ivl:40> BB01 regmask=[rcx] last fixed>
<RefPosition #84 @132 ->#86 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #85 @132 ->#87 RefTypeDef <Ivl:41> PUTARG_REG BB01 regmask=[rcx] fixed>
<RefPosition #86 @135 ->#89 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #87 @135 RefTypeUse <Ivl:41> BB01 regmask=[rcx] last fixed>
<RefPosition #88 @136 ->#95 RefTypeKill <Reg:rax> BB01 regmask=[rax] last>
<RefPosition #89 @136 ->#104 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] last>
<RefPosition #90 @136 ->#112 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] last>
<RefPosition #91 @136 ->#113 RefTypeKill <Reg:r8 > BB01 regmask=[r8] last>
<RefPosition #92 @136 ->#114 RefTypeKill <Reg:r9 > BB01 regmask=[r9] last>
<RefPosition #93 @136 ->#115 RefTypeKill <Reg:r10> BB01 regmask=[r10] last>
<RefPosition #94 @136 ->#116 RefTypeKill <Reg:r11> BB01 regmask=[r11] last>
<RefPosition #95 @136 ->#110 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax]>
<RefPosition #96 @136 ->#97 RefTypeDef <Ivl:42> CALL BB01 regmask=[rax] fixed>
<RefPosition #97 @137 RefTypeUse <Ivl:42> BB01 regmask=[allInt] last>
<RefPosition #98 @138 ->#159 RefTypeDef <Ivl:7 V07> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #99 @143 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[allInt] last>
<RefPosition #100 @147 RefTypeBB BB02 regmask=[]>
<RefPosition #101 @154 ->#102 RefTypeDef <Ivl:43> CNS_INT BB02 regmask=[allInt]>
<RefPosition #102 @155 RefTypeUse <Ivl:43> BB02 regmask=[allInt] last>
<RefPosition #103 @156 ->#105 RefTypeDef <Ivl:44> IND BB02 regmask=[rcx]>
<RefPosition #104 @157 ->#106 RefTypeFixedReg <Reg:rcx> BB02 regmask=[rcx]>
<RefPosition #105 @157 RefTypeUse <Ivl:44> BB02 regmask=[rcx] last fixed>
<RefPosition #106 @158 ->#108 RefTypeFixedReg <Reg:rcx> BB02 regmask=[rcx]>
<RefPosition #107 @158 ->#109 RefTypeDef <Ivl:45> PUTARG_REG BB02 regmask=[rcx] fixed>
<RefPosition #108 @161 ->#111 RefTypeFixedReg <Reg:rcx> BB02 regmask=[rcx]>
<RefPosition #109 @161 RefTypeUse <Ivl:45> BB02 regmask=[rcx] last fixed>
<RefPosition #110 @162 ->#130 RefTypeKill <Reg:rax> BB02 regmask=[rax] last>
<RefPosition #111 @162 ->#124 RefTypeKill <Reg:rcx> BB02 regmask=[rcx] last>
<RefPosition #112 @162 ->#132 RefTypeKill <Reg:rdx> BB02 regmask=[rdx] last>
<RefPosition #113 @162 ->#133 RefTypeKill <Reg:r8 > BB02 regmask=[r8] last>
<RefPosition #114 @162 ->#134 RefTypeKill <Reg:r9 > BB02 regmask=[r9] last>
<RefPosition #115 @162 ->#135 RefTypeKill <Reg:r10> BB02 regmask=[r10] last>
<RefPosition #116 @162 ->#136 RefTypeKill <Reg:r11> BB02 regmask=[r11] last>
<RefPosition #117 @166 ->#137 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB02 regmask=[allInt]>
<RefPosition #118 @167 RefTypeBB BB03 regmask=[]>
<RefPosition #119 @173 RefTypeUse <Ivl:5 V05> LCL_VAR BB03 regmask=[allInt] last>
<RefPosition #120 @177 RefTypeBB BB04 regmask=[]>
<RefPosition #121 @184 ->#122 RefTypeDef <Ivl:46> CNS_INT BB04 regmask=[allInt]>
<RefPosition #122 @185 RefTypeUse <Ivl:46> BB04 regmask=[allInt] last>
<RefPosition #123 @186 ->#125 RefTypeDef <Ivl:47> IND BB04 regmask=[rcx]>
<RefPosition #124 @187 ->#126 RefTypeFixedReg <Reg:rcx> BB04 regmask=[rcx]>
<RefPosition #125 @187 RefTypeUse <Ivl:47> BB04 regmask=[rcx] last fixed>
<RefPosition #126 @188 ->#128 RefTypeFixedReg <Reg:rcx> BB04 regmask=[rcx]>
<RefPosition #127 @188 ->#129 RefTypeDef <Ivl:48> PUTARG_REG BB04 regmask=[rcx] fixed>
<RefPosition #128 @191 ->#131 RefTypeFixedReg <Reg:rcx> BB04 regmask=[rcx]>
<RefPosition #129 @191 RefTypeUse <Ivl:48> BB04 regmask=[rcx] last fixed>
<RefPosition #130 @192 ->#150 RefTypeKill <Reg:rax> BB04 regmask=[rax] last>
<RefPosition #131 @192 ->#144 RefTypeKill <Reg:rcx> BB04 regmask=[rcx] last>
<RefPosition #132 @192 ->#152 RefTypeKill <Reg:rdx> BB04 regmask=[rdx] last>
<RefPosition #133 @192 ->#153 RefTypeKill <Reg:r8 > BB04 regmask=[r8] last>
<RefPosition #134 @192 ->#154 RefTypeKill <Reg:r9 > BB04 regmask=[r9] last>
<RefPosition #135 @192 ->#155 RefTypeKill <Reg:r10> BB04 regmask=[r10] last>
<RefPosition #136 @192 ->#156 RefTypeKill <Reg:r11> BB04 regmask=[r11] last>
<RefPosition #137 @196 ->#157 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB04 regmask=[allInt]>
<RefPosition #138 @197 RefTypeBB BB05 regmask=[]>
<RefPosition #139 @203 RefTypeUse <Ivl:6 V06> LCL_VAR BB05 regmask=[allInt] last>
<RefPosition #140 @207 RefTypeBB BB06 regmask=[]>
<RefPosition #141 @214 ->#142 RefTypeDef <Ivl:49> CNS_INT BB06 regmask=[allInt]>
<RefPosition #142 @215 RefTypeUse <Ivl:49> BB06 regmask=[allInt] last>
<RefPosition #143 @216 ->#145 RefTypeDef <Ivl:50> IND BB06 regmask=[rcx]>
<RefPosition #144 @217 ->#146 RefTypeFixedReg <Reg:rcx> BB06 regmask=[rcx]>
<RefPosition #145 @217 RefTypeUse <Ivl:50> BB06 regmask=[rcx] last fixed>
<RefPosition #146 @218 ->#148 RefTypeFixedReg <Reg:rcx> BB06 regmask=[rcx]>
<RefPosition #147 @218 ->#149 RefTypeDef <Ivl:51> PUTARG_REG BB06 regmask=[rcx] fixed>
<RefPosition #148 @221 ->#151 RefTypeFixedReg <Reg:rcx> BB06 regmask=[rcx]>
<RefPosition #149 @221 RefTypeUse <Ivl:51> BB06 regmask=[rcx] last fixed>
<RefPosition #150 @222 ->#170 RefTypeKill <Reg:rax> BB06 regmask=[rax] last>
<RefPosition #151 @222 ->#164 RefTypeKill <Reg:rcx> BB06 regmask=[rcx] last>
<RefPosition #152 @222 ->#172 RefTypeKill <Reg:rdx> BB06 regmask=[rdx] last>
<RefPosition #153 @222 ->#173 RefTypeKill <Reg:r8 > BB06 regmask=[r8] last>
<RefPosition #154 @222 ->#174 RefTypeKill <Reg:r9 > BB06 regmask=[r9] last>
<RefPosition #155 @222 ->#175 RefTypeKill <Reg:r10> BB06 regmask=[r10] last>
<RefPosition #156 @222 ->#176 RefTypeKill <Reg:r11> BB06 regmask=[r11] last>
<RefPosition #157 @226 ->#177 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB06 regmask=[allInt]>
<RefPosition #158 @227 RefTypeBB BB07 regmask=[]>
<RefPosition #159 @233 RefTypeUse <Ivl:7 V07> LCL_VAR BB07 regmask=[allInt] last>
<RefPosition #160 @237 RefTypeBB BB08 regmask=[]>
<RefPosition #161 @244 ->#162 RefTypeDef <Ivl:52> CNS_INT BB08 regmask=[allInt]>
<RefPosition #162 @245 RefTypeUse <Ivl:52> BB08 regmask=[allInt] last>
<RefPosition #163 @246 ->#165 RefTypeDef <Ivl:53> IND BB08 regmask=[rcx]>
<RefPosition #164 @247 ->#166 RefTypeFixedReg <Reg:rcx> BB08 regmask=[rcx]>
<RefPosition #165 @247 RefTypeUse <Ivl:53> BB08 regmask=[rcx] last fixed>
<RefPosition #166 @248 ->#168 RefTypeFixedReg <Reg:rcx> BB08 regmask=[rcx]>
<RefPosition #167 @248 ->#169 RefTypeDef <Ivl:54> PUTARG_REG BB08 regmask=[rcx] fixed>
<RefPosition #168 @251 ->#171 RefTypeFixedReg <Reg:rcx> BB08 regmask=[rcx]>
<RefPosition #169 @251 RefTypeUse <Ivl:54> BB08 regmask=[rcx] last fixed>
<RefPosition #170 @252 ->#188 RefTypeKill <Reg:rax> BB08 regmask=[rax] last>
<RefPosition #171 @252 ->#182 RefTypeKill <Reg:rcx> BB08 regmask=[rcx] last>
<RefPosition #172 @252 ->#190 RefTypeKill <Reg:rdx> BB08 regmask=[rdx] last>
<RefPosition #173 @252 ->#191 RefTypeKill <Reg:r8 > BB08 regmask=[r8] last>
<RefPosition #174 @252 ->#192 RefTypeKill <Reg:r9 > BB08 regmask=[r9] last>
<RefPosition #175 @252 ->#193 RefTypeKill <Reg:r10> BB08 regmask=[r10] last>
<RefPosition #176 @252 ->#194 RefTypeKill <Reg:r11> BB08 regmask=[r11] last>
<RefPosition #177 @256 ->#195 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB08 regmask=[allInt]>
<RefPosition #178 @257 RefTypeBB BB09 regmask=[]>
<RefPosition #179 @264 ->#180 RefTypeDef <Ivl:55> CNS_INT BB09 regmask=[allInt]>
<RefPosition #180 @265 RefTypeUse <Ivl:55> BB09 regmask=[allInt] last>
<RefPosition #181 @266 ->#183 RefTypeDef <Ivl:56> IND BB09 regmask=[rcx]>
<RefPosition #182 @267 ->#184 RefTypeFixedReg <Reg:rcx> BB09 regmask=[rcx]>
<RefPosition #183 @267 RefTypeUse <Ivl:56> BB09 regmask=[rcx] last fixed>
<RefPosition #184 @268 ->#186 RefTypeFixedReg <Reg:rcx> BB09 regmask=[rcx]>
<RefPosition #185 @268 ->#187 RefTypeDef <Ivl:57> PUTARG_REG BB09 regmask=[rcx] fixed>
<RefPosition #186 @271 ->#189 RefTypeFixedReg <Reg:rcx> BB09 regmask=[rcx]>
<RefPosition #187 @271 RefTypeUse <Ivl:57> BB09 regmask=[rcx] last fixed>
<RefPosition #188 @272 ->#197 RefTypeKill <Reg:rax> BB09 regmask=[rax] last>
<RefPosition #189 @272 RefTypeKill <Reg:rcx> BB09 regmask=[rcx] last>
<RefPosition #190 @272 RefTypeKill <Reg:rdx> BB09 regmask=[rdx] last>
<RefPosition #191 @272 RefTypeKill <Reg:r8 > BB09 regmask=[r8] last>
<RefPosition #192 @272 RefTypeKill <Reg:r9 > BB09 regmask=[r9] last>
<RefPosition #193 @272 RefTypeKill <Reg:r10> BB09 regmask=[r10] last>
<RefPosition #194 @272 RefTypeKill <Reg:r11> BB09 regmask=[r11] last>
<RefPosition #195 @276 ->#198 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB09 regmask=[allInt]>
<RefPosition #196 @277 RefTypeBB BB10 regmask=[]>
<RefPosition #197 @281 RefTypeFixedReg <Reg:rax> BB10 regmask=[rax]>
<RefPosition #198 @281 RefTypeUse <Ivl:8 V08> LCL_VAR BB10 regmask=[rax] last fixed>
VAR REFPOSITIONS BEFORE ALLOCATION
--- V00
--- V01
--- V02
--- V03
--- V04
<RefPosition #38 @72 ->#99 RefTypeDef <Ivl:4 V04> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #99 @143 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[allInt] last>
--- V05
<RefPosition #58 @94 ->#119 RefTypeDef <Ivl:5 V05> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #119 @173 RefTypeUse <Ivl:5 V05> LCL_VAR BB03 regmask=[allInt] last>
--- V06
<RefPosition #78 @116 ->#139 RefTypeDef <Ivl:6 V06> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #139 @203 RefTypeUse <Ivl:6 V06> LCL_VAR BB05 regmask=[allInt] last>
--- V07
<RefPosition #98 @138 ->#159 RefTypeDef <Ivl:7 V07> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #159 @233 RefTypeUse <Ivl:7 V07> LCL_VAR BB07 regmask=[allInt] last>
--- V08
<RefPosition #117 @166 ->#137 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB02 regmask=[allInt]>
<RefPosition #137 @196 ->#157 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB04 regmask=[allInt]>
<RefPosition #157 @226 ->#177 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB06 regmask=[allInt]>
<RefPosition #177 @256 ->#195 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB08 regmask=[allInt]>
<RefPosition #195 @276 ->#198 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB09 regmask=[allInt]>
<RefPosition #198 @281 RefTypeUse <Ivl:8 V08> LCL_VAR BB10 regmask=[rax] last fixed>
--- V09
--- V10
--- V11
--- V12
--- V13
--- V14
--- V15
<RefPosition #1 @6 ->#5 RefTypeDef <Ivl:15 V15> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #5 @17 ->#11 RefTypeUse <Ivl:15 V15> LCL_VAR BB01 regmask=[allInt]>
<RefPosition #11 @33 RefTypeUse <Ivl:15 V15> LCL_VAR BB01 regmask=[allInt] last>
--- V16
<RefPosition #2 @10 ->#8 RefTypeDef <Ivl:16 V16> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #8 @25 ->#9 RefTypeUse <Ivl:16 V16> LCL_VAR BB01 regmask=[allInt]>
<RefPosition #9 @29 RefTypeUse <Ivl:16 V16> LCL_VAR BB01 regmask=[allInt] last>
--- V17
--- V18
--- V19
<RefPosition #10 @30 ->#15 RefTypeDef <Ivl:19 V19> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #15 @41 RefTypeUse <Ivl:19 V19> LCL_VAR BB01 regmask=[allInt] last>
--- V20
<RefPosition #12 @34 ->#18 RefTypeDef <Ivl:20 V20> STORE_LCL_VAR BB01 regmask=[allInt]>
<RefPosition #18 @49 RefTypeUse <Ivl:20 V20> LCL_VAR BB01 regmask=[allInt] last>
--- V21
--- V22
Allocating Registers
--------------------
The following table has one or more rows for each RefPosition that is handled during allocation.
The first column provides the basic information about the RefPosition, with its type (e.g. Def,
Use, Fixd) followed by a '*' if it is a last use, and a 'D' if it is delayRegFree, and then the
action taken during allocation (e.g. Alloc a new register, or Keep an existing one).
The subsequent columns show the Interval occupying each register, if any, followed by 'a' if it is
active, and 'i'if it is inactive. Columns are only printed up to the last modifed register, which
may increase during allocation, in which case additional columns will appear. Registers which are
not marked modified have ---- in their column.
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
| | | |----|----|----|----|----| | | | |
0.#0 BB1 PredBB0 | | | |----|----|----|----|----| | | | |
6.#1 V15 Def Alloc rcx | |V15a| |----|----|----|----|----| | | | |
10.#2 V16 Def Alloc rax |V16a|V15a| |----|----|----|----|----| | | | |
12.#3 I23 Def Alloc rdx |V16a|V15a|I23a|----|----|----|----|----| | | | |
17.#4 I23 Use * Keep rdx |V16a|V15a|I23a|----|----|----|----|----| | | | |
17.#5 V15 Use Keep rcx |V16a|V15a|I23a|----|----|----|----|----| | | | |
20.#6 I24 Def Alloc rdx |V16a|V15a|I24a|----|----|----|----|----| | | | |
25.#7 I24 Use * Keep rdx |V16a|V15a|I24a|----|----|----|----|----| | | | |
25.#8 V16 Use Keep rax |V16a|V15a|I24a|----|----|----|----|----| | | | |
29.#9 V16 Use * Keep rax |V16a|V15a| |----|----|----|----|----| | | | |
30.#10 V19 Def Alloc rax |V19a|V15a| |----|----|----|----|----| | | | |
33.#11 V15 Use * Keep rcx |V19a|V15a| |----|----|----|----|----| | | | |
34.#12 V20 Def Alloc rcx |V19a|V20a| |----|----|----|----|----| | | | |
36.#13 I25 Def Alloc rdx |V19a|V20a|I25a|----|----|----|----|----| | | | |
41.#14 I25 Use * Keep rdx |V19a|V20a|I25a|----|----|----|----|----| | | | |
41.#15 V19 Use * Keep rax |V19a|V20a|I25a|----|----|----|----|----| | | | |
44.#16 I26 Def Alloc rax |I26a|V20a| |----|----|----|----|----| | | | |
49.#17 I26 Use * Keep rax |I26a|V20a| |----|----|----|----|----| | | | |
49.#18 V20 Use * Keep rcx |I26a|V20a| |----|----|----|----|----| | | | |
59.#19 I27 Def Alloc mm0 | | | |----|----|----|----|----| | | | |
59.#20 I27 Use * Keep mm0 | | | |----|----|----|----|----| | | | |
64.#21 I28 Def Alloc rcx | |I28a| |----|----|----|----|----| | | | |
65.#22 rcx Fixd Keep rcx | |I28a| |----|----|----|----|----| | | | |
65.#23 I28 Use * Keep rcx | |I28a| |----|----|----|----|----| | | | |
66.#24 rcx Fixd Keep rcx | | | |----|----|----|----|----| | | | |
66.#25 I29 Def Alloc rcx | |I29a| |----|----|----|----|----| | | | |
69.#26 rcx Fixd Keep rcx | |I29a| |----|----|----|----|----| | | | |
69.#27 I29 Use * Keep rcx | |I29a| |----|----|----|----|----| | | | |
70.#28 rax Kill Keep rax | | | |----|----|----|----|----| | | | |
70.#29 rcx Kill Keep rcx | | | |----|----|----|----|----| | | | |
70.#30 rdx Kill Keep rdx | | | |----|----|----|----|----| | | | |
70.#31 r8 Kill Keep r8 | | | |----|----|----|----|----| | | | |
70.#32 r9 Kill Keep r9 | | | |----|----|----|----|----| | | | |
70.#33 r10 Kill Keep r10 | | | |----|----|----|----|----| | | | |
70.#34 r11 Kill Keep r11 | | | |----|----|----|----|----| | | | |
70.#35 rax Fixd Keep rax | | | |----|----|----|----|----| | | | |
70.#36 I30 Def Alloc rax |I30a| | |----|----|----|----|----| | | | |
71.#37 I30 Use * Keep rax |I30a| | |----|----|----|----|----| | | | |
72.#38 V4 Def Alloc rsi | | | |----|----|----|V4 a|----| | | | |
81.#39 I31 Def Alloc mm0 | | | |----|----|----|V4 a|----| | | | |
81.#40 I31 Use * Keep mm0 | | | |----|----|----|V4 a|----| | | | |
86.#41 I32 Def Alloc rcx | |I32a| |----|----|----|V4 a|----| | | | |
87.#42 rcx Fixd Keep rcx | |I32a| |----|----|----|V4 a|----| | | | |
87.#43 I32 Use * Keep rcx | |I32a| |----|----|----|V4 a|----| | | | |
88.#44 rcx Fixd Keep rcx | | | |----|----|----|V4 a|----| | | | |
88.#45 I33 Def Alloc rcx | |I33a| |----|----|----|V4 a|----| | | | |
91.#46 rcx Fixd Keep rcx | |I33a| |----|----|----|V4 a|----| | | | |
91.#47 I33 Use * Keep rcx | |I33a| |----|----|----|V4 a|----| | | | |
92.#48 rax Kill Keep rax | | | |----|----|----|V4 a|----| | | | |
92.#49 rcx Kill Keep rcx | | | |----|----|----|V4 a|----| | | | |
92.#50 rdx Kill Keep rdx | | | |----|----|----|V4 a|----| | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
92.#51 r8 Kill Keep r8 | | | |----|----|----|V4 a|----| | | | |
92.#52 r9 Kill Keep r9 | | | |----|----|----|V4 a|----| | | | |
92.#53 r10 Kill Keep r10 | | | |----|----|----|V4 a|----| | | | |
92.#54 r11 Kill Keep r11 | | | |----|----|----|V4 a|----| | | | |
92.#55 rax Fixd Keep rax | | | |----|----|----|V4 a|----| | | | |
92.#56 I34 Def Alloc rax |I34a| | |----|----|----|V4 a|----| | | | |
93.#57 I34 Use * Keep rax |I34a| | |----|----|----|V4 a|----| | | | |
94.#58 V5 Def Alloc rdi | | | |----|----|----|V4 a|V5 a| | | | |
103.#59 I35 Def Alloc mm0 | | | |----|----|----|V4 a|V5 a| | | | |
103.#60 I35 Use * Keep mm0 | | | |----|----|----|V4 a|V5 a| | | | |
108.#61 I36 Def Alloc rcx | |I36a| |----|----|----|V4 a|V5 a| | | | |
109.#62 rcx Fixd Keep rcx | |I36a| |----|----|----|V4 a|V5 a| | | | |
109.#63 I36 Use * Keep rcx | |I36a| |----|----|----|V4 a|V5 a| | | | |
110.#64 rcx Fixd Keep rcx | | | |----|----|----|V4 a|V5 a| | | | |
110.#65 I37 Def Alloc rcx | |I37a| |----|----|----|V4 a|V5 a| | | | |
113.#66 rcx Fixd Keep rcx | |I37a| |----|----|----|V4 a|V5 a| | | | |
113.#67 I37 Use * Keep rcx | |I37a| |----|----|----|V4 a|V5 a| | | | |
114.#68 rax Kill Keep rax | | | |----|----|----|V4 a|V5 a| | | | |
114.#69 rcx Kill Keep rcx | | | |----|----|----|V4 a|V5 a| | | | |
114.#70 rdx Kill Keep rdx | | | |----|----|----|V4 a|V5 a| | | | |
114.#71 r8 Kill Keep r8 | | | |----|----|----|V4 a|V5 a| | | | |
114.#72 r9 Kill Keep r9 | | | |----|----|----|V4 a|V5 a| | | | |
114.#73 r10 Kill Keep r10 | | | |----|----|----|V4 a|V5 a| | | | |
114.#74 r11 Kill Keep r11 | | | |----|----|----|V4 a|V5 a| | | | |
114.#75 rax Fixd Keep rax | | | |----|----|----|V4 a|V5 a| | | | |
114.#76 I38 Def Alloc rax |I38a| | |----|----|----|V4 a|V5 a| | | | |
115.#77 I38 Use * Keep rax |I38a| | |----|----|----|V4 a|V5 a| | | | |
116.#78 V6 Def Alloc rbx | | | |V6 a|----|----|V4 a|V5 a| | | | |
125.#79 I39 Def Alloc mm0 | | | |V6 a|----|----|V4 a|V5 a| | | | |
125.#80 I39 Use * Keep mm0 | | | |V6 a|----|----|V4 a|V5 a| | | | |
130.#81 I40 Def Alloc rcx | |I40a| |V6 a|----|----|V4 a|V5 a| | | | |
131.#82 rcx Fixd Keep rcx | |I40a| |V6 a|----|----|V4 a|V5 a| | | | |
131.#83 I40 Use * Keep rcx | |I40a| |V6 a|----|----|V4 a|V5 a| | | | |
132.#84 rcx Fixd Keep rcx | | | |V6 a|----|----|V4 a|V5 a| | | | |
132.#85 I41 Def Alloc rcx | |I41a| |V6 a|----|----|V4 a|V5 a| | | | |
135.#86 rcx Fixd Keep rcx | |I41a| |V6 a|----|----|V4 a|V5 a| | | | |
135.#87 I41 Use * Keep rcx | |I41a| |V6 a|----|----|V4 a|V5 a| | | | |
136.#88 rax Kill Keep rax | | | |V6 a|----|----|V4 a|V5 a| | | | |
136.#89 rcx Kill Keep rcx | | | |V6 a|----|----|V4 a|V5 a| | | | |
136.#90 rdx Kill Keep rdx | | | |V6 a|----|----|V4 a|V5 a| | | | |
136.#91 r8 Kill Keep r8 | | | |V6 a|----|----|V4 a|V5 a| | | | |
136.#92 r9 Kill Keep r9 | | | |V6 a|----|----|V4 a|V5 a| | | | |
136.#93 r10 Kill Keep r10 | | | |V6 a|----|----|V4 a|V5 a| | | | |
136.#94 r11 Kill Keep r11 | | | |V6 a|----|----|V4 a|V5 a| | | | |
136.#95 rax Fixd Keep rax | | | |V6 a|----|----|V4 a|V5 a| | | | |
136.#96 I42 Def Alloc rax |I42a| | |V6 a|----|----|V4 a|V5 a| | | | |
137.#97 I42 Use * Keep rax |I42a| | |V6 a|----|----|V4 a|V5 a| | | | |
138.#98 V7 Def Alloc rax |V7 a| | |V6 a|----|----|V4 a|V5 a| | | | |
143.#99 V4 Use * Keep rsi |V7 a| | |V6 a|----|----|V4 a|V5 a| | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
147.#100 BB2 PredBB1 |V7 i| | |V6 i|----|----| |V5 i| | | | |
154.#101 C43 Def Alloc rcx |V7 i|C43a| |V6 i|----|----| |V5 i| | | | |
155.#102 C43 Use * Keep rcx |V7 i|C43a| |V6 i|----|----| |V5 i| | | | |
156.#103 I44 Def Alloc rcx |V7 i|I44a| |V6 i|----|----| |V5 i| | | | |
157.#104 rcx Fixd Keep rcx |V7 i|I44a| |V6 i|----|----| |V5 i| | | | |
157.#105 I44 Use * Keep rcx |V7 i|I44a| |V6 i|----|----| |V5 i| | | | |
158.#106 rcx Fixd Keep rcx |V7 i| | |V6 i|----|----| |V5 i| | | | |
158.#107 I45 Def Alloc rcx |V7 i|I45a| |V6 i|----|----| |V5 i| | | | |
161.#108 rcx Fixd Keep rcx |V7 i|I45a| |V6 i|----|----| |V5 i| | | | |
161.#109 I45 Use * Keep rcx |V7 i|I45a| |V6 i|----|----| |V5 i| | | | |
162.#110 rax Kill Keep rax | | | |V6 i|----|----| |V5 i| | | | |
162.#111 rcx Kill Keep rcx | | | |V6 i|----|----| |V5 i| | | | |
162.#112 rdx Kill Keep rdx | | | |V6 i|----|----| |V5 i| | | | |
162.#113 r8 Kill Keep r8 | | | |V6 i|----|----| |V5 i| | | | |
162.#114 r9 Kill Keep r9 | | | |V6 i|----|----| |V5 i| | | | |
162.#115 r10 Kill Keep r10 | | | |V6 i|----|----| |V5 i| | | | |
162.#116 r11 Kill Keep r11 | | | |V6 i|----|----| |V5 i| | | | |
166.#117 V8 Def Alloc rax |V8 a| | |V6 i|----|----| |V5 i| | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
167.#118 BB3 PredBB1 |V7 a| | |V6 a|----|----| |V5 a| | | | |
173.#119 V5 Use * Keep rdi |V7 a| | |V6 a|----|----| |V5 a| | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
177.#120 BB4 PredBB3 |V7 i| | |V6 i|----|----| | | | | | |
184.#121 C46 Def Alloc rcx |V7 i|C46a| |V6 i|----|----| | | | | | |
185.#122 C46 Use * Keep rcx |V7 i|C46a| |V6 i|----|----| | | | | | |
186.#123 I47 Def Alloc rcx |V7 i|I47a| |V6 i|----|----| | | | | | |
187.#124 rcx Fixd Keep rcx |V7 i|I47a| |V6 i|----|----| | | | | | |
187.#125 I47 Use * Keep rcx |V7 i|I47a| |V6 i|----|----| | | | | | |
188.#126 rcx Fixd Keep rcx |V7 i| | |V6 i|----|----| | | | | | |
188.#127 I48 Def Alloc rcx |V7 i|I48a| |V6 i|----|----| | | | | | |
191.#128 rcx Fixd Keep rcx |V7 i|I48a| |V6 i|----|----| | | | | | |
191.#129 I48 Use * Keep rcx |V7 i|I48a| |V6 i|----|----| | | | | | |
192.#130 rax Kill Keep rax | | | |V6 i|----|----| | | | | | |
192.#131 rcx Kill Keep rcx | | | |V6 i|----|----| | | | | | |
192.#132 rdx Kill Keep rdx | | | |V6 i|----|----| | | | | | |
192.#133 r8 Kill Keep r8 | | | |V6 i|----|----| | | | | | |
192.#134 r9 Kill Keep r9 | | | |V6 i|----|----| | | | | | |
192.#135 r10 Kill Keep r10 | | | |V6 i|----|----| | | | | | |
192.#136 r11 Kill Keep r11 | | | |V6 i|----|----| | | | | | |
196.#137 V8 Def Alloc rax |V8 a| | |V6 i|----|----| | | | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
197.#138 BB5 PredBB3 |V7 a| | |V6 a|----|----| | | | | | |
203.#139 V6 Use * Keep rbx |V7 a| | |V6 a|----|----| | | | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
207.#140 BB6 PredBB5 |V7 i| | | |----|----| | | | | | |
214.#141 C49 Def Alloc rcx |V7 i|C49a| | |----|----| | | | | | |
215.#142 C49 Use * Keep rcx |V7 i|C49a| | |----|----| | | | | | |
216.#143 I50 Def Alloc rcx |V7 i|I50a| | |----|----| | | | | | |
217.#144 rcx Fixd Keep rcx |V7 i|I50a| | |----|----| | | | | | |
217.#145 I50 Use * Keep rcx |V7 i|I50a| | |----|----| | | | | | |
218.#146 rcx Fixd Keep rcx |V7 i| | | |----|----| | | | | | |
218.#147 I51 Def Alloc rcx |V7 i|I51a| | |----|----| | | | | | |
221.#148 rcx Fixd Keep rcx |V7 i|I51a| | |----|----| | | | | | |
221.#149 I51 Use * Keep rcx |V7 i|I51a| | |----|----| | | | | | |
222.#150 rax Kill Keep rax | | | | |----|----| | | | | | |
222.#151 rcx Kill Keep rcx | | | | |----|----| | | | | | |
222.#152 rdx Kill Keep rdx | | | | |----|----| | | | | | |
222.#153 r8 Kill Keep r8 | | | | |----|----| | | | | | |
222.#154 r9 Kill Keep r9 | | | | |----|----| | | | | | |
222.#155 r10 Kill Keep r10 | | | | |----|----| | | | | | |
222.#156 r11 Kill Keep r11 | | | | |----|----| | | | | | |
226.#157 V8 Def Alloc rax |V8 a| | | |----|----| | | | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
227.#158 BB7 PredBB5 |V7 a| | | |----|----| | | | | | |
233.#159 V7 Use * Keep rax |V7 a| | | |----|----| | | | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
237.#160 BB8 PredBB7 | | | | |----|----| | | | | | |
244.#161 C52 Def Alloc rcx | |C52a| | |----|----| | | | | | |
245.#162 C52 Use * Keep rcx | |C52a| | |----|----| | | | | | |
246.#163 I53 Def Alloc rcx | |I53a| | |----|----| | | | | | |
247.#164 rcx Fixd Keep rcx | |I53a| | |----|----| | | | | | |
247.#165 I53 Use * Keep rcx | |I53a| | |----|----| | | | | | |
248.#166 rcx Fixd Keep rcx | | | | |----|----| | | | | | |
248.#167 I54 Def Alloc rcx | |I54a| | |----|----| | | | | | |
251.#168 rcx Fixd Keep rcx | |I54a| | |----|----| | | | | | |
251.#169 I54 Use * Keep rcx | |I54a| | |----|----| | | | | | |
252.#170 rax Kill Keep rax | | | | |----|----| | | | | | |
252.#171 rcx Kill Keep rcx | | | | |----|----| | | | | | |
252.#172 rdx Kill Keep rdx | | | | |----|----| | | | | | |
252.#173 r8 Kill Keep r8 | | | | |----|----| | | | | | |
252.#174 r9 Kill Keep r9 | | | | |----|----| | | | | | |
252.#175 r10 Kill Keep r10 | | | | |----|----| | | | | | |
252.#176 r11 Kill Keep r11 | | | | |----|----| | | | | | |
256.#177 V8 Def Alloc rax |V8 a| | | |----|----| | | | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
257.#178 BB9 PredBB7 |V8 i| | | |----|----| | | | | | |
264.#179 C55 Def Alloc rcx |V8 i|C55a| | |----|----| | | | | | |
265.#180 C55 Use * Keep rcx |V8 i|C55a| | |----|----| | | | | | |
266.#181 I56 Def Alloc rcx |V8 i|I56a| | |----|----| | | | | | |
267.#182 rcx Fixd Keep rcx |V8 i|I56a| | |----|----| | | | | | |
267.#183 I56 Use * Keep rcx |V8 i|I56a| | |----|----| | | | | | |
268.#184 rcx Fixd Keep rcx |V8 i| | | |----|----| | | | | | |
268.#185 I57 Def Alloc rcx |V8 i|I57a| | |----|----| | | | | | |
271.#186 rcx Fixd Keep rcx |V8 i|I57a| | |----|----| | | | | | |
271.#187 I57 Use * Keep rcx |V8 i|I57a| | |----|----| | | | | | |
272.#188 rax Kill Keep rax | | | | |----|----| | | | | | |
272.#189 rcx Kill Keep rcx | | | | |----|----| | | | | | |
272.#190 rdx Kill Keep rdx | | | | |----|----| | | | | | |
272.#191 r8 Kill Keep r8 | | | | |----|----| | | | | | |
272.#192 r9 Kill Keep r9 | | | | |----|----| | | | | | |
272.#193 r10 Kill Keep r10 | | | | |----|----| | | | | | |
272.#194 r11 Kill Keep r11 | | | | |----|----| | | | | | |
276.#195 V8 Def Alloc rax |V8 a| | | |----|----| | | | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
277.#196 BB10 PredBB2 |V8 a| | | |----|----| | | | | | |
281.#197 rax Fixd Keep rax |V8 a| | | |----|----| | | | | | |
281.#198 V8 Use * Keep rax | | | | |----|----| | | | | | |
------------
REFPOSITIONS AFTER ALLOCATION:
------------
<RefPosition #0 @0 RefTypeBB BB01 regmask=[]>
<RefPosition #1 @6 ->#5 RefTypeDef <Ivl:15 V15> STORE_LCL_VAR BB01 regmask=[rcx]>
<RefPosition #2 @10 ->#8 RefTypeDef <Ivl:16 V16> STORE_LCL_VAR BB01 regmask=[rax]>
<RefPosition #3 @12 ->#4 RefTypeDef <Ivl:23> LCL_FLD_ADDR BB01 regmask=[rdx]>
<RefPosition #4 @17 RefTypeUse <Ivl:23> BB01 regmask=[rdx] last>
<RefPosition #5 @17 ->#11 RefTypeUse <Ivl:15 V15> LCL_VAR BB01 regmask=[rcx]>
<RefPosition #6 @20 ->#7 RefTypeDef <Ivl:24> LCL_FLD_ADDR BB01 regmask=[rdx]>
<RefPosition #7 @25 RefTypeUse <Ivl:24> BB01 regmask=[rdx] last>
<RefPosition #8 @25 ->#9 RefTypeUse <Ivl:16 V16> LCL_VAR BB01 regmask=[rax]>
<RefPosition #9 @29 RefTypeUse <Ivl:16 V16> LCL_VAR BB01 regmask=[rax] last>
<RefPosition #10 @30 ->#15 RefTypeDef <Ivl:19 V19> STORE_LCL_VAR BB01 regmask=[rax]>
<RefPosition #11 @33 RefTypeUse <Ivl:15 V15> LCL_VAR BB01 regmask=[rcx] last>
<RefPosition #12 @34 ->#18 RefTypeDef <Ivl:20 V20> STORE_LCL_VAR BB01 regmask=[rcx]>
<RefPosition #13 @36 ->#14 RefTypeDef <Ivl:25> LCL_FLD_ADDR BB01 regmask=[rdx]>
<RefPosition #14 @41 RefTypeUse <Ivl:25> BB01 regmask=[rdx] last>
<RefPosition #15 @41 RefTypeUse <Ivl:19 V19> LCL_VAR BB01 regmask=[rax] last>
<RefPosition #16 @44 ->#17 RefTypeDef <Ivl:26> LCL_FLD_ADDR BB01 regmask=[rax]>
<RefPosition #17 @49 RefTypeUse <Ivl:26> BB01 regmask=[rax] last>
<RefPosition #18 @49 RefTypeUse <Ivl:20 V20> LCL_VAR BB01 regmask=[rcx] last>
<RefPosition #19 @59 ->#20 RefTypeDef <Ivl:27 internal> COPYBLK BB01 regmask=[mm0]>
<RefPosition #20 @59 RefTypeUse <Ivl:27 internal> COPYBLK BB01 regmask=[mm0] last>
<RefPosition #21 @64 ->#23 RefTypeDef <Ivl:28> LCL_VAR_ADDR BB01 regmask=[rcx]>
<RefPosition #22 @65 ->#24 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #23 @65 RefTypeUse <Ivl:28> BB01 regmask=[rcx] last fixed>
<RefPosition #24 @66 ->#26 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #25 @66 ->#27 RefTypeDef <Ivl:29> PUTARG_REG BB01 regmask=[rcx] fixed>
<RefPosition #26 @69 ->#29 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #27 @69 RefTypeUse <Ivl:29> BB01 regmask=[rcx] last fixed>
<RefPosition #28 @70 ->#35 RefTypeKill <Reg:rax> BB01 regmask=[rax] last>
<RefPosition #29 @70 ->#42 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] last>
<RefPosition #30 @70 ->#50 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] last>
<RefPosition #31 @70 ->#51 RefTypeKill <Reg:r8 > BB01 regmask=[r8] last>
<RefPosition #32 @70 ->#52 RefTypeKill <Reg:r9 > BB01 regmask=[r9] last>
<RefPosition #33 @70 ->#53 RefTypeKill <Reg:r10> BB01 regmask=[r10] last>
<RefPosition #34 @70 ->#54 RefTypeKill <Reg:r11> BB01 regmask=[r11] last>
<RefPosition #35 @70 ->#48 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax]>
<RefPosition #36 @70 ->#37 RefTypeDef <Ivl:30> CALL BB01 regmask=[rax] fixed>
<RefPosition #37 @71 RefTypeUse <Ivl:30> BB01 regmask=[rax] last>
<RefPosition #38 @72 ->#99 RefTypeDef <Ivl:4 V04> STORE_LCL_VAR BB01 regmask=[rsi]>
<RefPosition #39 @81 ->#40 RefTypeDef <Ivl:31 internal> COPYBLK BB01 regmask=[mm0]>
<RefPosition #40 @81 RefTypeUse <Ivl:31 internal> COPYBLK BB01 regmask=[mm0] last>
<RefPosition #41 @86 ->#43 RefTypeDef <Ivl:32> LCL_VAR_ADDR BB01 regmask=[rcx]>
<RefPosition #42 @87 ->#44 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #43 @87 RefTypeUse <Ivl:32> BB01 regmask=[rcx] last fixed>
<RefPosition #44 @88 ->#46 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #45 @88 ->#47 RefTypeDef <Ivl:33> PUTARG_REG BB01 regmask=[rcx] fixed>
<RefPosition #46 @91 ->#49 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #47 @91 RefTypeUse <Ivl:33> BB01 regmask=[rcx] last fixed>
<RefPosition #48 @92 ->#55 RefTypeKill <Reg:rax> BB01 regmask=[rax] last>
<RefPosition #49 @92 ->#62 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] last>
<RefPosition #50 @92 ->#70 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] last>
<RefPosition #51 @92 ->#71 RefTypeKill <Reg:r8 > BB01 regmask=[r8] last>
<RefPosition #52 @92 ->#72 RefTypeKill <Reg:r9 > BB01 regmask=[r9] last>
<RefPosition #53 @92 ->#73 RefTypeKill <Reg:r10> BB01 regmask=[r10] last>
<RefPosition #54 @92 ->#74 RefTypeKill <Reg:r11> BB01 regmask=[r11] last>
<RefPosition #55 @92 ->#68 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax]>
<RefPosition #56 @92 ->#57 RefTypeDef <Ivl:34> CALL BB01 regmask=[rax] fixed>
<RefPosition #57 @93 RefTypeUse <Ivl:34> BB01 regmask=[rax] last>
<RefPosition #58 @94 ->#119 RefTypeDef <Ivl:5 V05> STORE_LCL_VAR BB01 regmask=[rdi]>
<RefPosition #59 @103 ->#60 RefTypeDef <Ivl:35 internal> COPYBLK BB01 regmask=[mm0]>
<RefPosition #60 @103 RefTypeUse <Ivl:35 internal> COPYBLK BB01 regmask=[mm0] last>
<RefPosition #61 @108 ->#63 RefTypeDef <Ivl:36> LCL_VAR_ADDR BB01 regmask=[rcx]>
<RefPosition #62 @109 ->#64 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #63 @109 RefTypeUse <Ivl:36> BB01 regmask=[rcx] last fixed>
<RefPosition #64 @110 ->#66 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #65 @110 ->#67 RefTypeDef <Ivl:37> PUTARG_REG BB01 regmask=[rcx] fixed>
<RefPosition #66 @113 ->#69 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #67 @113 RefTypeUse <Ivl:37> BB01 regmask=[rcx] last fixed>
<RefPosition #68 @114 ->#75 RefTypeKill <Reg:rax> BB01 regmask=[rax] last>
<RefPosition #69 @114 ->#82 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] last>
<RefPosition #70 @114 ->#90 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] last>
<RefPosition #71 @114 ->#91 RefTypeKill <Reg:r8 > BB01 regmask=[r8] last>
<RefPosition #72 @114 ->#92 RefTypeKill <Reg:r9 > BB01 regmask=[r9] last>
<RefPosition #73 @114 ->#93 RefTypeKill <Reg:r10> BB01 regmask=[r10] last>
<RefPosition #74 @114 ->#94 RefTypeKill <Reg:r11> BB01 regmask=[r11] last>
<RefPosition #75 @114 ->#88 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax]>
<RefPosition #76 @114 ->#77 RefTypeDef <Ivl:38> CALL BB01 regmask=[rax] fixed>
<RefPosition #77 @115 RefTypeUse <Ivl:38> BB01 regmask=[rax] last>
<RefPosition #78 @116 ->#139 RefTypeDef <Ivl:6 V06> STORE_LCL_VAR BB01 regmask=[rbx]>
<RefPosition #79 @125 ->#80 RefTypeDef <Ivl:39 internal> COPYBLK BB01 regmask=[mm0]>
<RefPosition #80 @125 RefTypeUse <Ivl:39 internal> COPYBLK BB01 regmask=[mm0] last>
<RefPosition #81 @130 ->#83 RefTypeDef <Ivl:40> LCL_VAR_ADDR BB01 regmask=[rcx]>
<RefPosition #82 @131 ->#84 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #83 @131 RefTypeUse <Ivl:40> BB01 regmask=[rcx] last fixed>
<RefPosition #84 @132 ->#86 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #85 @132 ->#87 RefTypeDef <Ivl:41> PUTARG_REG BB01 regmask=[rcx] fixed>
<RefPosition #86 @135 ->#89 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
<RefPosition #87 @135 RefTypeUse <Ivl:41> BB01 regmask=[rcx] last fixed>
<RefPosition #88 @136 ->#95 RefTypeKill <Reg:rax> BB01 regmask=[rax] last>
<RefPosition #89 @136 ->#104 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] last>
<RefPosition #90 @136 ->#112 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] last>
<RefPosition #91 @136 ->#113 RefTypeKill <Reg:r8 > BB01 regmask=[r8] last>
<RefPosition #92 @136 ->#114 RefTypeKill <Reg:r9 > BB01 regmask=[r9] last>
<RefPosition #93 @136 ->#115 RefTypeKill <Reg:r10> BB01 regmask=[r10] last>
<RefPosition #94 @136 ->#116 RefTypeKill <Reg:r11> BB01 regmask=[r11] last>
<RefPosition #95 @136 ->#110 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax]>
<RefPosition #96 @136 ->#97 RefTypeDef <Ivl:42> CALL BB01 regmask=[rax] fixed>
<RefPosition #97 @137 RefTypeUse <Ivl:42> BB01 regmask=[rax] last>
<RefPosition #98 @138 ->#159 RefTypeDef <Ivl:7 V07> STORE_LCL_VAR BB01 regmask=[rax]>
<RefPosition #99 @143 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[rsi] last>
<RefPosition #100 @147 RefTypeBB BB02 regmask=[]>
<RefPosition #101 @154 ->#102 RefTypeDef <Ivl:43> CNS_INT BB02 regmask=[rcx]>
<RefPosition #102 @155 RefTypeUse <Ivl:43> BB02 regmask=[rcx] last>
<RefPosition #103 @156 ->#105 RefTypeDef <Ivl:44> IND BB02 regmask=[rcx]>
<RefPosition #104 @157 ->#106 RefTypeFixedReg <Reg:rcx> BB02 regmask=[rcx]>
<RefPosition #105 @157 RefTypeUse <Ivl:44> BB02 regmask=[rcx] last fixed>
<RefPosition #106 @158 ->#108 RefTypeFixedReg <Reg:rcx> BB02 regmask=[rcx]>
<RefPosition #107 @158 ->#109 RefTypeDef <Ivl:45> PUTARG_REG BB02 regmask=[rcx] fixed>
<RefPosition #108 @161 ->#111 RefTypeFixedReg <Reg:rcx> BB02 regmask=[rcx]>
<RefPosition #109 @161 RefTypeUse <Ivl:45> BB02 regmask=[rcx] last fixed>
<RefPosition #110 @162 ->#130 RefTypeKill <Reg:rax> BB02 regmask=[rax] last>
<RefPosition #111 @162 ->#124 RefTypeKill <Reg:rcx> BB02 regmask=[rcx] last>
<RefPosition #112 @162 ->#132 RefTypeKill <Reg:rdx> BB02 regmask=[rdx] last>
<RefPosition #113 @162 ->#133 RefTypeKill <Reg:r8 > BB02 regmask=[r8] last>
<RefPosition #114 @162 ->#134 RefTypeKill <Reg:r9 > BB02 regmask=[r9] last>
<RefPosition #115 @162 ->#135 RefTypeKill <Reg:r10> BB02 regmask=[r10] last>
<RefPosition #116 @162 ->#136 RefTypeKill <Reg:r11> BB02 regmask=[r11] last>
<RefPosition #117 @166 ->#137 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB02 regmask=[rax]>
<RefPosition #118 @167 RefTypeBB BB03 regmask=[]>
<RefPosition #119 @173 RefTypeUse <Ivl:5 V05> LCL_VAR BB03 regmask=[rdi] last>
<RefPosition #120 @177 RefTypeBB BB04 regmask=[]>
<RefPosition #121 @184 ->#122 RefTypeDef <Ivl:46> CNS_INT BB04 regmask=[rcx]>
<RefPosition #122 @185 RefTypeUse <Ivl:46> BB04 regmask=[rcx] last>
<RefPosition #123 @186 ->#125 RefTypeDef <Ivl:47> IND BB04 regmask=[rcx]>
<RefPosition #124 @187 ->#126 RefTypeFixedReg <Reg:rcx> BB04 regmask=[rcx]>
<RefPosition #125 @187 RefTypeUse <Ivl:47> BB04 regmask=[rcx] last fixed>
<RefPosition #126 @188 ->#128 RefTypeFixedReg <Reg:rcx> BB04 regmask=[rcx]>
<RefPosition #127 @188 ->#129 RefTypeDef <Ivl:48> PUTARG_REG BB04 regmask=[rcx] fixed>
<RefPosition #128 @191 ->#131 RefTypeFixedReg <Reg:rcx> BB04 regmask=[rcx]>
<RefPosition #129 @191 RefTypeUse <Ivl:48> BB04 regmask=[rcx] last fixed>
<RefPosition #130 @192 ->#150 RefTypeKill <Reg:rax> BB04 regmask=[rax] last>
<RefPosition #131 @192 ->#144 RefTypeKill <Reg:rcx> BB04 regmask=[rcx] last>
<RefPosition #132 @192 ->#152 RefTypeKill <Reg:rdx> BB04 regmask=[rdx] last>
<RefPosition #133 @192 ->#153 RefTypeKill <Reg:r8 > BB04 regmask=[r8] last>
<RefPosition #134 @192 ->#154 RefTypeKill <Reg:r9 > BB04 regmask=[r9] last>
<RefPosition #135 @192 ->#155 RefTypeKill <Reg:r10> BB04 regmask=[r10] last>
<RefPosition #136 @192 ->#156 RefTypeKill <Reg:r11> BB04 regmask=[r11] last>
<RefPosition #137 @196 ->#157 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB04 regmask=[rax]>
<RefPosition #138 @197 RefTypeBB BB05 regmask=[]>
<RefPosition #139 @203 RefTypeUse <Ivl:6 V06> LCL_VAR BB05 regmask=[rbx] last>
<RefPosition #140 @207 RefTypeBB BB06 regmask=[]>
<RefPosition #141 @214 ->#142 RefTypeDef <Ivl:49> CNS_INT BB06 regmask=[rcx]>
<RefPosition #142 @215 RefTypeUse <Ivl:49> BB06 regmask=[rcx] last>
<RefPosition #143 @216 ->#145 RefTypeDef <Ivl:50> IND BB06 regmask=[rcx]>
<RefPosition #144 @217 ->#146 RefTypeFixedReg <Reg:rcx> BB06 regmask=[rcx]>
<RefPosition #145 @217 RefTypeUse <Ivl:50> BB06 regmask=[rcx] last fixed>
<RefPosition #146 @218 ->#148 RefTypeFixedReg <Reg:rcx> BB06 regmask=[rcx]>
<RefPosition #147 @218 ->#149 RefTypeDef <Ivl:51> PUTARG_REG BB06 regmask=[rcx] fixed>
<RefPosition #148 @221 ->#151 RefTypeFixedReg <Reg:rcx> BB06 regmask=[rcx]>
<RefPosition #149 @221 RefTypeUse <Ivl:51> BB06 regmask=[rcx] last fixed>
<RefPosition #150 @222 ->#170 RefTypeKill <Reg:rax> BB06 regmask=[rax] last>
<RefPosition #151 @222 ->#164 RefTypeKill <Reg:rcx> BB06 regmask=[rcx] last>
<RefPosition #152 @222 ->#172 RefTypeKill <Reg:rdx> BB06 regmask=[rdx] last>
<RefPosition #153 @222 ->#173 RefTypeKill <Reg:r8 > BB06 regmask=[r8] last>
<RefPosition #154 @222 ->#174 RefTypeKill <Reg:r9 > BB06 regmask=[r9] last>
<RefPosition #155 @222 ->#175 RefTypeKill <Reg:r10> BB06 regmask=[r10] last>
<RefPosition #156 @222 ->#176 RefTypeKill <Reg:r11> BB06 regmask=[r11] last>
<RefPosition #157 @226 ->#177 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB06 regmask=[rax]>
<RefPosition #158 @227 RefTypeBB BB07 regmask=[]>
<RefPosition #159 @233 RefTypeUse <Ivl:7 V07> LCL_VAR BB07 regmask=[rax] last>
<RefPosition #160 @237 RefTypeBB BB08 regmask=[]>
<RefPosition #161 @244 ->#162 RefTypeDef <Ivl:52> CNS_INT BB08 regmask=[rcx]>
<RefPosition #162 @245 RefTypeUse <Ivl:52> BB08 regmask=[rcx] last>
<RefPosition #163 @246 ->#165 RefTypeDef <Ivl:53> IND BB08 regmask=[rcx]>
<RefPosition #164 @247 ->#166 RefTypeFixedReg <Reg:rcx> BB08 regmask=[rcx]>
<RefPosition #165 @247 RefTypeUse <Ivl:53> BB08 regmask=[rcx] last fixed>
<RefPosition #166 @248 ->#168 RefTypeFixedReg <Reg:rcx> BB08 regmask=[rcx]>
<RefPosition #167 @248 ->#169 RefTypeDef <Ivl:54> PUTARG_REG BB08 regmask=[rcx] fixed>
<RefPosition #168 @251 ->#171 RefTypeFixedReg <Reg:rcx> BB08 regmask=[rcx]>
<RefPosition #169 @251 RefTypeUse <Ivl:54> BB08 regmask=[rcx] last fixed>
<RefPosition #170 @252 ->#188 RefTypeKill <Reg:rax> BB08 regmask=[rax] last>
<RefPosition #171 @252 ->#182 RefTypeKill <Reg:rcx> BB08 regmask=[rcx] last>
<RefPosition #172 @252 ->#190 RefTypeKill <Reg:rdx> BB08 regmask=[rdx] last>
<RefPosition #173 @252 ->#191 RefTypeKill <Reg:r8 > BB08 regmask=[r8] last>
<RefPosition #174 @252 ->#192 RefTypeKill <Reg:r9 > BB08 regmask=[r9] last>
<RefPosition #175 @252 ->#193 RefTypeKill <Reg:r10> BB08 regmask=[r10] last>
<RefPosition #176 @252 ->#194 RefTypeKill <Reg:r11> BB08 regmask=[r11] last>
<RefPosition #177 @256 ->#195 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB08 regmask=[rax]>
<RefPosition #178 @257 RefTypeBB BB09 regmask=[]>
<RefPosition #179 @264 ->#180 RefTypeDef <Ivl:55> CNS_INT BB09 regmask=[rcx]>
<RefPosition #180 @265 RefTypeUse <Ivl:55> BB09 regmask=[rcx] last>
<RefPosition #181 @266 ->#183 RefTypeDef <Ivl:56> IND BB09 regmask=[rcx]>
<RefPosition #182 @267 ->#184 RefTypeFixedReg <Reg:rcx> BB09 regmask=[rcx]>
<RefPosition #183 @267 RefTypeUse <Ivl:56> BB09 regmask=[rcx] last fixed>
<RefPosition #184 @268 ->#186 RefTypeFixedReg <Reg:rcx> BB09 regmask=[rcx]>
<RefPosition #185 @268 ->#187 RefTypeDef <Ivl:57> PUTARG_REG BB09 regmask=[rcx] fixed>
<RefPosition #186 @271 ->#189 RefTypeFixedReg <Reg:rcx> BB09 regmask=[rcx]>
<RefPosition #187 @271 RefTypeUse <Ivl:57> BB09 regmask=[rcx] last fixed>
<RefPosition #188 @272 ->#197 RefTypeKill <Reg:rax> BB09 regmask=[rax] last>
<RefPosition #189 @272 RefTypeKill <Reg:rcx> BB09 regmask=[rcx] last>
<RefPosition #190 @272 RefTypeKill <Reg:rdx> BB09 regmask=[rdx] last>
<RefPosition #191 @272 RefTypeKill <Reg:r8 > BB09 regmask=[r8] last>
<RefPosition #192 @272 RefTypeKill <Reg:r9 > BB09 regmask=[r9] last>
<RefPosition #193 @272 RefTypeKill <Reg:r10> BB09 regmask=[r10] last>
<RefPosition #194 @272 RefTypeKill <Reg:r11> BB09 regmask=[r11] last>
<RefPosition #195 @276 ->#198 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB09 regmask=[rax]>
<RefPosition #196 @277 RefTypeBB BB10 regmask=[]>
<RefPosition #197 @281 RefTypeFixedReg <Reg:rax> BB10 regmask=[rax]>
<RefPosition #198 @281 RefTypeUse <Ivl:8 V08> LCL_VAR BB10 regmask=[rax] last fixed>
VAR REFPOSITIONS AFTER ALLOCATION
--- V00
--- V01
--- V02
--- V03
--- V04
<RefPosition #38 @72 ->#99 RefTypeDef <Ivl:4 V04> STORE_LCL_VAR BB01 regmask=[rsi]>
<RefPosition #99 @143 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[rsi] last>
--- V05
<RefPosition #58 @94 ->#119 RefTypeDef <Ivl:5 V05> STORE_LCL_VAR BB01 regmask=[rdi]>
<RefPosition #119 @173 RefTypeUse <Ivl:5 V05> LCL_VAR BB03 regmask=[rdi] last>
--- V06
<RefPosition #78 @116 ->#139 RefTypeDef <Ivl:6 V06> STORE_LCL_VAR BB01 regmask=[rbx]>
<RefPosition #139 @203 RefTypeUse <Ivl:6 V06> LCL_VAR BB05 regmask=[rbx] last>
--- V07
<RefPosition #98 @138 ->#159 RefTypeDef <Ivl:7 V07> STORE_LCL_VAR BB01 regmask=[rax]>
<RefPosition #159 @233 RefTypeUse <Ivl:7 V07> LCL_VAR BB07 regmask=[rax] last>
--- V08
<RefPosition #117 @166 ->#137 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB02 regmask=[rax]>
<RefPosition #137 @196 ->#157 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB04 regmask=[rax]>
<RefPosition #157 @226 ->#177 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB06 regmask=[rax]>
<RefPosition #177 @256 ->#195 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB08 regmask=[rax]>
<RefPosition #195 @276 ->#198 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB09 regmask=[rax]>
<RefPosition #198 @281 RefTypeUse <Ivl:8 V08> LCL_VAR BB10 regmask=[rax] last fixed>
--- V09
--- V10
--- V11
--- V12
--- V13
--- V14
--- V15
<RefPosition #1 @6 ->#5 RefTypeDef <Ivl:15 V15> STORE_LCL_VAR BB01 regmask=[rcx]>
<RefPosition #5 @17 ->#11 RefTypeUse <Ivl:15 V15> LCL_VAR BB01 regmask=[rcx]>
<RefPosition #11 @33 RefTypeUse <Ivl:15 V15> LCL_VAR BB01 regmask=[rcx] last>
--- V16
<RefPosition #2 @10 ->#8 RefTypeDef <Ivl:16 V16> STORE_LCL_VAR BB01 regmask=[rax]>
<RefPosition #8 @25 ->#9 RefTypeUse <Ivl:16 V16> LCL_VAR BB01 regmask=[rax]>
<RefPosition #9 @29 RefTypeUse <Ivl:16 V16> LCL_VAR BB01 regmask=[rax] last>
--- V17
--- V18
--- V19
<RefPosition #10 @30 ->#15 RefTypeDef <Ivl:19 V19> STORE_LCL_VAR BB01 regmask=[rax]>
<RefPosition #15 @41 RefTypeUse <Ivl:19 V19> LCL_VAR BB01 regmask=[rax] last>
--- V20
<RefPosition #12 @34 ->#18 RefTypeDef <Ivl:20 V20> STORE_LCL_VAR BB01 regmask=[rcx]>
<RefPosition #18 @49 RefTypeUse <Ivl:20 V20> LCL_VAR BB01 regmask=[rcx] last>
--- V21
--- V22
Active intervals at end of allocation:
------------------------
WRITING BACK ASSIGNMENTS
------------------------
BB01 [000..04A) -> BB03 (cond), preds={} succs={BB02,BB03}
<RefPosition #0 @0 RefTypeBB BB01 regmask=[]>
current : <RefPosition #1 @6 ->#5 RefTypeDef <Ivl:15 V15> STORE_LCL_VAR BB01 regmask=[rcx]>
N005. V15(L15)
curr = 6 mapped = 5
current : <RefPosition #2 @10 ->#8 RefTypeDef <Ivl:16 V16> STORE_LCL_VAR BB01 regmask=[rax]>
N009. V16(L16)
curr = 10 mapped = 9
current : <RefPosition #3 @12 ->#4 RefTypeDef <Ivl:23> LCL_FLD_ADDR BB01 regmask=[rdx]>
N011. t11 = &lclFld V02 loc2 ud:2->3[+0] Fseq[v1] REG NA
curr = 12 mapped = 11
current : <RefPosition #4 @17 RefTypeUse <Ivl:23> BB01 regmask=[rdx] last>
No tree node to write back to
current : <RefPosition #5 @17 ->#11 RefTypeUse <Ivl:15 V15> LCL_VAR BB01 regmask=[rcx]>
N015. V15(L15)
curr = 17 mapped = 15
current : <RefPosition #6 @20 ->#7 RefTypeDef <Ivl:24> LCL_FLD_ADDR BB01 regmask=[rdx]>
N019. t19 = &lclFld V02 loc2 ud:3->4[+8] Fseq[v2] REG NA
curr = 20 mapped = 19
current : <RefPosition #7 @25 RefTypeUse <Ivl:24> BB01 regmask=[rdx] last>
No tree node to write back to
current : <RefPosition #8 @25 ->#9 RefTypeUse <Ivl:16 V16> LCL_VAR BB01 regmask=[rax]>
N023. V16(L16)
curr = 25 mapped = 23
current : <RefPosition #9 @29 RefTypeUse <Ivl:16 V16> LCL_VAR BB01 regmask=[rax] last>
N027. V16(L16)
curr = 29 mapped = 27
current : <RefPosition #10 @30 ->#15 RefTypeDef <Ivl:19 V19> STORE_LCL_VAR BB01 regmask=[rax]>
N029. V19(L19)
curr = 30 mapped = 29
current : <RefPosition #11 @33 RefTypeUse <Ivl:15 V15> LCL_VAR BB01 regmask=[rcx] last>
N031. V15(L15)
curr = 33 mapped = 31
current : <RefPosition #12 @34 ->#18 RefTypeDef <Ivl:20 V20> STORE_LCL_VAR BB01 regmask=[rcx]>
N033. V20(L20)
curr = 34 mapped = 33
current : <RefPosition #13 @36 ->#14 RefTypeDef <Ivl:25> LCL_FLD_ADDR BB01 regmask=[rdx]>
N035. t35 = &lclFld V03 loc3 ud:2->3[+0] Fseq[v1] REG NA
curr = 36 mapped = 35
current : <RefPosition #14 @41 RefTypeUse <Ivl:25> BB01 regmask=[rdx] last>
No tree node to write back to
current : <RefPosition #15 @41 RefTypeUse <Ivl:19 V19> LCL_VAR BB01 regmask=[rax] last>
N039. V19(L19)
curr = 41 mapped = 39
current : <RefPosition #16 @44 ->#17 RefTypeDef <Ivl:26> LCL_FLD_ADDR BB01 regmask=[rax]>
N043. t43 = &lclFld V03 loc3 ud:3->4[+8] Fseq[v2] REG NA
curr = 44 mapped = 43
current : <RefPosition #17 @49 RefTypeUse <Ivl:26> BB01 regmask=[rax] last>
No tree node to write back to
current : <RefPosition #18 @49 RefTypeUse <Ivl:20 V20> LCL_VAR BB01 regmask=[rcx] last>
N047. V20(L20)
curr = 49 mapped = 47
current : <RefPosition #19 @59 ->#20 RefTypeDef <Ivl:27 internal> COPYBLK BB01 regmask=[mm0]>
N059. t59 = copyBlk
curr = 59 mapped = 59 internal
current : <RefPosition #20 @59 RefTypeUse <Ivl:27 internal> COPYBLK BB01 regmask=[mm0] last>
N059. t59 = copyBlk
curr = 59 mapped = 59 internal
current : <RefPosition #21 @64 ->#23 RefTypeDef <Ivl:28> LCL_VAR_ADDR BB01 regmask=[rcx]>
N063. t63 = &lclVar V21 tmp13 REG NA
curr = 64 mapped = 63
current : <RefPosition #22 @65 ->#24 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
current : <RefPosition #23 @65 RefTypeUse <Ivl:28> BB01 regmask=[rcx] last fixed>
No tree node to write back to
current : <RefPosition #24 @66 ->#26 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
current : <RefPosition #25 @66 ->#27 RefTypeDef <Ivl:29> PUTARG_REG BB01 regmask=[rcx] fixed>
N065. t65 = putarg_reg
curr = 66 mapped = 65
current : <RefPosition #26 @69 ->#29 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
current : <RefPosition #27 @69 RefTypeUse <Ivl:29> BB01 regmask=[rcx] last fixed>
No tree node to write back to
current : <RefPosition #28 @70 ->#35 RefTypeKill <Reg:rax> BB01 regmask=[rax] last>
current : <RefPosition #29 @70 ->#42 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] last>
current : <RefPosition #30 @70 ->#50 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] last>
current : <RefPosition #31 @70 ->#51 RefTypeKill <Reg:r8 > BB01 regmask=[r8] last>
current : <RefPosition #32 @70 ->#52 RefTypeKill <Reg:r9 > BB01 regmask=[r9] last>
current : <RefPosition #33 @70 ->#53 RefTypeKill <Reg:r10> BB01 regmask=[r10] last>
current : <RefPosition #34 @70 ->#54 RefTypeKill <Reg:r11> BB01 regmask=[r11] last>
current : <RefPosition #35 @70 ->#48 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax]>
current : <RefPosition #36 @70 ->#37 RefTypeDef <Ivl:30> CALL BB01 regmask=[rax] fixed>
N069. t69 = call
curr = 70 mapped = 69
current : <RefPosition #37 @71 RefTypeUse <Ivl:30> BB01 regmask=[rax] last>
No tree node to write back to
current : <RefPosition #38 @72 ->#99 RefTypeDef <Ivl:4 V04> STORE_LCL_VAR BB01 regmask=[rsi]>
N071. V04(L4)
curr = 72 mapped = 71
current : <RefPosition #39 @81 ->#40 RefTypeDef <Ivl:31 internal> COPYBLK BB01 regmask=[mm0]>
N081. t81 = copyBlk
curr = 81 mapped = 81 internal
current : <RefPosition #40 @81 RefTypeUse <Ivl:31 internal> COPYBLK BB01 regmask=[mm0] last>
N081. t81 = copyBlk
curr = 81 mapped = 81 internal
current : <RefPosition #41 @86 ->#43 RefTypeDef <Ivl:32> LCL_VAR_ADDR BB01 regmask=[rcx]>
N085. t85 = &lclVar V21 tmp13 REG NA
curr = 86 mapped = 85
current : <RefPosition #42 @87 ->#44 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
current : <RefPosition #43 @87 RefTypeUse <Ivl:32> BB01 regmask=[rcx] last fixed>
No tree node to write back to
current : <RefPosition #44 @88 ->#46 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
current : <RefPosition #45 @88 ->#47 RefTypeDef <Ivl:33> PUTARG_REG BB01 regmask=[rcx] fixed>
N087. t87 = putarg_reg
curr = 88 mapped = 87
current : <RefPosition #46 @91 ->#49 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
current : <RefPosition #47 @91 RefTypeUse <Ivl:33> BB01 regmask=[rcx] last fixed>
No tree node to write back to
current : <RefPosition #48 @92 ->#55 RefTypeKill <Reg:rax> BB01 regmask=[rax] last>
current : <RefPosition #49 @92 ->#62 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] last>
current : <RefPosition #50 @92 ->#70 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] last>
current : <RefPosition #51 @92 ->#71 RefTypeKill <Reg:r8 > BB01 regmask=[r8] last>
current : <RefPosition #52 @92 ->#72 RefTypeKill <Reg:r9 > BB01 regmask=[r9] last>
current : <RefPosition #53 @92 ->#73 RefTypeKill <Reg:r10> BB01 regmask=[r10] last>
current : <RefPosition #54 @92 ->#74 RefTypeKill <Reg:r11> BB01 regmask=[r11] last>
current : <RefPosition #55 @92 ->#68 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax]>
current : <RefPosition #56 @92 ->#57 RefTypeDef <Ivl:34> CALL BB01 regmask=[rax] fixed>
N091. t91 = call
curr = 92 mapped = 91
current : <RefPosition #57 @93 RefTypeUse <Ivl:34> BB01 regmask=[rax] last>
No tree node to write back to
current : <RefPosition #58 @94 ->#119 RefTypeDef <Ivl:5 V05> STORE_LCL_VAR BB01 regmask=[rdi]>
N093. V05(L5)
curr = 94 mapped = 93
current : <RefPosition #59 @103 ->#60 RefTypeDef <Ivl:35 internal> COPYBLK BB01 regmask=[mm0]>
N103. t103 = copyBlk
curr = 103 mapped = 103 internal
current : <RefPosition #60 @103 RefTypeUse <Ivl:35 internal> COPYBLK BB01 regmask=[mm0] last>
N103. t103 = copyBlk
curr = 103 mapped = 103 internal
current : <RefPosition #61 @108 ->#63 RefTypeDef <Ivl:36> LCL_VAR_ADDR BB01 regmask=[rcx]>
N107. t107 = &lclVar V21 tmp13 REG NA
curr = 108 mapped = 107
current : <RefPosition #62 @109 ->#64 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
current : <RefPosition #63 @109 RefTypeUse <Ivl:36> BB01 regmask=[rcx] last fixed>
No tree node to write back to
current : <RefPosition #64 @110 ->#66 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
current : <RefPosition #65 @110 ->#67 RefTypeDef <Ivl:37> PUTARG_REG BB01 regmask=[rcx] fixed>
N109. t109 = putarg_reg
curr = 110 mapped = 109
current : <RefPosition #66 @113 ->#69 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
current : <RefPosition #67 @113 RefTypeUse <Ivl:37> BB01 regmask=[rcx] last fixed>
No tree node to write back to
current : <RefPosition #68 @114 ->#75 RefTypeKill <Reg:rax> BB01 regmask=[rax] last>
current : <RefPosition #69 @114 ->#82 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] last>
current : <RefPosition #70 @114 ->#90 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] last>
current : <RefPosition #71 @114 ->#91 RefTypeKill <Reg:r8 > BB01 regmask=[r8] last>
current : <RefPosition #72 @114 ->#92 RefTypeKill <Reg:r9 > BB01 regmask=[r9] last>
current : <RefPosition #73 @114 ->#93 RefTypeKill <Reg:r10> BB01 regmask=[r10] last>
current : <RefPosition #74 @114 ->#94 RefTypeKill <Reg:r11> BB01 regmask=[r11] last>
current : <RefPosition #75 @114 ->#88 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax]>
current : <RefPosition #76 @114 ->#77 RefTypeDef <Ivl:38> CALL BB01 regmask=[rax] fixed>
N113. t113 = call
curr = 114 mapped = 113
current : <RefPosition #77 @115 RefTypeUse <Ivl:38> BB01 regmask=[rax] last>
No tree node to write back to
current : <RefPosition #78 @116 ->#139 RefTypeDef <Ivl:6 V06> STORE_LCL_VAR BB01 regmask=[rbx]>
N115. V06(L6)
curr = 116 mapped = 115
current : <RefPosition #79 @125 ->#80 RefTypeDef <Ivl:39 internal> COPYBLK BB01 regmask=[mm0]>
N125. t125 = copyBlk
curr = 125 mapped = 125 internal
current : <RefPosition #80 @125 RefTypeUse <Ivl:39 internal> COPYBLK BB01 regmask=[mm0] last>
N125. t125 = copyBlk
curr = 125 mapped = 125 internal
current : <RefPosition #81 @130 ->#83 RefTypeDef <Ivl:40> LCL_VAR_ADDR BB01 regmask=[rcx]>
N129. t129 = &lclVar V21 tmp13 REG NA
curr = 130 mapped = 129
current : <RefPosition #82 @131 ->#84 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
current : <RefPosition #83 @131 RefTypeUse <Ivl:40> BB01 regmask=[rcx] last fixed>
No tree node to write back to
current : <RefPosition #84 @132 ->#86 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
current : <RefPosition #85 @132 ->#87 RefTypeDef <Ivl:41> PUTARG_REG BB01 regmask=[rcx] fixed>
N131. t131 = putarg_reg
curr = 132 mapped = 131
current : <RefPosition #86 @135 ->#89 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx]>
current : <RefPosition #87 @135 RefTypeUse <Ivl:41> BB01 regmask=[rcx] last fixed>
No tree node to write back to
current : <RefPosition #88 @136 ->#95 RefTypeKill <Reg:rax> BB01 regmask=[rax] last>
current : <RefPosition #89 @136 ->#104 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] last>
current : <RefPosition #90 @136 ->#112 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] last>
current : <RefPosition #91 @136 ->#113 RefTypeKill <Reg:r8 > BB01 regmask=[r8] last>
current : <RefPosition #92 @136 ->#114 RefTypeKill <Reg:r9 > BB01 regmask=[r9] last>
current : <RefPosition #93 @136 ->#115 RefTypeKill <Reg:r10> BB01 regmask=[r10] last>
current : <RefPosition #94 @136 ->#116 RefTypeKill <Reg:r11> BB01 regmask=[r11] last>
current : <RefPosition #95 @136 ->#110 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax]>
current : <RefPosition #96 @136 ->#97 RefTypeDef <Ivl:42> CALL BB01 regmask=[rax] fixed>
N135. t135 = call
curr = 136 mapped = 135
current : <RefPosition #97 @137 RefTypeUse <Ivl:42> BB01 regmask=[rax] last>
No tree node to write back to
current : <RefPosition #98 @138 ->#159 RefTypeDef <Ivl:7 V07> STORE_LCL_VAR BB01 regmask=[rax]>
N137. V07(L7)
curr = 138 mapped = 137
current : <RefPosition #99 @143 RefTypeUse <Ivl:4 V04> LCL_VAR BB01 regmask=[rsi] last>
N139. V04(L4)
curr = 143 mapped = 139
BB02 [04A..056) -> BB10 (always), preds={BB01} succs={BB10}
<RefPosition #100 @147 RefTypeBB BB02 regmask=[]>
current : <RefPosition #101 @154 ->#102 RefTypeDef <Ivl:43> CNS_INT BB02 regmask=[rcx]>
N153. t153 = const(h) 0xD6273068 "Fail" REG NA
curr = 154 mapped = 153
current : <RefPosition #102 @155 RefTypeUse <Ivl:43> BB02 regmask=[rcx] last>
No tree node to write back to
current : <RefPosition #103 @156 ->#105 RefTypeDef <Ivl:44> IND BB02 regmask=[rcx]>
N155. t155 = indir
curr = 156 mapped = 155
current : <RefPosition #104 @157 ->#106 RefTypeFixedReg <Reg:rcx> BB02 regmask=[rcx]>
current : <RefPosition #105 @157 RefTypeUse <Ivl:44> BB02 regmask=[rcx] last fixed>
No tree node to write back to
current : <RefPosition #106 @158 ->#108 RefTypeFixedReg <Reg:rcx> BB02 regmask=[rcx]>
current : <RefPosition #107 @158 ->#109 RefTypeDef <Ivl:45> PUTARG_REG BB02 regmask=[rcx] fixed>
N157. t157 = putarg_reg
curr = 158 mapped = 157
current : <RefPosition #108 @161 ->#111 RefTypeFixedReg <Reg:rcx> BB02 regmask=[rcx]>
current : <RefPosition #109 @161 RefTypeUse <Ivl:45> BB02 regmask=[rcx] last fixed>
No tree node to write back to
current : <RefPosition #110 @162 ->#130 RefTypeKill <Reg:rax> BB02 regmask=[rax] last>
current : <RefPosition #111 @162 ->#124 RefTypeKill <Reg:rcx> BB02 regmask=[rcx] last>
current : <RefPosition #112 @162 ->#132 RefTypeKill <Reg:rdx> BB02 regmask=[rdx] last>
current : <RefPosition #113 @162 ->#133 RefTypeKill <Reg:r8 > BB02 regmask=[r8] last>
current : <RefPosition #114 @162 ->#134 RefTypeKill <Reg:r9 > BB02 regmask=[r9] last>
current : <RefPosition #115 @162 ->#135 RefTypeKill <Reg:r10> BB02 regmask=[r10] last>
current : <RefPosition #116 @162 ->#136 RefTypeKill <Reg:r11> BB02 regmask=[r11] last>
current : <RefPosition #117 @166 ->#137 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB02 regmask=[rax]>
N165. V08(L8)
curr = 166 mapped = 165
BB03 [056..05A) -> BB05 (cond), preds={BB01} succs={BB04,BB05}
<RefPosition #118 @167 RefTypeBB BB03 regmask=[]>
current : <RefPosition #119 @173 RefTypeUse <Ivl:5 V05> LCL_VAR BB03 regmask=[rdi] last>
N169. V05(L5)
curr = 173 mapped = 169
BB04 [05A..066) -> BB10 (always), preds={BB03} succs={BB10}
<RefPosition #120 @177 RefTypeBB BB04 regmask=[]>
current : <RefPosition #121 @184 ->#122 RefTypeDef <Ivl:46> CNS_INT BB04 regmask=[rcx]>
N183. t183 = const(h) 0xD6273068 "Fail" REG NA
curr = 184 mapped = 183
current : <RefPosition #122 @185 RefTypeUse <Ivl:46> BB04 regmask=[rcx] last>
No tree node to write back to
current : <RefPosition #123 @186 ->#125 RefTypeDef <Ivl:47> IND BB04 regmask=[rcx]>
N185. t185 = indir
curr = 186 mapped = 185
current : <RefPosition #124 @187 ->#126 RefTypeFixedReg <Reg:rcx> BB04 regmask=[rcx]>
current : <RefPosition #125 @187 RefTypeUse <Ivl:47> BB04 regmask=[rcx] last fixed>
No tree node to write back to
current : <RefPosition #126 @188 ->#128 RefTypeFixedReg <Reg:rcx> BB04 regmask=[rcx]>
current : <RefPosition #127 @188 ->#129 RefTypeDef <Ivl:48> PUTARG_REG BB04 regmask=[rcx] fixed>
N187. t187 = putarg_reg
curr = 188 mapped = 187
current : <RefPosition #128 @191 ->#131 RefTypeFixedReg <Reg:rcx> BB04 regmask=[rcx]>
current : <RefPosition #129 @191 RefTypeUse <Ivl:48> BB04 regmask=[rcx] last fixed>
No tree node to write back to
current : <RefPosition #130 @192 ->#150 RefTypeKill <Reg:rax> BB04 regmask=[rax] last>
current : <RefPosition #131 @192 ->#144 RefTypeKill <Reg:rcx> BB04 regmask=[rcx] last>
current : <RefPosition #132 @192 ->#152 RefTypeKill <Reg:rdx> BB04 regmask=[rdx] last>
current : <RefPosition #133 @192 ->#153 RefTypeKill <Reg:r8 > BB04 regmask=[r8] last>
current : <RefPosition #134 @192 ->#154 RefTypeKill <Reg:r9 > BB04 regmask=[r9] last>
current : <RefPosition #135 @192 ->#155 RefTypeKill <Reg:r10> BB04 regmask=[r10] last>
current : <RefPosition #136 @192 ->#156 RefTypeKill <Reg:r11> BB04 regmask=[r11] last>
current : <RefPosition #137 @196 ->#157 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB04 regmask=[rax]>
N195. V08(L8)
curr = 196 mapped = 195
BB05 [066..06A) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
<RefPosition #138 @197 RefTypeBB BB05 regmask=[]>
current : <RefPosition #139 @203 RefTypeUse <Ivl:6 V06> LCL_VAR BB05 regmask=[rbx] last>
N199. V06(L6)
curr = 203 mapped = 199
BB06 [06A..076) -> BB10 (always), preds={BB05} succs={BB10}
<RefPosition #140 @207 RefTypeBB BB06 regmask=[]>
current : <RefPosition #141 @214 ->#142 RefTypeDef <Ivl:49> CNS_INT BB06 regmask=[rcx]>
N213. t213 = const(h) 0xD6273068 "Fail" REG NA
curr = 214 mapped = 213
current : <RefPosition #142 @215 RefTypeUse <Ivl:49> BB06 regmask=[rcx] last>
No tree node to write back to
current : <RefPosition #143 @216 ->#145 RefTypeDef <Ivl:50> IND BB06 regmask=[rcx]>
N215. t215 = indir
curr = 216 mapped = 215
current : <RefPosition #144 @217 ->#146 RefTypeFixedReg <Reg:rcx> BB06 regmask=[rcx]>
current : <RefPosition #145 @217 RefTypeUse <Ivl:50> BB06 regmask=[rcx] last fixed>
No tree node to write back to
current : <RefPosition #146 @218 ->#148 RefTypeFixedReg <Reg:rcx> BB06 regmask=[rcx]>
current : <RefPosition #147 @218 ->#149 RefTypeDef <Ivl:51> PUTARG_REG BB06 regmask=[rcx] fixed>
N217. t217 = putarg_reg
curr = 218 mapped = 217
current : <RefPosition #148 @221 ->#151 RefTypeFixedReg <Reg:rcx> BB06 regmask=[rcx]>
current : <RefPosition #149 @221 RefTypeUse <Ivl:51> BB06 regmask=[rcx] last fixed>
No tree node to write back to
current : <RefPosition #150 @222 ->#170 RefTypeKill <Reg:rax> BB06 regmask=[rax] last>
current : <RefPosition #151 @222 ->#164 RefTypeKill <Reg:rcx> BB06 regmask=[rcx] last>
current : <RefPosition #152 @222 ->#172 RefTypeKill <Reg:rdx> BB06 regmask=[rdx] last>
current : <RefPosition #153 @222 ->#173 RefTypeKill <Reg:r8 > BB06 regmask=[r8] last>
current : <RefPosition #154 @222 ->#174 RefTypeKill <Reg:r9 > BB06 regmask=[r9] last>
current : <RefPosition #155 @222 ->#175 RefTypeKill <Reg:r10> BB06 regmask=[r10] last>
current : <RefPosition #156 @222 ->#176 RefTypeKill <Reg:r11> BB06 regmask=[r11] last>
current : <RefPosition #157 @226 ->#177 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB06 regmask=[rax]>
N225. V08(L8)
curr = 226 mapped = 225
BB07 [076..07A) -> BB09 (cond), preds={BB05} succs={BB08,BB09}
<RefPosition #158 @227 RefTypeBB BB07 regmask=[]>
current : <RefPosition #159 @233 RefTypeUse <Ivl:7 V07> LCL_VAR BB07 regmask=[rax] last>
N229. V07(L7)
curr = 233 mapped = 229
BB08 [07A..086) -> BB10 (always), preds={BB07} succs={BB10}
<RefPosition #160 @237 RefTypeBB BB08 regmask=[]>
current : <RefPosition #161 @244 ->#162 RefTypeDef <Ivl:52> CNS_INT BB08 regmask=[rcx]>
N243. t243 = const(h) 0xD6273068 "Fail" REG NA
curr = 244 mapped = 243
current : <RefPosition #162 @245 RefTypeUse <Ivl:52> BB08 regmask=[rcx] last>
No tree node to write back to
current : <RefPosition #163 @246 ->#165 RefTypeDef <Ivl:53> IND BB08 regmask=[rcx]>
N245. t245 = indir
curr = 246 mapped = 245
current : <RefPosition #164 @247 ->#166 RefTypeFixedReg <Reg:rcx> BB08 regmask=[rcx]>
current : <RefPosition #165 @247 RefTypeUse <Ivl:53> BB08 regmask=[rcx] last fixed>
No tree node to write back to
current : <RefPosition #166 @248 ->#168 RefTypeFixedReg <Reg:rcx> BB08 regmask=[rcx]>
current : <RefPosition #167 @248 ->#169 RefTypeDef <Ivl:54> PUTARG_REG BB08 regmask=[rcx] fixed>
N247. t247 = putarg_reg
curr = 248 mapped = 247
current : <RefPosition #168 @251 ->#171 RefTypeFixedReg <Reg:rcx> BB08 regmask=[rcx]>
current : <RefPosition #169 @251 RefTypeUse <Ivl:54> BB08 regmask=[rcx] last fixed>
No tree node to write back to
current : <RefPosition #170 @252 ->#188 RefTypeKill <Reg:rax> BB08 regmask=[rax] last>
current : <RefPosition #171 @252 ->#182 RefTypeKill <Reg:rcx> BB08 regmask=[rcx] last>
current : <RefPosition #172 @252 ->#190 RefTypeKill <Reg:rdx> BB08 regmask=[rdx] last>
current : <RefPosition #173 @252 ->#191 RefTypeKill <Reg:r8 > BB08 regmask=[r8] last>
current : <RefPosition #174 @252 ->#192 RefTypeKill <Reg:r9 > BB08 regmask=[r9] last>
current : <RefPosition #175 @252 ->#193 RefTypeKill <Reg:r10> BB08 regmask=[r10] last>
current : <RefPosition #176 @252 ->#194 RefTypeKill <Reg:r11> BB08 regmask=[r11] last>
current : <RefPosition #177 @256 ->#195 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB08 regmask=[rax]>
N255. V08(L8)
curr = 256 mapped = 255
BB09 [086..093), preds={BB07} succs={BB10}
<RefPosition #178 @257 RefTypeBB BB09 regmask=[]>
current : <RefPosition #179 @264 ->#180 RefTypeDef <Ivl:55> CNS_INT BB09 regmask=[rcx]>
N263. t263 = const(h) 0xD6273070 "Pass" REG NA
curr = 264 mapped = 263
current : <RefPosition #180 @265 RefTypeUse <Ivl:55> BB09 regmask=[rcx] last>
No tree node to write back to
current : <RefPosition #181 @266 ->#183 RefTypeDef <Ivl:56> IND BB09 regmask=[rcx]>
N265. t265 = indir
curr = 266 mapped = 265
current : <RefPosition #182 @267 ->#184 RefTypeFixedReg <Reg:rcx> BB09 regmask=[rcx]>
current : <RefPosition #183 @267 RefTypeUse <Ivl:56> BB09 regmask=[rcx] last fixed>
No tree node to write back to
current : <RefPosition #184 @268 ->#186 RefTypeFixedReg <Reg:rcx> BB09 regmask=[rcx]>
current : <RefPosition #185 @268 ->#187 RefTypeDef <Ivl:57> PUTARG_REG BB09 regmask=[rcx] fixed>
N267. t267 = putarg_reg
curr = 268 mapped = 267
current : <RefPosition #186 @271 ->#189 RefTypeFixedReg <Reg:rcx> BB09 regmask=[rcx]>
current : <RefPosition #187 @271 RefTypeUse <Ivl:57> BB09 regmask=[rcx] last fixed>
No tree node to write back to
current : <RefPosition #188 @272 ->#197 RefTypeKill <Reg:rax> BB09 regmask=[rax] last>
current : <RefPosition #189 @272 RefTypeKill <Reg:rcx> BB09 regmask=[rcx] last>
current : <RefPosition #190 @272 RefTypeKill <Reg:rdx> BB09 regmask=[rdx] last>
current : <RefPosition #191 @272 RefTypeKill <Reg:r8 > BB09 regmask=[r8] last>
current : <RefPosition #192 @272 RefTypeKill <Reg:r9 > BB09 regmask=[r9] last>
current : <RefPosition #193 @272 RefTypeKill <Reg:r10> BB09 regmask=[r10] last>
current : <RefPosition #194 @272 RefTypeKill <Reg:r11> BB09 regmask=[r11] last>
current : <RefPosition #195 @276 ->#198 RefTypeDef <Ivl:8 V08> STORE_LCL_VAR BB09 regmask=[rax]>
N275. V08(L8)
curr = 276 mapped = 275
BB10 [???..???) (return), preds={BB02,BB04,BB06,BB08,BB09} succs={}
<RefPosition #196 @277 RefTypeBB BB10 regmask=[]>
current : <RefPosition #197 @281 RefTypeFixedReg <Reg:rax> BB10 regmask=[rax]>
current : <RefPosition #198 @281 RefTypeUse <Ivl:8 V08> LCL_VAR BB10 regmask=[rax] last fixed>
N279. V08(L8)
curr = 281 mapped = 279
-----------------------
RESOLVING BB BOUNDARIES
-----------------------
Prior to Resolution
BB01 use def in out
{V02 V03}
{V02 V03 V04 V05 V06 V07 V15 V16 V17 V18 V19 V20}
{V02 V03}
{V05 V06 V07}
Var=Reg beg of BB01: none
Var=Reg end of BB01: V05=rdi V06=rbx V07=rax
BB02 use def in out
{}
{V08}
{}
{V08}
Var=Reg beg of BB02: none
Var=Reg end of BB02: V08=rax
BB03 use def in out
{V05}
{}
{V05 V06 V07}
{V06 V07}
Var=Reg beg of BB03: V05=rdi V06=rbx V07=rax
Var=Reg end of BB03: V06=rbx V07=rax
BB04 use def in out
{}
{V08}
{}
{V08}
Var=Reg beg of BB04: none
Var=Reg end of BB04: V08=rax
BB05 use def in out
{V06}
{}
{V06 V07}
{V07}
Var=Reg beg of BB05: V06=rbx V07=rax
Var=Reg end of BB05: V07=rax
BB06 use def in out
{}
{V08}
{}
{V08}
Var=Reg beg of BB06: none
Var=Reg end of BB06: V08=rax
BB07 use def in out
{V07}
{}
{V07}
{}
Var=Reg beg of BB07: V07=rax
Var=Reg end of BB07: none
BB08 use def in out
{}
{V08}
{}
{V08}
Var=Reg beg of BB08: none
Var=Reg end of BB08: V08=rax
BB09 use def in out
{}
{V08}
{}
{V08}
Var=Reg beg of BB09: none
Var=Reg end of BB09: V08=rax
BB10 use def in out
{V08}
{}
{V08}
{}
Var=Reg beg of BB10: V08=rax
Var=Reg end of BB10: none
RESOLVING EDGES
Trees after linear scan register allocator (LSRA)
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 0.5 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 0.5 [056..05A)-> BB05 ( cond ) i label target gcsafe
BB04 [0000026AC4437578] 1 BB03 0.5 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 0.5 [066..06A)-> BB07 ( cond ) i label target gcsafe
BB06 [0000026AC4437788] 1 BB05 0.5 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 0.5 [076..07A)-> BB09 ( cond ) i label target gcsafe
BB08 [0000026AC4437998] 1 BB07 0.5 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 0.5 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target gcsafe
-------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..04A) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01, stmt 1 (top level)
( 1, 3) [000143] ------------ * stmtExpr void (top level) (IL 0x000... ???)
N003 ( 1, 1) [000004] ------------ | /--* const long 10 REG NA $81
N005 ( 1, 3) [000142] DA--G------- \--* st.lclVar long V15 tmp7 d:3 rcx REG rcx RV
***** BB01, stmt 2 (top level)
( 1, 3) [000151] ------------ * stmtExpr void (top level) (IL 0x00A... ???)
N007 ( 1, 1) [000011] ------------ | /--* const long 20 REG NA $82
N009 ( 1, 3) [000150] DA--G------- \--* st.lclVar long V16 tmp8 d:3 rax REG rax RV
***** BB01, stmt 3 (top level)
( 10, 10) [000163] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N011 ( 3, 4) [000231] U---G--N---- | /--* &lclFld byref V02 loc2 ud:2->3[+0] Fseq[v1] REG rdx <l:$1c0, c:$1c1>
N013 ( 5, 7) [000351] ----G------- | /--* lea(b+0) byref REG NA
N015 ( 3, 2) [000235] -------N---- | +--* lclVar long V15 tmp7 u:3 rcx REG rcx RV $81
N017 ( 10, 10) [000347] ----G------- \--* storeIndir long REG NA
***** BB01, stmt 4 (top level)
( 10, 10) [000173] ------------ * stmtExpr void (top level) (IL 0x014... ???)
N019 ( 3, 4) [000241] U---G--N---- | /--* &lclFld byref V02 loc2 ud:3->4[+8] Fseq[v2] REG rdx <l:$1c2, c:$1c3>
N021 ( 5, 7) [000352] ----G------- | /--* lea(b+0) byref REG NA
N023 ( 3, 2) [000245] -------N---- | +--* lclVar long V16 tmp8 u:3 rax REG rax RV $82
N025 ( 10, 10) [000348] ----G------- \--* storeIndir long REG NA
***** BB01, stmt 5 (top level)
( 5, 4) [000213] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N027 ( 1, 1) [000248] -------N---- | /--* lclVar long V16 tmp8 u:3 rax (last use) REG rax RV $82
N029 ( 5, 4) [000249] DA---------- \--* st.lclVar long V19 tmp11 d:3 rax REG rax RV
***** BB01, stmt 6 (top level)
( 5, 4) [000219] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N031 ( 1, 1) [000251] -------N---- | /--* lclVar long V15 tmp7 u:3 rcx (last use) REG rcx RV $81
N033 ( 5, 4) [000252] DA---------- \--* st.lclVar long V20 tmp12 d:3 rcx REG rcx RV
***** BB01, stmt 7 (top level)
( 10, 10) [000197] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N035 ( 3, 4) [000255] U---G--N---- | /--* &lclFld byref V03 loc3 ud:2->3[+0] Fseq[v1] REG rdx <l:$1c4, c:$1c5>
N037 ( 5, 7) [000353] ----G------- | /--* lea(b+0) byref REG NA
N039 ( 3, 2) [000259] -------N---- | +--* lclVar long V19 tmp11 u:3 rax (last use) REG rax RV $82
N041 ( 10, 10) [000349] ----G------- \--* storeIndir long REG NA
***** BB01, stmt 8 (top level)
( 10, 10) [000207] ------------ * stmtExpr void (top level) (IL 0x01D... ???)
N043 ( 3, 4) [000265] U---G--N---- | /--* &lclFld byref V03 loc3 ud:3->4[+8] Fseq[v2] REG rax <l:$1c6, c:$1c7>
N045 ( 5, 7) [000354] ----G------- | /--* lea(b+0) byref REG NA
N047 ( 3, 2) [000269] -------N---- | +--* lclVar long V20 tmp12 u:3 rcx (last use) REG rcx RV $81
N049 ( 10, 10) [000350] ----G------- \--* storeIndir long REG NA
***** BB01, stmt 9 (top level)
( 33, 21) [000046] ------------ * stmtExpr void (top level) (IL 0x026... ???)
N051 ( 3, 2) [000039] -------N---- Source | /--* &lclVar byref V02 loc2 u:4 REG NA $2c1
N053 ( 3, 2) [000271] D------N---- Destination | +--* &lclVar byref V21 tmp13 REG NA
N057 ( 1, 1) [000273] ------------ | +--* const int 16 REG NA $44
N059 ( 9, 9) [000274] -A--G-----L- arg0 SETUP | /--* copyBlk void REG NA $VN.Void
N063 ( 3, 2) [000276] -------N---- | | /--* &lclVar byref V21 tmp13 REG rcx $1c8
N065 ( 3, 2) [000355] ------------ arg0 in rcx | +--* putarg_reg byref REG rcx
N069 ( 29, 18) [000040] --CXG------- | /--* call int Program.IsXGeater $380
N071 ( 33, 21) [000045] DACXG------- \--* st.lclVar int V04 loc4 d:3 rsi REG rsi RV
***** BB01, stmt 10 (top level)
( 33, 21) [000054] ------------ * stmtExpr void (top level) (IL 0x02E...0x034)
N073 ( 3, 2) [000047] -------N---- Source | /--* &lclVar byref V03 loc3 u:4 REG NA $2c3
N075 ( 3, 2) [000279] D------N---- Destination | +--* &lclVar byref V21 tmp13 REG NA
N079 ( 1, 1) [000281] ------------ | +--* const int 16 REG NA $44
N081 ( 9, 9) [000282] -A--G-----L- arg0 SETUP | /--* copyBlk void REG NA $VN.Void
N085 ( 3, 2) [000284] -------N---- | | /--* &lclVar byref V21 tmp13 REG rcx $1c9
N087 ( 3, 2) [000356] ------------ arg0 in rcx | +--* putarg_reg byref REG rcx
N091 ( 29, 18) [000048] --CXG------- | /--* call int Program.IsXGeater $382
N093 ( 33, 21) [000053] DACXG------- \--* st.lclVar int V05 loc5 d:3 rdi REG rdi RV
***** BB01, stmt 11 (top level)
( 33, 21) [000062] ------------ * stmtExpr void (top level) (IL 0x036...0x03C)
N095 ( 3, 2) [000055] -------N---- Source | /--* &lclVar byref V02 loc2 u:4 (last use) REG NA $2c1
N097 ( 3, 2) [000287] D------N---- Destination | +--* &lclVar byref V21 tmp13 REG NA
N101 ( 1, 1) [000289] ------------ | +--* const int 16 REG NA $44
N103 ( 9, 9) [000290] -A--G-----L- arg0 SETUP | /--* copyBlk void REG NA $VN.Void
N107 ( 3, 2) [000292] -------N---- | | /--* &lclVar byref V21 tmp13 REG rcx $1ca
N109 ( 3, 2) [000357] ------------ arg0 in rcx | +--* putarg_reg byref REG rcx
N113 ( 29, 18) [000056] --CXG------- | /--* call int Program.IsXGeater $384
N115 ( 33, 21) [000061] DACXG------- \--* st.lclVar int V06 loc6 d:3 rbx REG rbx RV
***** BB01, stmt 12 (top level)
( 33, 21) [000070] ------------ * stmtExpr void (top level) (IL 0x03E...0x044)
N117 ( 3, 2) [000063] -------N---- Source | /--* &lclVar byref V03 loc3 u:4 (last use) REG NA $2c3
N119 ( 3, 2) [000295] D------N---- Destination | +--* &lclVar byref V21 tmp13 REG NA
N123 ( 1, 1) [000297] ------------ | +--* const int 16 REG NA $44
N125 ( 9, 9) [000298] -A--G-----L- arg0 SETUP | /--* copyBlk void REG NA $VN.Void
N129 ( 3, 2) [000300] -------N---- | | /--* &lclVar byref V21 tmp13 REG rcx $1cb
N131 ( 3, 2) [000358] ------------ arg0 in rcx | +--* putarg_reg byref REG rcx
N135 ( 29, 18) [000064] --CXG------- | /--* call int Program.IsXGeater $386
N137 ( 33, 21) [000069] DACXG------- \--* st.lclVar int V07 loc7 d:3 rax REG rax RV
***** BB01, stmt 13 (top level)
( 7, 6) [000075] ------------ * stmtExpr void (top level) (IL 0x046...0x048)
N139 ( 3, 2) [000071] ------------ | /--* lclVar int V04 loc4 u:3 rsi (last use) REG rsi RV $380
N141 ( 1, 1) [000072] ------------ | +--* const int 0 REG NA $40
N143 ( 5, 4) [000073] J------N---- | /--* == int REG NA $400
N145 ( 7, 6) [000074] ------------ \--* jmpTrue void REG NA
------------ BB02 [04A..056) -> BB10 (always), preds={BB01} succs={BB10}
***** BB02, stmt 14 (top level)
( 19, 18) [000130] ------------ * stmtExpr void (top level) (IL 0x04A...0x055)
N149 ( 0, 0) [000305] ----------L- arg0 SETUP | /--* argPlace ref REG NA $3d1
N153 ( 3, 10) [000303] ------------ | | /--* const(h) long 0xD6273068 "Fail" REG rcx $186
N155 ( 5, 12) [000304] ----G------- | | /--* indir ref REG rcx $3d1
N157 ( 5, 12) [000359] ----G------- arg0 in rcx | +--* putarg_reg ref REG rcx
N161 ( 19, 18) [000128] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB02, stmt 15 (top level)
( 1, 3) [000133] ------------ * stmtExpr void (top level) (IL 0x054... ???)
N163 ( 1, 1) [000131] ------------ | /--* const int -1 REG NA $41
N165 ( 1, 3) [000308] DA-----N---- \--* st.lclVar int V08 tmp0 d:7 rax REG rax RV
------------ BB03 [056..05A) -> BB05 (cond), preds={BB01} succs={BB04,BB05}
***** BB03, stmt 16 (top level)
( 7, 6) [000081] ------------ * stmtExpr void (top level) (IL 0x056...0x058)
N169 ( 3, 2) [000077] ------------ | /--* lclVar int V05 loc5 u:3 rdi (last use) REG rdi RV $382
N171 ( 1, 1) [000078] ------------ | +--* const int 0 REG NA $40
N173 ( 5, 4) [000079] J------N---- | /--* != int REG NA $401
N175 ( 7, 6) [000080] ------------ \--* jmpTrue void REG NA
------------ BB04 [05A..066) -> BB10 (always), preds={BB03} succs={BB10}
***** BB04, stmt 17 (top level)
( 19, 18) [000122] ------------ * stmtExpr void (top level) (IL 0x05A...0x065)
N179 ( 0, 0) [000311] ----------L- arg0 SETUP | /--* argPlace ref REG NA $3ce
N183 ( 3, 10) [000309] ------------ | | /--* const(h) long 0xD6273068 "Fail" REG rcx $186
N185 ( 5, 12) [000310] ----G------- | | /--* indir ref REG rcx $3ce
N187 ( 5, 12) [000360] ----G------- arg0 in rcx | +--* putarg_reg ref REG rcx
N191 ( 19, 18) [000120] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB04, stmt 18 (top level)
( 1, 3) [000125] ------------ * stmtExpr void (top level) (IL 0x064... ???)
N193 ( 1, 1) [000123] ------------ | /--* const int -1 REG NA $41
N195 ( 1, 3) [000314] DA-----N---- \--* st.lclVar int V08 tmp0 d:6 rax REG rax RV
------------ BB05 [066..06A) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
***** BB05, stmt 19 (top level)
( 7, 6) [000087] ------------ * stmtExpr void (top level) (IL 0x066...0x068)
N199 ( 3, 2) [000083] ------------ | /--* lclVar int V06 loc6 u:3 rbx (last use) REG rbx RV $384
N201 ( 1, 1) [000084] ------------ | +--* const int 0 REG NA $40
N203 ( 5, 4) [000085] J------N---- | /--* == int REG NA $402
N205 ( 7, 6) [000086] ------------ \--* jmpTrue void REG NA
------------ BB06 [06A..076) -> BB10 (always), preds={BB05} succs={BB10}
***** BB06, stmt 20 (top level)
( 19, 18) [000114] ------------ * stmtExpr void (top level) (IL 0x06A...0x075)
N209 ( 0, 0) [000317] ----------L- arg0 SETUP | /--* argPlace ref REG NA $3cb
N213 ( 3, 10) [000315] ------------ | | /--* const(h) long 0xD6273068 "Fail" REG rcx $186
N215 ( 5, 12) [000316] ----G------- | | /--* indir ref REG rcx $3cb
N217 ( 5, 12) [000361] ----G------- arg0 in rcx | +--* putarg_reg ref REG rcx
N221 ( 19, 18) [000112] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB06, stmt 21 (top level)
( 1, 3) [000117] ------------ * stmtExpr void (top level) (IL 0x074... ???)
N223 ( 1, 1) [000115] ------------ | /--* const int -1 REG NA $41
N225 ( 1, 3) [000320] DA-----N---- \--* st.lclVar int V08 tmp0 d:5 rax REG rax RV
------------ BB07 [076..07A) -> BB09 (cond), preds={BB05} succs={BB08,BB09}
***** BB07, stmt 22 (top level)
( 7, 6) [000093] ------------ * stmtExpr void (top level) (IL 0x076...0x078)
N229 ( 3, 2) [000089] ------------ | /--* lclVar int V07 loc7 u:3 rax (last use) REG rax RV $386
N231 ( 1, 1) [000090] ------------ | +--* const int 0 REG NA $40
N233 ( 5, 4) [000091] J------N---- | /--* != int REG NA $403
N235 ( 7, 6) [000092] ------------ \--* jmpTrue void REG NA
------------ BB08 [07A..086) -> BB10 (always), preds={BB07} succs={BB10}
***** BB08, stmt 23 (top level)
( 19, 18) [000106] ------------ * stmtExpr void (top level) (IL 0x07A...0x085)
N239 ( 0, 0) [000323] ----------L- arg0 SETUP | /--* argPlace ref REG NA $3c8
N243 ( 3, 10) [000321] ------------ | | /--* const(h) long 0xD6273068 "Fail" REG rcx $186
N245 ( 5, 12) [000322] ----G------- | | /--* indir ref REG rcx $3c8
N247 ( 5, 12) [000362] ----G------- arg0 in rcx | +--* putarg_reg ref REG rcx
N251 ( 19, 18) [000104] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB08, stmt 24 (top level)
( 1, 3) [000109] ------------ * stmtExpr void (top level) (IL 0x084... ???)
N253 ( 1, 1) [000107] ------------ | /--* const int -1 REG NA $41
N255 ( 1, 3) [000326] DA-----N---- \--* st.lclVar int V08 tmp0 d:3 rax REG rax RV
------------ BB09 [086..093), preds={BB07} succs={BB10}
***** BB09, stmt 25 (top level)
( 19, 18) [000098] ------------ * stmtExpr void (top level) (IL 0x086...0x092)
N259 ( 0, 0) [000329] ----------L- arg0 SETUP | /--* argPlace ref REG NA $3c5
N263 ( 3, 10) [000327] ------------ | | /--* const(h) long 0xD6273070 "Pass" REG rcx $184
N265 ( 5, 12) [000328] ----G------- | | /--* indir ref REG rcx $3c5
N267 ( 5, 12) [000363] ----G------- arg0 in rcx | +--* putarg_reg ref REG rcx
N271 ( 19, 18) [000096] --C-G------- \--* call void System.Console.WriteLine $VN.Void
***** BB09, stmt 26 (top level)
( 1, 3) [000101] ------------ * stmtExpr void (top level) (IL 0x090... ???)
N273 ( 1, 1) [000099] ------------ | /--* const int 100 REG NA $45
N275 ( 1, 3) [000332] DA-----N---- \--* st.lclVar int V08 tmp0 d:4 rax REG rax RV
------------ BB10 [???..???) (return), preds={BB02,BB04,BB06,BB08,BB09} succs={}
***** BB10, stmt 27 (top level)
( 6, 6) [000336] ------------ * stmtExpr void (top level) (IL ???... ???)
N001 ( 0, 0) [000345] ------------ List Item 0 | /--* phiArg int V08 tmp0 u:7 rax
N002 ( 0, 0) [000343] ------------ List Item 1 | +--* phiArg int V08 tmp0 u:6 rax $41
N003 ( 0, 0) [000341] ------------ List Item 2 | +--* phiArg int V08 tmp0 u:5 rax $41
N004 ( 0, 0) [000339] ------------ List Item 3 | +--* phiArg int V08 tmp0 u:4 rax $45
N005 ( 0, 0) [000337] ------------ List Item 4 | +--* phiArg int V08 tmp0 u:3 rax $41
N011 ( 6, 6) [000334] ------------ | * phi int
N001 ( 0, 0) [000345] ------------ * phiArg int V08 tmp0 u:7 rax
N002 ( 0, 0) [000343] ------------ * phiArg int V08 tmp0 u:6 rax $41
N003 ( 0, 0) [000341] ------------ * phiArg int V08 tmp0 u:5 rax $41
N004 ( 0, 0) [000339] ------------ * phiArg int V08 tmp0 u:4 rax $45
N005 ( 0, 0) [000337] ------------ * phiArg int V08 tmp0 u:3 rax $41
N013 ( 6, 6) [000335] DA---------- \--* st.lclVar int V08 tmp0 d:8 rax
***** BB10, stmt 28 (top level)
( 2, 2) [000136] ------------ * stmtExpr void (top level) (IL ???... ???)
N279 ( 1, 1) [000134] -------N---- | /--* lclVar int V08 tmp0 u:8 rax (last use) REG rax RV $440
N281 ( 2, 2) [000135] ------------ \--* return int REG NA $38d
-------------------------------------------------------------------------------------------------------------------
Final allocation
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
0.#0 BB1 PredBB0 | | | | |----|----| | | | | | |
6.#1 V15 Def Alloc rcx | |V15a| | |----|----| | | | | | |
10.#2 V16 Def Alloc rax |V16a|V15a| | |----|----| | | | | | |
12.#3 I23 Def Alloc rdx |V16a|V15a|I23a| |----|----| | | | | | |
17.#4 I23 Use * Keep rdx |V16a|V15a|I23i| |----|----| | | | | | |
17.#5 V15 Use Keep rcx |V16a|V15a| | |----|----| | | | | | |
20.#6 I24 Def Alloc rdx |V16a|V15a|I24a| |----|----| | | | | | |
25.#7 I24 Use * Keep rdx |V16a|V15a|I24i| |----|----| | | | | | |
25.#8 V16 Use Keep rax |V16a|V15a| | |----|----| | | | | | |
29.#9 V16 Use * Keep rax |V16i|V15a| | |----|----| | | | | | |
30.#10 V19 Def Alloc rax |V19a|V15a| | |----|----| | | | | | |
33.#11 V15 Use * Keep rcx |V19a|V15i| | |----|----| | | | | | |
34.#12 V20 Def Alloc rcx |V19a|V20a| | |----|----| | | | | | |
36.#13 I25 Def Alloc rdx |V19a|V20a|I25a| |----|----| | | | | | |
41.#14 I25 Use * Keep rdx |V19a|V20a|I25i| |----|----| | | | | | |
41.#15 V19 Use * Keep rax |V19i|V20a| | |----|----| | | | | | |
44.#16 I26 Def Alloc rax |I26a|V20a| | |----|----| | | | | | |
49.#17 I26 Use * Keep rax |I26i|V20a| | |----|----| | | | | | |
49.#18 V20 Use * Keep rcx | |V20i| | |----|----| | | | | | |
59.#19 I27 Def Alloc mm0 | | | | |----|----| | | | | | |
59.#20 I27 Use * Keep mm0 | | | | |----|----| | | | | | |
64.#21 I28 Def Alloc rcx | |I28a| | |----|----| | | | | | |
65.#22 rcx Fixd Keep rcx | |I28a| | |----|----| | | | | | |
65.#23 I28 Use * Keep rcx | |I28i| | |----|----| | | | | | |
66.#24 rcx Fixd Keep rcx | | | | |----|----| | | | | | |
66.#25 I29 Def Alloc rcx | |I29a| | |----|----| | | | | | |
69.#26 rcx Fixd Keep rcx | |I29a| | |----|----| | | | | | |
69.#27 I29 Use * Keep rcx | |I29i| | |----|----| | | | | | |
70.#28 rax Kill Keep rax | | | | |----|----| | | | | | |
70.#29 rcx Kill Keep rcx | | | | |----|----| | | | | | |
70.#30 rdx Kill Keep rdx | | | | |----|----| | | | | | |
70.#31 r8 Kill Keep r8 | | | | |----|----| | | | | | |
70.#32 r9 Kill Keep r9 | | | | |----|----| | | | | | |
70.#33 r10 Kill Keep r10 | | | | |----|----| | | | | | |
70.#34 r11 Kill Keep r11 | | | | |----|----| | | | | | |
70.#35 rax Fixd Keep rax | | | | |----|----| | | | | | |
70.#36 I30 Def Alloc rax |I30a| | | |----|----| | | | | | |
71.#37 I30 Use * Keep rax |I30i| | | |----|----| | | | | | |
72.#38 V4 Def Alloc rsi | | | | |----|----|V4 a| | | | | |
81.#39 I31 Def Alloc mm0 | | | | |----|----|V4 a| | | | | |
81.#40 I31 Use * Keep mm0 | | | | |----|----|V4 a| | | | | |
86.#41 I32 Def Alloc rcx | |I32a| | |----|----|V4 a| | | | | |
87.#42 rcx Fixd Keep rcx | |I32a| | |----|----|V4 a| | | | | |
87.#43 I32 Use * Keep rcx | |I32i| | |----|----|V4 a| | | | | |
88.#44 rcx Fixd Keep rcx | | | | |----|----|V4 a| | | | | |
88.#45 I33 Def Alloc rcx | |I33a| | |----|----|V4 a| | | | | |
91.#46 rcx Fixd Keep rcx | |I33a| | |----|----|V4 a| | | | | |
91.#47 I33 Use * Keep rcx | |I33i| | |----|----|V4 a| | | | | |
92.#48 rax Kill Keep rax | | | | |----|----|V4 a| | | | | |
92.#49 rcx Kill Keep rcx | | | | |----|----|V4 a| | | | | |
92.#50 rdx Kill Keep rdx | | | | |----|----|V4 a| | | | | |
92.#51 r8 Kill Keep r8 | | | | |----|----|V4 a| | | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
92.#52 r9 Kill Keep r9 | | | | |----|----|V4 a| | | | | |
92.#53 r10 Kill Keep r10 | | | | |----|----|V4 a| | | | | |
92.#54 r11 Kill Keep r11 | | | | |----|----|V4 a| | | | | |
92.#55 rax Fixd Keep rax | | | | |----|----|V4 a| | | | | |
92.#56 I34 Def Alloc rax |I34a| | | |----|----|V4 a| | | | | |
93.#57 I34 Use * Keep rax |I34i| | | |----|----|V4 a| | | | | |
94.#58 V5 Def Alloc rdi | | | | |----|----|V4 a|V5 a| | | | |
103.#59 I35 Def Alloc mm0 | | | | |----|----|V4 a|V5 a| | | | |
103.#60 I35 Use * Keep mm0 | | | | |----|----|V4 a|V5 a| | | | |
108.#61 I36 Def Alloc rcx | |I36a| | |----|----|V4 a|V5 a| | | | |
109.#62 rcx Fixd Keep rcx | |I36a| | |----|----|V4 a|V5 a| | | | |
109.#63 I36 Use * Keep rcx | |I36i| | |----|----|V4 a|V5 a| | | | |
110.#64 rcx Fixd Keep rcx | | | | |----|----|V4 a|V5 a| | | | |
110.#65 I37 Def Alloc rcx | |I37a| | |----|----|V4 a|V5 a| | | | |
113.#66 rcx Fixd Keep rcx | |I37a| | |----|----|V4 a|V5 a| | | | |
113.#67 I37 Use * Keep rcx | |I37i| | |----|----|V4 a|V5 a| | | | |
114.#68 rax Kill Keep rax | | | | |----|----|V4 a|V5 a| | | | |
114.#69 rcx Kill Keep rcx | | | | |----|----|V4 a|V5 a| | | | |
114.#70 rdx Kill Keep rdx | | | | |----|----|V4 a|V5 a| | | | |
114.#71 r8 Kill Keep r8 | | | | |----|----|V4 a|V5 a| | | | |
114.#72 r9 Kill Keep r9 | | | | |----|----|V4 a|V5 a| | | | |
114.#73 r10 Kill Keep r10 | | | | |----|----|V4 a|V5 a| | | | |
114.#74 r11 Kill Keep r11 | | | | |----|----|V4 a|V5 a| | | | |
114.#75 rax Fixd Keep rax | | | | |----|----|V4 a|V5 a| | | | |
114.#76 I38 Def Alloc rax |I38a| | | |----|----|V4 a|V5 a| | | | |
115.#77 I38 Use * Keep rax |I38i| | | |----|----|V4 a|V5 a| | | | |
116.#78 V6 Def Alloc rbx | | | |V6 a|----|----|V4 a|V5 a| | | | |
125.#79 I39 Def Alloc mm0 | | | |V6 a|----|----|V4 a|V5 a| | | | |
125.#80 I39 Use * Keep mm0 | | | |V6 a|----|----|V4 a|V5 a| | | | |
130.#81 I40 Def Alloc rcx | |I40a| |V6 a|----|----|V4 a|V5 a| | | | |
131.#82 rcx Fixd Keep rcx | |I40a| |V6 a|----|----|V4 a|V5 a| | | | |
131.#83 I40 Use * Keep rcx | |I40i| |V6 a|----|----|V4 a|V5 a| | | | |
132.#84 rcx Fixd Keep rcx | | | |V6 a|----|----|V4 a|V5 a| | | | |
132.#85 I41 Def Alloc rcx | |I41a| |V6 a|----|----|V4 a|V5 a| | | | |
135.#86 rcx Fixd Keep rcx | |I41a| |V6 a|----|----|V4 a|V5 a| | | | |
135.#87 I41 Use * Keep rcx | |I41i| |V6 a|----|----|V4 a|V5 a| | | | |
136.#88 rax Kill Keep rax | | | |V6 a|----|----|V4 a|V5 a| | | | |
136.#89 rcx Kill Keep rcx | | | |V6 a|----|----|V4 a|V5 a| | | | |
136.#90 rdx Kill Keep rdx | | | |V6 a|----|----|V4 a|V5 a| | | | |
136.#91 r8 Kill Keep r8 | | | |V6 a|----|----|V4 a|V5 a| | | | |
136.#92 r9 Kill Keep r9 | | | |V6 a|----|----|V4 a|V5 a| | | | |
136.#93 r10 Kill Keep r10 | | | |V6 a|----|----|V4 a|V5 a| | | | |
136.#94 r11 Kill Keep r11 | | | |V6 a|----|----|V4 a|V5 a| | | | |
136.#95 rax Fixd Keep rax | | | |V6 a|----|----|V4 a|V5 a| | | | |
136.#96 I42 Def Alloc rax |I42a| | |V6 a|----|----|V4 a|V5 a| | | | |
137.#97 I42 Use * Keep rax |I42i| | |V6 a|----|----|V4 a|V5 a| | | | |
138.#98 V7 Def Alloc rax |V7 a| | |V6 a|----|----|V4 a|V5 a| | | | |
143.#99 V4 Use * Keep rsi |V7 a| | |V6 a|----|----|V4 i|V5 a| | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
147.#100 BB2 PredBB1 | | | | |----|----| | | | | | |
154.#101 C43 Def Alloc rcx | |C43a| | |----|----| | | | | | |
155.#102 C43 Use * Keep rcx | |C43i| | |----|----| | | | | | |
156.#103 I44 Def Alloc rcx | |I44a| | |----|----| | | | | | |
157.#104 rcx Fixd Keep rcx | |I44a| | |----|----| | | | | | |
157.#105 I44 Use * Keep rcx | |I44i| | |----|----| | | | | | |
158.#106 rcx Fixd Keep rcx | | | | |----|----| | | | | | |
158.#107 I45 Def Alloc rcx | |I45a| | |----|----| | | | | | |
161.#108 rcx Fixd Keep rcx | |I45a| | |----|----| | | | | | |
161.#109 I45 Use * Keep rcx | |I45i| | |----|----| | | | | | |
162.#110 rax Kill Keep rax | | | | |----|----| | | | | | |
162.#111 rcx Kill Keep rcx | | | | |----|----| | | | | | |
162.#112 rdx Kill Keep rdx | | | | |----|----| | | | | | |
162.#113 r8 Kill Keep r8 | | | | |----|----| | | | | | |
162.#114 r9 Kill Keep r9 | | | | |----|----| | | | | | |
162.#115 r10 Kill Keep r10 | | | | |----|----| | | | | | |
162.#116 r11 Kill Keep r11 | | | | |----|----| | | | | | |
166.#117 V8 Def Alloc rax |V8 a| | | |----|----| | | | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
167.#118 BB3 PredBB1 |V7 a| | |V6 a|----|----| |V5 a| | | | |
173.#119 V5 Use * Keep rdi |V7 a| | |V6 a|----|----| |V5 i| | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
177.#120 BB4 PredBB3 | | | | |----|----| | | | | | |
184.#121 C46 Def Alloc rcx | |C46a| | |----|----| | | | | | |
185.#122 C46 Use * Keep rcx | |C46i| | |----|----| | | | | | |
186.#123 I47 Def Alloc rcx | |I47a| | |----|----| | | | | | |
187.#124 rcx Fixd Keep rcx | |I47a| | |----|----| | | | | | |
187.#125 I47 Use * Keep rcx | |I47i| | |----|----| | | | | | |
188.#126 rcx Fixd Keep rcx | | | | |----|----| | | | | | |
188.#127 I48 Def Alloc rcx | |I48a| | |----|----| | | | | | |
191.#128 rcx Fixd Keep rcx | |I48a| | |----|----| | | | | | |
191.#129 I48 Use * Keep rcx | |I48i| | |----|----| | | | | | |
192.#130 rax Kill Keep rax | | | | |----|----| | | | | | |
192.#131 rcx Kill Keep rcx | | | | |----|----| | | | | | |
192.#132 rdx Kill Keep rdx | | | | |----|----| | | | | | |
192.#133 r8 Kill Keep r8 | | | | |----|----| | | | | | |
192.#134 r9 Kill Keep r9 | | | | |----|----| | | | | | |
192.#135 r10 Kill Keep r10 | | | | |----|----| | | | | | |
192.#136 r11 Kill Keep r11 | | | | |----|----| | | | | | |
196.#137 V8 Def Alloc rax |V8 a| | | |----|----| | | | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
197.#138 BB5 PredBB3 |V7 a| | |V6 a|----|----| | | | | | |
203.#139 V6 Use * Keep rbx |V7 a| | |V6 i|----|----| | | | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
207.#140 BB6 PredBB5 | | | | |----|----| | | | | | |
214.#141 C49 Def Alloc rcx | |C49a| | |----|----| | | | | | |
215.#142 C49 Use * Keep rcx | |C49i| | |----|----| | | | | | |
216.#143 I50 Def Alloc rcx | |I50a| | |----|----| | | | | | |
217.#144 rcx Fixd Keep rcx | |I50a| | |----|----| | | | | | |
217.#145 I50 Use * Keep rcx | |I50i| | |----|----| | | | | | |
218.#146 rcx Fixd Keep rcx | | | | |----|----| | | | | | |
218.#147 I51 Def Alloc rcx | |I51a| | |----|----| | | | | | |
221.#148 rcx Fixd Keep rcx | |I51a| | |----|----| | | | | | |
221.#149 I51 Use * Keep rcx | |I51i| | |----|----| | | | | | |
222.#150 rax Kill Keep rax | | | | |----|----| | | | | | |
222.#151 rcx Kill Keep rcx | | | | |----|----| | | | | | |
222.#152 rdx Kill Keep rdx | | | | |----|----| | | | | | |
222.#153 r8 Kill Keep r8 | | | | |----|----| | | | | | |
222.#154 r9 Kill Keep r9 | | | | |----|----| | | | | | |
222.#155 r10 Kill Keep r10 | | | | |----|----| | | | | | |
222.#156 r11 Kill Keep r11 | | | | |----|----| | | | | | |
226.#157 V8 Def Alloc rax |V8 a| | | |----|----| | | | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
227.#158 BB7 PredBB5 |V7 a| | | |----|----| | | | | | |
233.#159 V7 Use * Keep rax |V7 i| | | |----|----| | | | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
237.#160 BB8 PredBB7 | | | | |----|----| | | | | | |
244.#161 C52 Def Alloc rcx | |C52a| | |----|----| | | | | | |
245.#162 C52 Use * Keep rcx | |C52i| | |----|----| | | | | | |
246.#163 I53 Def Alloc rcx | |I53a| | |----|----| | | | | | |
247.#164 rcx Fixd Keep rcx | |I53a| | |----|----| | | | | | |
247.#165 I53 Use * Keep rcx | |I53i| | |----|----| | | | | | |
248.#166 rcx Fixd Keep rcx | | | | |----|----| | | | | | |
248.#167 I54 Def Alloc rcx | |I54a| | |----|----| | | | | | |
251.#168 rcx Fixd Keep rcx | |I54a| | |----|----| | | | | | |
251.#169 I54 Use * Keep rcx | |I54i| | |----|----| | | | | | |
252.#170 rax Kill Keep rax | | | | |----|----| | | | | | |
252.#171 rcx Kill Keep rcx | | | | |----|----| | | | | | |
252.#172 rdx Kill Keep rdx | | | | |----|----| | | | | | |
252.#173 r8 Kill Keep r8 | | | | |----|----| | | | | | |
252.#174 r9 Kill Keep r9 | | | | |----|----| | | | | | |
252.#175 r10 Kill Keep r10 | | | | |----|----| | | | | | |
252.#176 r11 Kill Keep r11 | | | | |----|----| | | | | | |
256.#177 V8 Def Alloc rax |V8 a| | | |----|----| | | | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
257.#178 BB9 PredBB7 | | | | |----|----| | | | | | |
264.#179 C55 Def Alloc rcx | |C55a| | |----|----| | | | | | |
265.#180 C55 Use * Keep rcx | |C55i| | |----|----| | | | | | |
266.#181 I56 Def Alloc rcx | |I56a| | |----|----| | | | | | |
267.#182 rcx Fixd Keep rcx | |I56a| | |----|----| | | | | | |
267.#183 I56 Use * Keep rcx | |I56i| | |----|----| | | | | | |
268.#184 rcx Fixd Keep rcx | | | | |----|----| | | | | | |
268.#185 I57 Def Alloc rcx | |I57a| | |----|----| | | | | | |
271.#186 rcx Fixd Keep rcx | |I57a| | |----|----| | | | | | |
271.#187 I57 Use * Keep rcx | |I57i| | |----|----| | | | | | |
272.#188 rax Kill Keep rax | | | | |----|----| | | | | | |
272.#189 rcx Kill Keep rcx | | | | |----|----| | | | | | |
272.#190 rdx Kill Keep rdx | | | | |----|----| | | | | | |
272.#191 r8 Kill Keep r8 | | | | |----|----| | | | | | |
272.#192 r9 Kill Keep r9 | | | | |----|----| | | | | | |
272.#193 r10 Kill Keep r10 | | | | |----|----| | | | | | |
272.#194 r11 Kill Keep r11 | | | | |----|----| | | | | | |
276.#195 V8 Def Alloc rax |V8 a| | | |----|----| | | | | | |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rsp |rbp |rsi |rdi |r8 |r9 |r10 |r11 |
--------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+
277.#196 BB10 PredBB2 |V8 a| | | |----|----| | | | | | |
281.#197 rax Fixd Keep rax |V8 a| | | |----|----| | | | | | |
281.#198 V8 Use * Keep rax |V8 i| | | |----|----| | | | | | |
Recording the maximum number of concurrent spills:
<UNDEF>: 0
void: 0
bool: 0
byte: 0
ubyte: 0
char: 0
short: 0
ushort: 0
int: 0
uint: 0
long: 0
ulong: 0
float: 0
double: 0
ref: 0
byref: 0
array: 0
struct: 0
blk: 0
lclBlk: 0
pointer: 0
function: 0
simd8: 0
simd12: 0
simd16: 0
simd32: 0
unknown: 0
TUPLE STYLE DUMP WITH REGISTER ASSIGNMENTS
Incoming Parameters:
BB01 [000..04A) -> BB03 (cond), preds={} succs={BB02,BB03}
=====
N003. const 10 REG NA
* N005. V15(rcx)
N007. const 20 REG NA
* N009. V16(rax)
N011. rdx = &lclFld V02 loc2 ud:2->3[+0] Fseq[v1] REG rdx
N013. lea(b+0)
N015. V15(rcx)
N017. storeIndir; rdx,rcx
N019. rdx = &lclFld V02 loc2 ud:3->4[+8] Fseq[v2] REG rdx
N021. lea(b+0)
N023. V16(rax)
N025. storeIndir; rdx,rax
N027. V16(rax*)
* N029. V19(rax); rax*
N031. V15(rcx*)
* N033. V20(rcx); rcx*
N035. rdx = &lclFld V03 loc3 ud:2->3[+0] Fseq[v1] REG rdx
N037. lea(b+0)
N039. V19(rax*)
N041. storeIndir; rdx,rax*
N043. rax = &lclFld V03 loc3 ud:3->4[+8] Fseq[v2] REG rax
N045. lea(b+0)
N047. V20(rcx*)
N049. storeIndir; rax,rcx*
N051. &lclVar V02 loc2 u:4 REG NA
N053. &lclVar V21 tmp13 REG NA
N057. const 16 REG NA
N059. copyBlk
internal (1): [mm0]
N063. rcx = &lclVar V21 tmp13 REG rcx
N065. rcx = putarg_reg; rcx
N069. rax = call ; rcx
* N071. V04(rsi); rax
N073. &lclVar V03 loc3 u:4 REG NA
N075. &lclVar V21 tmp13 REG NA
N079. const 16 REG NA
N081. copyBlk
internal (1): [mm0]
N085. rcx = &lclVar V21 tmp13 REG rcx
N087. rcx = putarg_reg; rcx
N091. rax = call ; rcx
* N093. V05(rdi); rax
N095. &lclVar V02 loc2 u:4 (last use) REG NA
N097. &lclVar V21 tmp13 REG NA
N101. const 16 REG NA
N103. copyBlk
internal (1): [mm0]
N107. rcx = &lclVar V21 tmp13 REG rcx
N109. rcx = putarg_reg; rcx
N113. rax = call ; rcx
* N115. V06(rbx); rax
N117. &lclVar V03 loc3 u:4 (last use) REG NA
N119. &lclVar V21 tmp13 REG NA
N123. const 16 REG NA
N125. copyBlk
internal (1): [mm0]
N129. rcx = &lclVar V21 tmp13 REG rcx
N131. rcx = putarg_reg; rcx
N135. rax = call ; rcx
* N137. V07(rax); rax
N139. V04(rsi*)
N141. const 0 REG NA
N143. == ; rsi*
N145. jmpTrue
Var=Reg end of BB01: V05=rdi V06=rbx V07=rax
BB02 [04A..056) -> BB10 (always), preds={BB01} succs={BB10}
=====
Predecessor for variable locations: BB01
Var=Reg beg of BB02: none
N153. rcx = const(h) 0xD6273068 "Fail" REG rcx
N155. rcx = indir ; rcx
N157. rcx = putarg_reg; rcx
N161. call ; rcx
N163. const -1 REG NA
* N165. V08(rax)
Var=Reg end of BB02: V08=rax
BB03 [056..05A) -> BB05 (cond), preds={BB01} succs={BB04,BB05}
=====
Predecessor for variable locations: BB01
Var=Reg beg of BB03: V05=rdi V06=rbx V07=rax
N169. V05(rdi*)
N171. const 0 REG NA
N173. != ; rdi*
N175. jmpTrue
Var=Reg end of BB03: V06=rbx V07=rax
BB04 [05A..066) -> BB10 (always), preds={BB03} succs={BB10}
=====
Predecessor for variable locations: BB03
Var=Reg beg of BB04: none
N183. rcx = const(h) 0xD6273068 "Fail" REG rcx
N185. rcx = indir ; rcx
N187. rcx = putarg_reg; rcx
N191. call ; rcx
N193. const -1 REG NA
* N195. V08(rax)
Var=Reg end of BB04: V08=rax
BB05 [066..06A) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
=====
Predecessor for variable locations: BB03
Var=Reg beg of BB05: V06=rbx V07=rax
N199. V06(rbx*)
N201. const 0 REG NA
N203. == ; rbx*
N205. jmpTrue
Var=Reg end of BB05: V07=rax
BB06 [06A..076) -> BB10 (always), preds={BB05} succs={BB10}
=====
Predecessor for variable locations: BB05
Var=Reg beg of BB06: none
N213. rcx = const(h) 0xD6273068 "Fail" REG rcx
N215. rcx = indir ; rcx
N217. rcx = putarg_reg; rcx
N221. call ; rcx
N223. const -1 REG NA
* N225. V08(rax)
Var=Reg end of BB06: V08=rax
BB07 [076..07A) -> BB09 (cond), preds={BB05} succs={BB08,BB09}
=====
Predecessor for variable locations: BB05
Var=Reg beg of BB07: V07=rax
N229. V07(rax*)
N231. const 0 REG NA
N233. != ; rax*
N235. jmpTrue
Var=Reg end of BB07: none
BB08 [07A..086) -> BB10 (always), preds={BB07} succs={BB10}
=====
Predecessor for variable locations: BB07
Var=Reg beg of BB08: none
N243. rcx = const(h) 0xD6273068 "Fail" REG rcx
N245. rcx = indir ; rcx
N247. rcx = putarg_reg; rcx
N251. call ; rcx
N253. const -1 REG NA
* N255. V08(rax)
Var=Reg end of BB08: V08=rax
BB09 [086..093), preds={BB07} succs={BB10}
=====
Predecessor for variable locations: BB07
Var=Reg beg of BB09: none
N263. rcx = const(h) 0xD6273070 "Pass" REG rcx
N265. rcx = indir ; rcx
N267. rcx = putarg_reg; rcx
N271. call ; rcx
N273. const 100 REG NA
* N275. V08(rax)
Var=Reg end of BB09: V08=rax
BB10 [???..???) (return), preds={BB02,BB04,BB06,BB08,BB09} succs={}
=====
Predecessor for variable locations: BB02
Var=Reg beg of BB10: V08=rax
N279. V08(rax*)
N281. return ; rax*
Var=Reg end of BB10: none
*************** In genGenerateCode()
-------------------------------------------------------------------------------------------------------------------------------------
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags]
-------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000026AC4437260] 1 1 [000..04A)-> BB03 ( cond ) i label target gcsafe
BB02 [0000026AC4437368] 1 BB01 0.5 [04A..056)-> BB10 (always) i gcsafe
BB03 [0000026AC4437470] 1 BB01 0.5 [056..05A)-> BB05 ( cond ) i label target gcsafe
BB04 [0000026AC4437578] 1 BB03 0.5 [05A..066)-> BB10 (always) i gcsafe
BB05 [0000026AC4437680] 1 BB03 0.5 [066..06A)-> BB07 ( cond ) i label target gcsafe
BB06 [0000026AC4437788] 1 BB05 0.5 [06A..076)-> BB10 (always) i gcsafe
BB07 [0000026AC4437890] 1 BB05 0.5 [076..07A)-> BB09 ( cond ) i label target gcsafe
BB08 [0000026AC4437998] 1 BB07 0.5 [07A..086)-> BB10 (always) i gcsafe
BB09 [0000026AC4437AA0] 1 BB07 0.5 [086..093) i label target gcsafe
BB10 [0000026AC443D0E8] 5 BB02,BB04,BB06,BB08,BB09 1 [???..???) (return) keep internal label target gcsafe
-------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
Finalizing stack frame
Recording Var Locations at start of BB01
<none>
Modified regs: [rax rcx rdx rbx rsi rdi r8-r11 mm0]
Callee-saved registers pushed: 3 [rbx rsi rdi]
*************** In lvaAssignFrameOffsets(FINAL_FRAME_LAYOUT)
Assign V02 loc2, size=16, stkOffs=-0x30
Assign V03 loc3, size=16, stkOffs=-0x40
Assign V21 tmp13, size=16, stkOffs=-0x50
Assign V22 OutArgs, size=32, stkOffs=-0x70
; Final local variable assignments
;
;* V00 loc0 [V00 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op
;* V01 loc1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op
; V02 loc2 [V02,T01] ( 4, 4 ) struct (16) [rsp+0x40] do-not-enreg[SFB] must-init ld-addr-op
; V03 loc3 [V03,T02] ( 4, 4 ) struct (16) [rsp+0x30] do-not-enreg[SFB] must-init ld-addr-op
; V04 loc4 [V04,T05] ( 2, 2 ) bool -> rsi
; V05 loc5 [V05,T08] ( 2, 1.5) bool -> rdi
; V06 loc6 [V06,T09] ( 2, 1.5) bool -> rbx
; V07 loc7 [V07,T10] ( 2, 1.5) bool -> rax
; V08 tmp0 [V08,T00] ( 6, 7 ) int -> rax
;* V09 tmp1 [V09 ] ( 0, 0 ) long -> zero-ref
;* V10 tmp2 [V10 ] ( 0, 0 ) long -> zero-ref
;* V11 tmp3 [V11 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op
;* V12 tmp4 [V12 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op
;* V13 tmp5 [V13 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op
;* V14 tmp6 [V14 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op
; V15 tmp7 [V15,T03] ( 3, 3 ) long -> rcx V00.val(offs=0x00) P-INDEP
; V16 tmp8 [V16,T04] ( 3, 3 ) long -> rax V01.val(offs=0x00) P-INDEP
;* V17 tmp9 [V17,T11] ( 0, 0 ) long -> zero-ref V11.val(offs=0x00) P-INDEP
;* V18 tmp10 [V18,T12] ( 0, 0 ) long -> zero-ref V12.val(offs=0x00) P-INDEP
; V19 tmp11 [V19,T06] ( 2, 2 ) long -> rax V13.val(offs=0x00) P-INDEP
; V20 tmp12 [V20,T07] ( 2, 2 ) long -> rcx V14.val(offs=0x00) P-INDEP
; V21 tmp13 [V21 ] ( 12, 24 ) struct (16) [rsp+0x20] do-not-enreg[XSB] addr-exposed
; V22 OutArgs [V22 ] ( 1, 1 ) lclBlk (32) [rsp+0x00]
;
; Lcl frame size = 80
=============== Generating BB01 [000..04A) -> BB03 (cond), preds={} succs={BB02,BB03} flags=0x000b0020: i label target gcsafe
BB01 IN (2)={V02 V03 } + HEAP
OUT(3)={ V05 V06 V07} + HEAP
Recording Var Locations at start of BB01
<none>
Change life 0000000000000000 {} -> 0000000000000006 {V02 V03}
Live regs: (unchanged) 00000000 {}
GC regs: (unchanged) 00000000 {}
Byref regs: (unchanged) 00000000 {}
L_M1250_BB01:
Label: IG02, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
Scope info: begin block BB01, IL range [000..04A)
Scope info: open scopes =
2 (V02 loc2) [000..093)
3 (V03 loc3) [000..093)
Added IP mapping: 0x0000 STACK_EMPTY (G_M1250_IG02,ins#0,ofs#0) label
Generating BB01, stmt 1 Holding variables: []
Generating: N003 ( 1, 1) [000004] ------------ * const long 10 REG NA $81
Generating: N005 ( 1, 3) [000142] DA--G------- * st.lclVar long V15 tmp7 d:3 rcx REG rcx RV
IN0001: mov ecx, 10
V15 in reg rcx is becoming live [000142]
Live regs: 00000000 {} => 00000002 {rcx}
Live vars: {V02 V03} => {V02 V03 V15}
Added IP mapping: 0x000A STACK_EMPTY (G_M1250_IG02,ins#1,ofs#5)
Generating BB01, stmt 2 Holding variables: [rcx]
Generating: N007 ( 1, 1) [000011] ------------ * const long 20 REG NA $82
Generating: N009 ( 1, 3) [000150] DA--G------- * st.lclVar long V16 tmp8 d:3 rax REG rax RV
IN0002: mov eax, 20
V16 in reg rax is becoming live [000150]
Live regs: 00000002 {rcx} => 00000003 {rax rcx}
Live vars: {V02 V03 V15} => {V02 V03 V15 V16}
Added IP mapping: 0x0014 STACK_EMPTY (G_M1250_IG02,ins#2,ofs#10)
Generating BB01, stmt 3 Holding variables: [rax rcx]
Generating: N011 ( 3, 4) [000231] U---G--N---- * &lclFld byref V02 loc2 ud:2->3[+0] Fseq[v1] REG rdx <l:$1c0, c:$1c1>
IN0003: lea rdx, bword ptr [V02 rsp+40H]
Byref regs: 00000000 {} => 00000004 {rdx}
Generating: N013 ( 5, 7) [000351] ----G------- * lea(b+0) byref REG NA
Generating: N015 ( 3, 2) [000235] -------N---- * lclVar long V15 tmp7 u:3 rcx REG rcx RV $81
Generating: N017 ( 10, 10) [000347] ----G------- * storeIndir long REG NA
Byref regs: 00000004 {rdx} => 00000000 {}
IN0004: mov qword ptr [rdx], rcx
genIPmappingAdd: ignoring duplicate IL offset 0x14
Generating BB01, stmt 4 Holding variables: [rax rcx]
Generating: N019 ( 3, 4) [000241] U---G--N---- * &lclFld byref V02 loc2 ud:3->4[+8] Fseq[v2] REG rdx <l:$1c2, c:$1c3>
IN0005: lea rdx, bword ptr [V02+0x8 rsp+48H]
Byref regs: 00000000 {} => 00000004 {rdx}
Generating: N021 ( 5, 7) [000352] ----G------- * lea(b+0) byref REG NA
Generating: N023 ( 3, 2) [000245] -------N---- * lclVar long V16 tmp8 u:3 rax REG rax RV $82
Generating: N025 ( 10, 10) [000348] ----G------- * storeIndir long REG NA
Byref regs: 00000004 {rdx} => 00000000 {}
IN0006: mov qword ptr [rdx], rax
Added IP mapping: 0x001D STACK_EMPTY (G_M1250_IG02,ins#6,ofs#26)
Generating BB01, stmt 5 Holding variables: [rax rcx]
Generating: N027 ( 1, 1) [000248] -------N---- * lclVar long V16 tmp8 u:3 rax (last use) REG rax RV $82
Generating: N029 ( 5, 4) [000249] DA---------- * st.lclVar long V19 tmp11 d:3 rax REG rax RV
V16 in reg rax is becoming dead [000248]
Live regs: 00000003 {rax rcx} => 00000002 {rcx}
Live vars: {V02 V03 V15 V16} => {V02 V03 V15}
V19 in reg rax is becoming live [000249]
Live regs: 00000002 {rcx} => 00000003 {rax rcx}
Live vars: {V02 V03 V15} => {V02 V03 V15 V19}
genIPmappingAdd: ignoring duplicate IL offset 0x1d
Generating BB01, stmt 6 Holding variables: [rax rcx]
Generating: N031 ( 1, 1) [000251] -------N---- * lclVar long V15 tmp7 u:3 rcx (last use) REG rcx RV $81
Generating: N033 ( 5, 4) [000252] DA---------- * st.lclVar long V20 tmp12 d:3 rcx REG rcx RV
V15 in reg rcx is becoming dead [000251]
Live regs: 00000003 {rax rcx} => 00000001 {rax}
Live vars: {V02 V03 V15 V19} => {V02 V03 V19}
V20 in reg rcx is becoming live [000252]
Live regs: 00000001 {rax} => 00000003 {rax rcx}
Live vars: {V02 V03 V19} => {V02 V03 V19 V20}
genIPmappingAdd: ignoring duplicate IL offset 0x1d
Generating BB01, stmt 7 Holding variables: [rax rcx]
Generating: N035 ( 3, 4) [000255] U---G--N---- * &lclFld byref V03 loc3 ud:2->3[+0] Fseq[v1] REG rdx <l:$1c4, c:$1c5>
IN0007: lea rdx, bword ptr [V03 rsp+30H]
Byref regs: 00000000 {} => 00000004 {rdx}
Generating: N037 ( 5, 7) [000353] ----G------- * lea(b+0) byref REG NA
Generating: N039 ( 3, 2) [000259] -------N---- * lclVar long V19 tmp11 u:3 rax (last use) REG rax RV $82
Generating: N041 ( 10, 10) [000349] ----G------- * storeIndir long REG NA
Byref regs: 00000004 {rdx} => 00000000 {}
V19 in reg rax is becoming dead [000259]
Live regs: 00000003 {rax rcx} => 00000002 {rcx}
Live vars: {V02 V03 V19 V20} => {V02 V03 V20}
IN0008: mov qword ptr [rdx], rax
genIPmappingAdd: ignoring duplicate IL offset 0x1d
Generating BB01, stmt 8 Holding variables: [rcx]
Generating: N043 ( 3, 4) [000265] U---G--N---- * &lclFld byref V03 loc3 ud:3->4[+8] Fseq[v2] REG rax <l:$1c6, c:$1c7>
IN0009: lea rax, bword ptr [V03+0x8 rsp+38H]
Byref regs: 00000000 {} => 00000001 {rax}
Generating: N045 ( 5, 7) [000354] ----G------- * lea(b+0) byref REG NA
Generating: N047 ( 3, 2) [000269] -------N---- * lclVar long V20 tmp12 u:3 rcx (last use) REG rcx RV $81
Generating: N049 ( 10, 10) [000350] ----G------- * storeIndir long REG NA
Byref regs: 00000001 {rax} => 00000000 {}
V20 in reg rcx is becoming dead [000269]
Live regs: 00000002 {rcx} => 00000000 {}
Live vars: {V02 V03 V20} => {V02 V03}
IN000a: mov qword ptr [rax], rcx
Added IP mapping: 0x0026 STACK_EMPTY (G_M1250_IG02,ins#10,ofs#42)
Generating BB01, stmt 9 Holding variables: []
Generating: N051 ( 3, 2) [000039] -------N---- * &lclVar byref V02 loc2 u:4 REG NA $2c1
Generating: N053 ( 3, 2) [000271] D------N---- * &lclVar byref V21 tmp13 REG NA
Generating: N055 ( 7, 7) [000275] --------R--- * <list> void REG NA $340
Generating: N057 ( 1, 1) [000273] ------------ * const int 16 REG NA $44
Generating: N059 ( 9, 9) [000274] -A--G-----L- * copyBlk void REG NA $VN.Void
IN000b: movdqu xmm0, qword ptr [V02 rsp+40H]
IN000c: movdqu qword ptr [V21 rsp+20H], xmm0
Generating: N061 ( 12, 9) [000043] -A--G------- * <list> void REG NA $341
Generating: N063 ( 3, 2) [000276] -------N---- * &lclVar byref V21 tmp13 REG rcx $1c8
IN000d: lea rcx, bword ptr [V21 rsp+20H]
Byref regs: 00000000 {} => 00000002 {rcx}
Generating: N065 ( 3, 2) [000355] ------------ * putarg_reg byref REG rcx
Byref regs: 00000002 {rcx} => 00000000 {}
Byref regs: 00000000 {} => 00000002 {rcx}
Generating: N067 ( 3, 4) [000278] ------------ * <list> void REG NA $342
Generating: N069 ( 29, 18) [000040] --CXG------- * call int Program.IsXGeater $380
Byref regs: 00000002 {rcx} => 00000000 {}
Call: GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
IN000e: call Program:IsXGeater(struct):bool
Generating: N071 ( 33, 21) [000045] DACXG------- * st.lclVar int V04 loc4 d:3 rsi REG rsi RV
IN000f: mov esi, eax
V04 in reg rsi is becoming live [000045]
Live regs: 00000000 {} => 00000040 {rsi}
Live vars: {V02 V03} => {V02 V03 V04}
Added IP mapping: 0x002E STACK_EMPTY (G_M1250_IG02,ins#15,ofs#66)
Generating BB01, stmt 10 Holding variables: [rsi]
Generating: N073 ( 3, 2) [000047] -------N---- * &lclVar byref V03 loc3 u:4 REG NA $2c3
Generating: N075 ( 3, 2) [000279] D------N---- * &lclVar byref V21 tmp13 REG NA
Generating: N077 ( 7, 7) [000283] --------R--- * <list> void REG NA $343
Generating: N079 ( 1, 1) [000281] ------------ * const int 16 REG NA $44
Generating: N081 ( 9, 9) [000282] -A--G-----L- * copyBlk void REG NA $VN.Void
IN0010: movdqu xmm0, qword ptr [V03 rsp+30H]
IN0011: movdqu qword ptr [V21 rsp+20H], xmm0
Generating: N083 ( 12, 9) [000051] -A--G------- * <list> void REG NA $341
Generating: N085 ( 3, 2) [000284] -------N---- * &lclVar byref V21 tmp13 REG rcx $1c9
IN0012: lea rcx, bword ptr [V21 rsp+20H]
Byref regs: 00000000 {} => 00000002 {rcx}
Generating: N087 ( 3, 2) [000356] ------------ * putarg_reg byref REG rcx
Byref regs: 00000002 {rcx} => 00000000 {}
Byref regs: 00000000 {} => 00000002 {rcx}
Generating: N089 ( 3, 4) [000286] ------------ * <list> void REG NA $344
Generating: N091 ( 29, 18) [000048] --CXG------- * call int Program.IsXGeater $382
Byref regs: 00000002 {rcx} => 00000000 {}
Call: GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
IN0013: call Program:IsXGeater(struct):bool
Generating: N093 ( 33, 21) [000053] DACXG------- * st.lclVar int V05 loc5 d:3 rdi REG rdi RV
IN0014: mov edi, eax
V05 in reg rdi is becoming live [000053]
Live regs: 00000040 {rsi} => 000000C0 {rsi rdi}
Live vars: {V02 V03 V04} => {V02 V03 V04 V05}
Added IP mapping: 0x0036 STACK_EMPTY (G_M1250_IG02,ins#20,ofs#90)
Generating BB01, stmt 11 Holding variables: [rsi rdi]
Generating: N095 ( 3, 2) [000055] -------N---- * &lclVar byref V02 loc2 u:4 (last use) REG NA $2c1
Generating: N097 ( 3, 2) [000287] D------N---- * &lclVar byref V21 tmp13 REG NA
Generating: N099 ( 7, 7) [000291] --------R--- * <list> void REG NA $345
Generating: N101 ( 1, 1) [000289] ------------ * const int 16 REG NA $44
Generating: N103 ( 9, 9) [000290] -A--G-----L- * copyBlk void REG NA $VN.Void
IN0015: movdqu xmm0, qword ptr [V02 rsp+40H]
IN0016: movdqu qword ptr [V21 rsp+20H], xmm0
Generating: N105 ( 12, 9) [000059] -A--G------- * <list> void REG NA $341
Generating: N107 ( 3, 2) [000292] -------N---- * &lclVar byref V21 tmp13 REG rcx $1ca
IN0017: lea rcx, bword ptr [V21 rsp+20H]
Byref regs: 00000000 {} => 00000002 {rcx}
Generating: N109 ( 3, 2) [000357] ------------ * putarg_reg byref REG rcx
Byref regs: 00000002 {rcx} => 00000000 {}
Byref regs: 00000000 {} => 00000002 {rcx}
Generating: N111 ( 3, 4) [000294] ------------ * <list> void REG NA $346
Generating: N113 ( 29, 18) [000056] --CXG------- * call int Program.IsXGeater $384
Byref regs: 00000002 {rcx} => 00000000 {}
Call: GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
IN0018: call Program:IsXGeater(struct):bool
Generating: N115 ( 33, 21) [000061] DACXG------- * st.lclVar int V06 loc6 d:3 rbx REG rbx RV
IN0019: mov ebx, eax
V06 in reg rbx is becoming live [000061]
Live regs: 000000C0 {rsi rdi} => 000000C8 {rbx rsi rdi}
Live vars: {V02 V03 V04 V05} => {V02 V03 V04 V05 V06}
Added IP mapping: 0x003E STACK_EMPTY (G_M1250_IG02,ins#25,ofs#114)
Generating BB01, stmt 12 Holding variables: [rbx rsi rdi]
Generating: N117 ( 3, 2) [000063] -------N---- * &lclVar byref V03 loc3 u:4 (last use) REG NA $2c3
Generating: N119 ( 3, 2) [000295] D------N---- * &lclVar byref V21 tmp13 REG NA
Generating: N121 ( 7, 7) [000299] --------R--- * <list> void REG NA $347
Generating: N123 ( 1, 1) [000297] ------------ * const int 16 REG NA $44
Generating: N125 ( 9, 9) [000298] -A--G-----L- * copyBlk void REG NA $VN.Void
IN001a: movdqu xmm0, qword ptr [V03 rsp+30H]
IN001b: movdqu qword ptr [V21 rsp+20H], xmm0
Generating: N127 ( 12, 9) [000067] -A--G------- * <list> void REG NA $341
Generating: N129 ( 3, 2) [000300] -------N---- * &lclVar byref V21 tmp13 REG rcx $1cb
IN001c: lea rcx, bword ptr [V21 rsp+20H]
Byref regs: 00000000 {} => 00000002 {rcx}
Generating: N131 ( 3, 2) [000358] ------------ * putarg_reg byref REG rcx
Byref regs: 00000002 {rcx} => 00000000 {}
Byref regs: 00000000 {} => 00000002 {rcx}
Generating: N133 ( 3, 4) [000302] ------------ * <list> void REG NA $348
Generating: N135 ( 29, 18) [000064] --CXG------- * call int Program.IsXGeater $386
Byref regs: 00000002 {rcx} => 00000000 {}
Call: GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
IN001d: call Program:IsXGeater(struct):bool
Generating: N137 ( 33, 21) [000069] DACXG------- * st.lclVar int V07 loc7 d:3 rax REG rax RV
V07 in reg rax is becoming live [000069]
Live regs: 000000C8 {rbx rsi rdi} => 000000C9 {rax rbx rsi rdi}
Live vars: {V02 V03 V04 V05 V06} => {V02 V03 V04 V05 V06 V07}
Added IP mapping: 0x0046 STACK_EMPTY (G_M1250_IG02,ins#29,ofs#136)
Generating BB01, stmt 13 Holding variables: [rax rbx rsi rdi]
Generating: N139 ( 3, 2) [000071] ------------ * lclVar int V04 loc4 u:3 rsi (last use) REG rsi RV $380
Generating: N141 ( 1, 1) [000072] ------------ * const int 0 REG NA $40
Generating: N143 ( 5, 4) [000073] J------N---- * == int REG NA $400
V04 in reg rsi is becoming dead [000071]
Live regs: 000000C9 {rax rbx rsi rdi} => 00000089 {rax rbx rdi}
Live vars: {V02 V03 V04 V05 V06 V07} => {V02 V03 V05 V06 V07}
IN001e: test esi, esi
Generating: N145 ( 7, 6) [000074] ------------ * jmpTrue void REG NA
IN001f: je L_M1250_BB03
Scope info: end block BB01, IL range [000..04A)
Scope info: open scopes =
2 (V02 loc2) [000..093)
3 (V03 loc3) [000..093)
=============== Generating BB02 [04A..056) -> BB10 (always), preds={BB01} succs={BB10} flags=0x00080020: i gcsafe
BB02 IN (0)={ } + HEAP
OUT(1)={V08}
Recording Var Locations at start of BB02
<none>
Change life 0000000000000706 {V02 V03 V05 V06 V07} -> 0000000000000000 {}
V05 in reg rdi is becoming dead [------]
Live regs: (unchanged) 00000000 {}
V06 in reg rbx is becoming dead [------]
Live regs: (unchanged) 00000000 {}
V07 in reg rax is becoming dead [------]
Live regs: (unchanged) 00000000 {}
Live regs: (unchanged) 00000000 {}
GC regs: (unchanged) 00000000 {}
Byref regs: (unchanged) 00000000 {}
L_M1250_BB02:
Scope info: begin block BB02, IL range [04A..056)
Scope info: open scopes =
<none>
Added IP mapping: 0x004A STACK_EMPTY (G_M1250_IG02,ins#31,ofs#144) label
Generating BB02, stmt 14 Holding variables: []
Generating: N149 ( 0, 0) [000305] ----------L- * argPlace ref REG NA $3d1
Generating: N151 ( 0, 0) [000129] ------------ * <list> void REG NA $352
Generating: N153 ( 3, 10) [000303] ------------ * const(h) long 0xD6273068 "Fail" REG rcx $186
IN0020: mov rcx, 0x26AD6273068
Generating: N155 ( 5, 12) [000304] ----G------- * indir ref REG rcx $3d1
IN0021: mov rcx, gword ptr [rcx]
GC regs: 00000000 {} => 00000002 {rcx}
Generating: N157 ( 5, 12) [000359] ----G------- * putarg_reg ref REG rcx
GC regs: 00000002 {rcx} => 00000000 {}
GC regs: 00000000 {} => 00000002 {rcx}
Generating: N159 ( 5, 13) [000306] ----G------- * <list> void REG NA $352
Generating: N161 ( 19, 18) [000128] --C-G------- * call void System.Console.WriteLine $VN.Void
GC regs: 00000002 {rcx} => 00000000 {}
Call: GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
IN0022: call System.Console:WriteLine(ref)
Added IP mapping: 0x0054 STACK_EMPTY (G_M1250_IG02,ins#34,ofs#162)
Generating BB02, stmt 15 Holding variables: []
Generating: N163 ( 1, 1) [000131] ------------ * const int -1 REG NA $41
Generating: N165 ( 1, 3) [000308] DA-----N---- * st.lclVar int V08 tmp0 d:7 rax REG rax RV
IN0023: mov eax, -1
V08 in reg rax is becoming live [000308]
Live regs: 00000000 {} => 00000001 {rax}
Live vars: {} => {V08}
Scope info: end block BB02, IL range [04A..056)
Scope info: open scopes =
<none>
IN0024: jmp L_M1250_BB10
=============== Generating BB03 [056..05A) -> BB05 (cond), preds={BB01} succs={BB04,BB05} flags=0x000b0020: i label target gcsafe
BB03 IN (3)={V05 V06 V07} + HEAP
OUT(2)={ V06 V07} + HEAP
Recording Var Locations at start of BB03
V05(rdi) V06(rbx) V07(rax)
Change life 0000000000000001 {V08} -> 0000000000000700 {V05 V06 V07}
V08 in reg rax is becoming dead [------]
Live regs: (unchanged) 00000000 {}
V05 in reg rdi is becoming live [------]
Live regs: 00000000 {} => 00000080 {rdi}
V06 in reg rbx is becoming live [------]
Live regs: 00000080 {rdi} => 00000088 {rbx rdi}
V07 in reg rax is becoming live [------]
Live regs: 00000088 {rbx rdi} => 00000089 {rax rbx rdi}
Live regs: (unchanged) 00000089 {rax rbx rdi}
GC regs: (unchanged) 00000000 {}
Byref regs: (unchanged) 00000000 {}
L_M1250_BB03:
G_M1250_IG02: ; offs=000000H, funclet=00
Label: IG03, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
Scope info: begin block BB03, IL range [056..05A)
Scope info: open scopes =
5 (V05 loc5) [000..093)
6 (V06 loc6) [000..093)
7 (V07 loc7) [000..093)
Added IP mapping: 0x0056 STACK_EMPTY (G_M1250_IG03,ins#0,ofs#0) label
Generating BB03, stmt 16 Holding variables: [rax rbx rdi]
Generating: N169 ( 3, 2) [000077] ------------ * lclVar int V05 loc5 u:3 rdi (last use) REG rdi RV $382
Generating: N171 ( 1, 1) [000078] ------------ * const int 0 REG NA $40
Generating: N173 ( 5, 4) [000079] J------N---- * != int REG NA $401
V05 in reg rdi is becoming dead [000077]
Live regs: 00000089 {rax rbx rdi} => 00000009 {rax rbx}
Live vars: {V05 V06 V07} => {V06 V07}
IN0025: test edi, edi
Generating: N175 ( 7, 6) [000080] ------------ * jmpTrue void REG NA
IN0026: jne L_M1250_BB05
Scope info: end block BB03, IL range [056..05A)
Scope info: open scopes =
6 (V06 loc6) [000..093)
7 (V07 loc7) [000..093)
=============== Generating BB04 [05A..066) -> BB10 (always), preds={BB03} succs={BB10} flags=0x00080020: i gcsafe
BB04 IN (0)={ } + HEAP
OUT(1)={V08}
Recording Var Locations at start of BB04
<none>
Change life 0000000000000600 {V06 V07} -> 0000000000000000 {}
V06 in reg rbx is becoming dead [------]
Live regs: (unchanged) 00000000 {}
V07 in reg rax is becoming dead [------]
Live regs: (unchanged) 00000000 {}
Live regs: (unchanged) 00000000 {}
GC regs: (unchanged) 00000000 {}
Byref regs: (unchanged) 00000000 {}
L_M1250_BB04:
Scope info: begin block BB04, IL range [05A..066)
Scope info: open scopes =
<none>
Added IP mapping: 0x005A STACK_EMPTY (G_M1250_IG03,ins#2,ofs#8) label
Generating BB04, stmt 17 Holding variables: []
Generating: N179 ( 0, 0) [000311] ----------L- * argPlace ref REG NA $3ce
Generating: N181 ( 0, 0) [000121] ------------ * <list> void REG NA $350
Generating: N183 ( 3, 10) [000309] ------------ * const(h) long 0xD6273068 "Fail" REG rcx $186
IN0027: mov rcx, 0x26AD6273068
Generating: N185 ( 5, 12) [000310] ----G------- * indir ref REG rcx $3ce
IN0028: mov rcx, gword ptr [rcx]
GC regs: 00000000 {} => 00000002 {rcx}
Generating: N187 ( 5, 12) [000360] ----G------- * putarg_reg ref REG rcx
GC regs: 00000002 {rcx} => 00000000 {}
GC regs: 00000000 {} => 00000002 {rcx}
Generating: N189 ( 5, 13) [000312] ----G------- * <list> void REG NA $350
Generating: N191 ( 19, 18) [000120] --C-G------- * call void System.Console.WriteLine $VN.Void
GC regs: 00000002 {rcx} => 00000000 {}
Call: GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
IN0029: call System.Console:WriteLine(ref)
Added IP mapping: 0x0064 STACK_EMPTY (G_M1250_IG03,ins#5,ofs#26)
Generating BB04, stmt 18 Holding variables: []
Generating: N193 ( 1, 1) [000123] ------------ * const int -1 REG NA $41
Generating: N195 ( 1, 3) [000314] DA-----N---- * st.lclVar int V08 tmp0 d:6 rax REG rax RV
IN002a: mov eax, -1
V08 in reg rax is becoming live [000314]
Live regs: 00000000 {} => 00000001 {rax}
Live vars: {} => {V08}
Scope info: end block BB04, IL range [05A..066)
Scope info: open scopes =
<none>
IN002b: jmp L_M1250_BB10
=============== Generating BB05 [066..06A) -> BB07 (cond), preds={BB03} succs={BB06,BB07} flags=0x000b0020: i label target gcsafe
BB05 IN (2)={V06 V07} + HEAP
OUT(1)={ V07} + HEAP
Recording Var Locations at start of BB05
V06(rbx) V07(rax)
Change life 0000000000000001 {V08} -> 0000000000000600 {V06 V07}
V08 in reg rax is becoming dead [------]
Live regs: (unchanged) 00000000 {}
V06 in reg rbx is becoming live [------]
Live regs: 00000000 {} => 00000008 {rbx}
V07 in reg rax is becoming live [------]
Live regs: 00000008 {rbx} => 00000009 {rax rbx}
Live regs: (unchanged) 00000009 {rax rbx}
GC regs: (unchanged) 00000000 {}
Byref regs: (unchanged) 00000000 {}
L_M1250_BB05:
G_M1250_IG03: ; offs=0000ACH, funclet=00
Label: IG04, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
Scope info: begin block BB05, IL range [066..06A)
Scope info: open scopes =
6 (V06 loc6) [000..093)
7 (V07 loc7) [000..093)
Added IP mapping: 0x0066 STACK_EMPTY (G_M1250_IG04,ins#0,ofs#0) label
Generating BB05, stmt 19 Holding variables: [rax rbx]
Generating: N199 ( 3, 2) [000083] ------------ * lclVar int V06 loc6 u:3 rbx (last use) REG rbx RV $384
Generating: N201 ( 1, 1) [000084] ------------ * const int 0 REG NA $40
Generating: N203 ( 5, 4) [000085] J------N---- * == int REG NA $402
V06 in reg rbx is becoming dead [000083]
Live regs: 00000009 {rax rbx} => 00000001 {rax}
Live vars: {V06 V07} => {V07}
IN002c: test ebx, ebx
Generating: N205 ( 7, 6) [000086] ------------ * jmpTrue void REG NA
IN002d: je L_M1250_BB07
Scope info: end block BB05, IL range [066..06A)
Scope info: open scopes =
7 (V07 loc7) [000..093)
=============== Generating BB06 [06A..076) -> BB10 (always), preds={BB05} succs={BB10} flags=0x00080020: i gcsafe
BB06 IN (0)={ } + HEAP
OUT(1)={V08}
Recording Var Locations at start of BB06
<none>
Change life 0000000000000400 {V07} -> 0000000000000000 {}
V07 in reg rax is becoming dead [------]
Live regs: (unchanged) 00000000 {}
Live regs: (unchanged) 00000000 {}
GC regs: (unchanged) 00000000 {}
Byref regs: (unchanged) 00000000 {}
L_M1250_BB06:
Scope info: begin block BB06, IL range [06A..076)
Scope info: open scopes =
<none>
Added IP mapping: 0x006A STACK_EMPTY (G_M1250_IG04,ins#2,ofs#8) label
Generating BB06, stmt 20 Holding variables: []
Generating: N209 ( 0, 0) [000317] ----------L- * argPlace ref REG NA $3cb
Generating: N211 ( 0, 0) [000113] ------------ * <list> void REG NA $34e
Generating: N213 ( 3, 10) [000315] ------------ * const(h) long 0xD6273068 "Fail" REG rcx $186
IN002e: mov rcx, 0x26AD6273068
Generating: N215 ( 5, 12) [000316] ----G------- * indir ref REG rcx $3cb
IN002f: mov rcx, gword ptr [rcx]
GC regs: 00000000 {} => 00000002 {rcx}
Generating: N217 ( 5, 12) [000361] ----G------- * putarg_reg ref REG rcx
GC regs: 00000002 {rcx} => 00000000 {}
GC regs: 00000000 {} => 00000002 {rcx}
Generating: N219 ( 5, 13) [000318] ----G------- * <list> void REG NA $34e
Generating: N221 ( 19, 18) [000112] --C-G------- * call void System.Console.WriteLine $VN.Void
GC regs: 00000002 {rcx} => 00000000 {}
Call: GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
IN0030: call System.Console:WriteLine(ref)
Added IP mapping: 0x0074 STACK_EMPTY (G_M1250_IG04,ins#5,ofs#26)
Generating BB06, stmt 21 Holding variables: []
Generating: N223 ( 1, 1) [000115] ------------ * const int -1 REG NA $41
Generating: N225 ( 1, 3) [000320] DA-----N---- * st.lclVar int V08 tmp0 d:5 rax REG rax RV
IN0031: mov eax, -1
V08 in reg rax is becoming live [000320]
Live regs: 00000000 {} => 00000001 {rax}
Live vars: {} => {V08}
Scope info: end block BB06, IL range [06A..076)
Scope info: open scopes =
<none>
IN0032: jmp L_M1250_BB10
=============== Generating BB07 [076..07A) -> BB09 (cond), preds={BB05} succs={BB08,BB09} flags=0x000b0020: i label target gcsafe
BB07 IN (1)={V07} + HEAP
OUT(0)={ } + HEAP
Recording Var Locations at start of BB07
V07(rax)
Change life 0000000000000001 {V08} -> 0000000000000400 {V07}
V08 in reg rax is becoming dead [------]
Live regs: (unchanged) 00000000 {}
V07 in reg rax is becoming live [------]
Live regs: 00000000 {} => 00000001 {rax}
Live regs: (unchanged) 00000001 {rax}
GC regs: (unchanged) 00000000 {}
Byref regs: (unchanged) 00000000 {}
L_M1250_BB07:
G_M1250_IG04: ; offs=0000D0H, funclet=00
Label: IG05, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
Scope info: begin block BB07, IL range [076..07A)
Scope info: open scopes =
7 (V07 loc7) [000..093)
Added IP mapping: 0x0076 STACK_EMPTY (G_M1250_IG05,ins#0,ofs#0) label
Generating BB07, stmt 22 Holding variables: [rax]
Generating: N229 ( 3, 2) [000089] ------------ * lclVar int V07 loc7 u:3 rax (last use) REG rax RV $386
Generating: N231 ( 1, 1) [000090] ------------ * const int 0 REG NA $40
Generating: N233 ( 5, 4) [000091] J------N---- * != int REG NA $403
V07 in reg rax is becoming dead [000089]
Live regs: 00000001 {rax} => 00000000 {}
Live vars: {V07} => {}
IN0033: test eax, eax
Generating: N235 ( 7, 6) [000092] ------------ * jmpTrue void REG NA
IN0034: jne L_M1250_BB09
Scope info: end block BB07, IL range [076..07A)
Scope info: open scopes =
<none>
=============== Generating BB08 [07A..086) -> BB10 (always), preds={BB07} succs={BB10} flags=0x00080020: i gcsafe
BB08 IN (0)={ } + HEAP
OUT(1)={V08}
Recording Var Locations at start of BB08
<none>
Liveness not changing: 0000000000000000 {}
Live regs: (unchanged) 00000000 {}
GC regs: (unchanged) 00000000 {}
Byref regs: (unchanged) 00000000 {}
L_M1250_BB08:
Scope info: begin block BB08, IL range [07A..086)
Scope info: open scopes =
<none>
Added IP mapping: 0x007A STACK_EMPTY (G_M1250_IG05,ins#2,ofs#8) label
Generating BB08, stmt 23 Holding variables: []
Generating: N239 ( 0, 0) [000323] ----------L- * argPlace ref REG NA $3c8
Generating: N241 ( 0, 0) [000105] ------------ * <list> void REG NA $34c
Generating: N243 ( 3, 10) [000321] ------------ * const(h) long 0xD6273068 "Fail" REG rcx $186
IN0035: mov rcx, 0x26AD6273068
Generating: N245 ( 5, 12) [000322] ----G------- * indir ref REG rcx $3c8
IN0036: mov rcx, gword ptr [rcx]
GC regs: 00000000 {} => 00000002 {rcx}
Generating: N247 ( 5, 12) [000362] ----G------- * putarg_reg ref REG rcx
GC regs: 00000002 {rcx} => 00000000 {}
GC regs: 00000000 {} => 00000002 {rcx}
Generating: N249 ( 5, 13) [000324] ----G------- * <list> void REG NA $34c
Generating: N251 ( 19, 18) [000104] --C-G------- * call void System.Console.WriteLine $VN.Void
GC regs: 00000002 {rcx} => 00000000 {}
Call: GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
IN0037: call System.Console:WriteLine(ref)
Added IP mapping: 0x0084 STACK_EMPTY (G_M1250_IG05,ins#5,ofs#26)
Generating BB08, stmt 24 Holding variables: []
Generating: N253 ( 1, 1) [000107] ------------ * const int -1 REG NA $41
Generating: N255 ( 1, 3) [000326] DA-----N---- * st.lclVar int V08 tmp0 d:3 rax REG rax RV
IN0038: mov eax, -1
V08 in reg rax is becoming live [000326]
Live regs: 00000000 {} => 00000001 {rax}
Live vars: {} => {V08}
Scope info: end block BB08, IL range [07A..086)
Scope info: open scopes =
<none>
IN0039: jmp L_M1250_BB10
=============== Generating BB09 [086..093), preds={BB07} succs={BB10} flags=0x000b0020: i label target gcsafe
BB09 IN (0)={ } + HEAP
OUT(1)={V08}
Recording Var Locations at start of BB09
<none>
Change life 0000000000000001 {V08} -> 0000000000000000 {}
V08 in reg rax is becoming dead [------]
Live regs: (unchanged) 00000000 {}
Live regs: (unchanged) 00000000 {}
GC regs: (unchanged) 00000000 {}
Byref regs: (unchanged) 00000000 {}
L_M1250_BB09:
G_M1250_IG05: ; offs=0000F4H, funclet=00
Label: IG06, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
Scope info: begin block BB09, IL range [086..093)
Scope info: open scopes =
<none>
Added IP mapping: 0x0086 STACK_EMPTY (G_M1250_IG06,ins#0,ofs#0) label
Generating BB09, stmt 25 Holding variables: []
Generating: N259 ( 0, 0) [000329] ----------L- * argPlace ref REG NA $3c5
Generating: N261 ( 0, 0) [000097] ------------ * <list> void REG NA $34a
Generating: N263 ( 3, 10) [000327] ------------ * const(h) long 0xD6273070 "Pass" REG rcx $184
IN003a: mov rcx, 0x26AD6273070
Generating: N265 ( 5, 12) [000328] ----G------- * indir ref REG rcx $3c5
IN003b: mov rcx, gword ptr [rcx]
GC regs: 00000000 {} => 00000002 {rcx}
Generating: N267 ( 5, 12) [000363] ----G------- * putarg_reg ref REG rcx
GC regs: 00000002 {rcx} => 00000000 {}
GC regs: 00000000 {} => 00000002 {rcx}
Generating: N269 ( 5, 13) [000330] ----G------- * <list> void REG NA $34a
Generating: N271 ( 19, 18) [000096] --C-G------- * call void System.Console.WriteLine $VN.Void
GC regs: 00000002 {rcx} => 00000000 {}
Call: GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
IN003c: call System.Console:WriteLine(ref)
Added IP mapping: 0x0090 STACK_EMPTY (G_M1250_IG06,ins#3,ofs#18)
Generating BB09, stmt 26 Holding variables: []
Generating: N273 ( 1, 1) [000099] ------------ * const int 100 REG NA $45
Generating: N275 ( 1, 3) [000332] DA-----N---- * st.lclVar int V08 tmp0 d:4 rax REG rax RV
IN003d: mov eax, 100
V08 in reg rax is becoming live [000332]
Live regs: 00000000 {} => 00000001 {rax}
Live vars: {} => {V08}
Scope info: end block BB09, IL range [086..093)
Scope info: ending scope, LVnum=1 [000..093)
Scope info: ending scope, LVnum=2 [000..093)
Scope info: ending scope, LVnum=3 [000..093)
Scope info: ending scope, LVnum=4 [000..093)
Scope info: ending scope, LVnum=5 [000..093)
Scope info: ending scope, LVnum=6 [000..093)
Scope info: ending scope, LVnum=7 [000..093)
Scope info: ending scope, LVnum=0 [000..093)
Scope info: open scopes =
<none>
=============== Generating BB10 [???..???) (return), preds={BB02,BB04,BB06,BB08,BB09} succs={} flags=0x000b0050: keep internal label target gcsafe
BB10 IN (1)={V08}
OUT(0)={ }
Recording Var Locations at start of BB10
V08(rax)
Liveness not changing: 0000000000000001 {V08}
Live regs: 00000000 {} => 00000001 {rax}
GC regs: (unchanged) 00000000 {}
Byref regs: (unchanged) 00000000 {}
L_M1250_BB10:
G_M1250_IG06: ; offs=000118H, funclet=00
Label: IG07, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}
Scope info: begin block BB10, IL range [???..???)
Scope info: ignoring block beginning
Added IP mapping: NO_MAP STACK_EMPTY (G_M1250_IG07,ins#0,ofs#0) label
Generating BB10, stmt 27 Holding variables: [rax]
Generating: N279 ( 1, 1) [000134] -------N---- * lclVar int V08 tmp0 u:8 rax (last use) REG rax RV $440
Generating: N281 ( 2, 2) [000135] ------------ * return int REG NA $38d
V08 in reg rax is becoming dead [000134]
Live regs: 00000001 {rax} => 00000000 {}
Live vars: {V08} => {}
Scope info: end block BB10, IL range [???..???)
Scope info: ignoring block end
Added IP mapping: EPILOG STACK_EMPTY (G_M1250_IG07,ins#0,ofs#0) label
Reserving epilog IG for block BB10
*************** After placeholder IG creation
G_M1250_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=00000000 {} <-- Prolog IG
G_M1250_IG02: ; offs=000000H, size=00ACH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M1250_IG03: ; offs=0000ACH, size=0024H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M1250_IG04: ; offs=0000D0H, size=0024H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M1250_IG05: ; offs=0000F4H, size=0024H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M1250_IG06: ; offs=000118H, size=0017H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M1250_IG07: ; epilog placeholder, next placeholder=<END>, BB=C443D0E8H (BB10), epilog <-- First placeholder <-- Last placeholder
; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=00000000 {}, PrevByrefRegs=00000000 {}
; InitGCVars=0000000000000000 {}, InitGCrefRegs=00000000 {}, InitByrefRegs=00000000 {}
Liveness not changing: 0000000000000000 {}
# totalCostEx = 25350, totalCostSz = 269 Program:Main():int
; Final local variable assignments
;
;* V00 loc0 [V00 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op
;* V01 loc1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op
; V02 loc2 [V02,T01] ( 4, 4 ) struct (16) [rsp+0x40] do-not-enreg[SFB] must-init ld-addr-op
; V03 loc3 [V03,T02] ( 4, 4 ) struct (16) [rsp+0x30] do-not-enreg[SFB] must-init ld-addr-op
; V04 loc4 [V04,T05] ( 2, 2 ) bool -> rsi
; V05 loc5 [V05,T08] ( 2, 1.5) bool -> rdi
; V06 loc6 [V06,T09] ( 2, 1.5) bool -> rbx
; V07 loc7 [V07,T10] ( 2, 1.5) bool -> rax
; V08 tmp0 [V08,T00] ( 6, 7 ) int -> rax
;* V09 tmp1 [V09 ] ( 0, 0 ) long -> zero-ref
;* V10 tmp2 [V10 ] ( 0, 0 ) long -> zero-ref
;* V11 tmp3 [V11 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op
;* V12 tmp4 [V12 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op
;* V13 tmp5 [V13 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op
;* V14 tmp6 [V14 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op
; V15 tmp7 [V15,T03] ( 3, 3 ) long -> rcx V00.val(offs=0x00) P-INDEP
; V16 tmp8 [V16,T04] ( 3, 3 ) long -> rax V01.val(offs=0x00) P-INDEP
;* V17 tmp9 [V17,T11] ( 0, 0 ) long -> zero-ref V11.val(offs=0x00) P-INDEP
;* V18 tmp10 [V18,T12] ( 0, 0 ) long -> zero-ref V12.val(offs=0x00) P-INDEP
; V19 tmp11 [V19,T06] ( 2, 2 ) long -> rax V13.val(offs=0x00) P-INDEP
; V20 tmp12 [V20,T07] ( 2, 2 ) long -> rcx V14.val(offs=0x00) P-INDEP
; V21 tmp13 [V21 ] ( 12, 24 ) struct (16) [rsp+0x20] do-not-enreg[XSB] addr-exposed
; V22 OutArgs [V22 ] ( 1, 1 ) lclBlk (32) [rsp+0x00]
;
; Lcl frame size = 80
*************** Before prolog / epilog generation
G_M1250_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=00000000 {} <-- Prolog IG
G_M1250_IG02: ; offs=000000H, size=00ACH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M1250_IG03: ; offs=0000ACH, size=0024H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M1250_IG04: ; offs=0000D0H, size=0024H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M1250_IG05: ; offs=0000F4H, size=0024H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M1250_IG06: ; offs=000118H, size=0017H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M1250_IG07: ; epilog placeholder, next placeholder=<END>, BB=C443D0E8H (BB10), epilog <-- First placeholder <-- Last placeholder
; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=00000000 {}, PrevByrefRegs=00000000 {}
; InitGCVars=0000000000000000 {}, InitGCrefRegs=00000000 {}, InitByrefRegs=00000000 {}
Recording Var Locations at start of BB01
<none>
*************** In genFnProlog()
Added IP mapping to front: PROLOG STACK_EMPTY (G_M1250_IG01,ins#0,ofs#0) label
__prolog:
Found 16 lvMustInit stk vars, frame offsets -48 through -80
IN003e: push rdi
IN003f: push rsi
IN0040: push rbx
IN0041: sub rsp, 80
IN0042: lea rdi, [rsp+30H]
IN0043: mov ecx, 8
IN0044: xor rax, rax
IN0045: rep stosd
*************** In genEnregisterIncomingStackArgs()
G_M1250_IG01: ; offs=000000H, funclet=00
*************** In genFnEpilog()
__epilog:
gcVarPtrSetCur=0000000000000000 {}, gcRegGCrefSetCur=00000000 {}, gcRegByrefSetCur=00000000 {}
IN0046: add rsp, 80
IN0047: pop rbx
IN0048: pop rsi
IN0049: pop rdi
IN004a: ret
G_M1250_IG07: ; offs=00012FH, funclet=00
0 prologs, 1 epilogs, 0 funclet prologs, 0 funclet epilogs
*************** After prolog / epilog generation
G_M1250_IG01: ; func=00, offs=000000H, size=0015H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
G_M1250_IG02: ; offs=000015H, size=00ACH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M1250_IG03: ; offs=0000C1H, size=0024H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M1250_IG04: ; offs=0000E5H, size=0024H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M1250_IG05: ; offs=000109H, size=0024H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M1250_IG06: ; offs=00012DH, size=0017H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M1250_IG07: ; offs=000144H, size=0008H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
*************** In emitJumpDistBind()
Binding: IN001f: 000000 je L_M1250_BB03
Binding L_M1250_BB03 to G_M1250_IG03
Estimate of fwd jump [C4476294/031]: 009F -> 00C1 = 0020
Shrinking jump [C4476294/031]
Binding: IN0024: 000000 jmp L_M1250_BB10
Binding L_M1250_BB10 to G_M1250_IG07
Estimate of fwd jump [C447633C/036]: 00B8 -> 0140 = 0086
Binding: IN0026: 000000 jne L_M1250_BB05
Binding L_M1250_BB05 to G_M1250_IG04
Estimate of fwd jump [C4476A74/038]: 00BF -> 00E1 = 0020
Shrinking jump [C4476A74/038]
Binding: IN002b: 000000 jmp L_M1250_BB10
Binding L_M1250_BB10 to G_M1250_IG07
Estimate of fwd jump [C4476B1C/043]: 00D8 -> 013C = 0062
Shrinking jump [C4476B1C/043]
Binding: IN002d: 000000 je L_M1250_BB07
Binding L_M1250_BB07 to G_M1250_IG05
Estimate of fwd jump [C4477274/045]: 00DC -> 00FE = 0020
Shrinking jump [C4477274/045]
Binding: IN0032: 000000 jmp L_M1250_BB10
Binding L_M1250_BB10 to G_M1250_IG07
Estimate of fwd jump [C447731C/050]: 00F5 -> 0135 = 003E
Shrinking jump [C447731C/050]
Binding: IN0034: 000000 jne L_M1250_BB09
Binding L_M1250_BB09 to G_M1250_IG06
Estimate of fwd jump [C44779BC/052]: 00F9 -> 011B = 0020
Shrinking jump [C44779BC/052]
Binding: IN0039: 000000 jmp L_M1250_BB10
Binding L_M1250_BB10 to G_M1250_IG07
Estimate of fwd jump [C4477A64/057]: 0112 -> 012E = 001A
Shrinking jump [C4477A64/057]
Total shrinkage = 25, min extra jump size = 7
Iterating branch shortening. Iteration = 2
Estimate of fwd jump [C447633C/036]: 00B8 -> 012B = 0071
Shrinking jump [C447633C/036]
Total shrinkage = 3, min extra jump size = 4294967295
Hot code size = 0x130 bytes
Cold code size = 0x0 bytes
reserveUnwindInfo(isFunclet=FALSE, isColdCode=FALSE, unwindSize=0xc)
*************** In emitEndCodeGen()
***************************************************************************
Instructions as they come out of the scheduler
G_M1250_IG01: ; func=00, offs=000000H, size=0015H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
IN003e: 000000 57 push rdi
IN003f: 000001 56 push rsi
IN0040: 000002 53 push rbx
IN0041: 000003 4883EC50 sub rsp, 80
IN0042: 000007 488D7C2430 lea rdi, [rsp+30H]
IN0043: 00000C B908000000 mov ecx, 8
IN0044: 000011 33C0 xor rax, rax
IN0045: 000013 F3AB rep stosd
G_M1250_IG02: ; func=00, offs=000015H, size=00A5H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
IN0001: 000015 B90A000000 mov ecx, 10
IN0002: 00001A B814000000 mov eax, 20
byrReg +[rdx]
IN0003: 00001F 488D542440 lea rdx, bword ptr [rsp+40H]
IN0004: 000024 48890A mov qword ptr [rdx], rcx
IN0005: 000027 488D542448 lea rdx, bword ptr [rsp+48H]
IN0006: 00002C 488902 mov qword ptr [rdx], rax
IN0007: 00002F 488D542430 lea rdx, bword ptr [rsp+30H]
IN0008: 000034 488902 mov qword ptr [rdx], rax
byrReg +[rax]
IN0009: 000037 488D442438 lea rax, bword ptr [rsp+38H]
IN000a: 00003C 488908 mov qword ptr [rax], rcx
IN000b: 00003F F30F6F442440 movdqu xmm0, qword ptr [rsp+40H]
IN000c: 000045 F30F7F442420 movdqu qword ptr [rsp+20H], xmm0
byrReg +[rcx]
IN000d: 00004B 488D4C2420 lea rcx, bword ptr [rsp+20H]
New byrReg live regs=00000000 {}
byrReg -[rax]
byrReg -[rcx]
byrReg -[rdx]
[C44785B8] ptr arg pop 0
IN000e: 000050 E85BF9FFFF call Program:IsXGeater(struct):bool
IN000f: 000055 8BF0 mov esi, eax
IN0010: 000057 F30F6F442430 movdqu xmm0, qword ptr [rsp+30H]
IN0011: 00005D F30F7F442420 movdqu qword ptr [rsp+20H], xmm0
byrReg +[rcx]
IN0012: 000063 488D4C2420 lea rcx, bword ptr [rsp+20H]
New byrReg live regs=00000000 {}
byrReg -[rcx]
[C4478638] ptr arg pop 0
IN0013: 000068 E843F9FFFF call Program:IsXGeater(struct):bool
IN0014: 00006D 8BF8 mov edi, eax
IN0015: 00006F F30F6F442440 movdqu xmm0, qword ptr [rsp+40H]
IN0016: 000075 F30F7F442420 movdqu qword ptr [rsp+20H], xmm0
byrReg +[rcx]
IN0017: 00007B 488D4C2420 lea rcx, bword ptr [rsp+20H]
New byrReg live regs=00000000 {}
byrReg -[rcx]
[C44786B8] ptr arg pop 0
IN0018: 000080 E82BF9FFFF call Program:IsXGeater(struct):bool
IN0019: 000085 8BD8 mov ebx, eax
IN001a: 000087 F30F6F442430 movdqu xmm0, qword ptr [rsp+30H]
IN001b: 00008D F30F7F442420 movdqu qword ptr [rsp+20H], xmm0
byrReg +[rcx]
IN001c: 000093 488D4C2420 lea rcx, bword ptr [rsp+20H]
New byrReg live regs=00000000 {}
byrReg -[rcx]
[C4478738] ptr arg pop 0
IN001d: 000098 E813F9FFFF call Program:IsXGeater(struct):bool
IN001e: 00009D 85F6 test esi, esi
IN001f: 00009F 7419 je SHORT G_M1250_IG03
IN0020: 0000A1 48B9683027D66A020000 mov rcx, 0x26AD6273068
gcrReg +[rcx]
IN0021: 0000AB 488B09 mov rcx, gword ptr [rcx]
New gcrReg live regs=00000000 {}
gcrReg -[rcx]
[C44787B8] ptr arg pop 0
IN0022: 0000AE E80DFEFFFF call System.Console:WriteLine(ref)
IN0023: 0000B3 B8FFFFFFFF mov eax, -1
IN0024: 0000B8 EB6E jmp SHORT G_M1250_IG07
G_M1250_IG03: ; func=00, offs=0000BAH, size=001DH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
IN0025: 0000BA 85FF test edi, edi
IN0026: 0000BC 7519 jne SHORT G_M1250_IG04
IN0027: 0000BE 48B9683027D66A020000 mov rcx, 0x26AD6273068
gcrReg +[rcx]
IN0028: 0000C8 488B09 mov rcx, gword ptr [rcx]
New gcrReg live regs=00000000 {}
gcrReg -[rcx]
[C4478838] ptr arg pop 0
IN0029: 0000CB E8F0FDFFFF call System.Console:WriteLine(ref)
IN002a: 0000D0 B8FFFFFFFF mov eax, -1
IN002b: 0000D5 EB51 jmp SHORT G_M1250_IG07
G_M1250_IG04: ; func=00, offs=0000D7H, size=001DH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
IN002c: 0000D7 85DB test ebx, ebx
IN002d: 0000D9 7419 je SHORT G_M1250_IG05
IN002e: 0000DB 48B9683027D66A020000 mov rcx, 0x26AD6273068
gcrReg +[rcx]
IN002f: 0000E5 488B09 mov rcx, gword ptr [rcx]
New gcrReg live regs=00000000 {}
gcrReg -[rcx]
[C44788B8] ptr arg pop 0
IN0030: 0000E8 E8D3FDFFFF call System.Console:WriteLine(ref)
IN0031: 0000ED B8FFFFFFFF mov eax, -1
IN0032: 0000F2 EB34 jmp SHORT G_M1250_IG07
G_M1250_IG05: ; func=00, offs=0000F4H, size=001DH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
IN0033: 0000F4 85C0 test eax, eax
IN0034: 0000F6 7519 jne SHORT G_M1250_IG06
IN0035: 0000F8 48B9683027D66A020000 mov rcx, 0x26AD6273068
gcrReg +[rcx]
IN0036: 000102 488B09 mov rcx, gword ptr [rcx]
New gcrReg live regs=00000000 {}
gcrReg -[rcx]
[C4478938] ptr arg pop 0
IN0037: 000105 E8B6FDFFFF call System.Console:WriteLine(ref)
IN0038: 00010A B8FFFFFFFF mov eax, -1
IN0039: 00010F EB17 jmp SHORT G_M1250_IG07
G_M1250_IG06: ; func=00, offs=000111H, size=0017H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
IN003a: 000111 48B9703027D66A020000 mov rcx, 0x26AD6273070
gcrReg +[rcx]
IN003b: 00011B 488B09 mov rcx, gword ptr [rcx]
New gcrReg live regs=00000000 {}
gcrReg -[rcx]
[C44789B8] ptr arg pop 0
IN003c: 00011E E89DFDFFFF call System.Console:WriteLine(ref)
IN003d: 000123 B864000000 mov eax, 100
G_M1250_IG07: ; func=00, offs=000128H, size=0008H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
IN0046: 000128 4883C450 add rsp, 80
IN0047: 00012C 5B pop rbx
IN0048: 00012D 5E pop rsi
IN0049: 00012E 5F pop rdi
IN004a: 00012F C3 ret
Allocated method code size = 304 , actual size = 304
*************** After end code gen, before unwindEmit()
G_M1250_IG01: ; func=00, offs=000000H, size=0015H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
IN003e: 000000 push rdi
IN003f: 000001 push rsi
IN0040: 000002 push rbx
IN0041: 000003 sub rsp, 80
IN0042: 000007 lea rdi, [rsp+30H]
IN0043: 00000C mov ecx, 8
IN0044: 000011 xor rax, rax
IN0045: 000013 rep stosd
G_M1250_IG02: ; offs=000015H, size=00A5H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
IN0001: 000015 mov ecx, 10
IN0002: 00001A mov eax, 20
IN0003: 00001F lea rdx, bword ptr [V02 rsp+40H]
IN0004: 000024 mov qword ptr [rdx], rcx
IN0005: 000027 lea rdx, bword ptr [V02+0x8 rsp+48H]
IN0006: 00002C mov qword ptr [rdx], rax
IN0007: 00002F lea rdx, bword ptr [V03 rsp+30H]
IN0008: 000034 mov qword ptr [rdx], rax
IN0009: 000037 lea rax, bword ptr [V03+0x8 rsp+38H]
IN000a: 00003C mov qword ptr [rax], rcx
IN000b: 00003F movdqu xmm0, qword ptr [V02 rsp+40H]
IN000c: 000045 movdqu qword ptr [V21 rsp+20H], xmm0
IN000d: 00004B lea rcx, bword ptr [V21 rsp+20H]
IN000e: 000050 call Program:IsXGeater(struct):bool
IN000f: 000055 mov esi, eax
IN0010: 000057 movdqu xmm0, qword ptr [V03 rsp+30H]
IN0011: 00005D movdqu qword ptr [V21 rsp+20H], xmm0
IN0012: 000063 lea rcx, bword ptr [V21 rsp+20H]
IN0013: 000068 call Program:IsXGeater(struct):bool
IN0014: 00006D mov edi, eax
IN0015: 00006F movdqu xmm0, qword ptr [V02 rsp+40H]
IN0016: 000075 movdqu qword ptr [V21 rsp+20H], xmm0
IN0017: 00007B lea rcx, bword ptr [V21 rsp+20H]
IN0018: 000080 call Program:IsXGeater(struct):bool
IN0019: 000085 mov ebx, eax
IN001a: 000087 movdqu xmm0, qword ptr [V03 rsp+30H]
IN001b: 00008D movdqu qword ptr [V21 rsp+20H], xmm0
IN001c: 000093 lea rcx, bword ptr [V21 rsp+20H]
IN001d: 000098 call Program:IsXGeater(struct):bool
IN001e: 00009D test esi, esi
IN001f: 00009F je SHORT G_M1250_IG03
IN0020: 0000A1 mov rcx, 0x26AD6273068
IN0021: 0000AB mov rcx, gword ptr [rcx]
IN0022: 0000AE call System.Console:WriteLine(ref)
IN0023: 0000B3 mov eax, -1
IN0024: 0000B8 jmp SHORT G_M1250_IG07
G_M1250_IG03: ; offs=0000BAH, size=001DH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
IN0025: 0000BA test edi, edi
IN0026: 0000BC jne SHORT G_M1250_IG04
IN0027: 0000BE mov rcx, 0x26AD6273068
IN0028: 0000C8 mov rcx, gword ptr [rcx]
IN0029: 0000CB call System.Console:WriteLine(ref)
IN002a: 0000D0 mov eax, -1
IN002b: 0000D5 jmp SHORT G_M1250_IG07
G_M1250_IG04: ; offs=0000D7H, size=001DH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
IN002c: 0000D7 test ebx, ebx
IN002d: 0000D9 je SHORT G_M1250_IG05
IN002e: 0000DB mov rcx, 0x26AD6273068
IN002f: 0000E5 mov rcx, gword ptr [rcx]
IN0030: 0000E8 call System.Console:WriteLine(ref)
IN0031: 0000ED mov eax, -1
IN0032: 0000F2 jmp SHORT G_M1250_IG07
G_M1250_IG05: ; offs=0000F4H, size=001DH, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
IN0033: 0000F4 test eax, eax
IN0034: 0000F6 jne SHORT G_M1250_IG06
IN0035: 0000F8 mov rcx, 0x26AD6273068
IN0036: 000102 mov rcx, gword ptr [rcx]
IN0037: 000105 call System.Console:WriteLine(ref)
IN0038: 00010A mov eax, -1
IN0039: 00010F jmp SHORT G_M1250_IG07
G_M1250_IG06: ; offs=000111H, size=0017H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
IN003a: 000111 mov rcx, 0x26AD6273070
IN003b: 00011B mov rcx, gword ptr [rcx]
IN003c: 00011E call System.Console:WriteLine(ref)
IN003d: 000123 mov eax, 100
G_M1250_IG07: ; offs=000128H, size=0008H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, epilog, nogc
IN0046: 000128 add rsp, 80
IN0047: 00012C pop rbx
IN0048: 00012D pop rsi
IN0049: 00012E pop rdi
IN004a: 00012F ret
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0x000130 (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: 9 * 8 + 8 = 80 = 0x50
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=0x00007FF8613C06D0, pColdCode=0x0000000000000000, startOffset=0x0, endOffset=0x130, unwindSize=0xc, pUnwindBlock=0x0000026AC445036C, funKind=0 (main function))
*************** In genIPmappingGen()
IP mapping count : 24
IL offs PROLOG : 0x00000000 ( STACK_EMPTY )
IL offs 0x0000 : 0x00000015 ( STACK_EMPTY )
IL offs 0x000A : 0x0000001A ( STACK_EMPTY )
IL offs 0x0014 : 0x0000001F ( STACK_EMPTY )
IL offs 0x001D : 0x0000002F ( STACK_EMPTY )
IL offs 0x0026 : 0x0000003F ( STACK_EMPTY )
IL offs 0x002E : 0x00000057 ( STACK_EMPTY )
IL offs 0x0036 : 0x0000006F ( STACK_EMPTY )
IL offs 0x003E : 0x00000087 ( STACK_EMPTY )
IL offs 0x0046 : 0x0000009D ( STACK_EMPTY )
IL offs 0x004A : 0x000000A1 ( STACK_EMPTY )
IL offs 0x0054 : 0x000000B3 ( STACK_EMPTY )
IL offs 0x0056 : 0x000000BA ( STACK_EMPTY )
IL offs 0x005A : 0x000000BE ( STACK_EMPTY )
IL offs 0x0064 : 0x000000D0 ( STACK_EMPTY )
IL offs 0x0066 : 0x000000D7 ( STACK_EMPTY )
IL offs 0x006A : 0x000000DB ( STACK_EMPTY )
IL offs 0x0074 : 0x000000ED ( STACK_EMPTY )
IL offs 0x0076 : 0x000000F4 ( STACK_EMPTY )
IL offs 0x007A : 0x000000F8 ( STACK_EMPTY )
IL offs 0x0084 : 0x0000010A ( STACK_EMPTY )
IL offs 0x0086 : 0x00000111 ( STACK_EMPTY )
IL offs 0x0090 : 0x00000123 ( STACK_EMPTY )
IL offs EPILOG : 0x00000128 ( STACK_EMPTY )
*************** In genSetScopeInfo()
VarLocInfo count is 5
*************** Variable debug info
5 vars
2( UNKNOWN) : From 00000015h to 000000A1h, in rsp'[64] (1 slot)
3( UNKNOWN) : From 00000015h to 000000A1h, in rsp'[48] (1 slot)
6( UNKNOWN) : From 000000BAh to 000000BEh, in rbx
7( UNKNOWN) : From 000000BAh to 000000BEh, in rax
7( UNKNOWN) : From 000000D7h to 000000DBh, in rax
*************** In gcInfoBlockHdrSave()
Set code length to 304.
Set Outgoing stack arg area size to 32.
Defining 9 call sites:
Offset 0x50, size 5.
Offset 0x68, size 5.
Offset 0x80, size 5.
Offset 0x98, size 5.
Offset 0xae, size 5.
Offset 0xcb, size 5.
Offset 0xe8, size 5.
Offset 0x105, size 5.
Offset 0x11e, size 5.
Allocations for Program:Main():int (MethodHash=25d58ec5)
count: 2901, size: 226944, max = 12296
nraAlloc: 327680, nraUsed: 269744
Alloc'd bytes by kind:
kind | size | pct
---------------------+------------+--------
AssertionProp | 0 | 0.00%
ASTNode | 37184 | 16.38%
InstDesc | 7988 | 3.52%
ImpStack | 0 | 0.00%
BasicBlock | 3280 | 1.45%
fgArgInfo | 504 | 0.22%
fgArgInfoPtrArr | 72 | 0.03%
FlowList | 416 | 0.18%
TreeStatementList | 0 | 0.00%
SiScope | 512 | 0.23%
FlatFPStateX87 | 0 | 0.00%
DominatorMemory | 408 | 0.18%
LSRA | 4940 | 2.18%
LSRA_Interval | 6928 | 3.05%
LSRA_RefPosition | 21528 | 9.49%
Reachability | 16 | 0.01%
SSA | 4708 | 2.07%
ValueNumber | 14748 | 6.50%
LvaTable | 5360 | 2.36%
UnwindInfo | 0 | 0.00%
hashBv | 744 | 0.33%
bitset | 0 | 0.00%
FixedBitVect | 0 | 0.00%
AsIAllocator | 19620 | 8.65%
IndirAssignMap | 64 | 0.03%
FieldSeqStore | 392 | 0.17%
ZeroOffsetFieldMap | 184 | 0.08%
ArrayInfoMap | 64 | 0.03%
HeapPhiArg | 0 | 0.00%
CSE | 1384 | 0.61%
GC | 1952 | 0.86%
CorSig | 1352 | 0.60%
Inlining | 1528 | 0.67%
ArrayStack | 288 | 0.13%
DebugInfo | 1384 | 0.61%
DebugOnly | 88432 | 38.97%
Codegen | 0 | 0.00%
LoopOpt | 0 | 0.00%
LoopHoist | 0 | 0.00%
Unknown | 964 | 0.42%
****** DONE compiling Program:Main():int
Pass
C:\Program Files (x86)\MSBuild\14.0\bin\csc.exe /noconfig /nowarn:78,162,164,168,169,219,251,252,414,429,642,649,652,675,1691,1717,1718,3001,3002,3003,3005,3008,1701,1702 /nostdlib+ /define:TRACE;SIGNED /reference:C:\repos\coreclr\tests\packages\System.Console\4.0.0-beta-23516\ref\dotnet5.1\System.Console.dll /reference:C:\repos\coreclr\tests\packages\System.IO\4.0.0\ref\dotnet\System.IO.dll /reference:C:\repos\coreclr\tests\packages\System.Reflection\4.0.0-beta-23127\ref\dotnet\System.Reflection.dll /reference:C:\repos\coreclr\tests\packages\System.Reflection.Primitives\4.0.0-beta-23127\ref\dotnet\System.Reflection.Primitives.dll /reference:C:\repos\coreclr\tests\packages\System.Runtime\4.0.20-beta-23127\ref\dotnet\System.Runtime.dll /reference:C:\repos\coreclr\tests\packages\System.Runtime.Extensions\4.0.10-beta-23127\ref\dotnet\System.Runtime.Extensions.dll /reference:C:\repos\coreclr\tests\packages\System.Runtime.InteropServices\4.0.10-beta-23127\ref\dotnet\System.Runtime.InteropServices.dll /reference:C:\repos\coreclr\tests\packages\System.Text.Encoding\4.0.0\ref\dotnet\System.Text.Encoding.dll /reference:C:\repos\coreclr\tests\packages\System.Threading.Tasks\4.0.0\ref\dotnet\System.Threading.Tasks.dll /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile7\mscorlib.dll" /debug+ /delaysign+ /filealign:512 /keyfile:C:\repos\coreclr\tests\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00121\lib\MSFT.snk /optimize+ /out:C:\repos\coreclr\tests\..\bin\tests\obj\JIT\Regression\JitBlue\GitHub_2610\GitHub_2610\GitHub_2610.exe /ruleset:"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\\Rule Sets\MinimumRecommendedRules.ruleset" /target:exe /utf8output GitHub_2610.cs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment