****** START compiling Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this (MethodHash=727b6620) Generating code for Windows x64 OPTIONS: compCodeOpt = BLENDED_CODE OPTIONS: compDbgCode = false OPTIONS: compDbgInfo = true OPTIONS: compDbgEnC = false OPTIONS: compProcedureSplitting = false OPTIONS: compProcedureSplittingEH = false OPTIONS: optimized using profile data OPTIONS: Jit invoked for ngen IL to import: IL_0000 03 ldarg.1 IL_0001 02 ldarg.0 IL_0002 28 b5 07 00 06 call 0x60007B5 IL_0007 33 71 bne.un.s 113 (IL_007a) IL_0009 04 ldarg.2 IL_000a 02 ldarg.0 IL_000b 28 b6 07 00 06 call 0x60007B6 IL_0010 33 68 bne.un.s 104 (IL_007a) IL_0012 05 ldarg.3 IL_0013 02 ldarg.0 IL_0014 6f f1 06 00 06 callvirt 0x60006F1 IL_0019 33 5f bne.un.s 95 (IL_007a) IL_001b 0e 04 ldarg.s 0x4 IL_001d 02 ldarg.0 IL_001e 28 b8 07 00 06 call 0x60007B8 IL_0023 33 55 bne.un.s 85 (IL_007a) IL_0025 0e 05 ldarg.s 0x5 IL_0027 02 ldarg.0 IL_0028 28 b9 07 00 06 call 0x60007B9 IL_002d 28 56 06 00 06 call 0x6000656 IL_0032 2d 46 brtrue.s 70 (IL_007a) IL_0034 0e 06 ldarg.s 0x6 IL_0036 02 ldarg.0 IL_0037 28 ba 07 00 06 call 0x60007BA IL_003c 33 3c bne.un.s 60 (IL_007a) IL_003e 0e 07 ldarg.s 0x7 IL_0040 02 ldarg.0 IL_0041 28 bb 07 00 06 call 0x60007BB IL_0046 33 32 bne.un.s 50 (IL_007a) IL_0048 0e 08 ldarg.s 0x8 IL_004a 02 ldarg.0 IL_004b 28 bc 07 00 06 call 0x60007BC IL_0050 33 28 bne.un.s 40 (IL_007a) IL_0052 0e 09 ldarg.s 0x9 IL_0054 02 ldarg.0 IL_0055 28 bd 07 00 06 call 0x60007BD IL_005a 33 1e bne.un.s 30 (IL_007a) IL_005c 0e 0a ldarg.s 0xA IL_005e 02 ldarg.0 IL_005f 28 be 07 00 06 call 0x60007BE IL_0064 28 1a 02 00 0a call 0xA00021A IL_0069 2d 0f brtrue.s 15 (IL_007a) IL_006b 0e 0b ldarg.s 0xB IL_006d 02 ldarg.0 IL_006e 28 f6 06 00 06 call 0x60006F6 IL_0073 28 56 06 00 06 call 0x6000656 IL_0078 2c 31 brfalse.s 49 (IL_00ab) IL_007a 02 ldarg.0 IL_007b 7b 8c 04 00 04 ldfld 0x400048C IL_0080 03 ldarg.1 IL_0081 04 ldarg.2 IL_0082 05 ldarg.3 IL_0083 0e 04 ldarg.s 0x4 IL_0085 0e 05 ldarg.s 0x5 IL_0087 0e 06 ldarg.s 0x6 IL_0089 0e 07 ldarg.s 0x7 IL_008b 0e 08 ldarg.s 0x8 IL_008d 0e 09 ldarg.s 0x9 IL_008f 0e 0a ldarg.s 0xA IL_0091 0e 0b ldarg.s 0xB IL_0093 02 ldarg.0 IL_0094 28 6b 08 00 06 call 0x600086B IL_0099 73 b4 07 00 06 newobj 0x60007B4 IL_009e 25 dup IL_009f 02 ldarg.0 IL_00a0 28 6d 08 00 06 call 0x600086D IL_00a5 6f 6e 08 00 06 callvirt 0x600086E IL_00aa 2a ret IL_00ab 02 ldarg.0 IL_00ac 2a ret lvaSetClass: setting class for V00 to (00000000D1FFAB1E) Microsoft.CodeAnalysis.CSharp.BoundConversion 'this' passed in register rcx lvaSetClass: setting class for V01 to (00000000D1FFAB1E) Microsoft.CodeAnalysis.CSharp.BoundExpression Arg #1 passed in register(s) rdx Arg #2 passed in register(s) r8 Arg #3 passed in register(s) r9 lvaSetClass: setting class for V05 to (00000000D1FFAB1E) Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol lvaSetClass: setting class for V10 to (00000000D1FFAB1E) Microsoft.CodeAnalysis.ConstantValue lvaSetClass: setting class for V11 to (00000000D1FFAB1E) Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol lvaGrabTemp returning 12 (V12 tmp0) (a long lifetime temp) called for OutgoingArgSpace. ; Initial local variable assignments ; ; V00 this ref this class-hnd ; V01 arg1 ref class-hnd ; V02 arg2 ubyte ; V03 arg3 ubyte ; V04 arg4 bool ; V05 arg5 ref class-hnd ; V06 arg6 bool ; V07 arg7 bool ; V08 arg8 bool ; V09 arg9 bool ; V10 arg10 ref class-hnd ; V11 arg11 ref class-hnd ; V12 OutArgs lclBlk "OutgoingArgSpace" *************** In compInitDebuggingInfo() for Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this getVars() returned cVars = 0, extendOthers = true info.compVarScopesCount = 12 VarNum LVNum Name Beg End 0: 00h 00h V00 this 000h 0ADh 1: 01h 01h V01 arg1 000h 0ADh 2: 02h 02h V02 arg2 000h 0ADh 3: 03h 03h V03 arg3 000h 0ADh 4: 04h 04h V04 arg4 000h 0ADh 5: 05h 05h V05 arg5 000h 0ADh 6: 06h 06h V06 arg6 000h 0ADh 7: 07h 07h V07 arg7 000h 0ADh 8: 08h 08h V08 arg8 000h 0ADh 9: 09h 09h V09 arg9 000h 0ADh 10: 0Ah 0Ah V10 arg10 000h 0ADh 11: 0Bh 0Bh V11 arg11 000h 0ADh info.compStmtOffsetsCount = 0 info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE ) *************** In fgFindBasicBlocks() for Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this Jump targets: IL_007a IL_00ab New Basic Block BB01 [0000] created. BB01 [000..009) New Basic Block BB02 [0001] created. BB02 [009..012) New Basic Block BB03 [0002] created. BB03 [012..01B) New Basic Block BB04 [0003] created. BB04 [01B..025) New Basic Block BB05 [0004] created. BB05 [025..034) New Basic Block BB06 [0005] created. BB06 [034..03E) New Basic Block BB07 [0006] created. BB07 [03E..048) New Basic Block BB08 [0007] created. BB08 [048..052) New Basic Block BB09 [0008] created. BB09 [052..05C) New Basic Block BB10 [0009] created. BB10 [05C..06B) New Basic Block BB11 [0010] created. BB11 [06B..07A) New Basic Block BB12 [0011] created. BB12 [07A..0AB) New Basic Block BB13 [0012] created. BB13 [0AB..0AD) INLINER: during 'prejit' result 'failed this callee' reason 'too many il bytes' for 'n/a' calling 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' INLINER: Marking Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this as NOINLINE because of too many il bytes INLINER: during 'prejit' result 'failed this callee' reason 'too many il bytes' IL Code Size,Instr 173, 70, Basic Block count 13, Local Variable Num,Ref count 13, 37 for method Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this OPTIONS: opts.MinOpts() == false Basic block list for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 85106. 85106 [000..009)-> BB12 ( cond ) IBC BB02 [0001] 1 70274. 70274 [009..012)-> BB12 ( cond ) IBC BB03 [0002] 1 70274. 70274 [012..01B)-> BB12 ( cond ) IBC BB04 [0003] 1 70274. 70274 [01B..025)-> BB12 ( cond ) IBC BB05 [0004] 1 70274. 70274 [025..034)-> BB12 ( cond ) IBC BB06 [0005] 1 70274. 70274 [034..03E)-> BB12 ( cond ) IBC BB07 [0006] 1 70274. 70274 [03E..048)-> BB12 ( cond ) IBC BB08 [0007] 1 70274. 70274 [048..052)-> BB12 ( cond ) IBC BB09 [0008] 1 70275. 70275 [052..05C)-> BB12 ( cond ) IBC BB10 [0009] 1 70275. 70275 [05C..06B)-> BB12 ( cond ) IBC BB11 [0010] 1 70275. 70275 [06B..07A)-> BB13 ( cond ) IBC BB12 [0011] 11 14831. 14831 [07A..0AB) (return) IBC BB13 [0012] 1 70275. 70275 [0AB..0AD) (return) IBC ----------------------------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Pre-import *************** Finishing PHASE Pre-import *************** Starting PHASE Importation *************** In impImport() for Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this impImportBlockPending for BB01 Importing BB01 (PC=000) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' [ 0] 0 (0x000) ldarg.1 [ 1] 1 (0x001) ldarg.0 [ 2] 2 (0x002) call 060007B5 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 STMT00000 (IL 0x000... ???) [000002] I-C-G------- * CALL r2r_ind ref Microsoft.CodeAnalysis.CSharp.BoundConversion.get_Operand (exactContextHnd=0x00000000D1FFAB1E) [000001] ------------ this in rcx \--* LCL_VAR ref V00 this [ 2] 7 (0x007) bne.un.s STMT00001 (IL ???... ???) [000005] --C--------- * JTRUE void [000004] N-C------U-- \--* NE int [000000] ------------ +--* LCL_VAR ref V01 arg1 [000003] --C--------- \--* RET_EXPR ref (inl return from call [000002]) impImportBlockPending for BB02 impImportBlockPending for BB12 Importing BB12 (PC=122) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' [ 0] 122 (0x07a) ldarg.0 [ 1] 123 (0x07b) ldfld 0400048C [ 1] 128 (0x080) ldarg.1 [ 2] 129 (0x081) ldarg.2 [ 3] 130 (0x082) ldarg.3 [ 4] 131 (0x083) ldarg.s 4 [ 5] 133 (0x085) ldarg.s 5 [ 6] 135 (0x087) ldarg.s 6 [ 7] 137 (0x089) ldarg.s 7 [ 8] 139 (0x08b) ldarg.s 8 [ 9] 141 (0x08d) ldarg.s 9 [10] 143 (0x08f) ldarg.s 10 [11] 145 (0x091) ldarg.s 11 [12] 147 (0x093) ldarg.0 [13] 148 (0x094) call 0600086B In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 lvaGrabTemp returning 13 (V13 tmp1) called for impAppendStmt. STMT00003 (IL 0x07A... ???) [000022] -A-XG------- * ASG ref [000021] D------N---- +--* LCL_VAR ref V13 tmp1 [000007] ---XG------- \--* FIELD ref Syntax [000006] ------------ \--* LCL_VAR ref V00 this Marked V13 as a single def temp Querying runtime about current class of field Microsoft.CodeAnalysis.CSharp.BoundNode.Syntax (declared as Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode) Field's current class not available lvaSetClass: setting class for V13 to (00000000D1FFAB1E) Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode STMT00002 (IL 0x07A... ???) [000020] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundNode.get_HasErrors (exactContextHnd=0x00000000D1FFAB1E) [000019] ------------ this in rcx \--* LCL_VAR ref V00 this [13] 153 (0x099) newobj lvaGrabTemp returning 14 (V14 tmp2) called for NewObj constructor temp. STMT00004 (IL ???... ???) [000030] -A---------- * ASG ref [000029] D------N---- +--* LCL_VAR ref V14 tmp2 [000028] ------------ \--* ALLOCOBJ ref [000027] n----------- \--* IND long [000026] ------------ \--* CNS_INT(h) long 0xd1ffab1e method Marked V14 as a single def local lvaSetClass: setting class for V14 to (00000000D1FFAB1E) Microsoft.CodeAnalysis.CSharp.BoundConversion [exact] 060007B4 In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0 INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' calling 'Microsoft.CodeAnalysis.CSharp.BoundConversion:.ctor(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,bool):this' INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' STMT00005 (IL ???... ???) [000032] --C-G------- * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor [000031] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 [000023] ------------ arg1 +--* LCL_VAR ref V13 tmp1 [000008] ------------ arg2 +--* LCL_VAR ref V01 arg1 [000009] ------------ arg3 +--* LCL_VAR ubyte V02 arg2 [000010] ------------ arg4 +--* LCL_VAR ubyte V03 arg3 [000011] ------------ arg5 +--* LCL_VAR bool V04 arg4 [000012] ------------ arg6 +--* LCL_VAR ref V05 arg5 [000013] ------------ arg7 +--* LCL_VAR bool V06 arg6 [000014] ------------ arg8 +--* LCL_VAR bool V07 arg7 [000015] ------------ arg9 +--* LCL_VAR bool V08 arg8 [000016] ------------ arg10 +--* LCL_VAR bool V09 arg9 [000017] ------------ arg11 +--* LCL_VAR ref V10 arg10 [000018] ------------ arg12 +--* LCL_VAR ref V11 arg11 [000025] --C--------- arg13 \--* CAST int <- bool <- int [000024] --C--------- \--* RET_EXPR int (inl return from call [000020]) [ 1] 158 (0x09e) dup [ 2] 159 (0x09f) ldarg.0 [ 3] 160 (0x0a0) call 0600086D In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 STMT00006 (IL 0x09E... ???) [000036] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundNode.get_WasCompilerGenerated (exactContextHnd=0x00000000D1FFAB1E) [000035] ------------ this in rcx \--* LCL_VAR ref V00 this [ 3] 165 (0x0a5) callvirt 0600086E (Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT) In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is void, structSize is 0 Rejecting implicit tail call for [000039] STMT00007 (IL ???... ???) [000039] I-C-G------- * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundNode.set_WasCompilerGenerated (exactContextHnd=0x00000000D1FFAB1E) [000034] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 [000038] --C--------- arg1 \--* CAST int <- bool <- int [000037] --C--------- \--* RET_EXPR int (inl return from call [000036]) [ 1] 170 (0x0aa) ret STMT00008 (IL 0x0AA... ???) [000040] ------------ * RETURN ref [000033] ------------ \--* LCL_VAR ref V14 tmp2 Importing BB02 (PC=009) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' [ 0] 9 (0x009) ldarg.2 [ 1] 10 (0x00a) ldarg.0 [ 2] 11 (0x00b) call 060007B6 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 STMT00009 (IL 0x009... ???) [000043] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_ConversionKind (exactContextHnd=0x00000000D1FFAB1E) [000042] ------------ this in rcx \--* LCL_VAR ref V00 this [ 2] 16 (0x010) bne.un.s STMT00010 (IL ???... ???) [000047] --C--------- * JTRUE void [000046] N-C------U-- \--* NE int [000041] ------------ +--* LCL_VAR ubyte V02 arg2 [000045] --C--------- \--* CAST int <- ubyte <- int [000044] --C--------- \--* RET_EXPR int (inl return from call [000043]) impImportBlockPending for BB03 impImportBlockPending for BB12 Importing BB03 (PC=018) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' [ 0] 18 (0x012) ldarg.3 [ 1] 19 (0x013) ldarg.0 [ 2] 20 (0x014) callvirt 060006F1 In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is ubyte, structSize is 0 impDevirtualizeCall: Trying to devirtualize virtual call: class for 'this' is Microsoft.CodeAnalysis.CSharp.BoundConversion [final] (attrib 21000010) base method is Microsoft.CodeAnalysis.CSharp.BoundExpression::get_ResultKind devirt to Microsoft.CodeAnalysis.CSharp.BoundConversion::get_ResultKind -- final class [000050] --C-G------- * CALLV stub int Microsoft.CodeAnalysis.CSharp.BoundExpression.get_ResultKind [000049] ------------ this in rcx \--* LCL_VAR ref V00 this final class; can devirtualize ... after devirt... [000050] --C-G------- * CALL nullcheck int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_ResultKind [000049] ------------ this in rcx \--* LCL_VAR ref V00 this STMT00011 (IL 0x012... ???) [000050] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_ResultKind (exactContextHnd=0x00000000D1FFAB1E) [000049] ------------ this in rcx \--* LCL_VAR ref V00 this [ 2] 25 (0x019) bne.un.s STMT00012 (IL ???... ???) [000054] --C--------- * JTRUE void [000053] N-C------U-- \--* NE int [000048] ------------ +--* LCL_VAR ubyte V03 arg3 [000052] --C--------- \--* CAST int <- ubyte <- int [000051] --C--------- \--* RET_EXPR int (inl return from call [000050]) impImportBlockPending for BB04 impImportBlockPending for BB12 Importing BB04 (PC=027) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' [ 0] 27 (0x01b) ldarg.s 4 [ 1] 29 (0x01d) ldarg.0 [ 2] 30 (0x01e) call 060007B8 In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 STMT00013 (IL 0x01B... ???) [000057] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_IsBaseConversion (exactContextHnd=0x00000000D1FFAB1E) [000056] ------------ this in rcx \--* LCL_VAR ref V00 this [ 2] 35 (0x023) bne.un.s STMT00014 (IL ???... ???) [000061] --C--------- * JTRUE void [000060] N-C------U-- \--* NE int [000055] ------------ +--* LCL_VAR bool V04 arg4 [000059] --C--------- \--* CAST int <- bool <- int [000058] --C--------- \--* RET_EXPR int (inl return from call [000057]) impImportBlockPending for BB05 impImportBlockPending for BB12 Importing BB05 (PC=037) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' [ 0] 37 (0x025) ldarg.s 5 [ 1] 39 (0x027) ldarg.0 [ 2] 40 (0x028) call 060007B9 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 STMT00015 (IL 0x025... ???) [000064] I-C-G------- * CALL r2r_ind ref Microsoft.CodeAnalysis.CSharp.BoundConversion.get_SymbolOpt (exactContextHnd=0x00000000D1FFAB1E) [000063] ------------ this in rcx \--* LCL_VAR ref V00 this [ 2] 45 (0x02d) call 06000656 In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 STMT00016 (IL ???... ???) [000066] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality (exactContextHnd=0x00000000D1FFAB1E) [000062] ------------ arg0 +--* LCL_VAR ref V05 arg5 [000065] --C--------- arg1 \--* RET_EXPR ref (inl return from call [000064]) [ 1] 50 (0x032) brtrue.s STMT00017 (IL ???... ???) [000071] --C--------- * JTRUE void [000070] --C--------- \--* NE int [000068] --C--------- +--* CAST int <- bool <- int [000067] --C--------- | \--* RET_EXPR int (inl return from call [000066]) [000069] ------------ \--* CNS_INT int 0 impImportBlockPending for BB06 impImportBlockPending for BB12 Importing BB06 (PC=052) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' [ 0] 52 (0x034) ldarg.s 6 [ 1] 54 (0x036) ldarg.0 [ 2] 55 (0x037) call 060007BA In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 STMT00018 (IL 0x034... ???) [000074] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_Checked (exactContextHnd=0x00000000D1FFAB1E) [000073] ------------ this in rcx \--* LCL_VAR ref V00 this [ 2] 60 (0x03c) bne.un.s STMT00019 (IL ???... ???) [000078] --C--------- * JTRUE void [000077] N-C------U-- \--* NE int [000072] ------------ +--* LCL_VAR bool V06 arg6 [000076] --C--------- \--* CAST int <- bool <- int [000075] --C--------- \--* RET_EXPR int (inl return from call [000074]) impImportBlockPending for BB07 impImportBlockPending for BB12 Importing BB07 (PC=062) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' [ 0] 62 (0x03e) ldarg.s 7 [ 1] 64 (0x040) ldarg.0 [ 2] 65 (0x041) call 060007BB In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 STMT00020 (IL 0x03E... ???) [000081] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_ExplicitCastInCode (exactContextHnd=0x00000000D1FFAB1E) [000080] ------------ this in rcx \--* LCL_VAR ref V00 this [ 2] 70 (0x046) bne.un.s STMT00021 (IL ???... ???) [000085] --C--------- * JTRUE void [000084] N-C------U-- \--* NE int [000079] ------------ +--* LCL_VAR bool V07 arg7 [000083] --C--------- \--* CAST int <- bool <- int [000082] --C--------- \--* RET_EXPR int (inl return from call [000081]) impImportBlockPending for BB08 impImportBlockPending for BB12 Importing BB08 (PC=072) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' [ 0] 72 (0x048) ldarg.s 8 [ 1] 74 (0x04a) ldarg.0 [ 2] 75 (0x04b) call 060007BC In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 STMT00022 (IL 0x048... ???) [000088] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_IsExtensionMethod (exactContextHnd=0x00000000D1FFAB1E) [000087] ------------ this in rcx \--* LCL_VAR ref V00 this [ 2] 80 (0x050) bne.un.s STMT00023 (IL ???... ???) [000092] --C--------- * JTRUE void [000091] N-C------U-- \--* NE int [000086] ------------ +--* LCL_VAR bool V08 arg8 [000090] --C--------- \--* CAST int <- bool <- int [000089] --C--------- \--* RET_EXPR int (inl return from call [000088]) impImportBlockPending for BB09 impImportBlockPending for BB12 Importing BB09 (PC=082) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' [ 0] 82 (0x052) ldarg.s 9 [ 1] 84 (0x054) ldarg.0 [ 2] 85 (0x055) call 060007BD In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 STMT00024 (IL 0x052... ???) [000095] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_IsArrayIndex (exactContextHnd=0x00000000D1FFAB1E) [000094] ------------ this in rcx \--* LCL_VAR ref V00 this [ 2] 90 (0x05a) bne.un.s STMT00025 (IL ???... ???) [000099] --C--------- * JTRUE void [000098] N-C------U-- \--* NE int [000093] ------------ +--* LCL_VAR bool V09 arg9 [000097] --C--------- \--* CAST int <- bool <- int [000096] --C--------- \--* RET_EXPR int (inl return from call [000095]) impImportBlockPending for BB10 impImportBlockPending for BB12 Importing BB10 (PC=092) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' [ 0] 92 (0x05c) ldarg.s 10 [ 1] 94 (0x05e) ldarg.0 [ 2] 95 (0x05f) call 060007BE In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 STMT00026 (IL 0x05C... ???) [000102] I-C-G------- * CALL r2r_ind ref Microsoft.CodeAnalysis.CSharp.BoundConversion.get_ConstantValueOpt (exactContextHnd=0x00000000D1FFAB1E) [000101] ------------ this in rcx \--* LCL_VAR ref V00 this [ 2] 100 (0x064) call 0A00021A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 [ 1] 105 (0x069) brtrue.s STMT00027 (IL ???... ???) [000108] --C-G------- * JTRUE void [000107] --C-G------- \--* NE int [000105] --C-G------- +--* CAST int <- bool <- int [000104] --C-G------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality [000100] ------------ arg0 | +--* LCL_VAR ref V10 arg10 [000103] --C--------- arg1 | \--* RET_EXPR ref (inl return from call [000102]) [000106] ------------ \--* CNS_INT int 0 impImportBlockPending for BB11 impImportBlockPending for BB12 Importing BB11 (PC=107) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' [ 0] 107 (0x06b) ldarg.s 11 [ 1] 109 (0x06d) ldarg.0 [ 2] 110 (0x06e) call 060006F6 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 STMT00028 (IL 0x06B... ???) [000111] I-C-G------- * CALL r2r_ind ref Microsoft.CodeAnalysis.CSharp.BoundExpression.get_Type (exactContextHnd=0x00000000D1FFAB1E) [000110] ------------ this in rcx \--* LCL_VAR ref V00 this [ 2] 115 (0x073) call 06000656 In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 STMT00029 (IL ???... ???) [000113] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality (exactContextHnd=0x00000000D1FFAB1E) [000109] ------------ arg0 +--* LCL_VAR ref V11 arg11 [000112] --C--------- arg1 \--* RET_EXPR ref (inl return from call [000111]) [ 1] 120 (0x078) brfalse.s STMT00030 (IL ???... ???) [000118] --C--------- * JTRUE void [000117] --C--------- \--* EQ int [000115] --C--------- +--* CAST int <- bool <- int [000114] --C--------- | \--* RET_EXPR int (inl return from call [000113]) [000116] ------------ \--* CNS_INT int 0 impImportBlockPending for BB12 impImportBlockPending for BB13 Importing BB13 (PC=171) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' [ 0] 171 (0x0ab) ldarg.0 [ 1] 172 (0x0ac) ret STMT00031 (IL 0x0AB... ???) [000120] ------------ * RETURN ref [000119] ------------ \--* LCL_VAR ref V00 this *************** Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 85106. 85106 [000..009)-> BB12 ( cond ) i IBC BB02 [0001] 1 70274. 70274 [009..012)-> BB12 ( cond ) i IBC BB03 [0002] 1 70274. 70274 [012..01B)-> BB12 ( cond ) i IBC BB04 [0003] 1 70274. 70274 [01B..025)-> BB12 ( cond ) i IBC BB05 [0004] 1 70274. 70274 [025..034)-> BB12 ( cond ) i IBC BB06 [0005] 1 70274. 70274 [034..03E)-> BB12 ( cond ) i IBC BB07 [0006] 1 70274. 70274 [03E..048)-> BB12 ( cond ) i IBC BB08 [0007] 1 70274. 70274 [048..052)-> BB12 ( cond ) i IBC BB09 [0008] 1 70275. 70275 [052..05C)-> BB12 ( cond ) i IBC BB10 [0009] 1 70275. 70275 [05C..06B)-> BB12 ( cond ) i IBC BB11 [0010] 1 70275. 70275 [06B..07A)-> BB13 ( cond ) i IBC BB12 [0011] 11 14831. 14831 [07A..0AB) (return) i newobj IBC BB13 [0012] 1 70275. 70275 [0AB..0AD) (return) i IBC ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..009) -> BB12 (cond), preds={} succs={BB02,BB12} ***** BB01 STMT00000 (IL 0x000...0x007) [000002] I-C-G------- * CALL r2r_ind ref Microsoft.CodeAnalysis.CSharp.BoundConversion.get_Operand (exactContextHnd=0x00000000D1FFAB1E) [000001] ------------ this in rcx \--* LCL_VAR ref V00 this ***** BB01 STMT00001 (IL ???... ???) [000005] --C--------- * JTRUE void [000004] N-C------U-- \--* NE int [000000] ------------ +--* LCL_VAR ref V01 arg1 [000003] --C--------- \--* RET_EXPR ref (inl return from call [000002]) ------------ BB02 [009..012) -> BB12 (cond), preds={} succs={BB03,BB12} ***** BB02 STMT00009 (IL 0x009...0x010) [000043] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_ConversionKind (exactContextHnd=0x00000000D1FFAB1E) [000042] ------------ this in rcx \--* LCL_VAR ref V00 this ***** BB02 STMT00010 (IL ???... ???) [000047] --C--------- * JTRUE void [000046] N-C------U-- \--* NE int [000041] ------------ +--* LCL_VAR ubyte V02 arg2 [000045] --C--------- \--* CAST int <- ubyte <- int [000044] --C--------- \--* RET_EXPR int (inl return from call [000043]) ------------ BB03 [012..01B) -> BB12 (cond), preds={} succs={BB04,BB12} ***** BB03 STMT00011 (IL 0x012...0x019) [000050] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_ResultKind (exactContextHnd=0x00000000D1FFAB1E) [000049] ------------ this in rcx \--* LCL_VAR ref V00 this ***** BB03 STMT00012 (IL ???... ???) [000054] --C--------- * JTRUE void [000053] N-C------U-- \--* NE int [000048] ------------ +--* LCL_VAR ubyte V03 arg3 [000052] --C--------- \--* CAST int <- ubyte <- int [000051] --C--------- \--* RET_EXPR int (inl return from call [000050]) ------------ BB04 [01B..025) -> BB12 (cond), preds={} succs={BB05,BB12} ***** BB04 STMT00013 (IL 0x01B...0x023) [000057] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_IsBaseConversion (exactContextHnd=0x00000000D1FFAB1E) [000056] ------------ this in rcx \--* LCL_VAR ref V00 this ***** BB04 STMT00014 (IL ???... ???) [000061] --C--------- * JTRUE void [000060] N-C------U-- \--* NE int [000055] ------------ +--* LCL_VAR bool V04 arg4 [000059] --C--------- \--* CAST int <- bool <- int [000058] --C--------- \--* RET_EXPR int (inl return from call [000057]) ------------ BB05 [025..034) -> BB12 (cond), preds={} succs={BB06,BB12} ***** BB05 STMT00015 (IL 0x025...0x032) [000064] I-C-G------- * CALL r2r_ind ref Microsoft.CodeAnalysis.CSharp.BoundConversion.get_SymbolOpt (exactContextHnd=0x00000000D1FFAB1E) [000063] ------------ this in rcx \--* LCL_VAR ref V00 this ***** BB05 STMT00016 (IL ???... ???) [000066] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality (exactContextHnd=0x00000000D1FFAB1E) [000062] ------------ arg0 +--* LCL_VAR ref V05 arg5 [000065] --C--------- arg1 \--* RET_EXPR ref (inl return from call [000064]) ***** BB05 STMT00017 (IL ???... ???) [000071] --C--------- * JTRUE void [000070] --C--------- \--* NE int [000068] --C--------- +--* CAST int <- bool <- int [000067] --C--------- | \--* RET_EXPR int (inl return from call [000066]) [000069] ------------ \--* CNS_INT int 0 ------------ BB06 [034..03E) -> BB12 (cond), preds={} succs={BB07,BB12} ***** BB06 STMT00018 (IL 0x034...0x03C) [000074] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_Checked (exactContextHnd=0x00000000D1FFAB1E) [000073] ------------ this in rcx \--* LCL_VAR ref V00 this ***** BB06 STMT00019 (IL ???... ???) [000078] --C--------- * JTRUE void [000077] N-C------U-- \--* NE int [000072] ------------ +--* LCL_VAR bool V06 arg6 [000076] --C--------- \--* CAST int <- bool <- int [000075] --C--------- \--* RET_EXPR int (inl return from call [000074]) ------------ BB07 [03E..048) -> BB12 (cond), preds={} succs={BB08,BB12} ***** BB07 STMT00020 (IL 0x03E...0x046) [000081] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_ExplicitCastInCode (exactContextHnd=0x00000000D1FFAB1E) [000080] ------------ this in rcx \--* LCL_VAR ref V00 this ***** BB07 STMT00021 (IL ???... ???) [000085] --C--------- * JTRUE void [000084] N-C------U-- \--* NE int [000079] ------------ +--* LCL_VAR bool V07 arg7 [000083] --C--------- \--* CAST int <- bool <- int [000082] --C--------- \--* RET_EXPR int (inl return from call [000081]) ------------ BB08 [048..052) -> BB12 (cond), preds={} succs={BB09,BB12} ***** BB08 STMT00022 (IL 0x048...0x050) [000088] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_IsExtensionMethod (exactContextHnd=0x00000000D1FFAB1E) [000087] ------------ this in rcx \--* LCL_VAR ref V00 this ***** BB08 STMT00023 (IL ???... ???) [000092] --C--------- * JTRUE void [000091] N-C------U-- \--* NE int [000086] ------------ +--* LCL_VAR bool V08 arg8 [000090] --C--------- \--* CAST int <- bool <- int [000089] --C--------- \--* RET_EXPR int (inl return from call [000088]) ------------ BB09 [052..05C) -> BB12 (cond), preds={} succs={BB10,BB12} ***** BB09 STMT00024 (IL 0x052...0x05A) [000095] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_IsArrayIndex (exactContextHnd=0x00000000D1FFAB1E) [000094] ------------ this in rcx \--* LCL_VAR ref V00 this ***** BB09 STMT00025 (IL ???... ???) [000099] --C--------- * JTRUE void [000098] N-C------U-- \--* NE int [000093] ------------ +--* LCL_VAR bool V09 arg9 [000097] --C--------- \--* CAST int <- bool <- int [000096] --C--------- \--* RET_EXPR int (inl return from call [000095]) ------------ BB10 [05C..06B) -> BB12 (cond), preds={} succs={BB11,BB12} ***** BB10 STMT00026 (IL 0x05C...0x069) [000102] I-C-G------- * CALL r2r_ind ref Microsoft.CodeAnalysis.CSharp.BoundConversion.get_ConstantValueOpt (exactContextHnd=0x00000000D1FFAB1E) [000101] ------------ this in rcx \--* LCL_VAR ref V00 this ***** BB10 STMT00027 (IL ???... ???) [000108] --C-G------- * JTRUE void [000107] --C-G------- \--* NE int [000105] --C-G------- +--* CAST int <- bool <- int [000104] --C-G------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality [000100] ------------ arg0 | +--* LCL_VAR ref V10 arg10 [000103] --C--------- arg1 | \--* RET_EXPR ref (inl return from call [000102]) [000106] ------------ \--* CNS_INT int 0 ------------ BB11 [06B..07A) -> BB13 (cond), preds={} succs={BB12,BB13} ***** BB11 STMT00028 (IL 0x06B...0x078) [000111] I-C-G------- * CALL r2r_ind ref Microsoft.CodeAnalysis.CSharp.BoundExpression.get_Type (exactContextHnd=0x00000000D1FFAB1E) [000110] ------------ this in rcx \--* LCL_VAR ref V00 this ***** BB11 STMT00029 (IL ???... ???) [000113] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality (exactContextHnd=0x00000000D1FFAB1E) [000109] ------------ arg0 +--* LCL_VAR ref V11 arg11 [000112] --C--------- arg1 \--* RET_EXPR ref (inl return from call [000111]) ***** BB11 STMT00030 (IL ???... ???) [000118] --C--------- * JTRUE void [000117] --C--------- \--* EQ int [000115] --C--------- +--* CAST int <- bool <- int [000114] --C--------- | \--* RET_EXPR int (inl return from call [000113]) [000116] ------------ \--* CNS_INT int 0 ------------ BB12 [07A..0AB) (return), preds={} succs={} ***** BB12 STMT00003 (IL 0x07A...0x0AA) [000022] -A-XG------- * ASG ref [000021] D------N---- +--* LCL_VAR ref V13 tmp1 [000007] ---XG------- \--* FIELD ref Syntax [000006] ------------ \--* LCL_VAR ref V00 this ***** BB12 STMT00002 (IL 0x07A... ???) [000020] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundNode.get_HasErrors (exactContextHnd=0x00000000D1FFAB1E) [000019] ------------ this in rcx \--* LCL_VAR ref V00 this ***** BB12 STMT00004 (IL ???... ???) [000030] -A---------- * ASG ref [000029] D------N---- +--* LCL_VAR ref V14 tmp2 [000028] ------------ \--* ALLOCOBJ ref [000027] n----------- \--* IND long [000026] ------------ \--* CNS_INT(h) long 0xd1ffab1e method ***** BB12 STMT00005 (IL ???... ???) [000032] --C-G------- * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor [000031] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 [000023] ------------ arg1 +--* LCL_VAR ref V13 tmp1 [000008] ------------ arg2 +--* LCL_VAR ref V01 arg1 [000009] ------------ arg3 +--* LCL_VAR ubyte V02 arg2 [000010] ------------ arg4 +--* LCL_VAR ubyte V03 arg3 [000011] ------------ arg5 +--* LCL_VAR bool V04 arg4 [000012] ------------ arg6 +--* LCL_VAR ref V05 arg5 [000013] ------------ arg7 +--* LCL_VAR bool V06 arg6 [000014] ------------ arg8 +--* LCL_VAR bool V07 arg7 [000015] ------------ arg9 +--* LCL_VAR bool V08 arg8 [000016] ------------ arg10 +--* LCL_VAR bool V09 arg9 [000017] ------------ arg11 +--* LCL_VAR ref V10 arg10 [000018] ------------ arg12 +--* LCL_VAR ref V11 arg11 [000025] --C--------- arg13 \--* CAST int <- bool <- int [000024] --C--------- \--* RET_EXPR int (inl return from call [000020]) ***** BB12 STMT00006 (IL 0x09E... ???) [000036] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundNode.get_WasCompilerGenerated (exactContextHnd=0x00000000D1FFAB1E) [000035] ------------ this in rcx \--* LCL_VAR ref V00 this ***** BB12 STMT00007 (IL ???... ???) [000039] I-C-G------- * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundNode.set_WasCompilerGenerated (exactContextHnd=0x00000000D1FFAB1E) [000034] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 [000038] --C--------- arg1 \--* CAST int <- bool <- int [000037] --C--------- \--* RET_EXPR int (inl return from call [000036]) ***** BB12 STMT00008 (IL 0x0AA... ???) [000040] ------------ * RETURN ref [000033] ------------ \--* LCL_VAR ref V14 tmp2 ------------ BB13 [0AB..0AD) (return), preds={} succs={} ***** BB13 STMT00031 (IL 0x0AB...0x0AC) [000120] ------------ * RETURN ref [000119] ------------ \--* LCL_VAR ref V00 this ------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Indirect call transform -- no candidates to transform *************** Finishing PHASE Indirect call transform [no changes] *************** Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Finishing PHASE Expand patchpoints [no changes] *************** Starting PHASE Post-import *************** Finishing PHASE Post-import *************** Starting PHASE Morph - Init New BlockSet epoch 1, # of blocks (including unused BB00): 14, bitset array size: 1 (short) *************** In fgRemoveEmptyBlocks *************** Finishing PHASE Morph - Init *************** In fgDebugCheckBBlist *************** Starting PHASE Morph - Inlining Expanding INLINE_CANDIDATE in statement STMT00000 in BB01: STMT00000 (IL 0x000...0x007) [000002] I-C-G------- * CALL r2r_ind ref Microsoft.CodeAnalysis.CSharp.BoundConversion.get_Operand (exactContextHnd=0x00000000D1FFAB1E) [000001] ------------ this in rcx \--* LCL_VAR ref V00 this thisArg: is a local var [000001] ------------ * LCL_VAR ref V00 this INLINER: inlineInfo.tokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_Operand():Microsoft.CodeAnalysis.CSharp.BoundExpression:this set to 0x00000000D1FFAB1E: Invoking compiler for the inlinee method Microsoft.CodeAnalysis.CSharp.BoundConversion:get_Operand():Microsoft.CodeAnalysis.CSharp.BoundExpression:this : IL to import: IL_0000 02 ldarg.0 IL_0001 7b 3b 04 00 04 ldfld 0x400043B IL_0006 2a ret INLINER impTokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_Operand():Microsoft.CodeAnalysis.CSharp.BoundExpression:this is 0x00000000D1FFAB1E. *************** In fgFindBasicBlocks() for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_Operand():Microsoft.CodeAnalysis.CSharp.BoundExpression:this Jump targets: none New Basic Block BB14 [0013] created. BB14 [000..007) Basic block list for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_Operand():Microsoft.CodeAnalysis.CSharp.BoundExpression:this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB14 [0013] 1 1 [000..007) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000002] Starting PHASE Pre-import *************** Inline @[000002] Finishing PHASE Pre-import *************** Inline @[000002] Starting PHASE Importation *************** In impImport() for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_Operand():Microsoft.CodeAnalysis.CSharp.BoundExpression:this impImportBlockPending for BB14 Importing BB14 (PC=000) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_Operand():Microsoft.CodeAnalysis.CSharp.BoundExpression:this' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) ldfld 0400043B [ 1] 6 (0x006) ret Inlinee Return expression (before normalization) => [000121] ---XG------- * FIELD ref k__BackingField [000001] ------------ \--* LCL_VAR ref V00 this Inlinee Return expression (after normalization) => [000121] ---XG------- * FIELD ref k__BackingField [000001] ------------ \--* LCL_VAR ref V00 this ** Note: inlinee IL was partially imported -- imported 0 of 7 bytes of method IL *************** Inline @[000002] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB14 [0013] 1 1 [000..007) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB14 [000..007) (return), preds={} succs={} ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000002] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000002] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000002] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000002] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000002] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000002] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000002] ----------- Arguments setup: Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. Return expression for call at [000002] is [000121] ---XG------- * FIELD ref k__BackingField [000001] ------------ \--* LCL_VAR ref V00 this Successfully inlined Microsoft.CodeAnalysis.CSharp.BoundConversion:get_Operand():Microsoft.CodeAnalysis.CSharp.BoundExpression:this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' calling 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_Operand():Microsoft.CodeAnalysis.CSharp.BoundExpression:this' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Replacing the return expression placeholder [000003] with [000121] [000003] --C--------- * RET_EXPR ref (inl return from call [000121]) Inserting the inline return expression [000121] ---XG------- * FIELD ref k__BackingField [000001] ------------ \--* LCL_VAR ref V00 this Expanding INLINE_CANDIDATE in statement STMT00009 in BB02: STMT00009 (IL 0x009...0x010) [000043] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_ConversionKind (exactContextHnd=0x00000000D1FFAB1E) [000042] ------------ this in rcx \--* LCL_VAR ref V00 this thisArg: is a local var [000042] ------------ * LCL_VAR ref V00 this INLINER: inlineInfo.tokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ConversionKind():ubyte:this set to 0x00000000D1FFAB1E: Invoking compiler for the inlinee method Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ConversionKind():ubyte:this : IL to import: IL_0000 02 ldarg.0 IL_0001 7b 3c 04 00 04 ldfld 0x400043C IL_0006 2a ret INLINER impTokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ConversionKind():ubyte:this is 0x00000000D1FFAB1E. *************** In fgFindBasicBlocks() for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ConversionKind():ubyte:this Jump targets: none New Basic Block BB15 [0014] created. BB15 [000..007) Basic block list for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ConversionKind():ubyte:this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB15 [0014] 1 1 [000..007) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000043] Starting PHASE Pre-import *************** Inline @[000043] Finishing PHASE Pre-import *************** Inline @[000043] Starting PHASE Importation *************** In impImport() for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ConversionKind():ubyte:this impImportBlockPending for BB15 Importing BB15 (PC=000) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ConversionKind():ubyte:this' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) ldfld 0400043C [ 1] 6 (0x006) ret Inlinee Return expression (before normalization) => [000123] ---XG------- * FIELD ubyte k__BackingField [000042] ------------ \--* LCL_VAR ref V00 this Inlinee Return expression (after normalization) => [000123] ---XG------- * FIELD ubyte k__BackingField [000042] ------------ \--* LCL_VAR ref V00 this ** Note: inlinee IL was partially imported -- imported 0 of 7 bytes of method IL *************** Inline @[000043] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB15 [0014] 1 1 [000..007) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB15 [000..007) (return), preds={} succs={} ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000043] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000043] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000043] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000043] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000043] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000043] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000043] ----------- Arguments setup: Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. Return expression for call at [000043] is [000123] ---XG------- * FIELD ubyte k__BackingField [000042] ------------ \--* LCL_VAR ref V00 this Successfully inlined Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ConversionKind():ubyte:this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' calling 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ConversionKind():ubyte:this' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Replacing the return expression placeholder [000044] with [000123] [000044] --C--------- * RET_EXPR int (inl return from call [000123]) Inserting the inline return expression [000123] ---XG------- * FIELD ubyte k__BackingField [000042] ------------ \--* LCL_VAR ref V00 this Expanding INLINE_CANDIDATE in statement STMT00011 in BB03: STMT00011 (IL 0x012...0x019) [000050] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_ResultKind (exactContextHnd=0x00000000D1FFAB1E) [000049] ------------ this in rcx \--* LCL_VAR ref V00 this thisArg: is a local var [000049] ------------ * LCL_VAR ref V00 this INLINER: inlineInfo.tokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ResultKind():ubyte:this set to 0x00000000D1FFAB1E: Invoking compiler for the inlinee method Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ResultKind():ubyte:this : IL to import: IL_0000 02 ldarg.0 IL_0001 7b 3d 04 00 04 ldfld 0x400043D IL_0006 2a ret INLINER impTokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ResultKind():ubyte:this is 0x00000000D1FFAB1E. *************** In fgFindBasicBlocks() for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ResultKind():ubyte:this Jump targets: none New Basic Block BB16 [0015] created. BB16 [000..007) Basic block list for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ResultKind():ubyte:this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB16 [0015] 1 1 [000..007) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000050] Starting PHASE Pre-import *************** Inline @[000050] Finishing PHASE Pre-import *************** Inline @[000050] Starting PHASE Importation *************** In impImport() for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ResultKind():ubyte:this impImportBlockPending for BB16 Importing BB16 (PC=000) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ResultKind():ubyte:this' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) ldfld 0400043D [ 1] 6 (0x006) ret Inlinee Return expression (before normalization) => [000125] ---XG------- * FIELD ubyte _ResultKind [000049] ------------ \--* LCL_VAR ref V00 this Inlinee Return expression (after normalization) => [000125] ---XG------- * FIELD ubyte _ResultKind [000049] ------------ \--* LCL_VAR ref V00 this ** Note: inlinee IL was partially imported -- imported 0 of 7 bytes of method IL *************** Inline @[000050] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB16 [0015] 1 1 [000..007) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB16 [000..007) (return), preds={} succs={} ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000050] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000050] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000050] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000050] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000050] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000050] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000050] ----------- Arguments setup: Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. Return expression for call at [000050] is [000125] ---XG------- * FIELD ubyte _ResultKind [000049] ------------ \--* LCL_VAR ref V00 this Successfully inlined Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ResultKind():ubyte:this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' calling 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ResultKind():ubyte:this' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Replacing the return expression placeholder [000051] with [000125] [000051] --C--------- * RET_EXPR int (inl return from call [000125]) Inserting the inline return expression [000125] ---XG------- * FIELD ubyte _ResultKind [000049] ------------ \--* LCL_VAR ref V00 this Expanding INLINE_CANDIDATE in statement STMT00013 in BB04: STMT00013 (IL 0x01B...0x023) [000057] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_IsBaseConversion (exactContextHnd=0x00000000D1FFAB1E) [000056] ------------ this in rcx \--* LCL_VAR ref V00 this thisArg: is a local var [000056] ------------ * LCL_VAR ref V00 this INLINER: inlineInfo.tokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsBaseConversion():bool:this set to 0x00000000D1FFAB1E: Invoking compiler for the inlinee method Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsBaseConversion():bool:this : IL to import: IL_0000 02 ldarg.0 IL_0001 7b 3e 04 00 04 ldfld 0x400043E IL_0006 2a ret INLINER impTokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsBaseConversion():bool:this is 0x00000000D1FFAB1E. *************** In fgFindBasicBlocks() for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsBaseConversion():bool:this Jump targets: none New Basic Block BB17 [0016] created. BB17 [000..007) Basic block list for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsBaseConversion():bool:this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB17 [0016] 1 1 [000..007) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000057] Starting PHASE Pre-import *************** Inline @[000057] Finishing PHASE Pre-import *************** Inline @[000057] Starting PHASE Importation *************** In impImport() for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsBaseConversion():bool:this impImportBlockPending for BB17 Importing BB17 (PC=000) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsBaseConversion():bool:this' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) ldfld 0400043E [ 1] 6 (0x006) ret Inlinee Return expression (before normalization) => [000127] ---XG------- * FIELD bool k__BackingField [000056] ------------ \--* LCL_VAR ref V00 this Inlinee Return expression (after normalization) => [000127] ---XG------- * FIELD bool k__BackingField [000056] ------------ \--* LCL_VAR ref V00 this ** Note: inlinee IL was partially imported -- imported 0 of 7 bytes of method IL *************** Inline @[000057] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB17 [0016] 1 1 [000..007) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB17 [000..007) (return), preds={} succs={} ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000057] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000057] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000057] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000057] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000057] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000057] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000057] ----------- Arguments setup: Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. Return expression for call at [000057] is [000127] ---XG------- * FIELD bool k__BackingField [000056] ------------ \--* LCL_VAR ref V00 this Successfully inlined Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsBaseConversion():bool:this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' calling 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsBaseConversion():bool:this' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Replacing the return expression placeholder [000058] with [000127] [000058] --C--------- * RET_EXPR int (inl return from call [000127]) Inserting the inline return expression [000127] ---XG------- * FIELD bool k__BackingField [000056] ------------ \--* LCL_VAR ref V00 this Expanding INLINE_CANDIDATE in statement STMT00015 in BB05: STMT00015 (IL 0x025...0x032) [000064] I-C-G------- * CALL r2r_ind ref Microsoft.CodeAnalysis.CSharp.BoundConversion.get_SymbolOpt (exactContextHnd=0x00000000D1FFAB1E) [000063] ------------ this in rcx \--* LCL_VAR ref V00 this thisArg: is a local var [000063] ------------ * LCL_VAR ref V00 this INLINER: inlineInfo.tokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_SymbolOpt():Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this set to 0x00000000D1FFAB1E: Invoking compiler for the inlinee method Microsoft.CodeAnalysis.CSharp.BoundConversion:get_SymbolOpt():Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this : IL to import: IL_0000 02 ldarg.0 IL_0001 7b 3f 04 00 04 ldfld 0x400043F IL_0006 2a ret INLINER impTokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_SymbolOpt():Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this is 0x00000000D1FFAB1E. *************** In fgFindBasicBlocks() for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_SymbolOpt():Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this Jump targets: none New Basic Block BB18 [0017] created. BB18 [000..007) Basic block list for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_SymbolOpt():Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB18 [0017] 1 1 [000..007) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000064] Starting PHASE Pre-import *************** Inline @[000064] Finishing PHASE Pre-import *************** Inline @[000064] Starting PHASE Importation *************** In impImport() for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_SymbolOpt():Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this impImportBlockPending for BB18 Importing BB18 (PC=000) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_SymbolOpt():Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) ldfld 0400043F [ 1] 6 (0x006) ret Inlinee Return expression (before normalization) => [000129] ---XG------- * FIELD ref k__BackingField [000063] ------------ \--* LCL_VAR ref V00 this Inlinee Return expression (after normalization) => [000129] ---XG------- * FIELD ref k__BackingField [000063] ------------ \--* LCL_VAR ref V00 this ** Note: inlinee IL was partially imported -- imported 0 of 7 bytes of method IL *************** Inline @[000064] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB18 [0017] 1 1 [000..007) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB18 [000..007) (return), preds={} succs={} ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000064] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000064] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000064] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000064] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000064] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000064] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000064] ----------- Arguments setup: Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. Return expression for call at [000064] is [000129] ---XG------- * FIELD ref k__BackingField [000063] ------------ \--* LCL_VAR ref V00 this Successfully inlined Microsoft.CodeAnalysis.CSharp.BoundConversion:get_SymbolOpt():Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' calling 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_SymbolOpt():Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Expanding INLINE_CANDIDATE in statement STMT00016 in BB05: STMT00016 (IL ???... ???) [000066] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality (exactContextHnd=0x00000000D1FFAB1E) [000062] ------------ arg0 +--* LCL_VAR ref V05 arg5 [000065] --C--------- arg1 \--* RET_EXPR ref (inl return from call [000129]) Argument #0: is a local var [000062] ------------ * LCL_VAR ref V05 arg5 Argument #1: has global refs has side effects [000129] ---XG------- * FIELD ref k__BackingField [000063] ------------ \--* LCL_VAR ref V00 this INLINER: inlineInfo.tokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.Symbol:op_Inequality(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):bool set to 0x00000000D1FFAB1E: Invoking compiler for the inlinee method Microsoft.CodeAnalysis.CSharp.Symbol:op_Inequality(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):bool : IL to import: IL_0000 03 ldarg.1 IL_0001 2d 05 brtrue.s 5 (IL_0008) IL_0003 02 ldarg.0 IL_0004 14 ldnull IL_0005 fe 03 cgt.un IL_0007 2a ret IL_0008 02 ldarg.0 IL_0009 03 ldarg.1 IL_000a 2e 0b beq.s 11 (IL_0017) IL_000c 03 ldarg.1 IL_000d 02 ldarg.0 IL_000e 6f 58 06 00 06 callvirt 0x6000658 IL_0013 16 ldc.i4.0 IL_0014 fe 01 ceq IL_0016 2a ret IL_0017 16 ldc.i4.0 IL_0018 2a ret INLINER impTokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.Symbol:op_Inequality(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):bool is 0x00000000D1FFAB1E. *************** In fgFindBasicBlocks() for Microsoft.CodeAnalysis.CSharp.Symbol:op_Inequality(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):bool weight= 16 : state 4 [ ldarg.1 ] weight= 25 : state 45 [ brtrue.s ] weight= 10 : state 3 [ ldarg.0 ] weight= 7 : state 21 [ ldnull ] weight= 47 : state 170 [ cgt.un ] weight= 19 : state 42 [ ret ] weight= 10 : state 3 [ ldarg.0 ] weight= 16 : state 4 [ ldarg.1 ] weight= 6 : state 46 [ beq.s ] weight= 16 : state 4 [ ldarg.1 ] weight= 10 : state 3 [ ldarg.0 ] weight= 83 : state 99 [ callvirt ] weight= 15 : state 23 [ ldc.i4.0 ] weight= 20 : state 168 [ ceq ] weight= 19 : state 42 [ ret ] weight= 15 : state 23 [ ldc.i4.0 ] weight= 19 : state 42 [ ret ] Inline candidate has an arg that feeds a constant test. Multiplier increased to 1. Inline candidate callsite is warm. Multiplier increased to 3. calleeNativeSizeEstimate=353 callsiteNativeSizeEstimate=115 benefit multiplier=3 threshold=345 Native estimate for function size exceeds threshold for inlining 35.3 > 34.5 (multiplier = 3) Inline expansion aborted, inline not profitable Inlining [000066] failed, so bashing STMT00016 to NOP INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' calling 'Microsoft.CodeAnalysis.CSharp.Symbol:op_Inequality(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):bool' INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' Replacing the return expression placeholder [000067] with [000066] [000067] --C--------- * RET_EXPR int (inl return from call [000066]) Inserting the inline return expression [000066] --C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000062] ------------ arg0 +--* LCL_VAR ref V05 arg5 [000065] --C--------- arg1 \--* RET_EXPR ref (inl return from call [000129]) Replacing the return expression placeholder [000065] with [000129] [000065] --C--------- * RET_EXPR ref (inl return from call [000129]) Inserting the inline return expression [000129] ---XG------- * FIELD ref k__BackingField [000063] ------------ \--* LCL_VAR ref V00 this Expanding INLINE_CANDIDATE in statement STMT00018 in BB06: STMT00018 (IL 0x034...0x03C) [000074] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_Checked (exactContextHnd=0x00000000D1FFAB1E) [000073] ------------ this in rcx \--* LCL_VAR ref V00 this thisArg: is a local var [000073] ------------ * LCL_VAR ref V00 this INLINER: inlineInfo.tokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_Checked():bool:this set to 0x00000000D1FFAB1E: Invoking compiler for the inlinee method Microsoft.CodeAnalysis.CSharp.BoundConversion:get_Checked():bool:this : IL to import: IL_0000 02 ldarg.0 IL_0001 7b 40 04 00 04 ldfld 0x4000440 IL_0006 2a ret INLINER impTokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_Checked():bool:this is 0x00000000D1FFAB1E. *************** In fgFindBasicBlocks() for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_Checked():bool:this Jump targets: none New Basic Block BB19 [0018] created. BB19 [000..007) Basic block list for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_Checked():bool:this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB19 [0018] 1 1 [000..007) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000074] Starting PHASE Pre-import *************** Inline @[000074] Finishing PHASE Pre-import *************** Inline @[000074] Starting PHASE Importation *************** In impImport() for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_Checked():bool:this impImportBlockPending for BB19 Importing BB19 (PC=000) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_Checked():bool:this' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) ldfld 04000440 [ 1] 6 (0x006) ret Inlinee Return expression (before normalization) => [000132] ---XG------- * FIELD bool k__BackingField [000073] ------------ \--* LCL_VAR ref V00 this Inlinee Return expression (after normalization) => [000132] ---XG------- * FIELD bool k__BackingField [000073] ------------ \--* LCL_VAR ref V00 this ** Note: inlinee IL was partially imported -- imported 0 of 7 bytes of method IL *************** Inline @[000074] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB19 [0018] 1 1 [000..007) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB19 [000..007) (return), preds={} succs={} ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000074] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000074] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000074] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000074] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000074] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000074] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000074] ----------- Arguments setup: Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. Return expression for call at [000074] is [000132] ---XG------- * FIELD bool k__BackingField [000073] ------------ \--* LCL_VAR ref V00 this Successfully inlined Microsoft.CodeAnalysis.CSharp.BoundConversion:get_Checked():bool:this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' calling 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_Checked():bool:this' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Replacing the return expression placeholder [000075] with [000132] [000075] --C--------- * RET_EXPR int (inl return from call [000132]) Inserting the inline return expression [000132] ---XG------- * FIELD bool k__BackingField [000073] ------------ \--* LCL_VAR ref V00 this Expanding INLINE_CANDIDATE in statement STMT00020 in BB07: STMT00020 (IL 0x03E...0x046) [000081] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_ExplicitCastInCode (exactContextHnd=0x00000000D1FFAB1E) [000080] ------------ this in rcx \--* LCL_VAR ref V00 this thisArg: is a local var [000080] ------------ * LCL_VAR ref V00 this INLINER: inlineInfo.tokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ExplicitCastInCode():bool:this set to 0x00000000D1FFAB1E: Invoking compiler for the inlinee method Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ExplicitCastInCode():bool:this : IL to import: IL_0000 02 ldarg.0 IL_0001 7b 41 04 00 04 ldfld 0x4000441 IL_0006 2a ret INLINER impTokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ExplicitCastInCode():bool:this is 0x00000000D1FFAB1E. *************** In fgFindBasicBlocks() for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ExplicitCastInCode():bool:this Jump targets: none New Basic Block BB20 [0019] created. BB20 [000..007) Basic block list for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ExplicitCastInCode():bool:this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB20 [0019] 1 1 [000..007) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000081] Starting PHASE Pre-import *************** Inline @[000081] Finishing PHASE Pre-import *************** Inline @[000081] Starting PHASE Importation *************** In impImport() for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ExplicitCastInCode():bool:this impImportBlockPending for BB20 Importing BB20 (PC=000) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ExplicitCastInCode():bool:this' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) ldfld 04000441 [ 1] 6 (0x006) ret Inlinee Return expression (before normalization) => [000134] ---XG------- * FIELD bool k__BackingField [000080] ------------ \--* LCL_VAR ref V00 this Inlinee Return expression (after normalization) => [000134] ---XG------- * FIELD bool k__BackingField [000080] ------------ \--* LCL_VAR ref V00 this ** Note: inlinee IL was partially imported -- imported 0 of 7 bytes of method IL *************** Inline @[000081] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB20 [0019] 1 1 [000..007) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB20 [000..007) (return), preds={} succs={} ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000081] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000081] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000081] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000081] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000081] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000081] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000081] ----------- Arguments setup: Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. Return expression for call at [000081] is [000134] ---XG------- * FIELD bool k__BackingField [000080] ------------ \--* LCL_VAR ref V00 this Successfully inlined Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ExplicitCastInCode():bool:this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' calling 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ExplicitCastInCode():bool:this' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Replacing the return expression placeholder [000082] with [000134] [000082] --C--------- * RET_EXPR int (inl return from call [000134]) Inserting the inline return expression [000134] ---XG------- * FIELD bool k__BackingField [000080] ------------ \--* LCL_VAR ref V00 this Expanding INLINE_CANDIDATE in statement STMT00022 in BB08: STMT00022 (IL 0x048...0x050) [000088] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_IsExtensionMethod (exactContextHnd=0x00000000D1FFAB1E) [000087] ------------ this in rcx \--* LCL_VAR ref V00 this thisArg: is a local var [000087] ------------ * LCL_VAR ref V00 this INLINER: inlineInfo.tokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsExtensionMethod():bool:this set to 0x00000000D1FFAB1E: Invoking compiler for the inlinee method Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsExtensionMethod():bool:this : IL to import: IL_0000 02 ldarg.0 IL_0001 7b 42 04 00 04 ldfld 0x4000442 IL_0006 2a ret INLINER impTokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsExtensionMethod():bool:this is 0x00000000D1FFAB1E. *************** In fgFindBasicBlocks() for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsExtensionMethod():bool:this Jump targets: none New Basic Block BB21 [0020] created. BB21 [000..007) Basic block list for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsExtensionMethod():bool:this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB21 [0020] 1 1 [000..007) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000088] Starting PHASE Pre-import *************** Inline @[000088] Finishing PHASE Pre-import *************** Inline @[000088] Starting PHASE Importation *************** In impImport() for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsExtensionMethod():bool:this impImportBlockPending for BB21 Importing BB21 (PC=000) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsExtensionMethod():bool:this' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) ldfld 04000442 [ 1] 6 (0x006) ret Inlinee Return expression (before normalization) => [000136] ---XG------- * FIELD bool k__BackingField [000087] ------------ \--* LCL_VAR ref V00 this Inlinee Return expression (after normalization) => [000136] ---XG------- * FIELD bool k__BackingField [000087] ------------ \--* LCL_VAR ref V00 this ** Note: inlinee IL was partially imported -- imported 0 of 7 bytes of method IL *************** Inline @[000088] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB21 [0020] 1 1 [000..007) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB21 [000..007) (return), preds={} succs={} ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000088] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000088] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000088] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000088] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000088] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000088] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000088] ----------- Arguments setup: Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. Return expression for call at [000088] is [000136] ---XG------- * FIELD bool k__BackingField [000087] ------------ \--* LCL_VAR ref V00 this Successfully inlined Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsExtensionMethod():bool:this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' calling 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsExtensionMethod():bool:this' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Replacing the return expression placeholder [000089] with [000136] [000089] --C--------- * RET_EXPR int (inl return from call [000136]) Inserting the inline return expression [000136] ---XG------- * FIELD bool k__BackingField [000087] ------------ \--* LCL_VAR ref V00 this Expanding INLINE_CANDIDATE in statement STMT00024 in BB09: STMT00024 (IL 0x052...0x05A) [000095] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundConversion.get_IsArrayIndex (exactContextHnd=0x00000000D1FFAB1E) [000094] ------------ this in rcx \--* LCL_VAR ref V00 this thisArg: is a local var [000094] ------------ * LCL_VAR ref V00 this INLINER: inlineInfo.tokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsArrayIndex():bool:this set to 0x00000000D1FFAB1E: Invoking compiler for the inlinee method Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsArrayIndex():bool:this : IL to import: IL_0000 02 ldarg.0 IL_0001 7b 43 04 00 04 ldfld 0x4000443 IL_0006 2a ret INLINER impTokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsArrayIndex():bool:this is 0x00000000D1FFAB1E. *************** In fgFindBasicBlocks() for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsArrayIndex():bool:this Jump targets: none New Basic Block BB22 [0021] created. BB22 [000..007) Basic block list for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsArrayIndex():bool:this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB22 [0021] 1 1 [000..007) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000095] Starting PHASE Pre-import *************** Inline @[000095] Finishing PHASE Pre-import *************** Inline @[000095] Starting PHASE Importation *************** In impImport() for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsArrayIndex():bool:this impImportBlockPending for BB22 Importing BB22 (PC=000) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsArrayIndex():bool:this' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) ldfld 04000443 [ 1] 6 (0x006) ret Inlinee Return expression (before normalization) => [000138] ---XG------- * FIELD bool k__BackingField [000094] ------------ \--* LCL_VAR ref V00 this Inlinee Return expression (after normalization) => [000138] ---XG------- * FIELD bool k__BackingField [000094] ------------ \--* LCL_VAR ref V00 this ** Note: inlinee IL was partially imported -- imported 0 of 7 bytes of method IL *************** Inline @[000095] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB22 [0021] 1 1 [000..007) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB22 [000..007) (return), preds={} succs={} ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000095] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000095] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000095] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000095] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000095] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000095] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000095] ----------- Arguments setup: Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. Return expression for call at [000095] is [000138] ---XG------- * FIELD bool k__BackingField [000094] ------------ \--* LCL_VAR ref V00 this Successfully inlined Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsArrayIndex():bool:this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' calling 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsArrayIndex():bool:this' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Replacing the return expression placeholder [000096] with [000138] [000096] --C--------- * RET_EXPR int (inl return from call [000138]) Inserting the inline return expression [000138] ---XG------- * FIELD bool k__BackingField [000094] ------------ \--* LCL_VAR ref V00 this Expanding INLINE_CANDIDATE in statement STMT00026 in BB10: STMT00026 (IL 0x05C...0x069) [000102] I-C-G------- * CALL r2r_ind ref Microsoft.CodeAnalysis.CSharp.BoundConversion.get_ConstantValueOpt (exactContextHnd=0x00000000D1FFAB1E) [000101] ------------ this in rcx \--* LCL_VAR ref V00 this thisArg: is a local var [000101] ------------ * LCL_VAR ref V00 this INLINER: inlineInfo.tokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ConstantValueOpt():Microsoft.CodeAnalysis.ConstantValue:this set to 0x00000000D1FFAB1E: Invoking compiler for the inlinee method Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ConstantValueOpt():Microsoft.CodeAnalysis.ConstantValue:this : IL to import: IL_0000 02 ldarg.0 IL_0001 7b 44 04 00 04 ldfld 0x4000444 IL_0006 2a ret INLINER impTokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ConstantValueOpt():Microsoft.CodeAnalysis.ConstantValue:this is 0x00000000D1FFAB1E. *************** In fgFindBasicBlocks() for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ConstantValueOpt():Microsoft.CodeAnalysis.ConstantValue:this Jump targets: none New Basic Block BB23 [0022] created. BB23 [000..007) Basic block list for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ConstantValueOpt():Microsoft.CodeAnalysis.ConstantValue:this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB23 [0022] 1 1 [000..007) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000102] Starting PHASE Pre-import *************** Inline @[000102] Finishing PHASE Pre-import *************** Inline @[000102] Starting PHASE Importation *************** In impImport() for Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ConstantValueOpt():Microsoft.CodeAnalysis.ConstantValue:this impImportBlockPending for BB23 Importing BB23 (PC=000) of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ConstantValueOpt():Microsoft.CodeAnalysis.ConstantValue:this' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) ldfld 04000444 [ 1] 6 (0x006) ret Inlinee Return expression (before normalization) => [000140] ---XG------- * FIELD ref k__BackingField [000101] ------------ \--* LCL_VAR ref V00 this Inlinee Return expression (after normalization) => [000140] ---XG------- * FIELD ref k__BackingField [000101] ------------ \--* LCL_VAR ref V00 this ** Note: inlinee IL was partially imported -- imported 0 of 7 bytes of method IL *************** Inline @[000102] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB23 [0022] 1 1 [000..007) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB23 [000..007) (return), preds={} succs={} ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000102] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000102] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000102] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000102] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000102] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000102] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000102] ----------- Arguments setup: Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. Return expression for call at [000102] is [000140] ---XG------- * FIELD ref k__BackingField [000101] ------------ \--* LCL_VAR ref V00 this Successfully inlined Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ConstantValueOpt():Microsoft.CodeAnalysis.ConstantValue:this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' calling 'Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ConstantValueOpt():Microsoft.CodeAnalysis.ConstantValue:this' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Replacing the return expression placeholder [000103] with [000140] [000103] --C--------- * RET_EXPR ref (inl return from call [000140]) Inserting the inline return expression [000140] ---XG------- * FIELD ref k__BackingField [000101] ------------ \--* LCL_VAR ref V00 this Expanding INLINE_CANDIDATE in statement STMT00028 in BB11: STMT00028 (IL 0x06B...0x078) [000111] I-C-G------- * CALL r2r_ind ref Microsoft.CodeAnalysis.CSharp.BoundExpression.get_Type (exactContextHnd=0x00000000D1FFAB1E) [000110] ------------ this in rcx \--* LCL_VAR ref V00 this thisArg: is a local var [000110] ------------ * LCL_VAR ref V00 this INLINER: inlineInfo.tokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundExpression:get_Type():Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:this set to 0x00000000D1FFAB1E: Invoking compiler for the inlinee method Microsoft.CodeAnalysis.CSharp.BoundExpression:get_Type():Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:this : IL to import: IL_0000 02 ldarg.0 IL_0001 7b e9 03 00 04 ldfld 0x40003E9 IL_0006 2a ret INLINER impTokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundExpression:get_Type():Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:this is 0x00000000D1FFAB1E. *************** In fgFindBasicBlocks() for Microsoft.CodeAnalysis.CSharp.BoundExpression:get_Type():Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:this Jump targets: none New Basic Block BB24 [0023] created. BB24 [000..007) Basic block list for 'Microsoft.CodeAnalysis.CSharp.BoundExpression:get_Type():Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB24 [0023] 1 1 [000..007) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000111] Starting PHASE Pre-import *************** Inline @[000111] Finishing PHASE Pre-import *************** Inline @[000111] Starting PHASE Importation *************** In impImport() for Microsoft.CodeAnalysis.CSharp.BoundExpression:get_Type():Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:this impImportBlockPending for BB24 Importing BB24 (PC=000) of 'Microsoft.CodeAnalysis.CSharp.BoundExpression:get_Type():Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:this' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) ldfld 040003E9 [ 1] 6 (0x006) ret Inlinee Return expression (before normalization) => [000142] ---XG------- * FIELD ref k__BackingField [000110] ------------ \--* LCL_VAR ref V00 this Inlinee Return expression (after normalization) => [000142] ---XG------- * FIELD ref k__BackingField [000110] ------------ \--* LCL_VAR ref V00 this ** Note: inlinee IL was partially imported -- imported 0 of 7 bytes of method IL *************** Inline @[000111] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB24 [0023] 1 1 [000..007) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB24 [000..007) (return), preds={} succs={} ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000111] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000111] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000111] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000111] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000111] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000111] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000111] ----------- Arguments setup: Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. Return expression for call at [000111] is [000142] ---XG------- * FIELD ref k__BackingField [000110] ------------ \--* LCL_VAR ref V00 this Successfully inlined Microsoft.CodeAnalysis.CSharp.BoundExpression:get_Type():Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' calling 'Microsoft.CodeAnalysis.CSharp.BoundExpression:get_Type():Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:this' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Expanding INLINE_CANDIDATE in statement STMT00029 in BB11: STMT00029 (IL ???... ???) [000113] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality (exactContextHnd=0x00000000D1FFAB1E) [000109] ------------ arg0 +--* LCL_VAR ref V11 arg11 [000112] --C--------- arg1 \--* RET_EXPR ref (inl return from call [000142]) Argument #0: is a local var [000109] ------------ * LCL_VAR ref V11 arg11 Argument #1: has global refs has side effects [000142] ---XG------- * FIELD ref k__BackingField [000110] ------------ \--* LCL_VAR ref V00 this INLINER: inlineInfo.tokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.Symbol:op_Inequality(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):bool set to 0x00000000D1FFAB1E: Invoking compiler for the inlinee method Microsoft.CodeAnalysis.CSharp.Symbol:op_Inequality(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):bool : IL to import: IL_0000 03 ldarg.1 IL_0001 2d 05 brtrue.s 5 (IL_0008) IL_0003 02 ldarg.0 IL_0004 14 ldnull IL_0005 fe 03 cgt.un IL_0007 2a ret IL_0008 02 ldarg.0 IL_0009 03 ldarg.1 IL_000a 2e 0b beq.s 11 (IL_0017) IL_000c 03 ldarg.1 IL_000d 02 ldarg.0 IL_000e 6f 58 06 00 06 callvirt 0x6000658 IL_0013 16 ldc.i4.0 IL_0014 fe 01 ceq IL_0016 2a ret IL_0017 16 ldc.i4.0 IL_0018 2a ret INLINER impTokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.Symbol:op_Inequality(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):bool is 0x00000000D1FFAB1E. *************** In fgFindBasicBlocks() for Microsoft.CodeAnalysis.CSharp.Symbol:op_Inequality(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):bool weight= 16 : state 4 [ ldarg.1 ] weight= 25 : state 45 [ brtrue.s ] weight= 10 : state 3 [ ldarg.0 ] weight= 7 : state 21 [ ldnull ] weight= 47 : state 170 [ cgt.un ] weight= 19 : state 42 [ ret ] weight= 10 : state 3 [ ldarg.0 ] weight= 16 : state 4 [ ldarg.1 ] weight= 6 : state 46 [ beq.s ] weight= 16 : state 4 [ ldarg.1 ] weight= 10 : state 3 [ ldarg.0 ] weight= 83 : state 99 [ callvirt ] weight= 15 : state 23 [ ldc.i4.0 ] weight= 20 : state 168 [ ceq ] weight= 19 : state 42 [ ret ] weight= 15 : state 23 [ ldc.i4.0 ] weight= 19 : state 42 [ ret ] Inline candidate has an arg that feeds a constant test. Multiplier increased to 1. Inline candidate callsite is warm. Multiplier increased to 3. calleeNativeSizeEstimate=353 callsiteNativeSizeEstimate=115 benefit multiplier=3 threshold=345 Native estimate for function size exceeds threshold for inlining 35.3 > 34.5 (multiplier = 3) Inline expansion aborted, inline not profitable Inlining [000113] failed, so bashing STMT00029 to NOP INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' calling 'Microsoft.CodeAnalysis.CSharp.Symbol:op_Inequality(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):bool' INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' Replacing the return expression placeholder [000114] with [000113] [000114] --C--------- * RET_EXPR int (inl return from call [000113]) Inserting the inline return expression [000113] --C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000109] ------------ arg0 +--* LCL_VAR ref V11 arg11 [000112] --C--------- arg1 \--* RET_EXPR ref (inl return from call [000142]) Replacing the return expression placeholder [000112] with [000142] [000112] --C--------- * RET_EXPR ref (inl return from call [000142]) Inserting the inline return expression [000142] ---XG------- * FIELD ref k__BackingField [000110] ------------ \--* LCL_VAR ref V00 this Querying runtime about current class of field Microsoft.CodeAnalysis.CSharp.BoundNode.Syntax (declared as Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode) Field's current class not available Expanding INLINE_CANDIDATE in statement STMT00002 in BB12: STMT00002 (IL 0x07A... ???) [000020] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundNode.get_HasErrors (exactContextHnd=0x00000000D1FFAB1E) [000019] ------------ this in rcx \--* LCL_VAR ref V00 this thisArg: is a local var [000019] ------------ * LCL_VAR ref V00 this INLINER: inlineInfo.tokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundNode:get_HasErrors():bool:this set to 0x00000000D1FFAB1E: Invoking compiler for the inlinee method Microsoft.CodeAnalysis.CSharp.BoundNode:get_HasErrors():bool:this : IL to import: IL_0000 02 ldarg.0 IL_0001 7b 8b 04 00 04 ldfld 0x400048B IL_0006 17 ldc.i4.1 IL_0007 5f and IL_0008 16 ldc.i4.0 IL_0009 fe 03 cgt.un IL_000b 2a ret INLINER impTokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundNode:get_HasErrors():bool:this is 0x00000000D1FFAB1E. *************** In fgFindBasicBlocks() for Microsoft.CodeAnalysis.CSharp.BoundNode:get_HasErrors():bool:this Jump targets: none New Basic Block BB25 [0024] created. BB25 [000..00C) Basic block list for 'Microsoft.CodeAnalysis.CSharp.BoundNode:get_HasErrors():bool:this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB25 [0024] 1 1 [000..00C) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000020] Starting PHASE Pre-import *************** Inline @[000020] Finishing PHASE Pre-import *************** Inline @[000020] Starting PHASE Importation *************** In impImport() for Microsoft.CodeAnalysis.CSharp.BoundNode:get_HasErrors():bool:this impImportBlockPending for BB25 Importing BB25 (PC=000) of 'Microsoft.CodeAnalysis.CSharp.BoundNode:get_HasErrors():bool:this' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) ldfld 0400048B [ 1] 6 (0x006) ldc.i4.1 1 [ 2] 7 (0x007) and [ 1] 8 (0x008) ldc.i4.0 0 [ 2] 9 (0x009) cgt.un [ 1] 11 (0x00b) ret Inlinee Return expression (before normalization) => [000149] N--XG----U-- * GT int [000147] ---XG------- +--* AND int [000145] ---XG------- | +--* FIELD ubyte _attributes [000019] ------------ | | \--* LCL_VAR ref V00 this [000146] ------------ | \--* CNS_INT int 1 [000148] ------------ \--* CNS_INT int 0 Inlinee Return expression (after normalization) => [000149] N--XG----U-- * GT int [000147] ---XG------- +--* AND int [000145] ---XG------- | +--* FIELD ubyte _attributes [000019] ------------ | | \--* LCL_VAR ref V00 this [000146] ------------ | \--* CNS_INT int 1 [000148] ------------ \--* CNS_INT int 0 ** Note: inlinee IL was partially imported -- imported 0 of 12 bytes of method IL *************** Inline @[000020] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB25 [0024] 1 1 [000..00C) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB25 [000..00C) (return), preds={} succs={} ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000020] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000020] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000020] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000020] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000020] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000020] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000020] ----------- Arguments setup: Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. Return expression for call at [000020] is [000149] N--XG----U-- * GT int [000147] ---XG------- +--* AND int [000145] ---XG------- | +--* FIELD ubyte _attributes [000019] ------------ | | \--* LCL_VAR ref V00 this [000146] ------------ | \--* CNS_INT int 1 [000148] ------------ \--* CNS_INT int 0 Successfully inlined Microsoft.CodeAnalysis.CSharp.BoundNode:get_HasErrors():bool:this (12 IL bytes) (depth 1) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' calling 'Microsoft.CodeAnalysis.CSharp.BoundNode:get_HasErrors():bool:this' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Replacing the return expression placeholder [000024] with [000149] [000024] --C--------- * RET_EXPR int (inl return from call [000149]) Inserting the inline return expression [000149] N--XG----U-- * GT int [000147] ---XG------- +--* AND int [000145] ---XG------- | +--* FIELD ubyte _attributes [000019] ------------ | | \--* LCL_VAR ref V00 this [000146] ------------ | \--* CNS_INT int 1 [000148] ------------ \--* CNS_INT int 0 Expanding INLINE_CANDIDATE in statement STMT00006 in BB12: STMT00006 (IL 0x09E... ???) [000036] I-C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.BoundNode.get_WasCompilerGenerated (exactContextHnd=0x00000000D1FFAB1E) [000035] ------------ this in rcx \--* LCL_VAR ref V00 this thisArg: is a local var [000035] ------------ * LCL_VAR ref V00 this INLINER: inlineInfo.tokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundNode:get_WasCompilerGenerated():bool:this set to 0x00000000D1FFAB1E: Invoking compiler for the inlinee method Microsoft.CodeAnalysis.CSharp.BoundNode:get_WasCompilerGenerated():bool:this : IL to import: IL_0000 02 ldarg.0 IL_0001 7b 8b 04 00 04 ldfld 0x400048B IL_0006 18 ldc.i4.2 IL_0007 5f and IL_0008 16 ldc.i4.0 IL_0009 fe 03 cgt.un IL_000b 2a ret INLINER impTokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundNode:get_WasCompilerGenerated():bool:this is 0x00000000D1FFAB1E. *************** In fgFindBasicBlocks() for Microsoft.CodeAnalysis.CSharp.BoundNode:get_WasCompilerGenerated():bool:this Jump targets: none New Basic Block BB26 [0025] created. BB26 [000..00C) Basic block list for 'Microsoft.CodeAnalysis.CSharp.BoundNode:get_WasCompilerGenerated():bool:this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB26 [0025] 1 1 [000..00C) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000036] Starting PHASE Pre-import *************** Inline @[000036] Finishing PHASE Pre-import *************** Inline @[000036] Starting PHASE Importation *************** In impImport() for Microsoft.CodeAnalysis.CSharp.BoundNode:get_WasCompilerGenerated():bool:this impImportBlockPending for BB26 Importing BB26 (PC=000) of 'Microsoft.CodeAnalysis.CSharp.BoundNode:get_WasCompilerGenerated():bool:this' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) ldfld 0400048B [ 1] 6 (0x006) ldc.i4.2 2 [ 2] 7 (0x007) and [ 1] 8 (0x008) ldc.i4.0 0 [ 2] 9 (0x009) cgt.un [ 1] 11 (0x00b) ret Inlinee Return expression (before normalization) => [000155] N--XG----U-- * GT int [000153] ---XG------- +--* AND int [000151] ---XG------- | +--* FIELD ubyte _attributes [000035] ------------ | | \--* LCL_VAR ref V00 this [000152] ------------ | \--* CNS_INT int 2 [000154] ------------ \--* CNS_INT int 0 Inlinee Return expression (after normalization) => [000155] N--XG----U-- * GT int [000153] ---XG------- +--* AND int [000151] ---XG------- | +--* FIELD ubyte _attributes [000035] ------------ | | \--* LCL_VAR ref V00 this [000152] ------------ | \--* CNS_INT int 2 [000154] ------------ \--* CNS_INT int 0 ** Note: inlinee IL was partially imported -- imported 0 of 12 bytes of method IL *************** Inline @[000036] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB26 [0025] 1 1 [000..00C) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB26 [000..00C) (return), preds={} succs={} ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000036] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000036] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000036] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000036] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000036] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000036] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000036] ----------- Arguments setup: Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. Return expression for call at [000036] is [000155] N--XG----U-- * GT int [000153] ---XG------- +--* AND int [000151] ---XG------- | +--* FIELD ubyte _attributes [000035] ------------ | | \--* LCL_VAR ref V00 this [000152] ------------ | \--* CNS_INT int 2 [000154] ------------ \--* CNS_INT int 0 Successfully inlined Microsoft.CodeAnalysis.CSharp.BoundNode:get_WasCompilerGenerated():bool:this (12 IL bytes) (depth 1) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' calling 'Microsoft.CodeAnalysis.CSharp.BoundNode:get_WasCompilerGenerated():bool:this' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Expanding INLINE_CANDIDATE in statement STMT00007 in BB12: STMT00007 (IL ???... ???) [000039] I-C-G------- * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundNode.set_WasCompilerGenerated (exactContextHnd=0x00000000D1FFAB1E) [000034] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 [000038] --C--------- arg1 \--* CAST int <- bool <- int [000037] --C--------- \--* RET_EXPR int (inl return from call [000155]) thisArg: is a local var [000034] ------------ * LCL_VAR ref V14 tmp2 Argument #1: has side effects [000038] --C--------- * CAST int <- bool <- int [000037] --C--------- \--* RET_EXPR int (inl return from call [000155]) INLINER: inlineInfo.tokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundNode:set_WasCompilerGenerated(bool):this set to 0x00000000D1FFAB1E: Invoking compiler for the inlinee method Microsoft.CodeAnalysis.CSharp.BoundNode:set_WasCompilerGenerated(bool):this : IL to import: IL_0000 03 ldarg.1 IL_0001 2c 0e brfalse.s 14 (IL_0011) IL_0003 02 ldarg.0 IL_0004 02 ldarg.0 IL_0005 7b 8b 04 00 04 ldfld 0x400048B IL_000a 18 ldc.i4.2 IL_000b 60 or IL_000c 7d 8b 04 00 04 stfld 0x400048B IL_0011 2a ret INLINER impTokenLookupContextHandle for Microsoft.CodeAnalysis.CSharp.BoundNode:set_WasCompilerGenerated(bool):this is 0x00000000D1FFAB1E. *************** In fgFindBasicBlocks() for Microsoft.CodeAnalysis.CSharp.BoundNode:set_WasCompilerGenerated(bool):this weight= 16 : state 4 [ ldarg.1 ] weight= 27 : state 44 [ brfalse.s ] weight= 10 : state 3 [ ldarg.0 ] weight= 31 : state 191 [ ldarg.0 -> ldfld ] weight= 34 : state 25 [ ldc.i4.2 ] weight= -7 : state 84 [ or ] weight= 31 : state 111 [ stfld ] weight= 19 : state 42 [ ret ] Inline candidate has an arg that feeds a constant test. Multiplier increased to 1. Inline candidate is mostly loads and stores. Multiplier increased to 4. Inline candidate callsite is warm. Multiplier increased to 6. calleeNativeSizeEstimate=161 callsiteNativeSizeEstimate=115 benefit multiplier=6 threshold=690 Native estimate for function size is within threshold for inlining 16.1 <= 69 (multiplier = 6) Jump targets: IL_0011 New Basic Block BB27 [0026] created. BB27 [000..003) New Basic Block BB28 [0027] created. BB28 [003..011) New Basic Block BB29 [0028] created. BB29 [011..012) Basic block list for 'Microsoft.CodeAnalysis.CSharp.BoundNode:set_WasCompilerGenerated(bool):this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB27 [0026] 1 1 [000..003)-> BB29 ( cond ) BB28 [0027] 1 1 [003..011) BB29 [0028] 2 1 [011..012) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000039] Starting PHASE Pre-import *************** Inline @[000039] Finishing PHASE Pre-import *************** Inline @[000039] Starting PHASE Importation *************** In impImport() for Microsoft.CodeAnalysis.CSharp.BoundNode:set_WasCompilerGenerated(bool):this impImportBlockPending for BB27 Importing BB27 (PC=000) of 'Microsoft.CodeAnalysis.CSharp.BoundNode:set_WasCompilerGenerated(bool):this' [ 0] 0 (0x000) ldarg.1 lvaGrabTemp returning 15 (V15 tmp3) called for Inlining Arg. [ 1] 1 (0x001) brfalse.s [000161] ------------ * JTRUE void [000160] ------------ \--* EQ int [000158] ------------ +--* LCL_VAR int V15 tmp3 [000159] ------------ \--* CNS_INT int 0 impImportBlockPending for BB28 impImportBlockPending for BB29 Importing BB29 (PC=017) of 'Microsoft.CodeAnalysis.CSharp.BoundNode:set_WasCompilerGenerated(bool):this' [ 0] 17 (0x011) ret Importing BB28 (PC=003) of 'Microsoft.CodeAnalysis.CSharp.BoundNode:set_WasCompilerGenerated(bool):this' [ 0] 3 (0x003) ldarg.0 [ 1] 4 (0x004) ldarg.0 [ 2] 5 (0x005) ldfld 0400048B [ 2] 10 (0x00a) ldc.i4.2 2 [ 3] 11 (0x00b) or [ 2] 12 (0x00c) stfld 0400048B [000167] -A-XG------- * ASG ubyte [000166] ---XG--N---- +--* FIELD ubyte _attributes [000034] ------------ | \--* LCL_VAR ref V14 tmp2 [000165] ---XG------- \--* OR int [000163] ---XG------- +--* FIELD ubyte _attributes [000162] ------------ | \--* LCL_VAR ref V14 tmp2 [000164] ------------ \--* CNS_INT int 2 impImportBlockPending for BB29 ** Note: inlinee IL was partially imported -- imported 17 of 18 bytes of method IL *************** Inline @[000039] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB27 [0026] 1 1 [000..003)-> BB29 ( cond ) i BB28 [0027] 1 1 [003..011) i BB29 [0028] 2 1 [011..012) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB27 [000..003) -> BB29 (cond), preds={} succs={BB28,BB29} ***** BB27 [000161] ------------ * JTRUE void [000160] ------------ \--* EQ int [000158] ------------ +--* LCL_VAR int V15 tmp3 [000159] ------------ \--* CNS_INT int 0 ------------ BB28 [003..011), preds={} succs={BB29} ***** BB28 [000167] -A-XG------- * ASG ubyte [000166] ---XG--N---- +--* FIELD ubyte _attributes [000034] ------------ | \--* LCL_VAR ref V14 tmp2 [000165] ---XG------- \--* OR int [000163] ---XG------- +--* FIELD ubyte _attributes [000162] ------------ | \--* LCL_VAR ref V14 tmp2 [000164] ------------ \--* CNS_INT int 2 ------------ BB29 [011..012) (return), preds={} succs={} ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000039] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000039] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000039] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000039] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000039] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000039] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000039] ----------- Arguments setup: STMT00034 (IL ???... ???) [000171] -AC--------- * ASG bool [000170] D------N---- +--* LCL_VAR bool V15 tmp3 [000157] --C--------- \--* CAST int <- bool <- int [000038] --C--------- \--* CAST int <- bool <- int [000037] --C--------- \--* RET_EXPR int (inl return from call [000155]) Inlinee method body:New Basic Block BB30 [0029] created. Convert bbJumpKind of BB29 to BBJ_NONE fgInlineAppendStatements: no gc ref inline locals. ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB27 [0026] 1 14831. 14831 [000..000)-> BB29 ( cond ) i internal IBC BB28 [0027] 1 7415. [000..000) i internal BB29 [0028] 2 14831. 14831 [000..000) i internal IBC ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB27 [000..000) -> BB29 (cond), preds={} succs={BB28,BB29} ***** BB27 STMT00032 (IL ???... ???) [000161] ------------ * JTRUE void [000160] ------------ \--* EQ int [000158] ------------ +--* LCL_VAR int V15 tmp3 [000159] ------------ \--* CNS_INT int 0 ------------ BB28 [000..000), preds={} succs={BB29} ***** BB28 STMT00033 (IL ???... ???) [000167] -A-XG------- * ASG ubyte [000166] ---XG--N---- +--* FIELD ubyte _attributes [000034] ------------ | \--* LCL_VAR ref V14 tmp2 [000165] ---XG------- \--* OR int [000163] ---XG------- +--* FIELD ubyte _attributes [000162] ------------ | \--* LCL_VAR ref V14 tmp2 [000164] ------------ \--* CNS_INT int 2 ------------ BB29 [000..000), preds={} succs={BB30} ------------------------------------------------------------------------------------------------------------------- Successfully inlined Microsoft.CodeAnalysis.CSharp.BoundNode:set_WasCompilerGenerated(bool):this (18 IL bytes) (depth 1) [profitable inline] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'profitable inline' for 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' calling 'Microsoft.CodeAnalysis.CSharp.BoundNode:set_WasCompilerGenerated(bool):this' INLINER: during 'fgInline' result 'success' reason 'profitable inline' Replacing the return expression placeholder [000037] with [000155] [000037] --C--------- * RET_EXPR int (inl return from call [000155]) Inserting the inline return expression [000155] N--XG----U-- * GT int [000153] ---XG------- +--* AND int [000151] ---XG------- | +--* FIELD ubyte _attributes [000035] ------------ | | \--* LCL_VAR ref V00 this [000152] ------------ | \--* CNS_INT int 2 [000154] ------------ \--* CNS_INT int 0 **************** Inline Tree Inlines into 060007C0 Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this [1 IL=0002 TR=000002 060007B5] [below ALWAYS_INLINE size] Microsoft.CodeAnalysis.CSharp.BoundConversion:get_Operand():Microsoft.CodeAnalysis.CSharp.BoundExpression:this [2 IL=0011 TR=000043 060007B6] [below ALWAYS_INLINE size] Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ConversionKind():ubyte:this [3 IL=0020 TR=000050 060007B7] [below ALWAYS_INLINE size devirt] Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ResultKind():ubyte:this [4 IL=0030 TR=000057 060007B8] [below ALWAYS_INLINE size] Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsBaseConversion():bool:this [5 IL=0040 TR=000064 060007B9] [below ALWAYS_INLINE size] Microsoft.CodeAnalysis.CSharp.BoundConversion:get_SymbolOpt():Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:this [0 IL=0045 TR=000066 06000656] [FAILED: unprofitable inline] Microsoft.CodeAnalysis.CSharp.Symbol:op_Inequality(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):bool [6 IL=0055 TR=000074 060007BA] [below ALWAYS_INLINE size] Microsoft.CodeAnalysis.CSharp.BoundConversion:get_Checked():bool:this [7 IL=0065 TR=000081 060007BB] [below ALWAYS_INLINE size] Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ExplicitCastInCode():bool:this [8 IL=0075 TR=000088 060007BC] [below ALWAYS_INLINE size] Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsExtensionMethod():bool:this [9 IL=0085 TR=000095 060007BD] [below ALWAYS_INLINE size] Microsoft.CodeAnalysis.CSharp.BoundConversion:get_IsArrayIndex():bool:this [10 IL=0095 TR=000102 060007BE] [below ALWAYS_INLINE size] Microsoft.CodeAnalysis.CSharp.BoundConversion:get_ConstantValueOpt():Microsoft.CodeAnalysis.ConstantValue:this [0 IL=0100 TR=000104 06000B6D] [FAILED: noinline per VM] Microsoft.CodeAnalysis.ConstantValue:op_Inequality(Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.ConstantValue):bool [11 IL=0110 TR=000111 060006F6] [below ALWAYS_INLINE size] Microsoft.CodeAnalysis.CSharp.BoundExpression:get_Type():Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:this [0 IL=0115 TR=000113 06000656] [FAILED: unprofitable inline] Microsoft.CodeAnalysis.CSharp.Symbol:op_Inequality(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):bool [12 IL=0148 TR=000020 0600086B] [below ALWAYS_INLINE size] Microsoft.CodeAnalysis.CSharp.BoundNode:get_HasErrors():bool:this [0 IL=0153 TR=000032 060007B4] [FAILED: noinline per IL/cached result] Microsoft.CodeAnalysis.CSharp.BoundConversion:.ctor(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,bool):this [13 IL=0160 TR=000036 0600086D] [below ALWAYS_INLINE size] Microsoft.CodeAnalysis.CSharp.BoundNode:get_WasCompilerGenerated():bool:this [14 IL=0165 TR=000039 0600086E] [profitable inline] Microsoft.CodeAnalysis.CSharp.BoundNode:set_WasCompilerGenerated(bool):this Budget: initialTime=579, finalTime=417, initialBudget=5790, currentBudget=5790 Budget: initialSize=4075, finalSize=4121 *************** Finishing PHASE Morph - Inlining Trees after Morph - Inlining ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 85106. 85106 [000..009)-> BB12 ( cond ) i IBC BB02 [0001] 1 70274. 70274 [009..012)-> BB12 ( cond ) i IBC BB03 [0002] 1 70274. 70274 [012..01B)-> BB12 ( cond ) i IBC BB04 [0003] 1 70274. 70274 [01B..025)-> BB12 ( cond ) i IBC BB05 [0004] 1 70274. 70274 [025..034)-> BB12 ( cond ) i IBC BB06 [0005] 1 70274. 70274 [034..03E)-> BB12 ( cond ) i IBC BB07 [0006] 1 70274. 70274 [03E..048)-> BB12 ( cond ) i IBC BB08 [0007] 1 70274. 70274 [048..052)-> BB12 ( cond ) i IBC BB09 [0008] 1 70275. 70275 [052..05C)-> BB12 ( cond ) i IBC BB10 [0009] 1 70275. 70275 [05C..06B)-> BB12 ( cond ) i IBC BB11 [0010] 1 70275. 70275 [06B..07A)-> BB13 ( cond ) i IBC BB12 [0011] 11 14831. 14831 [07A..0AB) i newobj nullcheck IBC BB27 [0026] 1 14831. 14831 [000..000)-> BB29 ( cond ) i internal IBC BB28 [0027] 1 7415. [000..000) i internal BB29 [0028] 2 14831. 14831 [000..000) i internal IBC BB30 [0029] 1 14831. 14831 [???..???) (return) internal newobj nullcheck IBC BB13 [0012] 1 70275. 70275 [0AB..0AD) (return) i IBC ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..009) -> BB12 (cond), preds={} succs={BB02,BB12} ***** BB01 STMT00001 (IL ???... ???) [000005] --C--------- * JTRUE void [000004] N-C------U-- \--* NE int [000000] ------------ +--* LCL_VAR ref V01 arg1 [000121] ---XG------- \--* FIELD ref k__BackingField [000001] ------------ \--* LCL_VAR ref V00 this ------------ BB02 [009..012) -> BB12 (cond), preds={} succs={BB03,BB12} ***** BB02 STMT00010 (IL ???... ???) [000047] --C--------- * JTRUE void [000046] N-C------U-- \--* NE int [000041] ------------ +--* LCL_VAR ubyte V02 arg2 [000045] --C--------- \--* CAST int <- ubyte <- int [000123] ---XG------- \--* FIELD ubyte k__BackingField [000042] ------------ \--* LCL_VAR ref V00 this ------------ BB03 [012..01B) -> BB12 (cond), preds={} succs={BB04,BB12} ***** BB03 STMT00012 (IL ???... ???) [000054] --C--------- * JTRUE void [000053] N-C------U-- \--* NE int [000048] ------------ +--* LCL_VAR ubyte V03 arg3 [000052] --C--------- \--* CAST int <- ubyte <- int [000125] ---XG------- \--* FIELD ubyte _ResultKind [000049] ------------ \--* LCL_VAR ref V00 this ------------ BB04 [01B..025) -> BB12 (cond), preds={} succs={BB05,BB12} ***** BB04 STMT00014 (IL ???... ???) [000061] --C--------- * JTRUE void [000060] N-C------U-- \--* NE int [000055] ------------ +--* LCL_VAR bool V04 arg4 [000059] --C--------- \--* CAST int <- bool <- int [000127] ---XG------- \--* FIELD bool k__BackingField [000056] ------------ \--* LCL_VAR ref V00 this ------------ BB05 [025..034) -> BB12 (cond), preds={} succs={BB06,BB12} ***** BB05 STMT00017 (IL ???... ???) [000071] --C--------- * JTRUE void [000070] --C--------- \--* NE int [000068] --C--------- +--* CAST int <- bool <- int [000066] --C-G------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000062] ------------ arg0 | +--* LCL_VAR ref V05 arg5 [000129] ---XG------- arg1 | \--* FIELD ref k__BackingField [000063] ------------ | \--* LCL_VAR ref V00 this [000069] ------------ \--* CNS_INT int 0 ------------ BB06 [034..03E) -> BB12 (cond), preds={} succs={BB07,BB12} ***** BB06 STMT00019 (IL ???... ???) [000078] --C--------- * JTRUE void [000077] N-C------U-- \--* NE int [000072] ------------ +--* LCL_VAR bool V06 arg6 [000076] --C--------- \--* CAST int <- bool <- int [000132] ---XG------- \--* FIELD bool k__BackingField [000073] ------------ \--* LCL_VAR ref V00 this ------------ BB07 [03E..048) -> BB12 (cond), preds={} succs={BB08,BB12} ***** BB07 STMT00021 (IL ???... ???) [000085] --C--------- * JTRUE void [000084] N-C------U-- \--* NE int [000079] ------------ +--* LCL_VAR bool V07 arg7 [000083] --C--------- \--* CAST int <- bool <- int [000134] ---XG------- \--* FIELD bool k__BackingField [000080] ------------ \--* LCL_VAR ref V00 this ------------ BB08 [048..052) -> BB12 (cond), preds={} succs={BB09,BB12} ***** BB08 STMT00023 (IL ???... ???) [000092] --C--------- * JTRUE void [000091] N-C------U-- \--* NE int [000086] ------------ +--* LCL_VAR bool V08 arg8 [000090] --C--------- \--* CAST int <- bool <- int [000136] ---XG------- \--* FIELD bool k__BackingField [000087] ------------ \--* LCL_VAR ref V00 this ------------ BB09 [052..05C) -> BB12 (cond), preds={} succs={BB10,BB12} ***** BB09 STMT00025 (IL ???... ???) [000099] --C--------- * JTRUE void [000098] N-C------U-- \--* NE int [000093] ------------ +--* LCL_VAR bool V09 arg9 [000097] --C--------- \--* CAST int <- bool <- int [000138] ---XG------- \--* FIELD bool k__BackingField [000094] ------------ \--* LCL_VAR ref V00 this ------------ BB10 [05C..06B) -> BB12 (cond), preds={} succs={BB11,BB12} ***** BB10 STMT00027 (IL ???... ???) [000108] --C-G------- * JTRUE void [000107] --C-G------- \--* NE int [000105] --C-G------- +--* CAST int <- bool <- int [000104] --C-G------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality [000100] ------------ arg0 | +--* LCL_VAR ref V10 arg10 [000140] ---XG------- arg1 | \--* FIELD ref k__BackingField [000101] ------------ | \--* LCL_VAR ref V00 this [000106] ------------ \--* CNS_INT int 0 ------------ BB11 [06B..07A) -> BB13 (cond), preds={} succs={BB12,BB13} ***** BB11 STMT00030 (IL ???... ???) [000118] --C--------- * JTRUE void [000117] --C--------- \--* EQ int [000115] --C--------- +--* CAST int <- bool <- int [000113] --C-G------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000109] ------------ arg0 | +--* LCL_VAR ref V11 arg11 [000142] ---XG------- arg1 | \--* FIELD ref k__BackingField [000110] ------------ | \--* LCL_VAR ref V00 this [000116] ------------ \--* CNS_INT int 0 ------------ BB12 [07A..0AB), preds={} succs={BB27} ***** BB12 STMT00003 (IL 0x07A...0x0AA) [000022] -A-XG------- * ASG ref [000021] D------N---- +--* LCL_VAR ref V13 tmp1 [000007] ---XG------- \--* FIELD ref Syntax [000006] ------------ \--* LCL_VAR ref V00 this ***** BB12 STMT00004 (IL ???... ???) [000030] -A---------- * ASG ref [000029] D------N---- +--* LCL_VAR ref V14 tmp2 [000028] ------------ \--* ALLOCOBJ ref [000027] n----------- \--* IND long [000026] ------------ \--* CNS_INT(h) long 0xd1ffab1e method ***** BB12 STMT00005 (IL ???... ???) [000032] --C-G------- * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor [000031] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 [000023] ------------ arg1 +--* LCL_VAR ref V13 tmp1 [000008] ------------ arg2 +--* LCL_VAR ref V01 arg1 [000009] ------------ arg3 +--* LCL_VAR ubyte V02 arg2 [000010] ------------ arg4 +--* LCL_VAR ubyte V03 arg3 [000011] ------------ arg5 +--* LCL_VAR bool V04 arg4 [000012] ------------ arg6 +--* LCL_VAR ref V05 arg5 [000013] ------------ arg7 +--* LCL_VAR bool V06 arg6 [000014] ------------ arg8 +--* LCL_VAR bool V07 arg7 [000015] ------------ arg9 +--* LCL_VAR bool V08 arg8 [000016] ------------ arg10 +--* LCL_VAR bool V09 arg9 [000017] ------------ arg11 +--* LCL_VAR ref V10 arg10 [000018] ------------ arg12 +--* LCL_VAR ref V11 arg11 [000025] --C--------- arg13 \--* CAST int <- bool <- int [000149] N--XG----U-- \--* GT int [000147] ---XG------- +--* AND int [000145] ---XG------- | +--* FIELD ubyte _attributes [000019] ------------ | | \--* LCL_VAR ref V00 this [000146] ------------ | \--* CNS_INT int 1 [000148] ------------ \--* CNS_INT int 0 ***** BB12 STMT00034 (IL ???... ???) [000171] -AC--------- * ASG bool [000170] D------N---- +--* LCL_VAR bool V15 tmp3 [000157] --C--------- \--* CAST int <- bool <- int [000038] --C--------- \--* CAST int <- bool <- int [000155] N--XG----U-- \--* GT int [000153] ---XG------- +--* AND int [000151] ---XG------- | +--* FIELD ubyte _attributes [000035] ------------ | | \--* LCL_VAR ref V00 this [000152] ------------ | \--* CNS_INT int 2 [000154] ------------ \--* CNS_INT int 0 ***** BB12 STMT00035 (IL ???... ???) [000169] ---X-------- * NULLCHECK byte [000168] ------------ \--* LCL_VAR ref V14 tmp2 ------------ BB27 [000..000) -> BB29 (cond), preds={} succs={BB28,BB29} ***** BB27 STMT00032 (IL ???... ???) [000161] ------------ * JTRUE void [000160] ------------ \--* EQ int [000158] ------------ +--* LCL_VAR int V15 tmp3 [000159] ------------ \--* CNS_INT int 0 ------------ BB28 [000..000), preds={} succs={BB29} ***** BB28 STMT00033 (IL ???... ???) [000167] -A-XG------- * ASG ubyte [000166] ---XG--N---- +--* FIELD ubyte _attributes [000034] ------------ | \--* LCL_VAR ref V14 tmp2 [000165] ---XG------- \--* OR int [000163] ---XG------- +--* FIELD ubyte _attributes [000162] ------------ | \--* LCL_VAR ref V14 tmp2 [000164] ------------ \--* CNS_INT int 2 ------------ BB29 [000..000), preds={} succs={BB30} ------------ BB30 [???..???) (return), preds={} succs={} ***** BB30 STMT00008 (IL 0x0AA... ???) [000040] ------------ * RETURN ref [000033] ------------ \--* LCL_VAR ref V14 tmp2 ------------ BB13 [0AB..0AD) (return), preds={} succs={} ***** BB13 STMT00031 (IL 0x0AB...0x0AC) [000120] ------------ * RETURN ref [000119] ------------ \--* LCL_VAR ref V00 this ------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Allocate Objects disabled, punting *************** Finishing PHASE Allocate Objects [no changes] *************** Starting PHASE Morph - Add internal blocks *************** After fgAddInternal() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 85106. 85106 [000..009)-> BB12 ( cond ) i IBC BB02 [0001] 1 70274. 70274 [009..012)-> BB12 ( cond ) i IBC BB03 [0002] 1 70274. 70274 [012..01B)-> BB12 ( cond ) i IBC BB04 [0003] 1 70274. 70274 [01B..025)-> BB12 ( cond ) i IBC BB05 [0004] 1 70274. 70274 [025..034)-> BB12 ( cond ) i IBC BB06 [0005] 1 70274. 70274 [034..03E)-> BB12 ( cond ) i IBC BB07 [0006] 1 70274. 70274 [03E..048)-> BB12 ( cond ) i IBC BB08 [0007] 1 70274. 70274 [048..052)-> BB12 ( cond ) i IBC BB09 [0008] 1 70275. 70275 [052..05C)-> BB12 ( cond ) i IBC BB10 [0009] 1 70275. 70275 [05C..06B)-> BB12 ( cond ) i IBC BB11 [0010] 1 70275. 70275 [06B..07A)-> BB13 ( cond ) i IBC BB12 [0011] 11 14831. 14831 [07A..0AB) i newobj nullcheck IBC BB27 [0026] 1 14831. 14831 [000..000)-> BB29 ( cond ) i internal IBC BB28 [0027] 1 7415. [000..000) i internal BB29 [0028] 2 14831. 14831 [000..000) i internal IBC BB30 [0029] 1 14831. 14831 [???..???) (return) internal newobj nullcheck IBC BB13 [0012] 1 70275. 70275 [0AB..0AD) (return) i IBC ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty *************** Finishing PHASE Morph - Add internal blocks *************** Starting PHASE Remove empty try *************** In fgRemoveEmptyTry() No EH in this method, nothing to remove. *************** Finishing PHASE Remove empty try [no changes] *************** Starting PHASE Remove empty finally No EH in this method, nothing to remove. *************** Finishing PHASE Remove empty finally [no changes] *************** Starting PHASE Merge callfinally chains No EH in this method, nothing to merge. *************** Finishing PHASE Merge callfinally chains [no changes] *************** Starting PHASE Clone finally No EH in this method, no cloning. *************** Finishing PHASE Clone finally [no changes] *************** Starting PHASE Compute preds Renumbering the basic blocks for fgComputePred *************** Before renumbering the basic blocks ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 85106. 85106 [000..009)-> BB12 ( cond ) i IBC BB02 [0001] 1 70274. 70274 [009..012)-> BB12 ( cond ) i IBC BB03 [0002] 1 70274. 70274 [012..01B)-> BB12 ( cond ) i IBC BB04 [0003] 1 70274. 70274 [01B..025)-> BB12 ( cond ) i IBC BB05 [0004] 1 70274. 70274 [025..034)-> BB12 ( cond ) i IBC BB06 [0005] 1 70274. 70274 [034..03E)-> BB12 ( cond ) i IBC BB07 [0006] 1 70274. 70274 [03E..048)-> BB12 ( cond ) i IBC BB08 [0007] 1 70274. 70274 [048..052)-> BB12 ( cond ) i IBC BB09 [0008] 1 70275. 70275 [052..05C)-> BB12 ( cond ) i IBC BB10 [0009] 1 70275. 70275 [05C..06B)-> BB12 ( cond ) i IBC BB11 [0010] 1 70275. 70275 [06B..07A)-> BB13 ( cond ) i IBC BB12 [0011] 11 14831. 14831 [07A..0AB) i newobj nullcheck IBC BB27 [0026] 1 14831. 14831 [000..000)-> BB29 ( cond ) i internal IBC BB28 [0027] 1 7415. [000..000) i internal BB29 [0028] 2 14831. 14831 [000..000) i internal IBC BB30 [0029] 1 14831. 14831 [???..???) (return) internal newobj nullcheck IBC BB13 [0012] 1 70275. 70275 [0AB..0AD) (return) i IBC ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty Renumber BB27 to BB13 Renumber BB28 to BB14 Renumber BB29 to BB15 Renumber BB30 to BB16 Renumber BB13 to BB17 *************** After renumbering the basic blocks ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 85106. 85106 [000..009)-> BB12 ( cond ) i IBC BB02 [0001] 1 70274. 70274 [009..012)-> BB12 ( cond ) i IBC BB03 [0002] 1 70274. 70274 [012..01B)-> BB12 ( cond ) i IBC BB04 [0003] 1 70274. 70274 [01B..025)-> BB12 ( cond ) i IBC BB05 [0004] 1 70274. 70274 [025..034)-> BB12 ( cond ) i IBC BB06 [0005] 1 70274. 70274 [034..03E)-> BB12 ( cond ) i IBC BB07 [0006] 1 70274. 70274 [03E..048)-> BB12 ( cond ) i IBC BB08 [0007] 1 70274. 70274 [048..052)-> BB12 ( cond ) i IBC BB09 [0008] 1 70275. 70275 [052..05C)-> BB12 ( cond ) i IBC BB10 [0009] 1 70275. 70275 [05C..06B)-> BB12 ( cond ) i IBC BB11 [0010] 1 70275. 70275 [06B..07A)-> BB17 ( cond ) i IBC BB12 [0011] 11 14831. 14831 [07A..0AB) i newobj nullcheck IBC BB13 [0026] 1 14831. 14831 [000..000)-> BB15 ( cond ) i internal IBC BB14 [0027] 1 7415. [000..000) i internal BB15 [0028] 2 14831. 14831 [000..000) i internal IBC BB16 [0029] 1 14831. 14831 [???..???) (return) internal newobj nullcheck IBC BB17 [0012] 1 70275. 70275 [0AB..0AD) (return) i IBC ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty New BlockSet epoch 2, # of blocks (including unused BB00): 18, bitset array size: 1 (short) *************** In fgComputePreds() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 85106. 85106 [000..009)-> BB12 ( cond ) i IBC BB02 [0001] 1 70274. 70274 [009..012)-> BB12 ( cond ) i IBC BB03 [0002] 1 70274. 70274 [012..01B)-> BB12 ( cond ) i IBC BB04 [0003] 1 70274. 70274 [01B..025)-> BB12 ( cond ) i IBC BB05 [0004] 1 70274. 70274 [025..034)-> BB12 ( cond ) i IBC BB06 [0005] 1 70274. 70274 [034..03E)-> BB12 ( cond ) i IBC BB07 [0006] 1 70274. 70274 [03E..048)-> BB12 ( cond ) i IBC BB08 [0007] 1 70274. 70274 [048..052)-> BB12 ( cond ) i IBC BB09 [0008] 1 70275. 70275 [052..05C)-> BB12 ( cond ) i IBC BB10 [0009] 1 70275. 70275 [05C..06B)-> BB12 ( cond ) i IBC BB11 [0010] 1 70275. 70275 [06B..07A)-> BB17 ( cond ) i IBC BB12 [0011] 11 14831. 14831 [07A..0AB) i newobj nullcheck IBC BB13 [0026] 1 14831. 14831 [000..000)-> BB15 ( cond ) i internal IBC BB14 [0027] 1 7415. [000..000) i internal BB15 [0028] 2 14831. 14831 [000..000) i internal IBC BB16 [0029] 1 14831. 14831 [???..???) (return) internal newobj nullcheck IBC BB17 [0012] 1 70275. 70275 [0AB..0AD) (return) i IBC ----------------------------------------------------------------------------------------------------------------------------------------- *************** After fgComputePreds() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 85106. 85106 [000..009)-> BB12 ( cond ) i label target IBC BB02 [0001] 1 BB01 70274. 70274 [009..012)-> BB12 ( cond ) i IBC BB03 [0002] 1 BB02 70274. 70274 [012..01B)-> BB12 ( cond ) i IBC BB04 [0003] 1 BB03 70274. 70274 [01B..025)-> BB12 ( cond ) i IBC BB05 [0004] 1 BB04 70274. 70274 [025..034)-> BB12 ( cond ) i IBC BB06 [0005] 1 BB05 70274. 70274 [034..03E)-> BB12 ( cond ) i IBC BB07 [0006] 1 BB06 70274. 70274 [03E..048)-> BB12 ( cond ) i IBC BB08 [0007] 1 BB07 70274. 70274 [048..052)-> BB12 ( cond ) i IBC BB09 [0008] 1 BB08 70275. 70275 [052..05C)-> BB12 ( cond ) i IBC BB10 [0009] 1 BB09 70275. 70275 [05C..06B)-> BB12 ( cond ) i IBC BB11 [0010] 1 BB10 70275. 70275 [06B..07A)-> BB17 ( cond ) i IBC BB12 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 14831. 14831 [07A..0AB) i label target newobj nullcheck IBC BB13 [0026] 1 BB12 14831. 14831 [000..000)-> BB15 ( cond ) i internal IBC BB14 [0027] 1 BB13 7415. [000..000) i internal BB15 [0028] 2 BB13,BB14 14831. 14831 [000..000) i internal label target IBC BB16 [0029] 1 BB15 14831. 14831 [???..???) (return) internal newobj nullcheck IBC BB17 [0012] 1 BB11 70275. 70275 [0AB..0AD) (return) i label target IBC ----------------------------------------------------------------------------------------------------------------------------------------- *************** Finishing PHASE Compute preds *************** Starting PHASE Merge throw blocks *************** In fgTailMergeThrows Method does not have multiple noreturn calls. *************** Finishing PHASE Merge throw blocks [no changes] *************** Starting PHASE Update flow graph early pass *************** In fgUpdateFlowGraph() Before updating the flow graph: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 85106. 85106 [000..009)-> BB12 ( cond ) i label target IBC BB02 [0001] 1 BB01 70274. 70274 [009..012)-> BB12 ( cond ) i IBC BB03 [0002] 1 BB02 70274. 70274 [012..01B)-> BB12 ( cond ) i IBC BB04 [0003] 1 BB03 70274. 70274 [01B..025)-> BB12 ( cond ) i IBC BB05 [0004] 1 BB04 70274. 70274 [025..034)-> BB12 ( cond ) i IBC BB06 [0005] 1 BB05 70274. 70274 [034..03E)-> BB12 ( cond ) i IBC BB07 [0006] 1 BB06 70274. 70274 [03E..048)-> BB12 ( cond ) i IBC BB08 [0007] 1 BB07 70274. 70274 [048..052)-> BB12 ( cond ) i IBC BB09 [0008] 1 BB08 70275. 70275 [052..05C)-> BB12 ( cond ) i IBC BB10 [0009] 1 BB09 70275. 70275 [05C..06B)-> BB12 ( cond ) i IBC BB11 [0010] 1 BB10 70275. 70275 [06B..07A)-> BB17 ( cond ) i IBC BB12 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 14831. 14831 [07A..0AB) i label target newobj nullcheck IBC BB13 [0026] 1 BB12 14831. 14831 [000..000)-> BB15 ( cond ) i internal IBC BB14 [0027] 1 BB13 7415. [000..000) i internal BB15 [0028] 2 BB13,BB14 14831. 14831 [000..000) i internal label target IBC BB16 [0029] 1 BB15 14831. 14831 [???..???) (return) internal newobj nullcheck IBC BB17 [0012] 1 BB11 70275. 70275 [0AB..0AD) (return) i label target IBC ----------------------------------------------------------------------------------------------------------------------------------------- Compacting blocks BB12 and BB13: *************** In fgDebugCheckBBlist Compacting blocks BB15 and BB16: *************** In fgDebugCheckBBlist After updating the flow graph: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 85106. 85106 [000..009)-> BB12 ( cond ) i label target IBC BB02 [0001] 1 BB01 70274. 70274 [009..012)-> BB12 ( cond ) i IBC BB03 [0002] 1 BB02 70274. 70274 [012..01B)-> BB12 ( cond ) i IBC BB04 [0003] 1 BB03 70274. 70274 [01B..025)-> BB12 ( cond ) i IBC BB05 [0004] 1 BB04 70274. 70274 [025..034)-> BB12 ( cond ) i IBC BB06 [0005] 1 BB05 70274. 70274 [034..03E)-> BB12 ( cond ) i IBC BB07 [0006] 1 BB06 70274. 70274 [03E..048)-> BB12 ( cond ) i IBC BB08 [0007] 1 BB07 70274. 70274 [048..052)-> BB12 ( cond ) i IBC BB09 [0008] 1 BB08 70275. 70275 [052..05C)-> BB12 ( cond ) i IBC BB10 [0009] 1 BB09 70275. 70275 [05C..06B)-> BB12 ( cond ) i IBC BB11 [0010] 1 BB10 70275. 70275 [06B..07A)-> BB17 ( cond ) i IBC BB12 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 14831. 14831 [000..0AB)-> BB15 ( cond ) i label target newobj nullcheck IBC BB14 [0027] 1 BB12 7415. [000..000) i internal BB15 [0028] 2 BB12,BB14 14831. 14831 [000..000) (return) i internal label target newobj nullcheck IBC BB17 [0012] 1 BB11 70275. 70275 [0AB..0AD) (return) i label target IBC ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty *************** In fgDebugCheckBBlist *************** Finishing PHASE Update flow graph early pass *************** Starting PHASE Morph - Promote Structs *************** In fgResetImplicitByRefRefCount() *************** In fgPromoteStructs() lvaTable before fgPromoteStructs ; Initial local variable assignments ; ; V00 this ref this class-hnd ; V01 arg1 ref class-hnd ; V02 arg2 ubyte ; V03 arg3 ubyte ; V04 arg4 bool ; V05 arg5 ref class-hnd ; V06 arg6 bool ; V07 arg7 bool ; V08 arg8 bool ; V09 arg9 bool ; V10 arg10 ref class-hnd ; V11 arg11 ref class-hnd ; V12 OutArgs lclBlk "OutgoingArgSpace" ; V13 tmp1 ref class-hnd "impAppendStmt" ; V14 tmp2 ref class-hnd exact "NewObj constructor temp" ; V15 tmp3 bool "Inlining Arg" lvaTable after fgPromoteStructs ; Initial local variable assignments ; ; V00 this ref this class-hnd ; V01 arg1 ref class-hnd ; V02 arg2 ubyte ; V03 arg3 ubyte ; V04 arg4 bool ; V05 arg5 ref class-hnd ; V06 arg6 bool ; V07 arg7 bool ; V08 arg8 bool ; V09 arg9 bool ; V10 arg10 ref class-hnd ; V11 arg11 ref class-hnd ; V12 OutArgs lclBlk "OutgoingArgSpace" ; V13 tmp1 ref class-hnd "impAppendStmt" ; V14 tmp2 ref class-hnd exact "NewObj constructor temp" ; V15 tmp3 bool "Inlining Arg" *************** Finishing PHASE Morph - Promote Structs *************** Starting PHASE Morph - Structs/AddrExp *************** In fgMarkAddressExposedLocals() LocalAddressVisitor visiting statement: STMT00001 (IL ???... ???) [000005] --C--------- * JTRUE void [000004] N-C------U-- \--* NE int [000000] ------------ +--* LCL_VAR ref V01 arg1 [000121] ---XG------- \--* FIELD ref k__BackingField [000001] ------------ \--* LCL_VAR ref V00 this LocalAddressVisitor visiting statement: STMT00010 (IL ???... ???) [000047] --C--------- * JTRUE void [000046] N-C------U-- \--* NE int [000041] ------------ +--* LCL_VAR ubyte V02 arg2 [000045] --C--------- \--* CAST int <- ubyte <- int [000123] ---XG------- \--* FIELD ubyte k__BackingField [000042] ------------ \--* LCL_VAR ref V00 this LocalAddressVisitor visiting statement: STMT00012 (IL ???... ???) [000054] --C--------- * JTRUE void [000053] N-C------U-- \--* NE int [000048] ------------ +--* LCL_VAR ubyte V03 arg3 [000052] --C--------- \--* CAST int <- ubyte <- int [000125] ---XG------- \--* FIELD ubyte _ResultKind [000049] ------------ \--* LCL_VAR ref V00 this LocalAddressVisitor visiting statement: STMT00014 (IL ???... ???) [000061] --C--------- * JTRUE void [000060] N-C------U-- \--* NE int [000055] ------------ +--* LCL_VAR bool V04 arg4 [000059] --C--------- \--* CAST int <- bool <- int [000127] ---XG------- \--* FIELD bool k__BackingField [000056] ------------ \--* LCL_VAR ref V00 this LocalAddressVisitor visiting statement: STMT00017 (IL ???... ???) [000071] --C--------- * JTRUE void [000070] --C--------- \--* NE int [000068] --C--------- +--* CAST int <- bool <- int [000066] --C-G------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000062] ------------ arg0 | +--* LCL_VAR ref V05 arg5 [000129] ---XG------- arg1 | \--* FIELD ref k__BackingField [000063] ------------ | \--* LCL_VAR ref V00 this [000069] ------------ \--* CNS_INT int 0 LocalAddressVisitor visiting statement: STMT00019 (IL ???... ???) [000078] --C--------- * JTRUE void [000077] N-C------U-- \--* NE int [000072] ------------ +--* LCL_VAR bool V06 arg6 [000076] --C--------- \--* CAST int <- bool <- int [000132] ---XG------- \--* FIELD bool k__BackingField [000073] ------------ \--* LCL_VAR ref V00 this LocalAddressVisitor visiting statement: STMT00021 (IL ???... ???) [000085] --C--------- * JTRUE void [000084] N-C------U-- \--* NE int [000079] ------------ +--* LCL_VAR bool V07 arg7 [000083] --C--------- \--* CAST int <- bool <- int [000134] ---XG------- \--* FIELD bool k__BackingField [000080] ------------ \--* LCL_VAR ref V00 this LocalAddressVisitor visiting statement: STMT00023 (IL ???... ???) [000092] --C--------- * JTRUE void [000091] N-C------U-- \--* NE int [000086] ------------ +--* LCL_VAR bool V08 arg8 [000090] --C--------- \--* CAST int <- bool <- int [000136] ---XG------- \--* FIELD bool k__BackingField [000087] ------------ \--* LCL_VAR ref V00 this LocalAddressVisitor visiting statement: STMT00025 (IL ???... ???) [000099] --C--------- * JTRUE void [000098] N-C------U-- \--* NE int [000093] ------------ +--* LCL_VAR bool V09 arg9 [000097] --C--------- \--* CAST int <- bool <- int [000138] ---XG------- \--* FIELD bool k__BackingField [000094] ------------ \--* LCL_VAR ref V00 this LocalAddressVisitor visiting statement: STMT00027 (IL ???... ???) [000108] --C-G------- * JTRUE void [000107] --C-G------- \--* NE int [000105] --C-G------- +--* CAST int <- bool <- int [000104] --C-G------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality [000100] ------------ arg0 | +--* LCL_VAR ref V10 arg10 [000140] ---XG------- arg1 | \--* FIELD ref k__BackingField [000101] ------------ | \--* LCL_VAR ref V00 this [000106] ------------ \--* CNS_INT int 0 LocalAddressVisitor visiting statement: STMT00030 (IL ???... ???) [000118] --C--------- * JTRUE void [000117] --C--------- \--* EQ int [000115] --C--------- +--* CAST int <- bool <- int [000113] --C-G------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000109] ------------ arg0 | +--* LCL_VAR ref V11 arg11 [000142] ---XG------- arg1 | \--* FIELD ref k__BackingField [000110] ------------ | \--* LCL_VAR ref V00 this [000116] ------------ \--* CNS_INT int 0 LocalAddressVisitor visiting statement: STMT00003 (IL 0x07A...0x0AA) [000022] -A-XG------- * ASG ref [000021] D------N---- +--* LCL_VAR ref V13 tmp1 [000007] ---XG------- \--* FIELD ref Syntax [000006] ------------ \--* LCL_VAR ref V00 this LocalAddressVisitor visiting statement: STMT00004 (IL ???... ???) [000030] -AC--------- * ASG ref [000029] D------N---- +--* LCL_VAR ref V14 tmp2 [000028] --C--------- \--* CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW LocalAddressVisitor visiting statement: STMT00005 (IL ???... ???) [000032] --C-G------- * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor [000031] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 [000023] ------------ arg1 +--* LCL_VAR ref V13 tmp1 [000008] ------------ arg2 +--* LCL_VAR ref V01 arg1 [000009] ------------ arg3 +--* LCL_VAR ubyte V02 arg2 [000010] ------------ arg4 +--* LCL_VAR ubyte V03 arg3 [000011] ------------ arg5 +--* LCL_VAR bool V04 arg4 [000012] ------------ arg6 +--* LCL_VAR ref V05 arg5 [000013] ------------ arg7 +--* LCL_VAR bool V06 arg6 [000014] ------------ arg8 +--* LCL_VAR bool V07 arg7 [000015] ------------ arg9 +--* LCL_VAR bool V08 arg8 [000016] ------------ arg10 +--* LCL_VAR bool V09 arg9 [000017] ------------ arg11 +--* LCL_VAR ref V10 arg10 [000018] ------------ arg12 +--* LCL_VAR ref V11 arg11 [000025] --C--------- arg13 \--* CAST int <- bool <- int [000149] N--XG----U-- \--* GT int [000147] ---XG------- +--* AND int [000145] ---XG------- | +--* FIELD ubyte _attributes [000019] ------------ | | \--* LCL_VAR ref V00 this [000146] ------------ | \--* CNS_INT int 1 [000148] ------------ \--* CNS_INT int 0 LocalAddressVisitor visiting statement: STMT00034 (IL ???... ???) [000171] -AC--------- * ASG bool [000170] D------N---- +--* LCL_VAR bool V15 tmp3 [000157] --C--------- \--* CAST int <- bool <- int [000038] --C--------- \--* CAST int <- bool <- int [000155] N--XG----U-- \--* GT int [000153] ---XG------- +--* AND int [000151] ---XG------- | +--* FIELD ubyte _attributes [000035] ------------ | | \--* LCL_VAR ref V00 this [000152] ------------ | \--* CNS_INT int 2 [000154] ------------ \--* CNS_INT int 0 LocalAddressVisitor visiting statement: STMT00035 (IL ???... ???) [000169] ---X-------- * NULLCHECK byte [000168] ------------ \--* LCL_VAR ref V14 tmp2 LocalAddressVisitor visiting statement: STMT00032 (IL ???... ???) [000161] ------------ * JTRUE void [000160] ------------ \--* EQ int [000158] ------------ +--* LCL_VAR int V15 tmp3 [000159] ------------ \--* CNS_INT int 0 LocalAddressVisitor visiting statement: STMT00033 (IL ???... ???) [000167] -A-XG------- * ASG ubyte [000166] ---XG--N---- +--* FIELD ubyte _attributes [000034] ------------ | \--* LCL_VAR ref V14 tmp2 [000165] ---XG------- \--* OR int [000163] ---XG------- +--* FIELD ubyte _attributes [000162] ------------ | \--* LCL_VAR ref V14 tmp2 [000164] ------------ \--* CNS_INT int 2 LocalAddressVisitor visiting statement: STMT00008 (IL 0x0AA... ???) [000040] ------------ * RETURN ref [000033] ------------ \--* LCL_VAR ref V14 tmp2 LocalAddressVisitor visiting statement: STMT00031 (IL 0x0AB...0x0AC) [000120] ------------ * RETURN ref [000119] ------------ \--* LCL_VAR ref V00 this *************** Finishing PHASE Morph - Structs/AddrExp *************** Starting PHASE Morph - ByRefs *************** In fgRetypeImplicitByRefArgs() *************** Finishing PHASE Morph - ByRefs *************** Starting PHASE Morph - Global *************** In fgMorphBlocks() Morphing BB01 of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' fgMorphTree BB01, STMT00001 (before) [000005] --C--------- * JTRUE void [000004] N-C------U-- \--* NE int [000000] ------------ +--* LCL_VAR ref V01 arg1 [000121] ---XG------- \--* FIELD ref k__BackingField [000001] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 0): [000005] --C--------- * JTRUE void [000004] N-C------U-- \--* NE int [000000] ------------ +--* LCL_VAR ref V01 arg1 [000121] ---XG------- \--* FIELD ref k__BackingField [000001] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 1): [000004] N-C----N-U-- * NE int [000000] ------------ +--* LCL_VAR ref V01 arg1 [000121] ---XG------- \--* FIELD ref k__BackingField [000001] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 2): [000000] ------------ * LCL_VAR ref V01 arg1 fgMorphTree (after 2): [000000] ------------ * LCL_VAR ref V01 arg1 fgMorphTree (before 3): [000121] ---XG------- * FIELD ref k__BackingField [000001] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 4): [000174] ------------ * ADD byref [000001] ------------ +--* LCL_VAR ref V00 this [000173] ------------ \--* CNS_INT long 32 field offset Fseq[k__BackingField] fgMorphTree (before 5): [000001] ------------ * LCL_VAR ref V00 this fgMorphTree (after 5): [000001] ------------ * LCL_VAR ref V00 this fgMorphTree (before 6): [000173] ------------ * CNS_INT long 32 field offset Fseq[k__BackingField] fgMorphTree (after 6): [000173] ------------ * CNS_INT long 32 field offset Fseq[k__BackingField] fgMorphTree (after 4): [000174] ------------ * ADD byref [000001] -----+------ +--* LCL_VAR ref V00 this [000173] -----+------ \--* CNS_INT long 32 field offset Fseq[k__BackingField] Final value of Compiler::fgMorphField after calling fgMorphSmpOp: [000121] ---XG------- * IND ref [000174] -----+------ \--* ADD byref [000001] -----+------ +--* LCL_VAR ref V00 this [000173] -----+------ \--* CNS_INT long 32 field offset Fseq[k__BackingField] fgMorphTree (after 3): [000121] ---XG------- * IND ref [000174] -----+------ \--* ADD byref [000001] -----+------ +--* LCL_VAR ref V00 this [000173] -----+------ \--* CNS_INT long 32 field offset Fseq[k__BackingField] GenTreeNode creates assertion: [000121] ---XG------- * IND ref In BB01 New Local Constant Assertion: V00 != null index=#01, mask=0000000000000001 fgMorphTree (after 1): [000004] N--XG--N-U-- * NE int [000000] -----+------ +--* LCL_VAR ref V01 arg1 [000121] ---XG+------ \--* IND ref [000174] -----+------ \--* ADD byref [000001] -----+------ +--* LCL_VAR ref V00 this [000173] -----+------ \--* CNS_INT long 32 field offset Fseq[k__BackingField] fgMorphTree (after 0): [000005] ---XG------- * JTRUE void [000004] N--XG+-N-U-- \--* NE int [000000] -----+------ +--* LCL_VAR ref V01 arg1 [000121] ---XG+------ \--* IND ref [000174] -----+------ \--* ADD byref [000001] -----+------ +--* LCL_VAR ref V00 this [000173] -----+------ \--* CNS_INT long 32 field offset Fseq[k__BackingField] fgMorphTree BB01, STMT00001 (after) [000005] ---XG+------ * JTRUE void [000004] N--XG+-N-U-- \--* NE int [000000] -----+------ +--* LCL_VAR ref V01 arg1 [000121] ---XG+------ \--* IND ref [000174] -----+------ \--* ADD byref [000001] -----+------ +--* LCL_VAR ref V00 this [000173] -----+------ \--* CNS_INT long 32 field offset Fseq[k__BackingField] Morphing BB02 of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' fgMorphTree BB02, STMT00010 (before) [000047] --C--------- * JTRUE void [000046] N-C------U-- \--* NE int [000041] ------------ +--* LCL_VAR ubyte V02 arg2 [000045] --C--------- \--* CAST int <- ubyte <- int [000123] ---XG------- \--* FIELD ubyte k__BackingField [000042] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 7): [000047] --C--------- * JTRUE void [000046] N-C------U-- \--* NE int [000041] ------------ +--* LCL_VAR ubyte V02 arg2 [000045] --C--------- \--* CAST int <- ubyte <- int [000123] ---XG------- \--* FIELD ubyte k__BackingField [000042] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 8): [000046] N-C----N-U-- * NE int [000041] ------------ +--* LCL_VAR ubyte V02 arg2 [000045] --C--------- \--* CAST int <- ubyte <- int [000123] ---XG------- \--* FIELD ubyte k__BackingField [000042] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 9): [000041] ------------ * LCL_VAR ubyte V02 arg2 fgMorphTree (after 0): [000041] ------------ * LCL_VAR int V02 arg2 fgMorphTree (after 0): [000175] ------------ * CAST int <- ubyte <- int [000041] -----+------ \--* LCL_VAR int V02 arg2 fgMorphTree (after 9): [000175] -----+------ * CAST int <- ubyte <- int [000041] -----+------ \--* LCL_VAR int V02 arg2 fgMorphTree (before 10): [000045] --C--------- * CAST int <- ubyte <- int [000123] ---XG------- \--* FIELD ubyte k__BackingField [000042] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 11): [000123] ---XG------- * FIELD ubyte k__BackingField [000042] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 12): [000177] ------------ * ADD byref [000042] ------------ +--* LCL_VAR ref V00 this [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] fgMorphTree (before 13): [000042] ------------ * LCL_VAR ref V00 this fgMorphTree (after 13): [000042] ------------ * LCL_VAR ref V00 this fgMorphTree (before 14): [000176] ------------ * CNS_INT long 56 field offset Fseq[k__BackingField] fgMorphTree (after 14): [000176] ------------ * CNS_INT long 56 field offset Fseq[k__BackingField] fgMorphTree (after 12): [000177] ------------ * ADD byref [000042] -----+------ +--* LCL_VAR ref V00 this [000176] -----+------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] Final value of Compiler::fgMorphField after calling fgMorphSmpOp: [000123] ---XG------- * IND ubyte [000177] -----+------ \--* ADD byref [000042] -----+------ +--* LCL_VAR ref V00 this [000176] -----+------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] fgMorphTree (after 11): [000123] ---XG------- * IND ubyte [000177] -----+------ \--* ADD byref [000042] -----+------ +--* LCL_VAR ref V00 this [000176] -----+------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] GenTreeNode creates assertion: [000123] ---XG------- * IND ubyte In BB02 New Local Constant Assertion: V00 != null index=#01, mask=0000000000000001 fgMorphTree (after 10): [000123] ---XG+------ * IND ubyte [000177] -----+------ \--* ADD byref [000042] -----+------ +--* LCL_VAR ref V00 this [000176] -----+------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] fgMorphTree (after 8): [000046] N--XG--N-U-- * NE int [000175] -----+------ +--* CAST int <- ubyte <- int [000041] -----+------ | \--* LCL_VAR int V02 arg2 [000123] ---XG+------ \--* IND ubyte [000177] -----+------ \--* ADD byref [000042] -----+------ +--* LCL_VAR ref V00 this [000176] -----+------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] fgMorphTree (after 7): [000047] ---XG------- * JTRUE void [000046] N--XG+-N-U-- \--* NE int [000175] -----+------ +--* CAST int <- ubyte <- int [000041] -----+------ | \--* LCL_VAR int V02 arg2 [000123] ---XG+------ \--* IND ubyte [000177] -----+------ \--* ADD byref [000042] -----+------ +--* LCL_VAR ref V00 this [000176] -----+------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] fgMorphTree BB02, STMT00010 (after) [000047] ---XG+------ * JTRUE void [000046] N--XG+-N-U-- \--* NE int [000175] -----+------ +--* CAST int <- ubyte <- int [000041] -----+------ | \--* LCL_VAR int V02 arg2 [000123] ---XG+------ \--* IND ubyte [000177] -----+------ \--* ADD byref [000042] -----+------ +--* LCL_VAR ref V00 this [000176] -----+------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] Morphing BB03 of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' fgMorphTree BB03, STMT00012 (before) [000054] --C--------- * JTRUE void [000053] N-C------U-- \--* NE int [000048] ------------ +--* LCL_VAR ubyte V03 arg3 [000052] --C--------- \--* CAST int <- ubyte <- int [000125] ---XG------- \--* FIELD ubyte _ResultKind [000049] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 15): [000054] --C--------- * JTRUE void [000053] N-C------U-- \--* NE int [000048] ------------ +--* LCL_VAR ubyte V03 arg3 [000052] --C--------- \--* CAST int <- ubyte <- int [000125] ---XG------- \--* FIELD ubyte _ResultKind [000049] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 16): [000053] N-C----N-U-- * NE int [000048] ------------ +--* LCL_VAR ubyte V03 arg3 [000052] --C--------- \--* CAST int <- ubyte <- int [000125] ---XG------- \--* FIELD ubyte _ResultKind [000049] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 17): [000048] ------------ * LCL_VAR ubyte V03 arg3 fgMorphTree (after 0): [000048] ------------ * LCL_VAR int V03 arg3 fgMorphTree (after 0): [000178] ------------ * CAST int <- ubyte <- int [000048] -----+------ \--* LCL_VAR int V03 arg3 fgMorphTree (after 17): [000178] -----+------ * CAST int <- ubyte <- int [000048] -----+------ \--* LCL_VAR int V03 arg3 fgMorphTree (before 18): [000052] --C--------- * CAST int <- ubyte <- int [000125] ---XG------- \--* FIELD ubyte _ResultKind [000049] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 19): [000125] ---XG------- * FIELD ubyte _ResultKind [000049] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 20): [000180] ------------ * ADD byref [000049] ------------ +--* LCL_VAR ref V00 this [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] fgMorphTree (before 21): [000049] ------------ * LCL_VAR ref V00 this fgMorphTree (after 21): [000049] ------------ * LCL_VAR ref V00 this fgMorphTree (before 22): [000179] ------------ * CNS_INT long 57 field offset Fseq[_ResultKind] fgMorphTree (after 22): [000179] ------------ * CNS_INT long 57 field offset Fseq[_ResultKind] fgMorphTree (after 20): [000180] ------------ * ADD byref [000049] -----+------ +--* LCL_VAR ref V00 this [000179] -----+------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] Final value of Compiler::fgMorphField after calling fgMorphSmpOp: [000125] ---XG------- * IND ubyte [000180] -----+------ \--* ADD byref [000049] -----+------ +--* LCL_VAR ref V00 this [000179] -----+------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] fgMorphTree (after 19): [000125] ---XG------- * IND ubyte [000180] -----+------ \--* ADD byref [000049] -----+------ +--* LCL_VAR ref V00 this [000179] -----+------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] GenTreeNode creates assertion: [000125] ---XG------- * IND ubyte In BB03 New Local Constant Assertion: V00 != null index=#01, mask=0000000000000001 fgMorphTree (after 18): [000125] ---XG+------ * IND ubyte [000180] -----+------ \--* ADD byref [000049] -----+------ +--* LCL_VAR ref V00 this [000179] -----+------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] fgMorphTree (after 16): [000053] N--XG--N-U-- * NE int [000178] -----+------ +--* CAST int <- ubyte <- int [000048] -----+------ | \--* LCL_VAR int V03 arg3 [000125] ---XG+------ \--* IND ubyte [000180] -----+------ \--* ADD byref [000049] -----+------ +--* LCL_VAR ref V00 this [000179] -----+------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] fgMorphTree (after 15): [000054] ---XG------- * JTRUE void [000053] N--XG+-N-U-- \--* NE int [000178] -----+------ +--* CAST int <- ubyte <- int [000048] -----+------ | \--* LCL_VAR int V03 arg3 [000125] ---XG+------ \--* IND ubyte [000180] -----+------ \--* ADD byref [000049] -----+------ +--* LCL_VAR ref V00 this [000179] -----+------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] fgMorphTree BB03, STMT00012 (after) [000054] ---XG+------ * JTRUE void [000053] N--XG+-N-U-- \--* NE int [000178] -----+------ +--* CAST int <- ubyte <- int [000048] -----+------ | \--* LCL_VAR int V03 arg3 [000125] ---XG+------ \--* IND ubyte [000180] -----+------ \--* ADD byref [000049] -----+------ +--* LCL_VAR ref V00 this [000179] -----+------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] Morphing BB04 of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' fgMorphTree BB04, STMT00014 (before) [000061] --C--------- * JTRUE void [000060] N-C------U-- \--* NE int [000055] ------------ +--* LCL_VAR bool V04 arg4 [000059] --C--------- \--* CAST int <- bool <- int [000127] ---XG------- \--* FIELD bool k__BackingField [000056] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 23): [000061] --C--------- * JTRUE void [000060] N-C------U-- \--* NE int [000055] ------------ +--* LCL_VAR bool V04 arg4 [000059] --C--------- \--* CAST int <- bool <- int [000127] ---XG------- \--* FIELD bool k__BackingField [000056] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 24): [000060] N-C----N-U-- * NE int [000055] ------------ +--* LCL_VAR bool V04 arg4 [000059] --C--------- \--* CAST int <- bool <- int [000127] ---XG------- \--* FIELD bool k__BackingField [000056] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 25): [000055] ------------ * LCL_VAR bool V04 arg4 fgMorphTree (after 0): [000055] ------------ * LCL_VAR int V04 arg4 fgMorphTree (after 0): [000181] ------------ * CAST int <- bool <- int [000055] -----+------ \--* LCL_VAR int V04 arg4 fgMorphTree (after 25): [000181] -----+------ * CAST int <- bool <- int [000055] -----+------ \--* LCL_VAR int V04 arg4 fgMorphTree (before 26): [000059] --C--------- * CAST int <- bool <- int [000127] ---XG------- \--* FIELD bool k__BackingField [000056] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 27): [000127] ---XG------- * FIELD bool k__BackingField [000056] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 28): [000183] ------------ * ADD byref [000056] ------------ +--* LCL_VAR ref V00 this [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] fgMorphTree (before 29): [000056] ------------ * LCL_VAR ref V00 this fgMorphTree (after 29): [000056] ------------ * LCL_VAR ref V00 this fgMorphTree (before 30): [000182] ------------ * CNS_INT long 58 field offset Fseq[k__BackingField] fgMorphTree (after 30): [000182] ------------ * CNS_INT long 58 field offset Fseq[k__BackingField] fgMorphTree (after 28): [000183] ------------ * ADD byref [000056] -----+------ +--* LCL_VAR ref V00 this [000182] -----+------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] Final value of Compiler::fgMorphField after calling fgMorphSmpOp: [000127] ---XG------- * IND bool [000183] -----+------ \--* ADD byref [000056] -----+------ +--* LCL_VAR ref V00 this [000182] -----+------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] fgMorphTree (after 27): [000127] ---XG------- * IND bool [000183] -----+------ \--* ADD byref [000056] -----+------ +--* LCL_VAR ref V00 this [000182] -----+------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] GenTreeNode creates assertion: [000127] ---XG------- * IND bool In BB04 New Local Constant Assertion: V00 != null index=#01, mask=0000000000000001 fgMorphTree (after 26): [000127] ---XG+------ * IND bool [000183] -----+------ \--* ADD byref [000056] -----+------ +--* LCL_VAR ref V00 this [000182] -----+------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] fgMorphTree (after 24): [000060] N--XG--N-U-- * NE int [000181] -----+------ +--* CAST int <- bool <- int [000055] -----+------ | \--* LCL_VAR int V04 arg4 [000127] ---XG+------ \--* IND bool [000183] -----+------ \--* ADD byref [000056] -----+------ +--* LCL_VAR ref V00 this [000182] -----+------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] fgMorphTree (after 23): [000061] ---XG------- * JTRUE void [000060] N--XG+-N-U-- \--* NE int [000181] -----+------ +--* CAST int <- bool <- int [000055] -----+------ | \--* LCL_VAR int V04 arg4 [000127] ---XG+------ \--* IND bool [000183] -----+------ \--* ADD byref [000056] -----+------ +--* LCL_VAR ref V00 this [000182] -----+------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] fgMorphTree BB04, STMT00014 (after) [000061] ---XG+------ * JTRUE void [000060] N--XG+-N-U-- \--* NE int [000181] -----+------ +--* CAST int <- bool <- int [000055] -----+------ | \--* LCL_VAR int V04 arg4 [000127] ---XG+------ \--* IND bool [000183] -----+------ \--* ADD byref [000056] -----+------ +--* LCL_VAR ref V00 this [000182] -----+------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] Morphing BB05 of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' fgMorphTree BB05, STMT00017 (before) [000071] --C--------- * JTRUE void [000070] --C--------- \--* NE int [000068] --C--------- +--* CAST int <- bool <- int [000066] --C-G------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000062] ------------ arg0 | +--* LCL_VAR ref V05 arg5 [000129] ---XG------- arg1 | \--* FIELD ref k__BackingField [000063] ------------ | \--* LCL_VAR ref V00 this [000069] ------------ \--* CNS_INT int 0 fgMorphTree (before 31): [000071] --C--------- * JTRUE void [000070] --C--------- \--* NE int [000068] --C--------- +--* CAST int <- bool <- int [000066] --C-G------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000062] ------------ arg0 | +--* LCL_VAR ref V05 arg5 [000129] ---XG------- arg1 | \--* FIELD ref k__BackingField [000063] ------------ | \--* LCL_VAR ref V00 this [000069] ------------ \--* CNS_INT int 0 fgMorphTree (before 32): [000070] J-C----N---- * NE int [000068] --C--------- +--* CAST int <- bool <- int [000066] --C-G------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000062] ------------ arg0 | +--* LCL_VAR ref V05 arg5 [000129] ---XG------- arg1 | \--* FIELD ref k__BackingField [000063] ------------ | \--* LCL_VAR ref V00 this [000069] ------------ \--* CNS_INT int 0 fgMorphTree (before 33): [000068] --C--------- * CAST int <- bool <- int [000066] --C-G------- \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000062] ------------ arg0 +--* LCL_VAR ref V05 arg5 [000129] ---XG------- arg1 \--* FIELD ref k__BackingField [000063] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 34): [000066] --C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000062] ------------ arg0 +--* LCL_VAR ref V05 arg5 [000129] ---XG------- arg1 \--* FIELD ref k__BackingField [000063] ------------ \--* LCL_VAR ref V00 this Initializing arg info for 66.CALL: ArgTable for 66.CALL after fgInitArgInfo: fgArgTabEntry[arg 0 62.LCL_VAR ref (By ref), 1 reg: rcx, align=1] fgArgTabEntry[arg 1 129.FIELD ref (By ref), 1 reg: rdx, align=1] Morphing args for 66.CALL: fgMorphTree (before 35): [000062] ------------ * LCL_VAR ref V05 arg5 fgMorphTree (after 35): [000062] ------------ * LCL_VAR ref V05 arg5 fgMorphTree (before 36): [000129] ---XG------- * FIELD ref k__BackingField [000063] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 37): [000185] ------------ * ADD byref [000063] ------------ +--* LCL_VAR ref V00 this [000184] ------------ \--* CNS_INT long 40 field offset Fseq[k__BackingField] fgMorphTree (before 38): [000063] ------------ * LCL_VAR ref V00 this fgMorphTree (after 38): [000063] ------------ * LCL_VAR ref V00 this fgMorphTree (before 39): [000184] ------------ * CNS_INT long 40 field offset Fseq[k__BackingField] fgMorphTree (after 39): [000184] ------------ * CNS_INT long 40 field offset Fseq[k__BackingField] fgMorphTree (after 37): [000185] ------------ * ADD byref [000063] -----+------ +--* LCL_VAR ref V00 this [000184] -----+------ \--* CNS_INT long 40 field offset Fseq[k__BackingField] Final value of Compiler::fgMorphField after calling fgMorphSmpOp: [000129] ---XG------- * IND ref [000185] -----+------ \--* ADD byref [000063] -----+------ +--* LCL_VAR ref V00 this [000184] -----+------ \--* CNS_INT long 40 field offset Fseq[k__BackingField] fgMorphTree (after 36): [000129] ---XG------- * IND ref [000185] -----+------ \--* ADD byref [000063] -----+------ +--* LCL_VAR ref V00 this [000184] -----+------ \--* CNS_INT long 40 field offset Fseq[k__BackingField] GenTreeNode creates assertion: [000129] ---XG------- * IND ref In BB05 New Local Constant Assertion: V00 != null index=#01, mask=0000000000000001 argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 Sorting the arguments: Deferred argument ('rdx'): [000129] ---XG+------ * IND ref [000185] -----+------ \--* ADD byref [000063] -----+------ +--* LCL_VAR ref V00 this [000184] -----+------ \--* CNS_INT long 40 field offset Fseq[k__BackingField] Replaced with placeholder node: [000186] ----------L- * ARGPLACE ref Deferred argument ('rcx'): [000062] -----+------ * LCL_VAR ref V05 arg5 Replaced with placeholder node: [000187] ----------L- * ARGPLACE ref Shuffled argument table: rdx rcx ArgTable for 66.CALL after fgMorphArgs: fgArgTabEntry[arg 1 129.IND ref (By ref), 1 reg: rdx, align=1, lateArgInx=0, processed] fgArgTabEntry[arg 0 62.LCL_VAR ref (By ref), 1 reg: rcx, align=1, lateArgInx=1, processed] fgMorphTree (after 34): [000066] --CXG------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000129] ---XG+------ arg1 in rdx +--* IND ref [000185] -----+------ | \--* ADD byref [000063] -----+------ | +--* LCL_VAR ref V00 this [000184] -----+------ | \--* CNS_INT long 40 field offset Fseq[k__BackingField] [000062] -----+------ arg0 in rcx \--* LCL_VAR ref V05 arg5 fgMorphTree (after 33): [000068] --CXG------- * CAST int <- bool <- int [000066] --CXG+------ \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000129] ---XG+------ arg1 in rdx +--* IND ref [000185] -----+------ | \--* ADD byref [000063] -----+------ | +--* LCL_VAR ref V00 this [000184] -----+------ | \--* CNS_INT long 40 field offset Fseq[k__BackingField] [000062] -----+------ arg0 in rcx \--* LCL_VAR ref V05 arg5 fgMorphTree (before 40): [000069] ------------ * CNS_INT int 0 fgMorphTree (after 40): [000069] ------------ * CNS_INT int 0 fgMorphTree (after 32): [000070] J-CXG--N---- * NE int [000068] --CXG+------ +--* CAST int <- bool <- int [000066] --CXG+------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000129] ---XG+------ arg1 in rdx | +--* IND ref [000185] -----+------ | | \--* ADD byref [000063] -----+------ | | +--* LCL_VAR ref V00 this [000184] -----+------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] [000062] -----+------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 [000069] -----+------ \--* CNS_INT int 0 fgMorphTree (after 31): [000071] --CXG------- * JTRUE void [000070] J-CXG+-N---- \--* NE int [000068] --CXG+------ +--* CAST int <- bool <- int [000066] --CXG+------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000129] ---XG+------ arg1 in rdx | +--* IND ref [000185] -----+------ | | \--* ADD byref [000063] -----+------ | | +--* LCL_VAR ref V00 this [000184] -----+------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] [000062] -----+------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 [000069] -----+------ \--* CNS_INT int 0 fgMorphTree BB05, STMT00017 (after) [000071] --CXG+------ * JTRUE void [000070] J-CXG+-N---- \--* NE int [000068] --CXG+------ +--* CAST int <- bool <- int [000066] --CXG+------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000129] ---XG+------ arg1 in rdx | +--* IND ref [000185] -----+------ | | \--* ADD byref [000063] -----+------ | | +--* LCL_VAR ref V00 this [000184] -----+------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] [000062] -----+------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 [000069] -----+------ \--* CNS_INT int 0 Morphing BB06 of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' fgMorphTree BB06, STMT00019 (before) [000078] --C--------- * JTRUE void [000077] N-C------U-- \--* NE int [000072] ------------ +--* LCL_VAR bool V06 arg6 [000076] --C--------- \--* CAST int <- bool <- int [000132] ---XG------- \--* FIELD bool k__BackingField [000073] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 41): [000078] --C--------- * JTRUE void [000077] N-C------U-- \--* NE int [000072] ------------ +--* LCL_VAR bool V06 arg6 [000076] --C--------- \--* CAST int <- bool <- int [000132] ---XG------- \--* FIELD bool k__BackingField [000073] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 42): [000077] N-C----N-U-- * NE int [000072] ------------ +--* LCL_VAR bool V06 arg6 [000076] --C--------- \--* CAST int <- bool <- int [000132] ---XG------- \--* FIELD bool k__BackingField [000073] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 43): [000072] ------------ * LCL_VAR bool V06 arg6 fgMorphTree (after 0): [000072] ------------ * LCL_VAR int V06 arg6 fgMorphTree (after 0): [000188] ------------ * CAST int <- bool <- int [000072] -----+------ \--* LCL_VAR int V06 arg6 fgMorphTree (after 43): [000188] -----+------ * CAST int <- bool <- int [000072] -----+------ \--* LCL_VAR int V06 arg6 fgMorphTree (before 44): [000076] --C--------- * CAST int <- bool <- int [000132] ---XG------- \--* FIELD bool k__BackingField [000073] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 45): [000132] ---XG------- * FIELD bool k__BackingField [000073] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 46): [000190] ------------ * ADD byref [000073] ------------ +--* LCL_VAR ref V00 this [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] fgMorphTree (before 47): [000073] ------------ * LCL_VAR ref V00 this fgMorphTree (after 47): [000073] ------------ * LCL_VAR ref V00 this fgMorphTree (before 48): [000189] ------------ * CNS_INT long 59 field offset Fseq[k__BackingField] fgMorphTree (after 48): [000189] ------------ * CNS_INT long 59 field offset Fseq[k__BackingField] fgMorphTree (after 46): [000190] ------------ * ADD byref [000073] -----+------ +--* LCL_VAR ref V00 this [000189] -----+------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] Final value of Compiler::fgMorphField after calling fgMorphSmpOp: [000132] ---XG------- * IND bool [000190] -----+------ \--* ADD byref [000073] -----+------ +--* LCL_VAR ref V00 this [000189] -----+------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] fgMorphTree (after 45): [000132] ---XG------- * IND bool [000190] -----+------ \--* ADD byref [000073] -----+------ +--* LCL_VAR ref V00 this [000189] -----+------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] GenTreeNode creates assertion: [000132] ---XG------- * IND bool In BB06 New Local Constant Assertion: V00 != null index=#01, mask=0000000000000001 fgMorphTree (after 44): [000132] ---XG+------ * IND bool [000190] -----+------ \--* ADD byref [000073] -----+------ +--* LCL_VAR ref V00 this [000189] -----+------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] fgMorphTree (after 42): [000077] N--XG--N-U-- * NE int [000188] -----+------ +--* CAST int <- bool <- int [000072] -----+------ | \--* LCL_VAR int V06 arg6 [000132] ---XG+------ \--* IND bool [000190] -----+------ \--* ADD byref [000073] -----+------ +--* LCL_VAR ref V00 this [000189] -----+------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] fgMorphTree (after 41): [000078] ---XG------- * JTRUE void [000077] N--XG+-N-U-- \--* NE int [000188] -----+------ +--* CAST int <- bool <- int [000072] -----+------ | \--* LCL_VAR int V06 arg6 [000132] ---XG+------ \--* IND bool [000190] -----+------ \--* ADD byref [000073] -----+------ +--* LCL_VAR ref V00 this [000189] -----+------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] fgMorphTree BB06, STMT00019 (after) [000078] ---XG+------ * JTRUE void [000077] N--XG+-N-U-- \--* NE int [000188] -----+------ +--* CAST int <- bool <- int [000072] -----+------ | \--* LCL_VAR int V06 arg6 [000132] ---XG+------ \--* IND bool [000190] -----+------ \--* ADD byref [000073] -----+------ +--* LCL_VAR ref V00 this [000189] -----+------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] Morphing BB07 of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' fgMorphTree BB07, STMT00021 (before) [000085] --C--------- * JTRUE void [000084] N-C------U-- \--* NE int [000079] ------------ +--* LCL_VAR bool V07 arg7 [000083] --C--------- \--* CAST int <- bool <- int [000134] ---XG------- \--* FIELD bool k__BackingField [000080] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 49): [000085] --C--------- * JTRUE void [000084] N-C------U-- \--* NE int [000079] ------------ +--* LCL_VAR bool V07 arg7 [000083] --C--------- \--* CAST int <- bool <- int [000134] ---XG------- \--* FIELD bool k__BackingField [000080] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 50): [000084] N-C----N-U-- * NE int [000079] ------------ +--* LCL_VAR bool V07 arg7 [000083] --C--------- \--* CAST int <- bool <- int [000134] ---XG------- \--* FIELD bool k__BackingField [000080] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 51): [000079] ------------ * LCL_VAR bool V07 arg7 fgMorphTree (after 0): [000079] ------------ * LCL_VAR int V07 arg7 fgMorphTree (after 0): [000191] ------------ * CAST int <- bool <- int [000079] -----+------ \--* LCL_VAR int V07 arg7 fgMorphTree (after 51): [000191] -----+------ * CAST int <- bool <- int [000079] -----+------ \--* LCL_VAR int V07 arg7 fgMorphTree (before 52): [000083] --C--------- * CAST int <- bool <- int [000134] ---XG------- \--* FIELD bool k__BackingField [000080] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 53): [000134] ---XG------- * FIELD bool k__BackingField [000080] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 54): [000193] ------------ * ADD byref [000080] ------------ +--* LCL_VAR ref V00 this [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] fgMorphTree (before 55): [000080] ------------ * LCL_VAR ref V00 this fgMorphTree (after 55): [000080] ------------ * LCL_VAR ref V00 this fgMorphTree (before 56): [000192] ------------ * CNS_INT long 60 field offset Fseq[k__BackingField] fgMorphTree (after 56): [000192] ------------ * CNS_INT long 60 field offset Fseq[k__BackingField] fgMorphTree (after 54): [000193] ------------ * ADD byref [000080] -----+------ +--* LCL_VAR ref V00 this [000192] -----+------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] Final value of Compiler::fgMorphField after calling fgMorphSmpOp: [000134] ---XG------- * IND bool [000193] -----+------ \--* ADD byref [000080] -----+------ +--* LCL_VAR ref V00 this [000192] -----+------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] fgMorphTree (after 53): [000134] ---XG------- * IND bool [000193] -----+------ \--* ADD byref [000080] -----+------ +--* LCL_VAR ref V00 this [000192] -----+------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] GenTreeNode creates assertion: [000134] ---XG------- * IND bool In BB07 New Local Constant Assertion: V00 != null index=#01, mask=0000000000000001 fgMorphTree (after 52): [000134] ---XG+------ * IND bool [000193] -----+------ \--* ADD byref [000080] -----+------ +--* LCL_VAR ref V00 this [000192] -----+------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] fgMorphTree (after 50): [000084] N--XG--N-U-- * NE int [000191] -----+------ +--* CAST int <- bool <- int [000079] -----+------ | \--* LCL_VAR int V07 arg7 [000134] ---XG+------ \--* IND bool [000193] -----+------ \--* ADD byref [000080] -----+------ +--* LCL_VAR ref V00 this [000192] -----+------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] fgMorphTree (after 49): [000085] ---XG------- * JTRUE void [000084] N--XG+-N-U-- \--* NE int [000191] -----+------ +--* CAST int <- bool <- int [000079] -----+------ | \--* LCL_VAR int V07 arg7 [000134] ---XG+------ \--* IND bool [000193] -----+------ \--* ADD byref [000080] -----+------ +--* LCL_VAR ref V00 this [000192] -----+------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] fgMorphTree BB07, STMT00021 (after) [000085] ---XG+------ * JTRUE void [000084] N--XG+-N-U-- \--* NE int [000191] -----+------ +--* CAST int <- bool <- int [000079] -----+------ | \--* LCL_VAR int V07 arg7 [000134] ---XG+------ \--* IND bool [000193] -----+------ \--* ADD byref [000080] -----+------ +--* LCL_VAR ref V00 this [000192] -----+------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] Morphing BB08 of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' fgMorphTree BB08, STMT00023 (before) [000092] --C--------- * JTRUE void [000091] N-C------U-- \--* NE int [000086] ------------ +--* LCL_VAR bool V08 arg8 [000090] --C--------- \--* CAST int <- bool <- int [000136] ---XG------- \--* FIELD bool k__BackingField [000087] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 57): [000092] --C--------- * JTRUE void [000091] N-C------U-- \--* NE int [000086] ------------ +--* LCL_VAR bool V08 arg8 [000090] --C--------- \--* CAST int <- bool <- int [000136] ---XG------- \--* FIELD bool k__BackingField [000087] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 58): [000091] N-C----N-U-- * NE int [000086] ------------ +--* LCL_VAR bool V08 arg8 [000090] --C--------- \--* CAST int <- bool <- int [000136] ---XG------- \--* FIELD bool k__BackingField [000087] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 59): [000086] ------------ * LCL_VAR bool V08 arg8 fgMorphTree (after 0): [000086] ------------ * LCL_VAR int V08 arg8 fgMorphTree (after 0): [000194] ------------ * CAST int <- bool <- int [000086] -----+------ \--* LCL_VAR int V08 arg8 fgMorphTree (after 59): [000194] -----+------ * CAST int <- bool <- int [000086] -----+------ \--* LCL_VAR int V08 arg8 fgMorphTree (before 60): [000090] --C--------- * CAST int <- bool <- int [000136] ---XG------- \--* FIELD bool k__BackingField [000087] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 61): [000136] ---XG------- * FIELD bool k__BackingField [000087] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 62): [000196] ------------ * ADD byref [000087] ------------ +--* LCL_VAR ref V00 this [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] fgMorphTree (before 63): [000087] ------------ * LCL_VAR ref V00 this fgMorphTree (after 63): [000087] ------------ * LCL_VAR ref V00 this fgMorphTree (before 64): [000195] ------------ * CNS_INT long 61 field offset Fseq[k__BackingField] fgMorphTree (after 64): [000195] ------------ * CNS_INT long 61 field offset Fseq[k__BackingField] fgMorphTree (after 62): [000196] ------------ * ADD byref [000087] -----+------ +--* LCL_VAR ref V00 this [000195] -----+------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] Final value of Compiler::fgMorphField after calling fgMorphSmpOp: [000136] ---XG------- * IND bool [000196] -----+------ \--* ADD byref [000087] -----+------ +--* LCL_VAR ref V00 this [000195] -----+------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] fgMorphTree (after 61): [000136] ---XG------- * IND bool [000196] -----+------ \--* ADD byref [000087] -----+------ +--* LCL_VAR ref V00 this [000195] -----+------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] GenTreeNode creates assertion: [000136] ---XG------- * IND bool In BB08 New Local Constant Assertion: V00 != null index=#01, mask=0000000000000001 fgMorphTree (after 60): [000136] ---XG+------ * IND bool [000196] -----+------ \--* ADD byref [000087] -----+------ +--* LCL_VAR ref V00 this [000195] -----+------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] fgMorphTree (after 58): [000091] N--XG--N-U-- * NE int [000194] -----+------ +--* CAST int <- bool <- int [000086] -----+------ | \--* LCL_VAR int V08 arg8 [000136] ---XG+------ \--* IND bool [000196] -----+------ \--* ADD byref [000087] -----+------ +--* LCL_VAR ref V00 this [000195] -----+------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] fgMorphTree (after 57): [000092] ---XG------- * JTRUE void [000091] N--XG+-N-U-- \--* NE int [000194] -----+------ +--* CAST int <- bool <- int [000086] -----+------ | \--* LCL_VAR int V08 arg8 [000136] ---XG+------ \--* IND bool [000196] -----+------ \--* ADD byref [000087] -----+------ +--* LCL_VAR ref V00 this [000195] -----+------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] fgMorphTree BB08, STMT00023 (after) [000092] ---XG+------ * JTRUE void [000091] N--XG+-N-U-- \--* NE int [000194] -----+------ +--* CAST int <- bool <- int [000086] -----+------ | \--* LCL_VAR int V08 arg8 [000136] ---XG+------ \--* IND bool [000196] -----+------ \--* ADD byref [000087] -----+------ +--* LCL_VAR ref V00 this [000195] -----+------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] Morphing BB09 of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' fgMorphTree BB09, STMT00025 (before) [000099] --C--------- * JTRUE void [000098] N-C------U-- \--* NE int [000093] ------------ +--* LCL_VAR bool V09 arg9 [000097] --C--------- \--* CAST int <- bool <- int [000138] ---XG------- \--* FIELD bool k__BackingField [000094] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 65): [000099] --C--------- * JTRUE void [000098] N-C------U-- \--* NE int [000093] ------------ +--* LCL_VAR bool V09 arg9 [000097] --C--------- \--* CAST int <- bool <- int [000138] ---XG------- \--* FIELD bool k__BackingField [000094] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 66): [000098] N-C----N-U-- * NE int [000093] ------------ +--* LCL_VAR bool V09 arg9 [000097] --C--------- \--* CAST int <- bool <- int [000138] ---XG------- \--* FIELD bool k__BackingField [000094] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 67): [000093] ------------ * LCL_VAR bool V09 arg9 fgMorphTree (after 0): [000093] ------------ * LCL_VAR int V09 arg9 fgMorphTree (after 0): [000197] ------------ * CAST int <- bool <- int [000093] -----+------ \--* LCL_VAR int V09 arg9 fgMorphTree (after 67): [000197] -----+------ * CAST int <- bool <- int [000093] -----+------ \--* LCL_VAR int V09 arg9 fgMorphTree (before 68): [000097] --C--------- * CAST int <- bool <- int [000138] ---XG------- \--* FIELD bool k__BackingField [000094] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 69): [000138] ---XG------- * FIELD bool k__BackingField [000094] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 70): [000199] ------------ * ADD byref [000094] ------------ +--* LCL_VAR ref V00 this [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] fgMorphTree (before 71): [000094] ------------ * LCL_VAR ref V00 this fgMorphTree (after 71): [000094] ------------ * LCL_VAR ref V00 this fgMorphTree (before 72): [000198] ------------ * CNS_INT long 62 field offset Fseq[k__BackingField] fgMorphTree (after 72): [000198] ------------ * CNS_INT long 62 field offset Fseq[k__BackingField] fgMorphTree (after 70): [000199] ------------ * ADD byref [000094] -----+------ +--* LCL_VAR ref V00 this [000198] -----+------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] Final value of Compiler::fgMorphField after calling fgMorphSmpOp: [000138] ---XG------- * IND bool [000199] -----+------ \--* ADD byref [000094] -----+------ +--* LCL_VAR ref V00 this [000198] -----+------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] fgMorphTree (after 69): [000138] ---XG------- * IND bool [000199] -----+------ \--* ADD byref [000094] -----+------ +--* LCL_VAR ref V00 this [000198] -----+------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] GenTreeNode creates assertion: [000138] ---XG------- * IND bool In BB09 New Local Constant Assertion: V00 != null index=#01, mask=0000000000000001 fgMorphTree (after 68): [000138] ---XG+------ * IND bool [000199] -----+------ \--* ADD byref [000094] -----+------ +--* LCL_VAR ref V00 this [000198] -----+------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] fgMorphTree (after 66): [000098] N--XG--N-U-- * NE int [000197] -----+------ +--* CAST int <- bool <- int [000093] -----+------ | \--* LCL_VAR int V09 arg9 [000138] ---XG+------ \--* IND bool [000199] -----+------ \--* ADD byref [000094] -----+------ +--* LCL_VAR ref V00 this [000198] -----+------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] fgMorphTree (after 65): [000099] ---XG------- * JTRUE void [000098] N--XG+-N-U-- \--* NE int [000197] -----+------ +--* CAST int <- bool <- int [000093] -----+------ | \--* LCL_VAR int V09 arg9 [000138] ---XG+------ \--* IND bool [000199] -----+------ \--* ADD byref [000094] -----+------ +--* LCL_VAR ref V00 this [000198] -----+------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] fgMorphTree BB09, STMT00025 (after) [000099] ---XG+------ * JTRUE void [000098] N--XG+-N-U-- \--* NE int [000197] -----+------ +--* CAST int <- bool <- int [000093] -----+------ | \--* LCL_VAR int V09 arg9 [000138] ---XG+------ \--* IND bool [000199] -----+------ \--* ADD byref [000094] -----+------ +--* LCL_VAR ref V00 this [000198] -----+------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] Morphing BB10 of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' fgMorphTree BB10, STMT00027 (before) [000108] --C-G------- * JTRUE void [000107] --C-G------- \--* NE int [000105] --C-G------- +--* CAST int <- bool <- int [000104] --C-G------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality [000100] ------------ arg0 | +--* LCL_VAR ref V10 arg10 [000140] ---XG------- arg1 | \--* FIELD ref k__BackingField [000101] ------------ | \--* LCL_VAR ref V00 this [000106] ------------ \--* CNS_INT int 0 fgMorphTree (before 73): [000108] --C-G------- * JTRUE void [000107] --C-G------- \--* NE int [000105] --C-G------- +--* CAST int <- bool <- int [000104] --C-G------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality [000100] ------------ arg0 | +--* LCL_VAR ref V10 arg10 [000140] ---XG------- arg1 | \--* FIELD ref k__BackingField [000101] ------------ | \--* LCL_VAR ref V00 this [000106] ------------ \--* CNS_INT int 0 fgMorphTree (before 74): [000107] J-C-G--N---- * NE int [000105] --C-G------- +--* CAST int <- bool <- int [000104] --C-G------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality [000100] ------------ arg0 | +--* LCL_VAR ref V10 arg10 [000140] ---XG------- arg1 | \--* FIELD ref k__BackingField [000101] ------------ | \--* LCL_VAR ref V00 this [000106] ------------ \--* CNS_INT int 0 fgMorphTree (before 75): [000105] --C-G------- * CAST int <- bool <- int [000104] --C-G------- \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality [000100] ------------ arg0 +--* LCL_VAR ref V10 arg10 [000140] ---XG------- arg1 \--* FIELD ref k__BackingField [000101] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 76): [000104] --C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality [000100] ------------ arg0 +--* LCL_VAR ref V10 arg10 [000140] ---XG------- arg1 \--* FIELD ref k__BackingField [000101] ------------ \--* LCL_VAR ref V00 this Initializing arg info for 104.CALL: ArgTable for 104.CALL after fgInitArgInfo: fgArgTabEntry[arg 0 100.LCL_VAR ref (By ref), 1 reg: rcx, align=1] fgArgTabEntry[arg 1 140.FIELD ref (By ref), 1 reg: rdx, align=1] Morphing args for 104.CALL: fgMorphTree (before 77): [000100] ------------ * LCL_VAR ref V10 arg10 fgMorphTree (after 77): [000100] ------------ * LCL_VAR ref V10 arg10 fgMorphTree (before 78): [000140] ---XG------- * FIELD ref k__BackingField [000101] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 79): [000201] ------------ * ADD byref [000101] ------------ +--* LCL_VAR ref V00 this [000200] ------------ \--* CNS_INT long 48 field offset Fseq[k__BackingField] fgMorphTree (before 80): [000101] ------------ * LCL_VAR ref V00 this fgMorphTree (after 80): [000101] ------------ * LCL_VAR ref V00 this fgMorphTree (before 81): [000200] ------------ * CNS_INT long 48 field offset Fseq[k__BackingField] fgMorphTree (after 81): [000200] ------------ * CNS_INT long 48 field offset Fseq[k__BackingField] fgMorphTree (after 79): [000201] ------------ * ADD byref [000101] -----+------ +--* LCL_VAR ref V00 this [000200] -----+------ \--* CNS_INT long 48 field offset Fseq[k__BackingField] Final value of Compiler::fgMorphField after calling fgMorphSmpOp: [000140] ---XG------- * IND ref [000201] -----+------ \--* ADD byref [000101] -----+------ +--* LCL_VAR ref V00 this [000200] -----+------ \--* CNS_INT long 48 field offset Fseq[k__BackingField] fgMorphTree (after 78): [000140] ---XG------- * IND ref [000201] -----+------ \--* ADD byref [000101] -----+------ +--* LCL_VAR ref V00 this [000200] -----+------ \--* CNS_INT long 48 field offset Fseq[k__BackingField] GenTreeNode creates assertion: [000140] ---XG------- * IND ref In BB10 New Local Constant Assertion: V00 != null index=#01, mask=0000000000000001 argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 Sorting the arguments: Deferred argument ('rdx'): [000140] ---XG+------ * IND ref [000201] -----+------ \--* ADD byref [000101] -----+------ +--* LCL_VAR ref V00 this [000200] -----+------ \--* CNS_INT long 48 field offset Fseq[k__BackingField] Replaced with placeholder node: [000202] ----------L- * ARGPLACE ref Deferred argument ('rcx'): [000100] -----+------ * LCL_VAR ref V10 arg10 Replaced with placeholder node: [000203] ----------L- * ARGPLACE ref Shuffled argument table: rdx rcx ArgTable for 104.CALL after fgMorphArgs: fgArgTabEntry[arg 1 140.IND ref (By ref), 1 reg: rdx, align=1, lateArgInx=0, processed] fgArgTabEntry[arg 0 100.LCL_VAR ref (By ref), 1 reg: rcx, align=1, lateArgInx=1, processed] fgMorphTree (after 76): [000104] --CXG------- * CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality [000140] ---XG+------ arg1 in rdx +--* IND ref [000201] -----+------ | \--* ADD byref [000101] -----+------ | +--* LCL_VAR ref V00 this [000200] -----+------ | \--* CNS_INT long 48 field offset Fseq[k__BackingField] [000100] -----+------ arg0 in rcx \--* LCL_VAR ref V10 arg10 fgMorphTree (after 75): [000105] --CXG------- * CAST int <- bool <- int [000104] --CXG+------ \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality [000140] ---XG+------ arg1 in rdx +--* IND ref [000201] -----+------ | \--* ADD byref [000101] -----+------ | +--* LCL_VAR ref V00 this [000200] -----+------ | \--* CNS_INT long 48 field offset Fseq[k__BackingField] [000100] -----+------ arg0 in rcx \--* LCL_VAR ref V10 arg10 fgMorphTree (before 82): [000106] ------------ * CNS_INT int 0 fgMorphTree (after 82): [000106] ------------ * CNS_INT int 0 fgMorphTree (after 74): [000107] J-CXG--N---- * NE int [000105] --CXG+------ +--* CAST int <- bool <- int [000104] --CXG+------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality [000140] ---XG+------ arg1 in rdx | +--* IND ref [000201] -----+------ | | \--* ADD byref [000101] -----+------ | | +--* LCL_VAR ref V00 this [000200] -----+------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] [000100] -----+------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 [000106] -----+------ \--* CNS_INT int 0 fgMorphTree (after 73): [000108] --CXG------- * JTRUE void [000107] J-CXG+-N---- \--* NE int [000105] --CXG+------ +--* CAST int <- bool <- int [000104] --CXG+------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality [000140] ---XG+------ arg1 in rdx | +--* IND ref [000201] -----+------ | | \--* ADD byref [000101] -----+------ | | +--* LCL_VAR ref V00 this [000200] -----+------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] [000100] -----+------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 [000106] -----+------ \--* CNS_INT int 0 fgMorphTree BB10, STMT00027 (after) [000108] --CXG+------ * JTRUE void [000107] J-CXG+-N---- \--* NE int [000105] --CXG+------ +--* CAST int <- bool <- int [000104] --CXG+------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality [000140] ---XG+------ arg1 in rdx | +--* IND ref [000201] -----+------ | | \--* ADD byref [000101] -----+------ | | +--* LCL_VAR ref V00 this [000200] -----+------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] [000100] -----+------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 [000106] -----+------ \--* CNS_INT int 0 Morphing BB11 of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' fgMorphTree BB11, STMT00030 (before) [000118] --C--------- * JTRUE void [000117] --C--------- \--* EQ int [000115] --C--------- +--* CAST int <- bool <- int [000113] --C-G------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000109] ------------ arg0 | +--* LCL_VAR ref V11 arg11 [000142] ---XG------- arg1 | \--* FIELD ref k__BackingField [000110] ------------ | \--* LCL_VAR ref V00 this [000116] ------------ \--* CNS_INT int 0 fgMorphTree (before 83): [000118] --C--------- * JTRUE void [000117] --C--------- \--* EQ int [000115] --C--------- +--* CAST int <- bool <- int [000113] --C-G------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000109] ------------ arg0 | +--* LCL_VAR ref V11 arg11 [000142] ---XG------- arg1 | \--* FIELD ref k__BackingField [000110] ------------ | \--* LCL_VAR ref V00 this [000116] ------------ \--* CNS_INT int 0 fgMorphTree (before 84): [000117] J-C----N---- * EQ int [000115] --C--------- +--* CAST int <- bool <- int [000113] --C-G------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000109] ------------ arg0 | +--* LCL_VAR ref V11 arg11 [000142] ---XG------- arg1 | \--* FIELD ref k__BackingField [000110] ------------ | \--* LCL_VAR ref V00 this [000116] ------------ \--* CNS_INT int 0 fgMorphTree (before 85): [000115] --C--------- * CAST int <- bool <- int [000113] --C-G------- \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000109] ------------ arg0 +--* LCL_VAR ref V11 arg11 [000142] ---XG------- arg1 \--* FIELD ref k__BackingField [000110] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 86): [000113] --C-G------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000109] ------------ arg0 +--* LCL_VAR ref V11 arg11 [000142] ---XG------- arg1 \--* FIELD ref k__BackingField [000110] ------------ \--* LCL_VAR ref V00 this Initializing arg info for 113.CALL: ArgTable for 113.CALL after fgInitArgInfo: fgArgTabEntry[arg 0 109.LCL_VAR ref (By ref), 1 reg: rcx, align=1] fgArgTabEntry[arg 1 142.FIELD ref (By ref), 1 reg: rdx, align=1] Morphing args for 113.CALL: fgMorphTree (before 87): [000109] ------------ * LCL_VAR ref V11 arg11 fgMorphTree (after 87): [000109] ------------ * LCL_VAR ref V11 arg11 fgMorphTree (before 88): [000142] ---XG------- * FIELD ref k__BackingField [000110] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 89): [000205] ------------ * ADD byref [000110] ------------ +--* LCL_VAR ref V00 this [000204] ------------ \--* CNS_INT long 24 field offset Fseq[k__BackingField] fgMorphTree (before 90): [000110] ------------ * LCL_VAR ref V00 this fgMorphTree (after 90): [000110] ------------ * LCL_VAR ref V00 this fgMorphTree (before 91): [000204] ------------ * CNS_INT long 24 field offset Fseq[k__BackingField] fgMorphTree (after 91): [000204] ------------ * CNS_INT long 24 field offset Fseq[k__BackingField] fgMorphTree (after 89): [000205] ------------ * ADD byref [000110] -----+------ +--* LCL_VAR ref V00 this [000204] -----+------ \--* CNS_INT long 24 field offset Fseq[k__BackingField] Final value of Compiler::fgMorphField after calling fgMorphSmpOp: [000142] ---XG------- * IND ref [000205] -----+------ \--* ADD byref [000110] -----+------ +--* LCL_VAR ref V00 this [000204] -----+------ \--* CNS_INT long 24 field offset Fseq[k__BackingField] fgMorphTree (after 88): [000142] ---XG------- * IND ref [000205] -----+------ \--* ADD byref [000110] -----+------ +--* LCL_VAR ref V00 this [000204] -----+------ \--* CNS_INT long 24 field offset Fseq[k__BackingField] GenTreeNode creates assertion: [000142] ---XG------- * IND ref In BB11 New Local Constant Assertion: V00 != null index=#01, mask=0000000000000001 argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 Sorting the arguments: Deferred argument ('rdx'): [000142] ---XG+------ * IND ref [000205] -----+------ \--* ADD byref [000110] -----+------ +--* LCL_VAR ref V00 this [000204] -----+------ \--* CNS_INT long 24 field offset Fseq[k__BackingField] Replaced with placeholder node: [000206] ----------L- * ARGPLACE ref Deferred argument ('rcx'): [000109] -----+------ * LCL_VAR ref V11 arg11 Replaced with placeholder node: [000207] ----------L- * ARGPLACE ref Shuffled argument table: rdx rcx ArgTable for 113.CALL after fgMorphArgs: fgArgTabEntry[arg 1 142.IND ref (By ref), 1 reg: rdx, align=1, lateArgInx=0, processed] fgArgTabEntry[arg 0 109.LCL_VAR ref (By ref), 1 reg: rcx, align=1, lateArgInx=1, processed] fgMorphTree (after 86): [000113] --CXG------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000142] ---XG+------ arg1 in rdx +--* IND ref [000205] -----+------ | \--* ADD byref [000110] -----+------ | +--* LCL_VAR ref V00 this [000204] -----+------ | \--* CNS_INT long 24 field offset Fseq[k__BackingField] [000109] -----+------ arg0 in rcx \--* LCL_VAR ref V11 arg11 fgMorphTree (after 85): [000115] --CXG------- * CAST int <- bool <- int [000113] --CXG+------ \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000142] ---XG+------ arg1 in rdx +--* IND ref [000205] -----+------ | \--* ADD byref [000110] -----+------ | +--* LCL_VAR ref V00 this [000204] -----+------ | \--* CNS_INT long 24 field offset Fseq[k__BackingField] [000109] -----+------ arg0 in rcx \--* LCL_VAR ref V11 arg11 fgMorphTree (before 92): [000116] ------------ * CNS_INT int 0 fgMorphTree (after 92): [000116] ------------ * CNS_INT int 0 fgMorphTree (after 84): [000117] J-CXG--N---- * EQ int [000115] --CXG+------ +--* CAST int <- bool <- int [000113] --CXG+------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000142] ---XG+------ arg1 in rdx | +--* IND ref [000205] -----+------ | | \--* ADD byref [000110] -----+------ | | +--* LCL_VAR ref V00 this [000204] -----+------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] [000109] -----+------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 [000116] -----+------ \--* CNS_INT int 0 fgMorphTree (after 83): [000118] --CXG------- * JTRUE void [000117] J-CXG+-N---- \--* EQ int [000115] --CXG+------ +--* CAST int <- bool <- int [000113] --CXG+------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000142] ---XG+------ arg1 in rdx | +--* IND ref [000205] -----+------ | | \--* ADD byref [000110] -----+------ | | +--* LCL_VAR ref V00 this [000204] -----+------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] [000109] -----+------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 [000116] -----+------ \--* CNS_INT int 0 fgMorphTree BB11, STMT00030 (after) [000118] --CXG+------ * JTRUE void [000117] J-CXG+-N---- \--* EQ int [000115] --CXG+------ +--* CAST int <- bool <- int [000113] --CXG+------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000142] ---XG+------ arg1 in rdx | +--* IND ref [000205] -----+------ | | \--* ADD byref [000110] -----+------ | | +--* LCL_VAR ref V00 this [000204] -----+------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] [000109] -----+------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 [000116] -----+------ \--* CNS_INT int 0 Morphing BB12 of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' fgMorphTree BB12, STMT00003 (before) [000022] -A-XG------- * ASG ref [000021] D------N---- +--* LCL_VAR ref V13 tmp1 [000007] ---XG------- \--* FIELD ref Syntax [000006] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 93): [000022] -A-XG------- * ASG ref [000021] D------N---- +--* LCL_VAR ref V13 tmp1 [000007] ---XG------- \--* FIELD ref Syntax [000006] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 94): [000021] D------N---- * LCL_VAR ref V13 tmp1 fgMorphTree (after 94): [000021] D------N---- * LCL_VAR ref V13 tmp1 fgMorphTree (before 95): [000007] ---XG------- * FIELD ref Syntax [000006] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 96): [000209] ------------ * ADD byref [000006] ------------ +--* LCL_VAR ref V00 this [000208] ------------ \--* CNS_INT long 8 field offset Fseq[Syntax] fgMorphTree (before 97): [000006] ------------ * LCL_VAR ref V00 this fgMorphTree (after 97): [000006] ------------ * LCL_VAR ref V00 this fgMorphTree (before 98): [000208] ------------ * CNS_INT long 8 field offset Fseq[Syntax] fgMorphTree (after 98): [000208] ------------ * CNS_INT long 8 field offset Fseq[Syntax] fgMorphTree (after 96): [000209] ------------ * ADD byref [000006] -----+------ +--* LCL_VAR ref V00 this [000208] -----+------ \--* CNS_INT long 8 field offset Fseq[Syntax] Final value of Compiler::fgMorphField after calling fgMorphSmpOp: [000007] ---XG------- * IND ref [000209] -----+------ \--* ADD byref [000006] -----+------ +--* LCL_VAR ref V00 this [000208] -----+------ \--* CNS_INT long 8 field offset Fseq[Syntax] fgMorphTree (after 95): [000007] ---XG------- * IND ref [000209] -----+------ \--* ADD byref [000006] -----+------ +--* LCL_VAR ref V00 this [000208] -----+------ \--* CNS_INT long 8 field offset Fseq[Syntax] GenTreeNode creates assertion: [000007] ---XG------- * IND ref In BB12 New Local Constant Assertion: V00 != null index=#01, mask=0000000000000001 fgMorphTree (after 93): [000022] -A-XG------- * ASG ref [000021] D----+-N---- +--* LCL_VAR ref V13 tmp1 [000007] ---XG+------ \--* IND ref [000209] -----+------ \--* ADD byref [000006] -----+------ +--* LCL_VAR ref V00 this [000208] -----+------ \--* CNS_INT long 8 field offset Fseq[Syntax] fgMorphTree BB12, STMT00003 (after) [000022] -A-XG+------ * ASG ref [000021] D----+-N---- +--* LCL_VAR ref V13 tmp1 [000007] ---XG+------ \--* IND ref [000209] -----+------ \--* ADD byref [000006] -----+------ +--* LCL_VAR ref V00 this [000208] -----+------ \--* CNS_INT long 8 field offset Fseq[Syntax] fgMorphTree BB12, STMT00004 (before) [000030] -AC--------- * ASG ref [000029] D------N---- +--* LCL_VAR ref V14 tmp2 [000028] --C--------- \--* CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW fgMorphTree (before 99): [000030] -AC--------- * ASG ref [000029] D------N---- +--* LCL_VAR ref V14 tmp2 [000028] --C--------- \--* CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW fgMorphTree (before 100): [000029] D------N---- * LCL_VAR ref V14 tmp2 fgMorphTree (after 100): [000029] D------N---- * LCL_VAR ref V14 tmp2 fgMorphTree (before 101): [000028] --C--------- * CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW Initializing arg info for 28.CALL: ArgTable for 28.CALL after fgInitArgInfo: Morphing args for 28.CALL: argSlots=0, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 ArgTable for 28.CALL after fgMorphArgs: fgMorphTree (after 101): [000028] --C--------- * CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW fgMorphTree (after 99): [000030] -AC--------- * ASG ref [000029] D----+-N---- +--* LCL_VAR ref V14 tmp2 [000028] --C--+------ \--* CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW fgMorphTree BB12, STMT00005 (before) [000032] --C-G------- * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor [000031] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 [000023] ------------ arg1 +--* LCL_VAR ref V13 tmp1 [000008] ------------ arg2 +--* LCL_VAR ref V01 arg1 [000009] ------------ arg3 +--* LCL_VAR ubyte V02 arg2 [000010] ------------ arg4 +--* LCL_VAR ubyte V03 arg3 [000011] ------------ arg5 +--* LCL_VAR bool V04 arg4 [000012] ------------ arg6 +--* LCL_VAR ref V05 arg5 [000013] ------------ arg7 +--* LCL_VAR bool V06 arg6 [000014] ------------ arg8 +--* LCL_VAR bool V07 arg7 [000015] ------------ arg9 +--* LCL_VAR bool V08 arg8 [000016] ------------ arg10 +--* LCL_VAR bool V09 arg9 [000017] ------------ arg11 +--* LCL_VAR ref V10 arg10 [000018] ------------ arg12 +--* LCL_VAR ref V11 arg11 [000025] --C--------- arg13 \--* CAST int <- bool <- int [000149] N--XG----U-- \--* GT int [000147] ---XG------- +--* AND int [000145] ---XG------- | +--* FIELD ubyte _attributes [000019] ------------ | | \--* LCL_VAR ref V00 this [000146] ------------ | \--* CNS_INT int 1 [000148] ------------ \--* CNS_INT int 0 fgMorphTree (before 102): [000032] --C-G------- * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor [000031] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 [000023] ------------ arg1 +--* LCL_VAR ref V13 tmp1 [000008] ------------ arg2 +--* LCL_VAR ref V01 arg1 [000009] ------------ arg3 +--* LCL_VAR ubyte V02 arg2 [000010] ------------ arg4 +--* LCL_VAR ubyte V03 arg3 [000011] ------------ arg5 +--* LCL_VAR bool V04 arg4 [000012] ------------ arg6 +--* LCL_VAR ref V05 arg5 [000013] ------------ arg7 +--* LCL_VAR bool V06 arg6 [000014] ------------ arg8 +--* LCL_VAR bool V07 arg7 [000015] ------------ arg9 +--* LCL_VAR bool V08 arg8 [000016] ------------ arg10 +--* LCL_VAR bool V09 arg9 [000017] ------------ arg11 +--* LCL_VAR ref V10 arg10 [000018] ------------ arg12 +--* LCL_VAR ref V11 arg11 [000025] --C--------- arg13 \--* CAST int <- bool <- int [000149] N--XG----U-- \--* GT int [000147] ---XG------- +--* AND int [000145] ---XG------- | +--* FIELD ubyte _attributes [000019] ------------ | | \--* LCL_VAR ref V00 this [000146] ------------ | \--* CNS_INT int 1 [000148] ------------ \--* CNS_INT int 0 Initializing arg info for 32.CALL: ArgTable for 32.CALL after fgInitArgInfo: fgArgTabEntry[arg 0 31.LCL_VAR ref (By ref), 1 reg: rcx, align=1] fgArgTabEntry[arg 1 23.LCL_VAR ref (By ref), 1 reg: rdx, align=1] fgArgTabEntry[arg 2 8.LCL_VAR ref (By ref), 1 reg: r8, align=1] fgArgTabEntry[arg 3 9.LCL_VAR ubyte (By ref), 1 reg: r9, align=1] fgArgTabEntry[arg 4 10.LCL_VAR ubyte (By ref), numSlots=1, slotNum=4, align=1] fgArgTabEntry[arg 5 11.LCL_VAR bool (By ref), numSlots=1, slotNum=5, align=1] fgArgTabEntry[arg 6 12.LCL_VAR ref (By ref), numSlots=1, slotNum=6, align=1] fgArgTabEntry[arg 7 13.LCL_VAR bool (By ref), numSlots=1, slotNum=7, align=1] fgArgTabEntry[arg 8 14.LCL_VAR bool (By ref), numSlots=1, slotNum=8, align=1] fgArgTabEntry[arg 9 15.LCL_VAR bool (By ref), numSlots=1, slotNum=9, align=1] fgArgTabEntry[arg 10 16.LCL_VAR bool (By ref), numSlots=1, slotNum=10, align=1] fgArgTabEntry[arg 11 17.LCL_VAR ref (By ref), numSlots=1, slotNum=11, align=1] fgArgTabEntry[arg 12 18.LCL_VAR ref (By ref), numSlots=1, slotNum=12, align=1] fgArgTabEntry[arg 13 25.CAST int (By ref), numSlots=1, slotNum=13, align=1] Morphing args for 32.CALL: fgMorphTree (before 103): [000031] ------------ * LCL_VAR ref V14 tmp2 fgMorphTree (after 103): [000031] ------------ * LCL_VAR ref V14 tmp2 fgMorphTree (before 104): [000023] ------------ * LCL_VAR ref V13 tmp1 fgMorphTree (after 104): [000023] ------------ * LCL_VAR ref V13 tmp1 fgMorphTree (before 105): [000008] ------------ * LCL_VAR ref V01 arg1 fgMorphTree (after 105): [000008] ------------ * LCL_VAR ref V01 arg1 fgMorphTree (before 106): [000009] ------------ * LCL_VAR ubyte V02 arg2 fgMorphTree (after 0): [000009] ------------ * LCL_VAR int V02 arg2 fgMorphTree (after 0): [000210] ------------ * CAST int <- ubyte <- int [000009] -----+------ \--* LCL_VAR int V02 arg2 fgMorphTree (after 106): [000210] -----+------ * CAST int <- ubyte <- int [000009] -----+------ \--* LCL_VAR int V02 arg2 fgMorphTree (before 107): [000010] ------------ * LCL_VAR ubyte V03 arg3 fgMorphTree (after 0): [000010] ------------ * LCL_VAR int V03 arg3 fgMorphTree (after 0): [000211] ------------ * CAST int <- ubyte <- int [000010] -----+------ \--* LCL_VAR int V03 arg3 fgMorphTree (after 107): [000211] -----+------ * CAST int <- ubyte <- int [000010] -----+------ \--* LCL_VAR int V03 arg3 fgMorphTree (before 108): [000011] ------------ * LCL_VAR bool V04 arg4 fgMorphTree (after 0): [000011] ------------ * LCL_VAR int V04 arg4 fgMorphTree (after 0): [000212] ------------ * CAST int <- bool <- int [000011] -----+------ \--* LCL_VAR int V04 arg4 fgMorphTree (after 108): [000212] -----+------ * CAST int <- bool <- int [000011] -----+------ \--* LCL_VAR int V04 arg4 fgMorphTree (before 109): [000012] ------------ * LCL_VAR ref V05 arg5 fgMorphTree (after 109): [000012] ------------ * LCL_VAR ref V05 arg5 fgMorphTree (before 110): [000013] ------------ * LCL_VAR bool V06 arg6 fgMorphTree (after 0): [000013] ------------ * LCL_VAR int V06 arg6 fgMorphTree (after 0): [000213] ------------ * CAST int <- bool <- int [000013] -----+------ \--* LCL_VAR int V06 arg6 fgMorphTree (after 110): [000213] -----+------ * CAST int <- bool <- int [000013] -----+------ \--* LCL_VAR int V06 arg6 fgMorphTree (before 111): [000014] ------------ * LCL_VAR bool V07 arg7 fgMorphTree (after 0): [000014] ------------ * LCL_VAR int V07 arg7 fgMorphTree (after 0): [000214] ------------ * CAST int <- bool <- int [000014] -----+------ \--* LCL_VAR int V07 arg7 fgMorphTree (after 111): [000214] -----+------ * CAST int <- bool <- int [000014] -----+------ \--* LCL_VAR int V07 arg7 fgMorphTree (before 112): [000015] ------------ * LCL_VAR bool V08 arg8 fgMorphTree (after 0): [000015] ------------ * LCL_VAR int V08 arg8 fgMorphTree (after 0): [000215] ------------ * CAST int <- bool <- int [000015] -----+------ \--* LCL_VAR int V08 arg8 fgMorphTree (after 112): [000215] -----+------ * CAST int <- bool <- int [000015] -----+------ \--* LCL_VAR int V08 arg8 fgMorphTree (before 113): [000016] ------------ * LCL_VAR bool V09 arg9 fgMorphTree (after 0): [000016] ------------ * LCL_VAR int V09 arg9 fgMorphTree (after 0): [000216] ------------ * CAST int <- bool <- int [000016] -----+------ \--* LCL_VAR int V09 arg9 fgMorphTree (after 113): [000216] -----+------ * CAST int <- bool <- int [000016] -----+------ \--* LCL_VAR int V09 arg9 fgMorphTree (before 114): [000017] ------------ * LCL_VAR ref V10 arg10 fgMorphTree (after 114): [000017] ------------ * LCL_VAR ref V10 arg10 fgMorphTree (before 115): [000018] ------------ * LCL_VAR ref V11 arg11 fgMorphTree (after 115): [000018] ------------ * LCL_VAR ref V11 arg11 fgMorphTree (before 116): [000025] --C--------- * CAST int <- bool <- int [000149] N--XG----U-- \--* GT int [000147] ---XG------- +--* AND int [000145] ---XG------- | +--* FIELD ubyte _attributes [000019] ------------ | | \--* LCL_VAR ref V00 this [000146] ------------ | \--* CNS_INT int 1 [000148] ------------ \--* CNS_INT int 0 fgMorphTree (before 117): [000149] N--XG----U-- * GT int [000147] ---XG------- +--* AND int [000145] ---XG------- | +--* FIELD ubyte _attributes [000019] ------------ | | \--* LCL_VAR ref V00 this [000146] ------------ | \--* CNS_INT int 1 [000148] ------------ \--* CNS_INT int 0 fgMorphTree (before 118): [000147] ---XG------- * AND int [000145] ---XG------- +--* FIELD ubyte _attributes [000019] ------------ | \--* LCL_VAR ref V00 this [000146] ------------ \--* CNS_INT int 1 fgMorphTree (before 119): [000145] ---XG------- * FIELD ubyte _attributes [000019] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 120): [000218] ------------ * ADD byref [000019] ------------ +--* LCL_VAR ref V00 this [000217] ------------ \--* CNS_INT long 17 field offset Fseq[_attributes] fgMorphTree (before 121): [000019] ------------ * LCL_VAR ref V00 this fgMorphTree (after 121): [000019] ------------ * LCL_VAR ref V00 this fgMorphTree (before 122): [000217] ------------ * CNS_INT long 17 field offset Fseq[_attributes] fgMorphTree (after 122): [000217] ------------ * CNS_INT long 17 field offset Fseq[_attributes] fgMorphTree (after 120): [000218] ------------ * ADD byref [000019] -----+------ +--* LCL_VAR ref V00 this [000217] -----+------ \--* CNS_INT long 17 field offset Fseq[_attributes] Final value of Compiler::fgMorphField after calling fgMorphSmpOp: [000145] ---XG------- * IND ubyte [000218] -----+------ \--* ADD byref [000019] -----+------ +--* LCL_VAR ref V00 this [000217] -----+------ \--* CNS_INT long 17 field offset Fseq[_attributes] fgMorphTree (after 119): [000145] ---XG------- * IND ubyte [000218] -----+------ \--* ADD byref [000019] -----+------ +--* LCL_VAR ref V00 this [000217] -----+------ \--* CNS_INT long 17 field offset Fseq[_attributes] fgMorphTree (before 123): [000146] ------------ * CNS_INT int 1 fgMorphTree (after 123): [000146] ------------ * CNS_INT int 1 fgMorphTree (after 118): [000147] ---XG------- * AND int [000145] ---XG+------ +--* IND ubyte [000218] -----+------ | \--* ADD byref [000019] -----+------ | +--* LCL_VAR ref V00 this [000217] -----+------ | \--* CNS_INT long 17 field offset Fseq[_attributes] [000146] -----+------ \--* CNS_INT int 1 fgMorphTree (before 124): [000148] ------------ * CNS_INT int 0 fgMorphTree (after 124): [000148] ------------ * CNS_INT int 0 fgMorphTree (after 117): [000149] N--XG------- * NE int [000147] ---XG+------ +--* AND int [000145] ---XG+------ | +--* IND ubyte [000218] -----+------ | | \--* ADD byref [000019] -----+------ | | +--* LCL_VAR ref V00 this [000217] -----+------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] [000146] -----+------ | \--* CNS_INT int 1 [000148] -----+------ \--* CNS_INT int 0 fgMorphTree (after 116): [000149] N--XG+------ * NE int [000147] ---XG+------ +--* AND int [000145] ---XG+------ | +--* IND ubyte [000218] -----+------ | | \--* ADD byref [000019] -----+------ | | +--* LCL_VAR ref V00 this [000217] -----+------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] [000146] -----+------ | \--* CNS_INT int 1 [000148] -----+------ \--* CNS_INT int 0 argSlots=14, preallocatedArgCount=14, nextSlotNum=14, outgoingArgSpaceSize=112 Sorting the arguments: Deferred argument ('r9'): ( 4, 4) [000210] ------------ * CAST int <- ubyte <- int ( 3, 2) [000009] ------------ \--* LCL_VAR int V02 arg2 Replaced with placeholder node: [000219] ----------L- * ARGPLACE int Deferred argument ('rcx'): [000031] -----+------ * LCL_VAR ref V14 tmp2 Replaced with placeholder node: [000220] ----------L- * ARGPLACE ref Deferred argument ('rdx'): [000023] -----+------ * LCL_VAR ref V13 tmp1 Replaced with placeholder node: [000221] ----------L- * ARGPLACE ref Deferred argument ('r8'): [000008] -----+------ * LCL_VAR ref V01 arg1 Replaced with placeholder node: [000222] ----------L- * ARGPLACE ref Shuffled argument table: r9 rcx rdx r8 ArgTable for 32.CALL after fgMorphArgs: fgArgTabEntry[arg 13 149.NE int (By ref), numSlots=1, slotNum=13, align=1, processed] fgArgTabEntry[arg 9 215.CAST bool (By ref), numSlots=1, slotNum=9, align=1, processed] fgArgTabEntry[arg 10 216.CAST bool (By ref), numSlots=1, slotNum=10, align=1, processed] fgArgTabEntry[arg 3 210.CAST ubyte (By ref), 1 reg: r9, align=1, lateArgInx=0, processed] fgArgTabEntry[arg 4 211.CAST ubyte (By ref), numSlots=1, slotNum=4, align=1, processed] fgArgTabEntry[arg 5 212.CAST bool (By ref), numSlots=1, slotNum=5, align=1, processed] fgArgTabEntry[arg 8 214.CAST bool (By ref), numSlots=1, slotNum=8, align=1, processed] fgArgTabEntry[arg 7 213.CAST bool (By ref), numSlots=1, slotNum=7, align=1, processed] fgArgTabEntry[arg 0 31.LCL_VAR ref (By ref), 1 reg: rcx, align=1, lateArgInx=1, processed] fgArgTabEntry[arg 1 23.LCL_VAR ref (By ref), 1 reg: rdx, align=1, lateArgInx=2, processed] fgArgTabEntry[arg 2 8.LCL_VAR ref (By ref), 1 reg: r8, align=1, lateArgInx=3, processed] fgArgTabEntry[arg 6 12.LCL_VAR ref (By ref), numSlots=1, slotNum=6, align=1, processed] fgArgTabEntry[arg 11 17.LCL_VAR ref (By ref), numSlots=1, slotNum=11, align=1, processed] fgArgTabEntry[arg 12 18.LCL_VAR ref (By ref), numSlots=1, slotNum=12, align=1, processed] fgMorphTree (after 102): [000032] --CXG------- * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor ( 4, 4) [000211] ------------ arg4 out+20 +--* CAST int <- ubyte <- int ( 3, 2) [000010] ------------ | \--* LCL_VAR int V03 arg3 ( 4, 4) [000212] ------------ arg5 out+28 +--* CAST int <- bool <- int ( 3, 2) [000011] ------------ | \--* LCL_VAR int V04 arg4 [000012] -----+------ arg6 out+30 +--* LCL_VAR ref V05 arg5 ( 4, 4) [000213] ------------ arg7 out+38 +--* CAST int <- bool <- int ( 3, 2) [000013] ------------ | \--* LCL_VAR int V06 arg6 ( 4, 4) [000214] ------------ arg8 out+40 +--* CAST int <- bool <- int ( 3, 2) [000014] ------------ | \--* LCL_VAR int V07 arg7 ( 4, 4) [000215] ------------ arg9 out+48 +--* CAST int <- bool <- int ( 3, 2) [000015] ------------ | \--* LCL_VAR int V08 arg8 ( 4, 4) [000216] ------------ arg10 out+50 +--* CAST int <- bool <- int ( 3, 2) [000016] ------------ | \--* LCL_VAR int V09 arg9 [000017] -----+------ arg11 out+58 +--* LCL_VAR ref V10 arg10 [000018] -----+------ arg12 out+60 +--* LCL_VAR ref V11 arg11 ( 14, 10) [000149] N--XG------- arg13 out+68 +--* NE int ( 9, 8) [000147] ---XG------- | +--* AND int ( 7, 6) [000145] ---XG------- | | +--* IND ubyte ( 4, 3) [000218] -------N---- | | | \--* ADD byref ( 3, 2) [000019] ------------ | | | +--* LCL_VAR ref V00 this ( 1, 1) [000217] ------------ | | | \--* CNS_INT long 17 field offset Fseq[_attributes] ( 1, 1) [000146] ------------ | | \--* CNS_INT int 1 ( 1, 1) [000148] ------------ | \--* CNS_INT int 0 ( 4, 4) [000210] ------------ arg3 in r9 +--* CAST int <- ubyte <- int ( 3, 2) [000009] ------------ | \--* LCL_VAR int V02 arg2 [000031] -----+------ this in rcx +--* LCL_VAR ref V14 tmp2 [000023] -----+------ arg1 in rdx +--* LCL_VAR ref V13 tmp1 [000008] -----+------ arg2 in r8 \--* LCL_VAR ref V01 arg1 fgMorphTree BB12, STMT00005 (after) [000032] --CXG+------ * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor ( 4, 4) [000211] ------------ arg4 out+20 +--* CAST int <- ubyte <- int ( 3, 2) [000010] ------------ | \--* LCL_VAR int V03 arg3 ( 4, 4) [000212] ------------ arg5 out+28 +--* CAST int <- bool <- int ( 3, 2) [000011] ------------ | \--* LCL_VAR int V04 arg4 [000012] -----+------ arg6 out+30 +--* LCL_VAR ref V05 arg5 ( 4, 4) [000213] ------------ arg7 out+38 +--* CAST int <- bool <- int ( 3, 2) [000013] ------------ | \--* LCL_VAR int V06 arg6 ( 4, 4) [000214] ------------ arg8 out+40 +--* CAST int <- bool <- int ( 3, 2) [000014] ------------ | \--* LCL_VAR int V07 arg7 ( 4, 4) [000215] ------------ arg9 out+48 +--* CAST int <- bool <- int ( 3, 2) [000015] ------------ | \--* LCL_VAR int V08 arg8 ( 4, 4) [000216] ------------ arg10 out+50 +--* CAST int <- bool <- int ( 3, 2) [000016] ------------ | \--* LCL_VAR int V09 arg9 [000017] -----+------ arg11 out+58 +--* LCL_VAR ref V10 arg10 [000018] -----+------ arg12 out+60 +--* LCL_VAR ref V11 arg11 ( 14, 10) [000149] N--XG------- arg13 out+68 +--* NE int ( 9, 8) [000147] ---XG------- | +--* AND int ( 7, 6) [000145] ---XG------- | | +--* IND ubyte ( 4, 3) [000218] -------N---- | | | \--* ADD byref ( 3, 2) [000019] ------------ | | | +--* LCL_VAR ref V00 this ( 1, 1) [000217] ------------ | | | \--* CNS_INT long 17 field offset Fseq[_attributes] ( 1, 1) [000146] ------------ | | \--* CNS_INT int 1 ( 1, 1) [000148] ------------ | \--* CNS_INT int 0 ( 4, 4) [000210] ------------ arg3 in r9 +--* CAST int <- ubyte <- int ( 3, 2) [000009] ------------ | \--* LCL_VAR int V02 arg2 [000031] -----+------ this in rcx +--* LCL_VAR ref V14 tmp2 [000023] -----+------ arg1 in rdx +--* LCL_VAR ref V13 tmp1 [000008] -----+------ arg2 in r8 \--* LCL_VAR ref V01 arg1 fgMorphTree BB12, STMT00034 (before) [000171] -AC--------- * ASG bool [000170] D------N---- +--* LCL_VAR bool V15 tmp3 [000157] --C--------- \--* CAST int <- bool <- int [000038] --C--------- \--* CAST int <- bool <- int [000155] N--XG----U-- \--* GT int [000153] ---XG------- +--* AND int [000151] ---XG------- | +--* FIELD ubyte _attributes [000035] ------------ | | \--* LCL_VAR ref V00 this [000152] ------------ | \--* CNS_INT int 2 [000154] ------------ \--* CNS_INT int 0 fgMorphTree (before 125): [000171] -AC--------- * ASG bool [000170] D------N---- +--* LCL_VAR bool V15 tmp3 [000157] --C--------- \--* CAST int <- bool <- int [000038] --C--------- \--* CAST int <- bool <- int [000155] N--XG----U-- \--* GT int [000153] ---XG------- +--* AND int [000151] ---XG------- | +--* FIELD ubyte _attributes [000035] ------------ | | \--* LCL_VAR ref V00 this [000152] ------------ | \--* CNS_INT int 2 [000154] ------------ \--* CNS_INT int 0 fgMorphTree (before 126): [000170] D------N---- * LCL_VAR int V15 tmp3 fgMorphTree (after 126): [000170] D------N---- * LCL_VAR int V15 tmp3 fgMorphTree (before 127): [000157] --C--------- * CAST int <- bool <- int [000038] --C--------- \--* CAST int <- bool <- int [000155] N--XG----U-- \--* GT int [000153] ---XG------- +--* AND int [000151] ---XG------- | +--* FIELD ubyte _attributes [000035] ------------ | | \--* LCL_VAR ref V00 this [000152] ------------ | \--* CNS_INT int 2 [000154] ------------ \--* CNS_INT int 0 fgMorphTree (before 128): [000038] --C--------- * CAST int <- bool <- int [000155] N--XG----U-- \--* GT int [000153] ---XG------- +--* AND int [000151] ---XG------- | +--* FIELD ubyte _attributes [000035] ------------ | | \--* LCL_VAR ref V00 this [000152] ------------ | \--* CNS_INT int 2 [000154] ------------ \--* CNS_INT int 0 fgMorphTree (before 129): [000155] N--XG----U-- * GT int [000153] ---XG------- +--* AND int [000151] ---XG------- | +--* FIELD ubyte _attributes [000035] ------------ | | \--* LCL_VAR ref V00 this [000152] ------------ | \--* CNS_INT int 2 [000154] ------------ \--* CNS_INT int 0 fgMorphTree (before 130): [000153] ---XG------- * AND int [000151] ---XG------- +--* FIELD ubyte _attributes [000035] ------------ | \--* LCL_VAR ref V00 this [000152] ------------ \--* CNS_INT int 2 fgMorphTree (before 131): [000151] ---XG------- * FIELD ubyte _attributes [000035] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 132): [000224] ------------ * ADD byref [000035] ------------ +--* LCL_VAR ref V00 this [000223] ------------ \--* CNS_INT long 17 field offset Fseq[_attributes] fgMorphTree (before 133): [000035] ------------ * LCL_VAR ref V00 this fgMorphTree (after 133): [000035] ------------ * LCL_VAR ref V00 this fgMorphTree (before 134): [000223] ------------ * CNS_INT long 17 field offset Fseq[_attributes] fgMorphTree (after 134): [000223] ------------ * CNS_INT long 17 field offset Fseq[_attributes] fgMorphTree (after 132): [000224] ------------ * ADD byref [000035] -----+------ +--* LCL_VAR ref V00 this [000223] -----+------ \--* CNS_INT long 17 field offset Fseq[_attributes] Final value of Compiler::fgMorphField after calling fgMorphSmpOp: [000151] ---XG------- * IND ubyte [000224] -----+------ \--* ADD byref [000035] -----+------ +--* LCL_VAR ref V00 this [000223] -----+------ \--* CNS_INT long 17 field offset Fseq[_attributes] fgMorphTree (after 131): [000151] ---XG------- * IND ubyte [000224] -----+------ \--* ADD byref [000035] -----+------ +--* LCL_VAR ref V00 this [000223] -----+------ \--* CNS_INT long 17 field offset Fseq[_attributes] fgMorphTree (before 135): [000152] ------------ * CNS_INT int 2 fgMorphTree (after 135): [000152] ------------ * CNS_INT int 2 fgMorphTree (after 130): [000153] ---XG------- * AND int [000151] ---XG+------ +--* IND ubyte [000224] -----+------ | \--* ADD byref [000035] -----+------ | +--* LCL_VAR ref V00 this [000223] -----+------ | \--* CNS_INT long 17 field offset Fseq[_attributes] [000152] -----+------ \--* CNS_INT int 2 fgMorphTree (before 136): [000154] ------------ * CNS_INT int 0 fgMorphTree (after 136): [000154] ------------ * CNS_INT int 0 fgMorphTree (after 129): [000155] N--XG------- * NE int [000153] ---XG+------ +--* AND int [000151] ---XG+------ | +--* IND ubyte [000224] -----+------ | | \--* ADD byref [000035] -----+------ | | +--* LCL_VAR ref V00 this [000223] -----+------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] [000152] -----+------ | \--* CNS_INT int 2 [000154] -----+------ \--* CNS_INT int 0 fgMorphTree (after 128): [000155] N--XG+------ * NE int [000153] ---XG+------ +--* AND int [000151] ---XG+------ | +--* IND ubyte [000224] -----+------ | | \--* ADD byref [000035] -----+------ | | +--* LCL_VAR ref V00 this [000223] -----+------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] [000152] -----+------ | \--* CNS_INT int 2 [000154] -----+------ \--* CNS_INT int 0 fgMorphTree (after 127): [000155] N--XG+------ * NE int [000153] ---XG+------ +--* AND int [000151] ---XG+------ | +--* IND ubyte [000224] -----+------ | | \--* ADD byref [000035] -----+------ | | +--* LCL_VAR ref V00 this [000223] -----+------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] [000152] -----+------ | \--* CNS_INT int 2 [000154] -----+------ \--* CNS_INT int 0 fgMorphTree (after 125): [000171] -A-XG------- * ASG bool [000170] D----+-N---- +--* LCL_VAR int V15 tmp3 [000155] N--XG+------ \--* NE int [000153] ---XG+------ +--* AND int [000151] ---XG+------ | +--* IND ubyte [000224] -----+------ | | \--* ADD byref [000035] -----+------ | | +--* LCL_VAR ref V00 this [000223] -----+------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] [000152] -----+------ | \--* CNS_INT int 2 [000154] -----+------ \--* CNS_INT int 0 GenTreeNode creates assertion: [000171] -A-XG------- * ASG bool In BB12 New Local Subrange Assertion: V15 in [0..1] index=#02, mask=0000000000000002 fgMorphTree BB12, STMT00034 (after) [000171] -A-XG+------ * ASG bool [000170] D----+-N---- +--* LCL_VAR int V15 tmp3 [000155] N--XG+------ \--* NE int [000153] ---XG+------ +--* AND int [000151] ---XG+------ | +--* IND ubyte [000224] -----+------ | | \--* ADD byref [000035] -----+------ | | +--* LCL_VAR ref V00 this [000223] -----+------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] [000152] -----+------ | \--* CNS_INT int 2 [000154] -----+------ \--* CNS_INT int 0 fgMorphTree BB12, STMT00035 (before) [000169] ---X-------- * NULLCHECK byte [000168] ------------ \--* LCL_VAR ref V14 tmp2 fgMorphTree (before 137): [000169] ---X-------- * NULLCHECK byte [000168] ------------ \--* LCL_VAR ref V14 tmp2 fgMorphTree (before 138): [000168] ------------ * LCL_VAR ref V14 tmp2 fgMorphTree (after 138): [000168] ------------ * LCL_VAR ref V14 tmp2 fgMorphTree (after 137): [000169] ---X-------- * NULLCHECK byte [000168] -----+------ \--* LCL_VAR ref V14 tmp2 GenTreeNode creates assertion: [000169] ---X-------- * NULLCHECK byte In BB12 New Local Constant Assertion: V14 != null index=#03, mask=0000000000000004 fgMorphTree BB12, STMT00032 (before) [000161] ------------ * JTRUE void [000160] ------------ \--* EQ int [000158] ------------ +--* LCL_VAR int V15 tmp3 [000159] ------------ \--* CNS_INT int 0 fgMorphTree (before 139): [000161] ------------ * JTRUE void [000160] ------------ \--* EQ int [000158] ------------ +--* LCL_VAR int V15 tmp3 [000159] ------------ \--* CNS_INT int 0 fgMorphTree (before 140): [000160] J------N---- * EQ int [000158] ------------ +--* LCL_VAR int V15 tmp3 [000159] ------------ \--* CNS_INT int 0 fgMorphTree (before 141): [000158] ------------ * LCL_VAR int V15 tmp3 fgMorphTree (after 141): [000158] ------------ * LCL_VAR int V15 tmp3 fgMorphTree (before 142): [000159] ------------ * CNS_INT int 0 fgMorphTree (after 142): [000159] ------------ * CNS_INT int 0 fgMorphTree (after 140): [000160] J------N---- * EQ int [000158] -----+------ +--* LCL_VAR int V15 tmp3 [000159] -----+------ \--* CNS_INT int 0 fgMorphTree (after 139): [000161] ------------ * JTRUE void [000160] J----+-N---- \--* EQ int [000158] -----+------ +--* LCL_VAR int V15 tmp3 [000159] -----+------ \--* CNS_INT int 0 Morphing BB14 of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' fgMorphTree BB14, STMT00033 (before) [000167] -A-XG------- * ASG ubyte [000166] ---XG--N---- +--* FIELD ubyte _attributes [000034] ------------ | \--* LCL_VAR ref V14 tmp2 [000165] ---XG------- \--* OR int [000163] ---XG------- +--* FIELD ubyte _attributes [000162] ------------ | \--* LCL_VAR ref V14 tmp2 [000164] ------------ \--* CNS_INT int 2 fgMorphTree (before 143): [000167] -A-XG------- * ASG ubyte [000166] ---XG--N---- +--* FIELD ubyte _attributes [000034] ------------ | \--* LCL_VAR ref V14 tmp2 [000165] ---XG------- \--* OR int [000163] ---XG------- +--* FIELD ubyte _attributes [000162] ------------ | \--* LCL_VAR ref V14 tmp2 [000164] ------------ \--* CNS_INT int 2 fgMorphTree (before 144): [000166] ---XG--N---- * FIELD ubyte _attributes [000034] ------------ \--* LCL_VAR ref V14 tmp2 fgMorphTree (before 145): [000226] ------------ * ADD byref [000034] ------------ +--* LCL_VAR ref V14 tmp2 [000225] ------------ \--* CNS_INT long 17 field offset Fseq[_attributes] fgMorphTree (before 146): [000034] ------------ * LCL_VAR ref V14 tmp2 fgMorphTree (after 146): [000034] ------------ * LCL_VAR ref V14 tmp2 fgMorphTree (before 147): [000225] ------------ * CNS_INT long 17 field offset Fseq[_attributes] fgMorphTree (after 147): [000225] ------------ * CNS_INT long 17 field offset Fseq[_attributes] fgMorphTree (after 145): [000226] ------------ * ADD byref [000034] -----+------ +--* LCL_VAR ref V14 tmp2 [000225] -----+------ \--* CNS_INT long 17 field offset Fseq[_attributes] Final value of Compiler::fgMorphField after calling fgMorphSmpOp: [000166] ---XG--N---- * IND ubyte [000226] -----+------ \--* ADD byref [000034] -----+------ +--* LCL_VAR ref V14 tmp2 [000225] -----+------ \--* CNS_INT long 17 field offset Fseq[_attributes] fgMorphTree (after 144): [000166] ---XG--N---- * IND ubyte [000226] -----+------ \--* ADD byref [000034] -----+------ +--* LCL_VAR ref V14 tmp2 [000225] -----+------ \--* CNS_INT long 17 field offset Fseq[_attributes] GenTreeNode creates assertion: [000166] ---XG--N---- * IND ubyte In BB14 New Local Constant Assertion: V14 != null index=#01, mask=0000000000000001 fgMorphTree (before 148): [000165] ---XG------- * OR int [000163] ---XG------- +--* FIELD ubyte _attributes [000162] ------------ | \--* LCL_VAR ref V14 tmp2 [000164] ------------ \--* CNS_INT int 2 fgMorphTree (before 149): [000163] ---XG------- * FIELD ubyte _attributes [000162] ------------ \--* LCL_VAR ref V14 tmp2 fgMorphTree (before 150): [000228] ------------ * ADD byref [000162] ------------ +--* LCL_VAR ref V14 tmp2 [000227] ------------ \--* CNS_INT long 17 field offset Fseq[_attributes] fgMorphTree (before 151): [000162] ------------ * LCL_VAR ref V14 tmp2 fgMorphTree (after 151): [000162] ------------ * LCL_VAR ref V14 tmp2 fgMorphTree (before 152): [000227] ------------ * CNS_INT long 17 field offset Fseq[_attributes] fgMorphTree (after 152): [000227] ------------ * CNS_INT long 17 field offset Fseq[_attributes] fgMorphTree (after 150): [000228] ------------ * ADD byref [000162] -----+------ +--* LCL_VAR ref V14 tmp2 [000227] -----+------ \--* CNS_INT long 17 field offset Fseq[_attributes] Final value of Compiler::fgMorphField after calling fgMorphSmpOp: [000163] ---XG------- * IND ubyte [000228] -----+------ \--* ADD byref [000162] -----+------ +--* LCL_VAR ref V14 tmp2 [000227] -----+------ \--* CNS_INT long 17 field offset Fseq[_attributes] fgMorphTree (after 149): [000163] ---XG------- * IND ubyte [000228] -----+------ \--* ADD byref [000162] -----+------ +--* LCL_VAR ref V14 tmp2 [000227] -----+------ \--* CNS_INT long 17 field offset Fseq[_attributes] fgMorphTree (before 153): [000164] ------------ * CNS_INT int 2 fgMorphTree (after 153): [000164] ------------ * CNS_INT int 2 fgMorphTree (after 148): [000165] ---XG------- * OR int [000163] ---XG+------ +--* IND ubyte [000228] -----+------ | \--* ADD byref [000162] -----+------ | +--* LCL_VAR ref V14 tmp2 [000227] -----+------ | \--* CNS_INT long 17 field offset Fseq[_attributes] [000164] -----+------ \--* CNS_INT int 2 fgMorphTree (after 143): [000167] -A-XG------- * ASG ubyte [000166] ---XG+-N---- +--* IND ubyte [000226] -----+------ | \--* ADD byref [000034] -----+------ | +--* LCL_VAR ref V14 tmp2 [000225] -----+------ | \--* CNS_INT long 17 field offset Fseq[_attributes] [000165] ---XG+------ \--* OR int [000163] ---XG+------ +--* IND ubyte [000228] -----+------ | \--* ADD byref [000162] -----+------ | +--* LCL_VAR ref V14 tmp2 [000227] -----+------ | \--* CNS_INT long 17 field offset Fseq[_attributes] [000164] -----+------ \--* CNS_INT int 2 fgMorphTree BB14, STMT00033 (after) [000167] -A-XG+------ * ASG ubyte [000166] ---XG+-N---- +--* IND ubyte [000226] -----+------ | \--* ADD byref [000034] -----+------ | +--* LCL_VAR ref V14 tmp2 [000225] -----+------ | \--* CNS_INT long 17 field offset Fseq[_attributes] [000165] ---XG+------ \--* OR int [000163] ---XG+------ +--* IND ubyte [000228] -----+------ | \--* ADD byref [000162] -----+------ | +--* LCL_VAR ref V14 tmp2 [000227] -----+------ | \--* CNS_INT long 17 field offset Fseq[_attributes] [000164] -----+------ \--* CNS_INT int 2 Morphing BB15 of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' fgMorphTree BB15, STMT00008 (before) [000040] ------------ * RETURN ref [000033] ------------ \--* LCL_VAR ref V14 tmp2 fgMorphTree (before 154): [000040] ------------ * RETURN ref [000033] ------------ \--* LCL_VAR ref V14 tmp2 fgMorphTree (before 155): [000033] ------------ * LCL_VAR ref V14 tmp2 fgMorphTree (after 155): [000033] ------------ * LCL_VAR ref V14 tmp2 fgMorphTree (after 154): [000040] ------------ * RETURN ref [000033] -----+------ \--* LCL_VAR ref V14 tmp2 Morphing BB17 of 'Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this' fgMorphTree BB17, STMT00031 (before) [000120] ------------ * RETURN ref [000119] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 156): [000120] ------------ * RETURN ref [000119] ------------ \--* LCL_VAR ref V00 this fgMorphTree (before 157): [000119] ------------ * LCL_VAR ref V00 this fgMorphTree (after 157): [000119] ------------ * LCL_VAR ref V00 this fgMorphTree (after 156): [000120] ------------ * RETURN ref [000119] -----+------ \--* LCL_VAR ref V00 this *************** Finishing PHASE Morph - Global Trees after Morph - Global ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 85106. 85106 [000..009)-> BB12 ( cond ) i label target IBC BB02 [0001] 1 BB01 70274. 70274 [009..012)-> BB12 ( cond ) i IBC BB03 [0002] 1 BB02 70274. 70274 [012..01B)-> BB12 ( cond ) i IBC BB04 [0003] 1 BB03 70274. 70274 [01B..025)-> BB12 ( cond ) i IBC BB05 [0004] 1 BB04 70274. 70274 [025..034)-> BB12 ( cond ) i hascall gcsafe IBC BB06 [0005] 1 BB05 70274. 70274 [034..03E)-> BB12 ( cond ) i IBC BB07 [0006] 1 BB06 70274. 70274 [03E..048)-> BB12 ( cond ) i IBC BB08 [0007] 1 BB07 70274. 70274 [048..052)-> BB12 ( cond ) i IBC BB09 [0008] 1 BB08 70275. 70275 [052..05C)-> BB12 ( cond ) i IBC BB10 [0009] 1 BB09 70275. 70275 [05C..06B)-> BB12 ( cond ) i hascall gcsafe IBC BB11 [0010] 1 BB10 70275. 70275 [06B..07A)-> BB17 ( cond ) i hascall gcsafe IBC BB12 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 14831. 14831 [000..0AB)-> BB15 ( cond ) i label target hascall gcsafe newobj nullcheck IBC BB14 [0027] 1 BB12 7415. [000..000) i internal BB15 [0028] 2 BB12,BB14 14831. 14831 [000..000) (return) i internal label target newobj nullcheck IBC BB17 [0012] 1 BB11 70275. 70275 [0AB..0AD) (return) i label target IBC ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..009) -> BB12 (cond), preds={} succs={BB02,BB12} ***** BB01 STMT00001 (IL ???... ???) [000005] ---XG+------ * JTRUE void [000004] N--XG+-N-U-- \--* NE int [000000] -----+------ +--* LCL_VAR ref V01 arg1 [000121] ---XG+------ \--* IND ref [000174] -----+------ \--* ADD byref [000001] -----+------ +--* LCL_VAR ref V00 this [000173] -----+------ \--* CNS_INT long 32 field offset Fseq[k__BackingField] ------------ BB02 [009..012) -> BB12 (cond), preds={BB01} succs={BB03,BB12} ***** BB02 STMT00010 (IL ???... ???) [000047] ---XG+------ * JTRUE void [000046] N--XG+-N-U-- \--* NE int [000175] -----+------ +--* CAST int <- ubyte <- int [000041] -----+------ | \--* LCL_VAR int V02 arg2 [000123] ---XG+------ \--* IND ubyte [000177] -----+------ \--* ADD byref [000042] -----+------ +--* LCL_VAR ref V00 this [000176] -----+------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] ------------ BB03 [012..01B) -> BB12 (cond), preds={BB02} succs={BB04,BB12} ***** BB03 STMT00012 (IL ???... ???) [000054] ---XG+------ * JTRUE void [000053] N--XG+-N-U-- \--* NE int [000178] -----+------ +--* CAST int <- ubyte <- int [000048] -----+------ | \--* LCL_VAR int V03 arg3 [000125] ---XG+------ \--* IND ubyte [000180] -----+------ \--* ADD byref [000049] -----+------ +--* LCL_VAR ref V00 this [000179] -----+------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] ------------ BB04 [01B..025) -> BB12 (cond), preds={BB03} succs={BB05,BB12} ***** BB04 STMT00014 (IL ???... ???) [000061] ---XG+------ * JTRUE void [000060] N--XG+-N-U-- \--* NE int [000181] -----+------ +--* CAST int <- bool <- int [000055] -----+------ | \--* LCL_VAR int V04 arg4 [000127] ---XG+------ \--* IND bool [000183] -----+------ \--* ADD byref [000056] -----+------ +--* LCL_VAR ref V00 this [000182] -----+------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] ------------ BB05 [025..034) -> BB12 (cond), preds={BB04} succs={BB06,BB12} ***** BB05 STMT00017 (IL ???... ???) [000071] --CXG+------ * JTRUE void [000070] J-CXG+-N---- \--* NE int [000068] --CXG+------ +--* CAST int <- bool <- int [000066] --CXG+------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000129] ---XG+------ arg1 in rdx | +--* IND ref [000185] -----+------ | | \--* ADD byref [000063] -----+------ | | +--* LCL_VAR ref V00 this [000184] -----+------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] [000062] -----+------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 [000069] -----+------ \--* CNS_INT int 0 ------------ BB06 [034..03E) -> BB12 (cond), preds={BB05} succs={BB07,BB12} ***** BB06 STMT00019 (IL ???... ???) [000078] ---XG+------ * JTRUE void [000077] N--XG+-N-U-- \--* NE int [000188] -----+------ +--* CAST int <- bool <- int [000072] -----+------ | \--* LCL_VAR int V06 arg6 [000132] ---XG+------ \--* IND bool [000190] -----+------ \--* ADD byref [000073] -----+------ +--* LCL_VAR ref V00 this [000189] -----+------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] ------------ BB07 [03E..048) -> BB12 (cond), preds={BB06} succs={BB08,BB12} ***** BB07 STMT00021 (IL ???... ???) [000085] ---XG+------ * JTRUE void [000084] N--XG+-N-U-- \--* NE int [000191] -----+------ +--* CAST int <- bool <- int [000079] -----+------ | \--* LCL_VAR int V07 arg7 [000134] ---XG+------ \--* IND bool [000193] -----+------ \--* ADD byref [000080] -----+------ +--* LCL_VAR ref V00 this [000192] -----+------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] ------------ BB08 [048..052) -> BB12 (cond), preds={BB07} succs={BB09,BB12} ***** BB08 STMT00023 (IL ???... ???) [000092] ---XG+------ * JTRUE void [000091] N--XG+-N-U-- \--* NE int [000194] -----+------ +--* CAST int <- bool <- int [000086] -----+------ | \--* LCL_VAR int V08 arg8 [000136] ---XG+------ \--* IND bool [000196] -----+------ \--* ADD byref [000087] -----+------ +--* LCL_VAR ref V00 this [000195] -----+------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] ------------ BB09 [052..05C) -> BB12 (cond), preds={BB08} succs={BB10,BB12} ***** BB09 STMT00025 (IL ???... ???) [000099] ---XG+------ * JTRUE void [000098] N--XG+-N-U-- \--* NE int [000197] -----+------ +--* CAST int <- bool <- int [000093] -----+------ | \--* LCL_VAR int V09 arg9 [000138] ---XG+------ \--* IND bool [000199] -----+------ \--* ADD byref [000094] -----+------ +--* LCL_VAR ref V00 this [000198] -----+------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] ------------ BB10 [05C..06B) -> BB12 (cond), preds={BB09} succs={BB11,BB12} ***** BB10 STMT00027 (IL ???... ???) [000108] --CXG+------ * JTRUE void [000107] J-CXG+-N---- \--* NE int [000105] --CXG+------ +--* CAST int <- bool <- int [000104] --CXG+------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality [000140] ---XG+------ arg1 in rdx | +--* IND ref [000201] -----+------ | | \--* ADD byref [000101] -----+------ | | +--* LCL_VAR ref V00 this [000200] -----+------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] [000100] -----+------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 [000106] -----+------ \--* CNS_INT int 0 ------------ BB11 [06B..07A) -> BB17 (cond), preds={BB10} succs={BB12,BB17} ***** BB11 STMT00030 (IL ???... ???) [000118] --CXG+------ * JTRUE void [000117] J-CXG+-N---- \--* EQ int [000115] --CXG+------ +--* CAST int <- bool <- int [000113] --CXG+------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000142] ---XG+------ arg1 in rdx | +--* IND ref [000205] -----+------ | | \--* ADD byref [000110] -----+------ | | +--* LCL_VAR ref V00 this [000204] -----+------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] [000109] -----+------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 [000116] -----+------ \--* CNS_INT int 0 ------------ BB12 [000..0AB) -> BB15 (cond), preds={BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11} succs={BB14,BB15} ***** BB12 STMT00003 (IL 0x07A...0x0AA) [000022] -A-XG+------ * ASG ref [000021] D----+-N---- +--* LCL_VAR ref V13 tmp1 [000007] ---XG+------ \--* IND ref [000209] -----+------ \--* ADD byref [000006] -----+------ +--* LCL_VAR ref V00 this [000208] -----+------ \--* CNS_INT long 8 field offset Fseq[Syntax] ***** BB12 STMT00004 (IL ???... ???) [000030] -AC--+------ * ASG ref [000029] D----+-N---- +--* LCL_VAR ref V14 tmp2 [000028] --C--+------ \--* CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW ***** BB12 STMT00005 (IL ???... ???) [000032] --CXG+------ * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor ( 4, 4) [000211] ------------ arg4 out+20 +--* CAST int <- ubyte <- int ( 3, 2) [000010] ------------ | \--* LCL_VAR int V03 arg3 ( 4, 4) [000212] ------------ arg5 out+28 +--* CAST int <- bool <- int ( 3, 2) [000011] ------------ | \--* LCL_VAR int V04 arg4 [000012] -----+------ arg6 out+30 +--* LCL_VAR ref V05 arg5 ( 4, 4) [000213] ------------ arg7 out+38 +--* CAST int <- bool <- int ( 3, 2) [000013] ------------ | \--* LCL_VAR int V06 arg6 ( 4, 4) [000214] ------------ arg8 out+40 +--* CAST int <- bool <- int ( 3, 2) [000014] ------------ | \--* LCL_VAR int V07 arg7 ( 4, 4) [000215] ------------ arg9 out+48 +--* CAST int <- bool <- int ( 3, 2) [000015] ------------ | \--* LCL_VAR int V08 arg8 ( 4, 4) [000216] ------------ arg10 out+50 +--* CAST int <- bool <- int ( 3, 2) [000016] ------------ | \--* LCL_VAR int V09 arg9 [000017] -----+------ arg11 out+58 +--* LCL_VAR ref V10 arg10 [000018] -----+------ arg12 out+60 +--* LCL_VAR ref V11 arg11 ( 14, 10) [000149] N--XG------- arg13 out+68 +--* NE int ( 9, 8) [000147] ---XG------- | +--* AND int ( 7, 6) [000145] ---XG------- | | +--* IND ubyte ( 4, 3) [000218] -------N---- | | | \--* ADD byref ( 3, 2) [000019] ------------ | | | +--* LCL_VAR ref V00 this ( 1, 1) [000217] ------------ | | | \--* CNS_INT long 17 field offset Fseq[_attributes] ( 1, 1) [000146] ------------ | | \--* CNS_INT int 1 ( 1, 1) [000148] ------------ | \--* CNS_INT int 0 ( 4, 4) [000210] ------------ arg3 in r9 +--* CAST int <- ubyte <- int ( 3, 2) [000009] ------------ | \--* LCL_VAR int V02 arg2 [000031] -----+------ this in rcx +--* LCL_VAR ref V14 tmp2 [000023] -----+------ arg1 in rdx +--* LCL_VAR ref V13 tmp1 [000008] -----+------ arg2 in r8 \--* LCL_VAR ref V01 arg1 ***** BB12 STMT00034 (IL ???... ???) [000171] -A-XG+------ * ASG bool [000170] D----+-N---- +--* LCL_VAR int V15 tmp3 [000155] N--XG+------ \--* NE int [000153] ---XG+------ +--* AND int [000151] ---XG+------ | +--* IND ubyte [000224] -----+------ | | \--* ADD byref [000035] -----+------ | | +--* LCL_VAR ref V00 this [000223] -----+------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] [000152] -----+------ | \--* CNS_INT int 2 [000154] -----+------ \--* CNS_INT int 0 ***** BB12 STMT00035 (IL ???... ???) [000169] ---X-+------ * NULLCHECK byte [000168] -----+------ \--* LCL_VAR ref V14 tmp2 ***** BB12 STMT00032 (IL ???... ???) [000161] -----+------ * JTRUE void [000160] J----+-N---- \--* EQ int [000158] -----+------ +--* LCL_VAR int V15 tmp3 [000159] -----+------ \--* CNS_INT int 0 ------------ BB14 [000..000), preds={BB12} succs={BB15} ***** BB14 STMT00033 (IL ???... ???) [000167] -A-XG+------ * ASG ubyte [000166] ---XG+-N---- +--* IND ubyte [000226] -----+------ | \--* ADD byref [000034] -----+------ | +--* LCL_VAR ref V14 tmp2 [000225] -----+------ | \--* CNS_INT long 17 field offset Fseq[_attributes] [000165] ---XG+------ \--* OR int [000163] ---XG+------ +--* IND ubyte [000228] -----+------ | \--* ADD byref [000162] -----+------ | +--* LCL_VAR ref V14 tmp2 [000227] -----+------ | \--* CNS_INT long 17 field offset Fseq[_attributes] [000164] -----+------ \--* CNS_INT int 2 ------------ BB15 [000..000) (return), preds={BB12,BB14} succs={} ***** BB15 STMT00008 (IL 0x0AA... ???) [000040] -----+------ * RETURN ref [000033] -----+------ \--* LCL_VAR ref V14 tmp2 ------------ BB17 [0AB..0AD) (return), preds={BB11} succs={} ***** BB17 STMT00031 (IL 0x0AB...0x0AC) [000120] -----+------ * RETURN ref [000119] -----+------ \--* LCL_VAR ref V00 this ------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *************** Starting PHASE GS Cookie No GS security needed *************** Finishing PHASE GS Cookie *************** Starting PHASE Mark GC poll blocks *************** Before renumbering the basic blocks ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 85106. 85106 [000..009)-> BB12 ( cond ) i label target IBC BB02 [0001] 1 BB01 70274. 70274 [009..012)-> BB12 ( cond ) i IBC BB03 [0002] 1 BB02 70274. 70274 [012..01B)-> BB12 ( cond ) i IBC BB04 [0003] 1 BB03 70274. 70274 [01B..025)-> BB12 ( cond ) i IBC BB05 [0004] 1 BB04 70274. 70274 [025..034)-> BB12 ( cond ) i hascall gcsafe IBC BB06 [0005] 1 BB05 70274. 70274 [034..03E)-> BB12 ( cond ) i IBC BB07 [0006] 1 BB06 70274. 70274 [03E..048)-> BB12 ( cond ) i IBC BB08 [0007] 1 BB07 70274. 70274 [048..052)-> BB12 ( cond ) i IBC BB09 [0008] 1 BB08 70275. 70275 [052..05C)-> BB12 ( cond ) i IBC BB10 [0009] 1 BB09 70275. 70275 [05C..06B)-> BB12 ( cond ) i hascall gcsafe IBC BB11 [0010] 1 BB10 70275. 70275 [06B..07A)-> BB17 ( cond ) i hascall gcsafe IBC BB12 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 14831. 14831 [000..0AB)-> BB15 ( cond ) i label target hascall gcsafe newobj nullcheck IBC BB14 [0027] 1 BB12 7415. [000..000) i internal BB15 [0028] 2 BB12,BB14 14831. 14831 [000..000) (return) i internal label target newobj nullcheck IBC BB17 [0012] 1 BB11 70275. 70275 [0AB..0AD) (return) i label target IBC ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty Renumber BB14 to BB13 Renumber BB15 to BB14 Renumber BB17 to BB15 *************** After renumbering the basic blocks ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 85106. 85106 [000..009)-> BB12 ( cond ) i label target IBC BB02 [0001] 1 BB01 70274. 70274 [009..012)-> BB12 ( cond ) i IBC BB03 [0002] 1 BB02 70274. 70274 [012..01B)-> BB12 ( cond ) i IBC BB04 [0003] 1 BB03 70274. 70274 [01B..025)-> BB12 ( cond ) i IBC BB05 [0004] 1 BB04 70274. 70274 [025..034)-> BB12 ( cond ) i hascall gcsafe IBC BB06 [0005] 1 BB05 70274. 70274 [034..03E)-> BB12 ( cond ) i IBC BB07 [0006] 1 BB06 70274. 70274 [03E..048)-> BB12 ( cond ) i IBC BB08 [0007] 1 BB07 70274. 70274 [048..052)-> BB12 ( cond ) i IBC BB09 [0008] 1 BB08 70275. 70275 [052..05C)-> BB12 ( cond ) i IBC BB10 [0009] 1 BB09 70275. 70275 [05C..06B)-> BB12 ( cond ) i hascall gcsafe IBC BB11 [0010] 1 BB10 70275. 70275 [06B..07A)-> BB15 ( cond ) i hascall gcsafe IBC BB12 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 14831. 14831 [000..0AB)-> BB14 ( cond ) i label target hascall gcsafe newobj nullcheck IBC BB13 [0027] 1 BB12 7415. [000..000) i internal BB14 [0028] 2 BB12,BB13 14831. 14831 [000..000) (return) i internal label target newobj nullcheck IBC BB15 [0012] 1 BB11 70275. 70275 [0AB..0AD) (return) i label target IBC ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty New BlockSet epoch 3, # of blocks (including unused BB00): 16, bitset array size: 1 (short) *************** Finishing PHASE Mark GC poll blocks *************** Starting PHASE Compute edge weights (1, false) *************** In fgComputeBlockAndEdgeWeights() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 851.06 85106 [000..009)-> BB12 ( cond ) i label target IBC BB02 [0001] 1 BB01 702.74 70274 [009..012)-> BB12 ( cond ) i IBC BB03 [0002] 1 BB02 702.74 70274 [012..01B)-> BB12 ( cond ) i IBC BB04 [0003] 1 BB03 702.74 70274 [01B..025)-> BB12 ( cond ) i IBC BB05 [0004] 1 BB04 702.74 70274 [025..034)-> BB12 ( cond ) i hascall gcsafe IBC BB06 [0005] 1 BB05 702.74 70274 [034..03E)-> BB12 ( cond ) i IBC BB07 [0006] 1 BB06 702.74 70274 [03E..048)-> BB12 ( cond ) i IBC BB08 [0007] 1 BB07 702.74 70274 [048..052)-> BB12 ( cond ) i IBC BB09 [0008] 1 BB08 702.75 70275 [052..05C)-> BB12 ( cond ) i IBC BB10 [0009] 1 BB09 702.75 70275 [05C..06B)-> BB12 ( cond ) i hascall gcsafe IBC BB11 [0010] 1 BB10 702.75 70275 [06B..07A)-> BB15 ( cond ) i hascall gcsafe IBC BB12 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 148.31 14831 [000..0AB)-> BB14 ( cond ) i label target hascall gcsafe newobj nullcheck IBC BB13 [0027] 1 BB12 74.15 [000..000) i internal BB14 [0028] 2 BB12,BB13 148.31 14831 [000..000) (return) i internal label target newobj nullcheck IBC BB15 [0012] 1 BB11 702.75 70275 [0AB..0AD) (return) i label target IBC ----------------------------------------------------------------------------------------------------------------------------------------- We are using the Profile Weights and fgCalledCount is 85106. fgComputeEdgeWeights() was able to compute exact edge weights for 23 of the 25 edges, using 2 passes. Edge weights into BB02 :BB01 (70274..70275) Edge weights into BB03 :BB02 (70274) Edge weights into BB04 :BB03 (70274) Edge weights into BB05 :BB04 (70274) Edge weights into BB06 :BB05 (70274) Edge weights into BB07 :BB06 (70274) Edge weights into BB08 :BB07 (70274) Edge weights into BB09 :BB08 (70274..70275) Edge weights into BB10 :BB09 (70275) Edge weights into BB11 :BB10 (70275) Edge weights into BB12 :BB01 (14831), BB02 (0), BB03 (0), BB04 (0), BB05 (0), BB06 (0), BB07 (0), BB08 (0), BB09 (0), BB10 (0), BB11 (0) Edge weights into BB13 :BB12 (7415) Edge weights into BB14 :BB12 (7416), BB13 (7415) Edge weights into BB15 :BB11 (70275) *************** Finishing PHASE Compute edge weights (1, false) *************** Starting PHASE Create EH funclets *************** In fgCreateFunclets() After fgCreateFunclets() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB12 ( cond ) i label target IBC BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB12 ( cond ) i IBC BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB12 ( cond ) i IBC BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB12 ( cond ) i IBC BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB12 ( cond ) i hascall gcsafe IBC BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB12 ( cond ) i IBC BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB12 ( cond ) i IBC BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB12 ( cond ) i IBC BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB12 ( cond ) i IBC BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB12 ( cond ) i hascall gcsafe IBC BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB15 ( cond ) i hascall gcsafe IBC BB12 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB14 ( cond ) i label target hascall gcsafe newobj nullcheck IBC BB13 [0027] 1 BB12 0.09 [000..000) i internal BB14 [0028] 2 BB12,BB13 0.17 14831 [000..000) (return) i internal label target newobj nullcheck IBC BB15 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target IBC ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty *************** In fgDebugCheckBBlist *************** Finishing PHASE Create EH funclets *************** Starting PHASE Optimize layout *************** In optOptimizeLayout() *************** Exception Handling table is empty *************** In fgDebugCheckBBlist *************** In fgUpdateFlowGraph() Before updating the flow graph: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB12 ( cond ) i label target IBC BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB12 ( cond ) i IBC BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB12 ( cond ) i IBC BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB12 ( cond ) i IBC BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB12 ( cond ) i hascall gcsafe IBC BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB12 ( cond ) i IBC BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB12 ( cond ) i IBC BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB12 ( cond ) i IBC BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB12 ( cond ) i IBC BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB12 ( cond ) i hascall gcsafe IBC BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB15 ( cond ) i hascall gcsafe IBC BB12 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB14 ( cond ) i label target hascall gcsafe newobj nullcheck IBC BB13 [0027] 1 BB12 0.09 [000..000) i internal BB14 [0028] 2 BB12,BB13 0.17 14831 [000..000) (return) i internal label target newobj nullcheck IBC BB15 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target IBC ----------------------------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *************** In fgExpandRarelyRunBlocks() *************** In fgReorderBlocks() Initial BasicBlocks ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB12 ( cond ) i label target IBC BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB12 ( cond ) i IBC BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB12 ( cond ) i IBC BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB12 ( cond ) i IBC BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB12 ( cond ) i hascall gcsafe IBC BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB12 ( cond ) i IBC BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB12 ( cond ) i IBC BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB12 ( cond ) i IBC BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB12 ( cond ) i IBC BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB12 ( cond ) i hascall gcsafe IBC BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB15 ( cond ) i hascall gcsafe IBC BB12 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB14 ( cond ) i label target hascall gcsafe newobj nullcheck IBC BB13 [0027] 1 BB12 0.09 [000..000) i internal BB14 [0028] 2 BB12,BB13 0.17 14831 [000..000) (return) i internal label target newobj nullcheck IBC BB15 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target IBC ----------------------------------------------------------------------------------------------------------------------------------------- Decided to reverse conditional branch at block BB11 branch to BB15 because of IBC profile data fgFindInsertPoint(regionIndex=0, putInTryRegion=true, startBlk=BB01, endBlk=BB00, nearBlk=BB15, jumpBlk=BB00, runRarely=false) Relocated uncommon blocks (BB12 .. BB14) by reversing conditional jump at BB11 Relocated blocks [BB12..BB14] inserted after BB15 at the end of method After this change in fgReorderBlocks the BB graph is: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB12 ( cond ) i label target IBC BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB12 ( cond ) i IBC BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB12 ( cond ) i IBC BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB12 ( cond ) i IBC BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB12 ( cond ) i hascall gcsafe IBC BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB12 ( cond ) i IBC BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB12 ( cond ) i IBC BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB12 ( cond ) i IBC BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB12 ( cond ) i IBC BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB12 ( cond ) i hascall gcsafe IBC BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB12 ( cond ) i hascall gcsafe IBC BB15 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target IBC BB12 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB14 ( cond ) i label target hascall gcsafe newobj nullcheck IBC BB13 [0027] 1 BB12 0.09 [000..000) i internal BB14 [0028] 2 BB12,BB13 0.17 14831 [000..000) (return) i internal label target newobj nullcheck IBC ----------------------------------------------------------------------------------------------------------------------------------------- *************** In fgUpdateFlowGraph() Before updating the flow graph: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB12 ( cond ) i label target IBC BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB12 ( cond ) i IBC BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB12 ( cond ) i IBC BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB12 ( cond ) i IBC BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB12 ( cond ) i hascall gcsafe IBC BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB12 ( cond ) i IBC BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB12 ( cond ) i IBC BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB12 ( cond ) i IBC BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB12 ( cond ) i IBC BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB12 ( cond ) i hascall gcsafe IBC BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB12 ( cond ) i hascall gcsafe IBC BB15 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target IBC BB12 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB14 ( cond ) i label target hascall gcsafe newobj nullcheck IBC BB13 [0027] 1 BB12 0.09 [000..000) i internal BB14 [0028] 2 BB12,BB13 0.17 14831 [000..000) (return) i internal label target newobj nullcheck IBC ----------------------------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *************** Finishing PHASE Optimize layout *************** Starting PHASE Compute blocks reachability *************** In fgComputeReachability *************** In fgDebugCheckBBlist Renumbering the basic blocks for fgComputeReachability pass #1 *************** Before renumbering the basic blocks ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB12 ( cond ) i label target IBC BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB12 ( cond ) i IBC BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB12 ( cond ) i IBC BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB12 ( cond ) i IBC BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB12 ( cond ) i hascall gcsafe IBC BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB12 ( cond ) i IBC BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB12 ( cond ) i IBC BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB12 ( cond ) i IBC BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB12 ( cond ) i IBC BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB12 ( cond ) i hascall gcsafe IBC BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB12 ( cond ) i hascall gcsafe IBC BB15 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target IBC BB12 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB14 ( cond ) i label target hascall gcsafe newobj nullcheck IBC BB13 [0027] 1 BB12 0.09 [000..000) i internal BB14 [0028] 2 BB12,BB13 0.17 14831 [000..000) (return) i internal label target newobj nullcheck IBC ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty Renumber BB15 to BB12 Renumber BB12 to BB13 Renumber BB13 to BB14 Renumber BB14 to BB15 *************** After renumbering the basic blocks ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB13 ( cond ) i label target IBC BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB13 ( cond ) i IBC BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB13 ( cond ) i IBC BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB13 ( cond ) i IBC BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB13 ( cond ) i hascall gcsafe IBC BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB13 ( cond ) i IBC BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB13 ( cond ) i IBC BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB13 ( cond ) i IBC BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB13 ( cond ) i IBC BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB13 ( cond ) i hascall gcsafe IBC BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB13 ( cond ) i hascall gcsafe IBC BB12 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target IBC BB13 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB15 ( cond ) i label target hascall gcsafe newobj nullcheck IBC BB14 [0027] 1 BB13 0.09 [000..000) i internal BB15 [0028] 2 BB13,BB14 0.17 14831 [000..000) (return) i internal label target newobj nullcheck IBC ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty New BlockSet epoch 4, # of blocks (including unused BB00): 16, bitset array size: 1 (short) Enter blocks: BB01 After computing reachability sets: ------------------------------------------------ BBnum Reachable by ------------------------------------------------ BB01 : BB01 BB02 : BB01 BB02 BB03 : BB01 BB02 BB03 BB04 : BB01 BB02 BB03 BB04 BB05 : BB01 BB02 BB03 BB04 BB05 BB06 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 BB10 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 BB10 BB11 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 BB10 BB11 BB12 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 BB10 BB11 BB12 BB13 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 BB10 BB11 BB13 BB14 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 BB10 BB11 BB13 BB14 BB15 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 BB10 BB11 BB13 BB14 BB15 After computing reachability: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB13 ( cond ) i label target IBC BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB13 ( cond ) i IBC BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB13 ( cond ) i IBC BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB13 ( cond ) i IBC BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB13 ( cond ) i hascall gcsafe IBC BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB13 ( cond ) i gcsafe IBC BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB13 ( cond ) i gcsafe IBC BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB13 ( cond ) i gcsafe IBC BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB13 ( cond ) i gcsafe IBC BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB13 ( cond ) i hascall gcsafe IBC BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB13 ( cond ) i hascall gcsafe IBC BB12 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target gcsafe IBC BB13 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB15 ( cond ) i label target hascall gcsafe newobj nullcheck IBC BB14 [0027] 1 BB13 0.09 [000..000) i internal gcsafe BB15 [0028] 2 BB13,BB14 0.17 14831 [000..000) (return) i internal label target gcsafe newobj nullcheck IBC ----------------------------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *************** In fgComputeDoms *************** In fgDebugCheckBBlist Dominator computation start blocks (those blocks with no incoming edges): BB01 ------------------------------------------------ BBnum Dominated by ------------------------------------------------ BB01: BB01 BB02: BB02 BB01 BB03: BB03 BB02 BB01 BB04: BB04 BB03 BB02 BB01 BB05: BB05 BB04 BB03 BB02 BB01 BB06: BB06 BB05 BB04 BB03 BB02 BB01 BB07: BB07 BB06 BB05 BB04 BB03 BB02 BB01 BB08: BB08 BB07 BB06 BB05 BB04 BB03 BB02 BB01 BB09: BB09 BB08 BB07 BB06 BB05 BB04 BB03 BB02 BB01 BB10: BB10 BB09 BB08 BB07 BB06 BB05 BB04 BB03 BB02 BB01 BB11: BB11 BB10 BB09 BB08 BB07 BB06 BB05 BB04 BB03 BB02 BB01 BB12: BB12 BB11 BB10 BB09 BB08 BB07 BB06 BB05 BB04 BB03 BB02 BB01 BB13: BB13 BB01 BB14: BB14 BB13 BB01 BB15: BB15 BB13 BB01 Inside fgBuildDomTree After computing the Dominance Tree: BB01 : BB13 BB02 BB02 : BB03 BB03 : BB04 BB04 : BB05 BB05 : BB06 BB06 : BB07 BB07 : BB08 BB08 : BB09 BB09 : BB10 BB10 : BB11 BB11 : BB12 BB13 : BB15 BB14 After numbering the dominator tree: BB01: pre=01, post=15 BB02: pre=05, post=14 BB03: pre=06, post=13 BB04: pre=07, post=12 BB05: pre=08, post=11 BB06: pre=09, post=10 BB07: pre=10, post=09 BB08: pre=11, post=08 BB09: pre=12, post=07 BB10: pre=13, post=06 BB11: pre=14, post=05 BB12: pre=15, post=04 BB13: pre=02, post=03 BB14: pre=04, post=02 BB15: pre=03, post=01 *************** Finishing PHASE Compute blocks reachability *************** Starting PHASE Optimize loops *************** In optOptimizeLoops() *************** In fgDebugCheckBBlist *************** Finishing PHASE Optimize loops *************** Starting PHASE Clone loops *************** In optCloneLoops() *************** Finishing PHASE Clone loops *************** Starting PHASE Unroll loops *************** Finishing PHASE Unroll loops *************** Starting PHASE Mark local vars *************** In lvaMarkLocalVars() *** lvaComputeRefCounts *** *** lvaComputeRefCounts -- explicit counts *** *** marking local variables in block BB01 (weight=1 ) STMT00001 (IL ???... ???) [000005] ---XG+------ * JTRUE void [000004] N--XG+-N-U-- \--* NE int [000000] -----+------ +--* LCL_VAR ref V01 arg1 [000121] ---XG+------ \--* IND ref [000174] -----+------ \--* ADD byref [000001] -----+------ +--* LCL_VAR ref V00 this [000173] -----+------ \--* CNS_INT long 32 field offset Fseq[k__BackingField] New refCnts for V01: refCnt = 1, refCntWtd = 1 New refCnts for V00: refCnt = 1, refCntWtd = 1 *** marking local variables in block BB02 (weight=0.83) STMT00010 (IL ???... ???) [000047] ---XG+------ * JTRUE void [000046] N--XG+-N-U-- \--* NE int [000175] -----+------ +--* CAST int <- ubyte <- int [000041] -----+------ | \--* LCL_VAR int V02 arg2 [000123] ---XG+------ \--* IND ubyte [000177] -----+------ \--* ADD byref [000042] -----+------ +--* LCL_VAR ref V00 this [000176] -----+------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] New refCnts for V02: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 2, refCntWtd = 1.83 *** marking local variables in block BB03 (weight=0.83) STMT00012 (IL ???... ???) [000054] ---XG+------ * JTRUE void [000053] N--XG+-N-U-- \--* NE int [000178] -----+------ +--* CAST int <- ubyte <- int [000048] -----+------ | \--* LCL_VAR int V03 arg3 [000125] ---XG+------ \--* IND ubyte [000180] -----+------ \--* ADD byref [000049] -----+------ +--* LCL_VAR ref V00 this [000179] -----+------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] New refCnts for V03: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 3, refCntWtd = 2.66 *** marking local variables in block BB04 (weight=0.83) STMT00014 (IL ???... ???) [000061] ---XG+------ * JTRUE void [000060] N--XG+-N-U-- \--* NE int [000181] -----+------ +--* CAST int <- bool <- int [000055] -----+------ | \--* LCL_VAR int V04 arg4 [000127] ---XG+------ \--* IND bool [000183] -----+------ \--* ADD byref [000056] -----+------ +--* LCL_VAR ref V00 this [000182] -----+------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] New refCnts for V04: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 4, refCntWtd = 3.49 *** marking local variables in block BB05 (weight=0.83) STMT00017 (IL ???... ???) [000071] --CXG+------ * JTRUE void [000070] J-CXG+-N---- \--* NE int [000068] --CXG+------ +--* CAST int <- bool <- int [000066] --CXG+------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000129] ---XG+------ arg1 in rdx | +--* IND ref [000185] -----+------ | | \--* ADD byref [000063] -----+------ | | +--* LCL_VAR ref V00 this [000184] -----+------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] [000062] -----+------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 [000069] -----+------ \--* CNS_INT int 0 New refCnts for V00: refCnt = 5, refCntWtd = 4.32 New refCnts for V05: refCnt = 1, refCntWtd = 0.83 *** marking local variables in block BB06 (weight=0.83) STMT00019 (IL ???... ???) [000078] ---XG+------ * JTRUE void [000077] N--XG+-N-U-- \--* NE int [000188] -----+------ +--* CAST int <- bool <- int [000072] -----+------ | \--* LCL_VAR int V06 arg6 [000132] ---XG+------ \--* IND bool [000190] -----+------ \--* ADD byref [000073] -----+------ +--* LCL_VAR ref V00 this [000189] -----+------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] New refCnts for V06: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 6, refCntWtd = 5.15 *** marking local variables in block BB07 (weight=0.83) STMT00021 (IL ???... ???) [000085] ---XG+------ * JTRUE void [000084] N--XG+-N-U-- \--* NE int [000191] -----+------ +--* CAST int <- bool <- int [000079] -----+------ | \--* LCL_VAR int V07 arg7 [000134] ---XG+------ \--* IND bool [000193] -----+------ \--* ADD byref [000080] -----+------ +--* LCL_VAR ref V00 this [000192] -----+------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] New refCnts for V07: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 7, refCntWtd = 5.98 *** marking local variables in block BB08 (weight=0.83) STMT00023 (IL ???... ???) [000092] ---XG+------ * JTRUE void [000091] N--XG+-N-U-- \--* NE int [000194] -----+------ +--* CAST int <- bool <- int [000086] -----+------ | \--* LCL_VAR int V08 arg8 [000136] ---XG+------ \--* IND bool [000196] -----+------ \--* ADD byref [000087] -----+------ +--* LCL_VAR ref V00 this [000195] -----+------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] New refCnts for V08: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 8, refCntWtd = 6.81 *** marking local variables in block BB09 (weight=0.83) STMT00025 (IL ???... ???) [000099] ---XG+------ * JTRUE void [000098] N--XG+-N-U-- \--* NE int [000197] -----+------ +--* CAST int <- bool <- int [000093] -----+------ | \--* LCL_VAR int V09 arg9 [000138] ---XG+------ \--* IND bool [000199] -----+------ \--* ADD byref [000094] -----+------ +--* LCL_VAR ref V00 this [000198] -----+------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] New refCnts for V09: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 9, refCntWtd = 7.64 *** marking local variables in block BB10 (weight=0.83) STMT00027 (IL ???... ???) [000108] --CXG+------ * JTRUE void [000107] J-CXG+-N---- \--* NE int [000105] --CXG+------ +--* CAST int <- bool <- int [000104] --CXG+------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality [000140] ---XG+------ arg1 in rdx | +--* IND ref [000201] -----+------ | | \--* ADD byref [000101] -----+------ | | +--* LCL_VAR ref V00 this [000200] -----+------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] [000100] -----+------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 [000106] -----+------ \--* CNS_INT int 0 New refCnts for V00: refCnt = 10, refCntWtd = 8.47 New refCnts for V10: refCnt = 1, refCntWtd = 0.83 *** marking local variables in block BB11 (weight=0.83) STMT00030 (IL ???... ???) [000118] --CXG+------ * JTRUE void [000117] J-CXG+-N---- \--* NE int [000115] --CXG+------ +--* CAST int <- bool <- int [000113] --CXG+------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality [000142] ---XG+------ arg1 in rdx | +--* IND ref [000205] -----+------ | | \--* ADD byref [000110] -----+------ | | +--* LCL_VAR ref V00 this [000204] -----+------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] [000109] -----+------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 [000116] -----+------ \--* CNS_INT int 0 New refCnts for V00: refCnt = 11, refCntWtd = 9.30 New refCnts for V11: refCnt = 1, refCntWtd = 0.83 *** marking local variables in block BB12 (weight=0.83) STMT00031 (IL 0x0AB...0x0AC) [000120] -----+------ * RETURN ref [000119] -----+------ \--* LCL_VAR ref V00 this New refCnts for V00: refCnt = 12, refCntWtd = 10.13 *** marking local variables in block BB13 (weight=0.17) STMT00003 (IL 0x07A...0x0AA) [000022] -A-XG+------ * ASG ref [000021] D----+-N---- +--* LCL_VAR ref V13 tmp1 [000007] ---XG+------ \--* IND ref [000209] -----+------ \--* ADD byref [000006] -----+------ +--* LCL_VAR ref V00 this [000208] -----+------ \--* CNS_INT long 8 field offset Fseq[Syntax] New refCnts for V13: refCnt = 1, refCntWtd = 0.34 New refCnts for V00: refCnt = 13, refCntWtd = 10.30 STMT00004 (IL ???... ???) [000030] -AC--+------ * ASG ref [000029] D----+-N---- +--* LCL_VAR ref V14 tmp2 [000028] --C--+------ \--* CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW New refCnts for V14: refCnt = 1, refCntWtd = 0.34 STMT00005 (IL ???... ???) [000032] --CXG+------ * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor ( 4, 4) [000211] ------------ arg4 out+20 +--* CAST int <- ubyte <- int ( 3, 2) [000010] ------------ | \--* LCL_VAR int V03 arg3 ( 4, 4) [000212] ------------ arg5 out+28 +--* CAST int <- bool <- int ( 3, 2) [000011] ------------ | \--* LCL_VAR int V04 arg4 [000012] -----+------ arg6 out+30 +--* LCL_VAR ref V05 arg5 ( 4, 4) [000213] ------------ arg7 out+38 +--* CAST int <- bool <- int ( 3, 2) [000013] ------------ | \--* LCL_VAR int V06 arg6 ( 4, 4) [000214] ------------ arg8 out+40 +--* CAST int <- bool <- int ( 3, 2) [000014] ------------ | \--* LCL_VAR int V07 arg7 ( 4, 4) [000215] ------------ arg9 out+48 +--* CAST int <- bool <- int ( 3, 2) [000015] ------------ | \--* LCL_VAR int V08 arg8 ( 4, 4) [000216] ------------ arg10 out+50 +--* CAST int <- bool <- int ( 3, 2) [000016] ------------ | \--* LCL_VAR int V09 arg9 [000017] -----+------ arg11 out+58 +--* LCL_VAR ref V10 arg10 [000018] -----+------ arg12 out+60 +--* LCL_VAR ref V11 arg11 ( 14, 10) [000149] N--XG------- arg13 out+68 +--* NE int ( 9, 8) [000147] ---XG------- | +--* AND int ( 7, 6) [000145] ---XG------- | | +--* IND ubyte ( 4, 3) [000218] -------N---- | | | \--* ADD byref ( 3, 2) [000019] ------------ | | | +--* LCL_VAR ref V00 this ( 1, 1) [000217] ------------ | | | \--* CNS_INT long 17 field offset Fseq[_attributes] ( 1, 1) [000146] ------------ | | \--* CNS_INT int 1 ( 1, 1) [000148] ------------ | \--* CNS_INT int 0 ( 4, 4) [000210] ------------ arg3 in r9 +--* CAST int <- ubyte <- int ( 3, 2) [000009] ------------ | \--* LCL_VAR int V02 arg2 [000031] -----+------ this in rcx +--* LCL_VAR ref V14 tmp2 [000023] -----+------ arg1 in rdx +--* LCL_VAR ref V13 tmp1 [000008] -----+------ arg2 in r8 \--* LCL_VAR ref V01 arg1 New refCnts for V03: refCnt = 2, refCntWtd = 1 New refCnts for V04: refCnt = 2, refCntWtd = 1 New refCnts for V05: refCnt = 2, refCntWtd = 1 New refCnts for V06: refCnt = 2, refCntWtd = 1 New refCnts for V07: refCnt = 2, refCntWtd = 1 New refCnts for V08: refCnt = 2, refCntWtd = 1 New refCnts for V09: refCnt = 2, refCntWtd = 1 New refCnts for V10: refCnt = 2, refCntWtd = 1 New refCnts for V11: refCnt = 2, refCntWtd = 1 New refCnts for V00: refCnt = 14, refCntWtd = 10.47 New refCnts for V02: refCnt = 2, refCntWtd = 1 New refCnts for V14: refCnt = 2, refCntWtd = 0.68 New refCnts for V13: refCnt = 2, refCntWtd = 0.68 New refCnts for V01: refCnt = 2, refCntWtd = 1.17 STMT00034 (IL ???... ???) [000171] -A-XG+------ * ASG bool [000170] D----+-N---- +--* LCL_VAR int V15 tmp3 [000155] N--XG+------ \--* NE int [000153] ---XG+------ +--* AND int [000151] ---XG+------ | +--* IND ubyte [000224] -----+------ | | \--* ADD byref [000035] -----+------ | | +--* LCL_VAR ref V00 this [000223] -----+------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] [000152] -----+------ | \--* CNS_INT int 2 [000154] -----+------ \--* CNS_INT int 0 New refCnts for V15: refCnt = 1, refCntWtd = 0.34 New refCnts for V00: refCnt = 15, refCntWtd = 10.64 STMT00035 (IL ???... ???) [000169] ---X-+------ * NULLCHECK byte [000168] -----+------ \--* LCL_VAR ref V14 tmp2 New refCnts for V14: refCnt = 3, refCntWtd = 1.02 STMT00032 (IL ???... ???) [000161] -----+------ * JTRUE void [000160] J----+-N---- \--* EQ int [000158] -----+------ +--* LCL_VAR int V15 tmp3 [000159] -----+------ \--* CNS_INT int 0 New refCnts for V15: refCnt = 2, refCntWtd = 0.68 *** marking local variables in block BB14 (weight=0.09) STMT00033 (IL ???... ???) [000167] -A-XG+------ * ASG ubyte [000166] ---XG+-N---- +--* IND ubyte [000226] -----+------ | \--* ADD byref [000034] -----+------ | +--* LCL_VAR ref V14 tmp2 [000225] -----+------ | \--* CNS_INT long 17 field offset Fseq[_attributes] [000165] ---XG+------ \--* OR int [000163] ---XG+------ +--* IND ubyte [000228] -----+------ | \--* ADD byref [000162] -----+------ | +--* LCL_VAR ref V14 tmp2 [000227] -----+------ | \--* CNS_INT long 17 field offset Fseq[_attributes] [000164] -----+------ \--* CNS_INT int 2 New refCnts for V14: refCnt = 4, refCntWtd = 1.20 New refCnts for V14: refCnt = 5, refCntWtd = 1.38 *** marking local variables in block BB15 (weight=0.17) STMT00008 (IL 0x0AA... ???) [000040] -----+------ * RETURN ref [000033] -----+------ \--* LCL_VAR ref V14 tmp2 New refCnts for V14: refCnt = 6, refCntWtd = 1.72 *** lvaComputeRefCounts -- implicit counts *** New refCnts for V00: refCnt = 16, refCntWtd = 11.64 New refCnts for V00: refCnt = 17, refCntWtd = 12.64 New refCnts for V01: refCnt = 3, refCntWtd = 2.17 New refCnts for V01: refCnt = 4, refCntWtd = 3.17 New refCnts for V02: refCnt = 3, refCntWtd = 2 New refCnts for V02: refCnt = 4, refCntWtd = 3 New refCnts for V03: refCnt = 3, refCntWtd = 2 New refCnts for V03: refCnt = 4, refCntWtd = 3 *************** In optAddCopies() *************** Finishing PHASE Mark local vars *************** Starting PHASE Optimize bools *************** In optOptimizeBools() *************** In fgDebugCheckBBlist *************** Finishing PHASE Optimize bools *************** Starting PHASE Find oper order *************** In fgFindOperOrder() *************** Finishing PHASE Find oper order *************** Starting PHASE Set block order *************** In fgSetBlockOrder() The biggest BB has 33 tree nodes *************** Finishing PHASE Set block order Trees before Build SSA representation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB13 ( cond ) i label target IBC BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB13 ( cond ) i IBC BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB13 ( cond ) i IBC BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB13 ( cond ) i IBC BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB13 ( cond ) i hascall gcsafe IBC BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB13 ( cond ) i gcsafe IBC BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB13 ( cond ) i gcsafe IBC BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB13 ( cond ) i gcsafe IBC BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB13 ( cond ) i gcsafe IBC BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB13 ( cond ) i hascall gcsafe IBC BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB13 ( cond ) i hascall gcsafe IBC BB12 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target gcsafe IBC BB13 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB15 ( cond ) i label target hascall gcsafe newobj nullcheck IBC BB14 [0027] 1 BB13 0.09 [000..000) i internal gcsafe BB15 [0028] 2 BB13,BB14 0.17 14831 [000..000) (return) i internal label target gcsafe newobj nullcheck IBC ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..009) -> BB13 (cond), preds={} succs={BB02,BB13} ***** BB01 STMT00001 (IL ???... ???) N007 ( 8, 8) [000005] ---XG------- * JTRUE void N006 ( 6, 6) [000004] N--XG--N-U-- \--* NE int N001 ( 1, 1) [000000] ------------ +--* LCL_VAR ref V01 arg1 N005 ( 4, 4) [000121] ---XG------- \--* IND ref N004 ( 2, 2) [000174] -------N---- \--* ADD byref N002 ( 1, 1) [000001] ------------ +--* LCL_VAR ref V00 this N003 ( 1, 1) [000173] ------------ \--* CNS_INT long 32 field offset Fseq[k__BackingField] ------------ BB02 [009..012) -> BB13 (cond), preds={BB01} succs={BB03,BB13} ***** BB02 STMT00010 (IL ???... ???) N008 ( 11, 12) [000047] ---XG------- * JTRUE void N007 ( 9, 10) [000046] N--XG--N-U-- \--* NE int N002 ( 3, 4) [000175] ------------ +--* CAST int <- ubyte <- int N001 ( 2, 2) [000041] ------------ | \--* LCL_VAR int V02 arg2 N006 ( 5, 5) [000123] ---XG------- \--* IND ubyte N005 ( 2, 2) [000177] -------N---- \--* ADD byref N003 ( 1, 1) [000042] ------------ +--* LCL_VAR ref V00 this N004 ( 1, 1) [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] ------------ BB03 [012..01B) -> BB13 (cond), preds={BB02} succs={BB04,BB13} ***** BB03 STMT00012 (IL ???... ???) N008 ( 11, 12) [000054] ---XG------- * JTRUE void N007 ( 9, 10) [000053] N--XG--N-U-- \--* NE int N002 ( 3, 4) [000178] ------------ +--* CAST int <- ubyte <- int N001 ( 2, 2) [000048] ------------ | \--* LCL_VAR int V03 arg3 N006 ( 5, 5) [000125] ---XG------- \--* IND ubyte N005 ( 2, 2) [000180] -------N---- \--* ADD byref N003 ( 1, 1) [000049] ------------ +--* LCL_VAR ref V00 this N004 ( 1, 1) [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] ------------ BB04 [01B..025) -> BB13 (cond), preds={BB03} succs={BB05,BB13} ***** BB04 STMT00014 (IL ???... ???) N008 ( 12, 12) [000061] ---XG------- * JTRUE void N007 ( 10, 10) [000060] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000181] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000055] ------------ | \--* LCL_VAR int V04 arg4 N006 ( 5, 5) [000127] ---XG------- \--* IND bool N005 ( 2, 2) [000183] -------N---- \--* ADD byref N003 ( 1, 1) [000056] ------------ +--* LCL_VAR ref V00 this N004 ( 1, 1) [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] ------------ BB05 [025..034) -> BB13 (cond), preds={BB04} succs={BB06,BB13} ***** BB05 STMT00017 (IL ???... ???) N012 ( 26, 19) [000071] --CXG------- * JTRUE void N011 ( 24, 17) [000070] J-CXG--N---- \--* NE int N009 ( 22, 15) [000068] --CXG------- +--* CAST int <- bool <- int N008 ( 21, 13) [000066] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality N006 ( 4, 4) [000129] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000185] -------N---- | | \--* ADD byref N003 ( 1, 1) [000063] ------------ | | +--* LCL_VAR ref V00 this N004 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] N007 ( 3, 2) [000062] ------------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 N010 ( 1, 1) [000069] ------------ \--* CNS_INT int 0 ------------ BB06 [034..03E) -> BB13 (cond), preds={BB05} succs={BB07,BB13} ***** BB06 STMT00019 (IL ???... ???) N008 ( 12, 12) [000078] ---XG------- * JTRUE void N007 ( 10, 10) [000077] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000188] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000072] ------------ | \--* LCL_VAR int V06 arg6 N006 ( 5, 5) [000132] ---XG------- \--* IND bool N005 ( 2, 2) [000190] -------N---- \--* ADD byref N003 ( 1, 1) [000073] ------------ +--* LCL_VAR ref V00 this N004 ( 1, 1) [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] ------------ BB07 [03E..048) -> BB13 (cond), preds={BB06} succs={BB08,BB13} ***** BB07 STMT00021 (IL ???... ???) N008 ( 12, 12) [000085] ---XG------- * JTRUE void N007 ( 10, 10) [000084] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000191] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000079] ------------ | \--* LCL_VAR int V07 arg7 N006 ( 5, 5) [000134] ---XG------- \--* IND bool N005 ( 2, 2) [000193] -------N---- \--* ADD byref N003 ( 1, 1) [000080] ------------ +--* LCL_VAR ref V00 this N004 ( 1, 1) [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] ------------ BB08 [048..052) -> BB13 (cond), preds={BB07} succs={BB09,BB13} ***** BB08 STMT00023 (IL ???... ???) N008 ( 12, 12) [000092] ---XG------- * JTRUE void N007 ( 10, 10) [000091] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000194] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000086] ------------ | \--* LCL_VAR int V08 arg8 N006 ( 5, 5) [000136] ---XG------- \--* IND bool N005 ( 2, 2) [000196] -------N---- \--* ADD byref N003 ( 1, 1) [000087] ------------ +--* LCL_VAR ref V00 this N004 ( 1, 1) [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] ------------ BB09 [052..05C) -> BB13 (cond), preds={BB08} succs={BB10,BB13} ***** BB09 STMT00025 (IL ???... ???) N008 ( 12, 12) [000099] ---XG------- * JTRUE void N007 ( 10, 10) [000098] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000197] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000093] ------------ | \--* LCL_VAR int V09 arg9 N006 ( 5, 5) [000138] ---XG------- \--* IND bool N005 ( 2, 2) [000199] -------N---- \--* ADD byref N003 ( 1, 1) [000094] ------------ +--* LCL_VAR ref V00 this N004 ( 1, 1) [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] ------------ BB10 [05C..06B) -> BB13 (cond), preds={BB09} succs={BB11,BB13} ***** BB10 STMT00027 (IL ???... ???) N012 ( 26, 19) [000108] --CXG------- * JTRUE void N011 ( 24, 17) [000107] J-CXG--N---- \--* NE int N009 ( 22, 15) [000105] --CXG------- +--* CAST int <- bool <- int N008 ( 21, 13) [000104] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality N006 ( 4, 4) [000140] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000201] -------N---- | | \--* ADD byref N003 ( 1, 1) [000101] ------------ | | +--* LCL_VAR ref V00 this N004 ( 1, 1) [000200] ------------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] N007 ( 3, 2) [000100] ------------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 N010 ( 1, 1) [000106] ------------ \--* CNS_INT int 0 ------------ BB11 [06B..07A) -> BB13 (cond), preds={BB10} succs={BB12,BB13} ***** BB11 STMT00030 (IL ???... ???) N012 ( 26, 19) [000118] --CXG------- * JTRUE void N011 ( 24, 17) [000117] J-CXG--N---- \--* NE int N009 ( 22, 15) [000115] --CXG------- +--* CAST int <- bool <- int N008 ( 21, 13) [000113] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality N006 ( 4, 4) [000142] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000205] -------N---- | | \--* ADD byref N003 ( 1, 1) [000110] ------------ | | +--* LCL_VAR ref V00 this N004 ( 1, 1) [000204] ------------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] N007 ( 3, 2) [000109] ------------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 N010 ( 1, 1) [000116] ------------ \--* CNS_INT int 0 ------------ BB12 [0AB..0AD) (return), preds={BB11} succs={} ***** BB12 STMT00031 (IL 0x0AB...0x0AC) N002 ( 2, 2) [000120] ------------ * RETURN ref N001 ( 1, 1) [000119] ------------ \--* LCL_VAR ref V00 this ------------ BB13 [000..0AB) -> BB15 (cond), preds={BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11} succs={BB14,BB15} ***** BB13 STMT00003 (IL 0x07A...0x0AA) N006 ( 8, 7) [000022] -A-XG---R--- * ASG ref N005 ( 3, 2) [000021] D------N---- +--* LCL_VAR ref V13 tmp1 N004 ( 4, 4) [000007] ---XG------- \--* IND ref N003 ( 2, 2) [000209] -------N---- \--* ADD byref N001 ( 1, 1) [000006] ------------ +--* LCL_VAR ref V00 this N002 ( 1, 1) [000208] ------------ \--* CNS_INT long 8 field offset Fseq[Syntax] ***** BB13 STMT00004 (IL ???... ???) N003 ( 18, 8) [000030] -AC-----R--- * ASG ref N002 ( 3, 2) [000029] D------N---- +--* LCL_VAR ref V14 tmp2 N001 ( 14, 5) [000028] --C--------- \--* CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW ***** BB13 STMT00005 (IL ???... ???) N033 ( 98, 58) [000032] --CXG------- * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor N006 ( 3, 4) [000211] ------------ arg4 out+20 +--* CAST int <- ubyte <- int N005 ( 2, 2) [000010] ------------ | \--* LCL_VAR int V03 arg3 N008 ( 4, 4) [000212] ------------ arg5 out+28 +--* CAST int <- bool <- int N007 ( 3, 2) [000011] ------------ | \--* LCL_VAR int V04 arg4 N009 ( 3, 2) [000012] ------------ arg6 out+30 +--* LCL_VAR ref V05 arg5 N011 ( 4, 4) [000213] ------------ arg7 out+38 +--* CAST int <- bool <- int N010 ( 3, 2) [000013] ------------ | \--* LCL_VAR int V06 arg6 N013 ( 4, 4) [000214] ------------ arg8 out+40 +--* CAST int <- bool <- int N012 ( 3, 2) [000014] ------------ | \--* LCL_VAR int V07 arg7 N015 ( 4, 4) [000215] ------------ arg9 out+48 +--* CAST int <- bool <- int N014 ( 3, 2) [000015] ------------ | \--* LCL_VAR int V08 arg8 N017 ( 4, 4) [000216] ------------ arg10 out+50 +--* CAST int <- bool <- int N016 ( 3, 2) [000016] ------------ | \--* LCL_VAR int V09 arg9 N018 ( 3, 2) [000017] ------------ arg11 out+58 +--* LCL_VAR ref V10 arg10 N019 ( 3, 2) [000018] ------------ arg12 out+60 +--* LCL_VAR ref V11 arg11 N027 ( 12, 9) [000149] N--XG------- arg13 out+68 +--* NE int N025 ( 7, 7) [000147] ---XG------- | +--* AND int N023 ( 5, 5) [000145] ---XG------- | | +--* IND ubyte N022 ( 2, 2) [000218] -------N---- | | | \--* ADD byref N020 ( 1, 1) [000019] ------------ | | | +--* LCL_VAR ref V00 this N021 ( 1, 1) [000217] ------------ | | | \--* CNS_INT long 17 field offset Fseq[_attributes] N024 ( 1, 1) [000146] ------------ | | \--* CNS_INT int 1 N026 ( 1, 1) [000148] ------------ | \--* CNS_INT int 0 N029 ( 3, 4) [000210] ------------ arg3 in r9 +--* CAST int <- ubyte <- int N028 ( 2, 2) [000009] ------------ | \--* LCL_VAR int V02 arg2 N030 ( 3, 2) [000031] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 N031 ( 3, 2) [000023] ------------ arg1 in rdx +--* LCL_VAR ref V13 tmp1 N032 ( 1, 1) [000008] ------------ arg2 in r8 \--* LCL_VAR ref V01 arg1 ***** BB13 STMT00034 (IL ???... ???) N010 ( 16, 12) [000171] -A-XG---R--- * ASG bool N009 ( 3, 2) [000170] D------N---- +--* LCL_VAR int V15 tmp3 N008 ( 12, 9) [000155] N--XG------- \--* NE int N006 ( 7, 7) [000153] ---XG------- +--* AND int N004 ( 5, 5) [000151] ---XG------- | +--* IND ubyte N003 ( 2, 2) [000224] -------N---- | | \--* ADD byref N001 ( 1, 1) [000035] ------------ | | +--* LCL_VAR ref V00 this N002 ( 1, 1) [000223] ------------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] N005 ( 1, 1) [000152] ------------ | \--* CNS_INT int 2 N007 ( 1, 1) [000154] ------------ \--* CNS_INT int 0 ***** BB13 STMT00035 (IL ???... ???) N002 ( 4, 3) [000169] ---X-------- * NULLCHECK byte N001 ( 3, 2) [000168] ------------ \--* LCL_VAR ref V14 tmp2 ***** BB13 STMT00032 (IL ???... ???) N004 ( 7, 6) [000161] ------------ * JTRUE void N003 ( 5, 4) [000160] J------N---- \--* EQ int N001 ( 3, 2) [000158] ------------ +--* LCL_VAR int V15 tmp3 N002 ( 1, 1) [000159] ------------ \--* CNS_INT int 0 ------------ BB14 [000..000), preds={BB13} succs={BB15} ***** BB14 STMT00033 (IL ???... ???) N011 ( 17, 15) [000167] -A-XG---R--- * ASG ubyte N010 ( 7, 6) [000166] ---XG--N---- +--* IND ubyte N009 ( 4, 3) [000226] -------N---- | \--* ADD byref N007 ( 3, 2) [000034] ------------ | +--* LCL_VAR ref V14 tmp2 N008 ( 1, 1) [000225] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] N006 ( 9, 8) [000165] ---XG------- \--* OR int N004 ( 7, 6) [000163] ---XG------- +--* IND ubyte N003 ( 4, 3) [000228] -------N---- | \--* ADD byref N001 ( 3, 2) [000162] ------------ | +--* LCL_VAR ref V14 tmp2 N002 ( 1, 1) [000227] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] N005 ( 1, 1) [000164] ------------ \--* CNS_INT int 2 ------------ BB15 [000..000) (return), preds={BB13,BB14} succs={} ***** BB15 STMT00008 (IL 0x0AA... ???) N002 ( 4, 3) [000040] ------------ * RETURN ref N001 ( 3, 2) [000033] ------------ \--* LCL_VAR ref V14 tmp2 ------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Build SSA representation *************** In SsaBuilder::Build() [SsaBuilder] Max block count is 16. ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB13 ( cond ) i label target IBC BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB13 ( cond ) i IBC BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB13 ( cond ) i IBC BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB13 ( cond ) i IBC BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB13 ( cond ) i hascall gcsafe IBC BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB13 ( cond ) i gcsafe IBC BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB13 ( cond ) i gcsafe IBC BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB13 ( cond ) i gcsafe IBC BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB13 ( cond ) i gcsafe IBC BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB13 ( cond ) i hascall gcsafe IBC BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB13 ( cond ) i hascall gcsafe IBC BB12 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target gcsafe IBC BB13 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB15 ( cond ) i label target hascall gcsafe newobj nullcheck IBC BB14 [0027] 1 BB13 0.09 [000..000) i internal gcsafe BB15 [0028] 2 BB13,BB14 0.17 14831 [000..000) (return) i internal label target gcsafe newobj nullcheck IBC ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty [SsaBuilder] Topologically sorted the graph. [SsaBuilder::ComputeImmediateDom] Inside fgBuildDomTree After computing the Dominance Tree: BB01 : BB13 BB02 BB02 : BB03 BB03 : BB04 BB04 : BB05 BB05 : BB06 BB06 : BB07 BB07 : BB08 BB08 : BB09 BB09 : BB10 BB10 : BB11 BB11 : BB12 BB13 : BB15 BB14 *************** In fgLocalVarLiveness() In fgLocalVarLivenessInit Tracked variable (15 out of 16) table: V00 this [ ref]: refCnt = 17, refCntWtd = 12.64 V01 arg1 [ ref]: refCnt = 4, refCntWtd = 3.17 V02 arg2 [ ubyte]: refCnt = 4, refCntWtd = 3 V03 arg3 [ ubyte]: refCnt = 4, refCntWtd = 3 V14 tmp2 [ ref]: refCnt = 6, refCntWtd = 1.72 V05 arg5 [ ref]: refCnt = 2, refCntWtd = 1 V10 arg10 [ ref]: refCnt = 2, refCntWtd = 1 V11 arg11 [ ref]: refCnt = 2, refCntWtd = 1 V04 arg4 [ bool]: refCnt = 2, refCntWtd = 1 V06 arg6 [ bool]: refCnt = 2, refCntWtd = 1 V07 arg7 [ bool]: refCnt = 2, refCntWtd = 1 V08 arg8 [ bool]: refCnt = 2, refCntWtd = 1 V09 arg9 [ bool]: refCnt = 2, refCntWtd = 1 V13 tmp1 [ ref]: refCnt = 2, refCntWtd = 0.68 V15 tmp3 [ bool]: refCnt = 2, refCntWtd = 0.68 *************** In fgPerBlockLocalVarLiveness() BB01 USE(2)={V00 V01} + ByrefExposed + GcHeap DEF(0)={ } BB02 USE(2)={V00 V02} + ByrefExposed + GcHeap DEF(0)={ } BB03 USE(2)={V00 V03} + ByrefExposed + GcHeap DEF(0)={ } BB04 USE(2)={V00 V04} + ByrefExposed + GcHeap DEF(0)={ } BB05 USE(2)={V00 V05} + ByrefExposed + GcHeap DEF(0)={ } + ByrefExposed* + GcHeap* BB06 USE(2)={V00 V06} + ByrefExposed + GcHeap DEF(0)={ } BB07 USE(2)={V00 V07} + ByrefExposed + GcHeap DEF(0)={ } BB08 USE(2)={V00 V08} + ByrefExposed + GcHeap DEF(0)={ } BB09 USE(2)={V00 V09} + ByrefExposed + GcHeap DEF(0)={ } BB10 USE(2)={V00 V10} + ByrefExposed + GcHeap DEF(0)={ } + ByrefExposed* + GcHeap* BB11 USE(2)={V00 V11} + ByrefExposed + GcHeap DEF(0)={ } + ByrefExposed* + GcHeap* BB12 USE(1)={V00} DEF(0)={ } BB13 USE(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09 } + ByrefExposed + GcHeap DEF(3)={ V14 V13 V15} + ByrefExposed* + GcHeap* BB14 USE(1)={V14} + ByrefExposed + GcHeap DEF(0)={ } + ByrefExposed + GcHeap BB15 USE(1)={V14} DEF(0)={ } ** Memory liveness computed, GcHeap states and ByrefExposed states match *************** In fgInterBlockLocalVarLiveness() BB liveness after fgLiveVarAnalysis(): BB01 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB02 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB03 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB04 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB05 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB06 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB07 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB08 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB09 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB10 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB11 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB12 IN (1)={V00} OUT(0)={ } BB13 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(1)={ V14 } + ByrefExposed + GcHeap BB14 IN (1)={V14} + ByrefExposed + GcHeap OUT(1)={V14} BB15 IN (1)={V14} OUT(0)={ } *************** In optRemoveRedundantZeroInits() *************** In SsaBuilder::InsertPhiFunctions() Inserting phi functions: Inserting phi definition for ByrefExposed at start of BB13. *************** In SsaBuilder::RenameVariables() After fgSsaBuild: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB13 ( cond ) i label target IBC BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB13 ( cond ) i IBC BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB13 ( cond ) i IBC BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB13 ( cond ) i IBC BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB13 ( cond ) i hascall gcsafe IBC BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB13 ( cond ) i gcsafe IBC BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB13 ( cond ) i gcsafe IBC BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB13 ( cond ) i gcsafe IBC BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB13 ( cond ) i gcsafe IBC BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB13 ( cond ) i hascall gcsafe IBC BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB13 ( cond ) i hascall gcsafe IBC BB12 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target gcsafe IBC BB13 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB15 ( cond ) i label target hascall gcsafe newobj nullcheck IBC BB14 [0027] 1 BB13 0.09 [000..000) i internal gcsafe BB15 [0028] 2 BB13,BB14 0.17 14831 [000..000) (return) i internal label target gcsafe newobj nullcheck IBC ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..009) -> BB13 (cond), preds={} succs={BB02,BB13} ***** BB01 STMT00001 (IL ???... ???) N007 ( 8, 8) [000005] ---XG------- * JTRUE void N006 ( 6, 6) [000004] N--XG--N-U-- \--* NE int N001 ( 1, 1) [000000] ------------ +--* LCL_VAR ref V01 arg1 u:1 N005 ( 4, 4) [000121] ---XG------- \--* IND ref N004 ( 2, 2) [000174] -------N---- \--* ADD byref N002 ( 1, 1) [000001] ------------ +--* LCL_VAR ref V00 this u:1 N003 ( 1, 1) [000173] ------------ \--* CNS_INT long 32 field offset Fseq[k__BackingField] ------------ BB02 [009..012) -> BB13 (cond), preds={BB01} succs={BB03,BB13} ***** BB02 STMT00010 (IL ???... ???) N008 ( 11, 12) [000047] ---XG------- * JTRUE void N007 ( 9, 10) [000046] N--XG--N-U-- \--* NE int N002 ( 3, 4) [000175] ------------ +--* CAST int <- ubyte <- int N001 ( 2, 2) [000041] ------------ | \--* LCL_VAR int V02 arg2 u:1 N006 ( 5, 5) [000123] ---XG------- \--* IND ubyte N005 ( 2, 2) [000177] -------N---- \--* ADD byref N003 ( 1, 1) [000042] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] ------------ BB03 [012..01B) -> BB13 (cond), preds={BB02} succs={BB04,BB13} ***** BB03 STMT00012 (IL ???... ???) N008 ( 11, 12) [000054] ---XG------- * JTRUE void N007 ( 9, 10) [000053] N--XG--N-U-- \--* NE int N002 ( 3, 4) [000178] ------------ +--* CAST int <- ubyte <- int N001 ( 2, 2) [000048] ------------ | \--* LCL_VAR int V03 arg3 u:1 N006 ( 5, 5) [000125] ---XG------- \--* IND ubyte N005 ( 2, 2) [000180] -------N---- \--* ADD byref N003 ( 1, 1) [000049] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] ------------ BB04 [01B..025) -> BB13 (cond), preds={BB03} succs={BB05,BB13} ***** BB04 STMT00014 (IL ???... ???) N008 ( 12, 12) [000061] ---XG------- * JTRUE void N007 ( 10, 10) [000060] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000181] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000055] ------------ | \--* LCL_VAR int V04 arg4 u:1 N006 ( 5, 5) [000127] ---XG------- \--* IND bool N005 ( 2, 2) [000183] -------N---- \--* ADD byref N003 ( 1, 1) [000056] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] ------------ BB05 [025..034) -> BB13 (cond), preds={BB04} succs={BB06,BB13} ***** BB05 STMT00017 (IL ???... ???) N012 ( 26, 19) [000071] --CXG------- * JTRUE void N011 ( 24, 17) [000070] J-CXG--N---- \--* NE int N009 ( 22, 15) [000068] --CXG------- +--* CAST int <- bool <- int N008 ( 21, 13) [000066] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality N006 ( 4, 4) [000129] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000185] -------N---- | | \--* ADD byref N003 ( 1, 1) [000063] ------------ | | +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] N007 ( 3, 2) [000062] ------------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 u:1 N010 ( 1, 1) [000069] ------------ \--* CNS_INT int 0 ------------ BB06 [034..03E) -> BB13 (cond), preds={BB05} succs={BB07,BB13} ***** BB06 STMT00019 (IL ???... ???) N008 ( 12, 12) [000078] ---XG------- * JTRUE void N007 ( 10, 10) [000077] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000188] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000072] ------------ | \--* LCL_VAR int V06 arg6 u:1 N006 ( 5, 5) [000132] ---XG------- \--* IND bool N005 ( 2, 2) [000190] -------N---- \--* ADD byref N003 ( 1, 1) [000073] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] ------------ BB07 [03E..048) -> BB13 (cond), preds={BB06} succs={BB08,BB13} ***** BB07 STMT00021 (IL ???... ???) N008 ( 12, 12) [000085] ---XG------- * JTRUE void N007 ( 10, 10) [000084] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000191] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000079] ------------ | \--* LCL_VAR int V07 arg7 u:1 N006 ( 5, 5) [000134] ---XG------- \--* IND bool N005 ( 2, 2) [000193] -------N---- \--* ADD byref N003 ( 1, 1) [000080] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] ------------ BB08 [048..052) -> BB13 (cond), preds={BB07} succs={BB09,BB13} ***** BB08 STMT00023 (IL ???... ???) N008 ( 12, 12) [000092] ---XG------- * JTRUE void N007 ( 10, 10) [000091] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000194] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000086] ------------ | \--* LCL_VAR int V08 arg8 u:1 N006 ( 5, 5) [000136] ---XG------- \--* IND bool N005 ( 2, 2) [000196] -------N---- \--* ADD byref N003 ( 1, 1) [000087] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] ------------ BB09 [052..05C) -> BB13 (cond), preds={BB08} succs={BB10,BB13} ***** BB09 STMT00025 (IL ???... ???) N008 ( 12, 12) [000099] ---XG------- * JTRUE void N007 ( 10, 10) [000098] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000197] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000093] ------------ | \--* LCL_VAR int V09 arg9 u:1 N006 ( 5, 5) [000138] ---XG------- \--* IND bool N005 ( 2, 2) [000199] -------N---- \--* ADD byref N003 ( 1, 1) [000094] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] ------------ BB10 [05C..06B) -> BB13 (cond), preds={BB09} succs={BB11,BB13} ***** BB10 STMT00027 (IL ???... ???) N012 ( 26, 19) [000108] --CXG------- * JTRUE void N011 ( 24, 17) [000107] J-CXG--N---- \--* NE int N009 ( 22, 15) [000105] --CXG------- +--* CAST int <- bool <- int N008 ( 21, 13) [000104] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality N006 ( 4, 4) [000140] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000201] -------N---- | | \--* ADD byref N003 ( 1, 1) [000101] ------------ | | +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000200] ------------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] N007 ( 3, 2) [000100] ------------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 u:1 N010 ( 1, 1) [000106] ------------ \--* CNS_INT int 0 ------------ BB11 [06B..07A) -> BB13 (cond), preds={BB10} succs={BB12,BB13} ***** BB11 STMT00030 (IL ???... ???) N012 ( 26, 19) [000118] --CXG------- * JTRUE void N011 ( 24, 17) [000117] J-CXG--N---- \--* NE int N009 ( 22, 15) [000115] --CXG------- +--* CAST int <- bool <- int N008 ( 21, 13) [000113] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality N006 ( 4, 4) [000142] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000205] -------N---- | | \--* ADD byref N003 ( 1, 1) [000110] ------------ | | +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000204] ------------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] N007 ( 3, 2) [000109] ------------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 u:1 N010 ( 1, 1) [000116] ------------ \--* CNS_INT int 0 ------------ BB12 [0AB..0AD) (return), preds={BB11} succs={} ***** BB12 STMT00031 (IL 0x0AB...0x0AC) N002 ( 2, 2) [000120] ------------ * RETURN ref N001 ( 1, 1) [000119] ------------ \--* LCL_VAR ref V00 this u:1 (last use) ------------ BB13 [000..0AB) -> BB15 (cond), preds={BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11} succs={BB14,BB15} ***** BB13 STMT00003 (IL 0x07A...0x0AA) N006 ( 8, 7) [000022] -A-XG---R--- * ASG ref N005 ( 3, 2) [000021] D------N---- +--* LCL_VAR ref V13 tmp1 d:2 N004 ( 4, 4) [000007] ---XG------- \--* IND ref N003 ( 2, 2) [000209] -------N---- \--* ADD byref N001 ( 1, 1) [000006] ------------ +--* LCL_VAR ref V00 this u:1 N002 ( 1, 1) [000208] ------------ \--* CNS_INT long 8 field offset Fseq[Syntax] ***** BB13 STMT00004 (IL ???... ???) N003 ( 18, 8) [000030] -AC-----R--- * ASG ref N002 ( 3, 2) [000029] D------N---- +--* LCL_VAR ref V14 tmp2 d:2 N001 ( 14, 5) [000028] --C--------- \--* CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW ***** BB13 STMT00005 (IL ???... ???) N033 ( 98, 58) [000032] --CXG------- * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor N006 ( 3, 4) [000211] ------------ arg4 out+20 +--* CAST int <- ubyte <- int N005 ( 2, 2) [000010] ------------ | \--* LCL_VAR int V03 arg3 u:1 (last use) N008 ( 4, 4) [000212] ------------ arg5 out+28 +--* CAST int <- bool <- int N007 ( 3, 2) [000011] ------------ | \--* LCL_VAR int V04 arg4 u:1 (last use) N009 ( 3, 2) [000012] ------------ arg6 out+30 +--* LCL_VAR ref V05 arg5 u:1 (last use) N011 ( 4, 4) [000213] ------------ arg7 out+38 +--* CAST int <- bool <- int N010 ( 3, 2) [000013] ------------ | \--* LCL_VAR int V06 arg6 u:1 (last use) N013 ( 4, 4) [000214] ------------ arg8 out+40 +--* CAST int <- bool <- int N012 ( 3, 2) [000014] ------------ | \--* LCL_VAR int V07 arg7 u:1 (last use) N015 ( 4, 4) [000215] ------------ arg9 out+48 +--* CAST int <- bool <- int N014 ( 3, 2) [000015] ------------ | \--* LCL_VAR int V08 arg8 u:1 (last use) N017 ( 4, 4) [000216] ------------ arg10 out+50 +--* CAST int <- bool <- int N016 ( 3, 2) [000016] ------------ | \--* LCL_VAR int V09 arg9 u:1 (last use) N018 ( 3, 2) [000017] ------------ arg11 out+58 +--* LCL_VAR ref V10 arg10 u:1 (last use) N019 ( 3, 2) [000018] ------------ arg12 out+60 +--* LCL_VAR ref V11 arg11 u:1 (last use) N027 ( 12, 9) [000149] N--XG------- arg13 out+68 +--* NE int N025 ( 7, 7) [000147] ---XG------- | +--* AND int N023 ( 5, 5) [000145] ---XG------- | | +--* IND ubyte N022 ( 2, 2) [000218] -------N---- | | | \--* ADD byref N020 ( 1, 1) [000019] ------------ | | | +--* LCL_VAR ref V00 this u:1 N021 ( 1, 1) [000217] ------------ | | | \--* CNS_INT long 17 field offset Fseq[_attributes] N024 ( 1, 1) [000146] ------------ | | \--* CNS_INT int 1 N026 ( 1, 1) [000148] ------------ | \--* CNS_INT int 0 N029 ( 3, 4) [000210] ------------ arg3 in r9 +--* CAST int <- ubyte <- int N028 ( 2, 2) [000009] ------------ | \--* LCL_VAR int V02 arg2 u:1 (last use) N030 ( 3, 2) [000031] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 u:2 N031 ( 3, 2) [000023] ------------ arg1 in rdx +--* LCL_VAR ref V13 tmp1 u:2 (last use) N032 ( 1, 1) [000008] ------------ arg2 in r8 \--* LCL_VAR ref V01 arg1 u:1 (last use) ***** BB13 STMT00034 (IL ???... ???) N010 ( 16, 12) [000171] -A-XG---R--- * ASG bool N009 ( 3, 2) [000170] D------N---- +--* LCL_VAR int V15 tmp3 d:2 N008 ( 12, 9) [000155] N--XG------- \--* NE int N006 ( 7, 7) [000153] ---XG------- +--* AND int N004 ( 5, 5) [000151] ---XG------- | +--* IND ubyte N003 ( 2, 2) [000224] -------N---- | | \--* ADD byref N001 ( 1, 1) [000035] ------------ | | +--* LCL_VAR ref V00 this u:1 (last use) N002 ( 1, 1) [000223] ------------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] N005 ( 1, 1) [000152] ------------ | \--* CNS_INT int 2 N007 ( 1, 1) [000154] ------------ \--* CNS_INT int 0 ***** BB13 STMT00035 (IL ???... ???) N002 ( 4, 3) [000169] ---X-------- * NULLCHECK byte N001 ( 3, 2) [000168] ------------ \--* LCL_VAR ref V14 tmp2 u:2 ***** BB13 STMT00032 (IL ???... ???) N004 ( 7, 6) [000161] ------------ * JTRUE void N003 ( 5, 4) [000160] J------N---- \--* EQ int N001 ( 3, 2) [000158] ------------ +--* LCL_VAR int V15 tmp3 u:2 (last use) N002 ( 1, 1) [000159] ------------ \--* CNS_INT int 0 ------------ BB14 [000..000), preds={BB13} succs={BB15} ***** BB14 STMT00033 (IL ???... ???) N011 ( 17, 15) [000167] -A-XG---R--- * ASG ubyte N010 ( 7, 6) [000166] D--XG--N---- +--* IND ubyte N009 ( 4, 3) [000226] -------N---- | \--* ADD byref N007 ( 3, 2) [000034] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 N008 ( 1, 1) [000225] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] N006 ( 9, 8) [000165] ---XG------- \--* OR int N004 ( 7, 6) [000163] ---XG------- +--* IND ubyte N003 ( 4, 3) [000228] -------N---- | \--* ADD byref N001 ( 3, 2) [000162] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 N002 ( 1, 1) [000227] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] N005 ( 1, 1) [000164] ------------ \--* CNS_INT int 2 ------------ BB15 [000..000) (return), preds={BB13,BB14} succs={} ***** BB15 STMT00008 (IL 0x0AA... ???) N002 ( 4, 3) [000040] ------------ * RETURN ref N001 ( 3, 2) [000033] ------------ \--* LCL_VAR ref V14 tmp2 u:2 (last use) ------------------------------------------------------------------------------------------------------------------- *************** Finishing PHASE Build SSA representation Trees after Build SSA representation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB13 ( cond ) i label target IBC BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB13 ( cond ) i IBC BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB13 ( cond ) i IBC BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB13 ( cond ) i IBC BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB13 ( cond ) i hascall gcsafe IBC BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB13 ( cond ) i gcsafe IBC BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB13 ( cond ) i gcsafe IBC BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB13 ( cond ) i gcsafe IBC BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB13 ( cond ) i gcsafe IBC BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB13 ( cond ) i hascall gcsafe IBC BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB13 ( cond ) i hascall gcsafe IBC BB12 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target gcsafe IBC BB13 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB15 ( cond ) i label target hascall gcsafe newobj nullcheck IBC BB14 [0027] 1 BB13 0.09 [000..000) i internal gcsafe BB15 [0028] 2 BB13,BB14 0.17 14831 [000..000) (return) i internal label target gcsafe newobj nullcheck IBC ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..009) -> BB13 (cond), preds={} succs={BB02,BB13} ***** BB01 STMT00001 (IL ???... ???) N007 ( 8, 8) [000005] ---XG------- * JTRUE void N006 ( 6, 6) [000004] N--XG--N-U-- \--* NE int N001 ( 1, 1) [000000] ------------ +--* LCL_VAR ref V01 arg1 u:1 N005 ( 4, 4) [000121] ---XG------- \--* IND ref N004 ( 2, 2) [000174] -------N---- \--* ADD byref N002 ( 1, 1) [000001] ------------ +--* LCL_VAR ref V00 this u:1 N003 ( 1, 1) [000173] ------------ \--* CNS_INT long 32 field offset Fseq[k__BackingField] ------------ BB02 [009..012) -> BB13 (cond), preds={BB01} succs={BB03,BB13} ***** BB02 STMT00010 (IL ???... ???) N008 ( 11, 12) [000047] ---XG------- * JTRUE void N007 ( 9, 10) [000046] N--XG--N-U-- \--* NE int N002 ( 3, 4) [000175] ------------ +--* CAST int <- ubyte <- int N001 ( 2, 2) [000041] ------------ | \--* LCL_VAR int V02 arg2 u:1 N006 ( 5, 5) [000123] ---XG------- \--* IND ubyte N005 ( 2, 2) [000177] -------N---- \--* ADD byref N003 ( 1, 1) [000042] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] ------------ BB03 [012..01B) -> BB13 (cond), preds={BB02} succs={BB04,BB13} ***** BB03 STMT00012 (IL ???... ???) N008 ( 11, 12) [000054] ---XG------- * JTRUE void N007 ( 9, 10) [000053] N--XG--N-U-- \--* NE int N002 ( 3, 4) [000178] ------------ +--* CAST int <- ubyte <- int N001 ( 2, 2) [000048] ------------ | \--* LCL_VAR int V03 arg3 u:1 N006 ( 5, 5) [000125] ---XG------- \--* IND ubyte N005 ( 2, 2) [000180] -------N---- \--* ADD byref N003 ( 1, 1) [000049] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] ------------ BB04 [01B..025) -> BB13 (cond), preds={BB03} succs={BB05,BB13} ***** BB04 STMT00014 (IL ???... ???) N008 ( 12, 12) [000061] ---XG------- * JTRUE void N007 ( 10, 10) [000060] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000181] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000055] ------------ | \--* LCL_VAR int V04 arg4 u:1 N006 ( 5, 5) [000127] ---XG------- \--* IND bool N005 ( 2, 2) [000183] -------N---- \--* ADD byref N003 ( 1, 1) [000056] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] ------------ BB05 [025..034) -> BB13 (cond), preds={BB04} succs={BB06,BB13} ***** BB05 STMT00017 (IL ???... ???) N012 ( 26, 19) [000071] --CXG------- * JTRUE void N011 ( 24, 17) [000070] J-CXG--N---- \--* NE int N009 ( 22, 15) [000068] --CXG------- +--* CAST int <- bool <- int N008 ( 21, 13) [000066] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality N006 ( 4, 4) [000129] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000185] -------N---- | | \--* ADD byref N003 ( 1, 1) [000063] ------------ | | +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] N007 ( 3, 2) [000062] ------------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 u:1 N010 ( 1, 1) [000069] ------------ \--* CNS_INT int 0 ------------ BB06 [034..03E) -> BB13 (cond), preds={BB05} succs={BB07,BB13} ***** BB06 STMT00019 (IL ???... ???) N008 ( 12, 12) [000078] ---XG------- * JTRUE void N007 ( 10, 10) [000077] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000188] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000072] ------------ | \--* LCL_VAR int V06 arg6 u:1 N006 ( 5, 5) [000132] ---XG------- \--* IND bool N005 ( 2, 2) [000190] -------N---- \--* ADD byref N003 ( 1, 1) [000073] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] ------------ BB07 [03E..048) -> BB13 (cond), preds={BB06} succs={BB08,BB13} ***** BB07 STMT00021 (IL ???... ???) N008 ( 12, 12) [000085] ---XG------- * JTRUE void N007 ( 10, 10) [000084] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000191] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000079] ------------ | \--* LCL_VAR int V07 arg7 u:1 N006 ( 5, 5) [000134] ---XG------- \--* IND bool N005 ( 2, 2) [000193] -------N---- \--* ADD byref N003 ( 1, 1) [000080] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] ------------ BB08 [048..052) -> BB13 (cond), preds={BB07} succs={BB09,BB13} ***** BB08 STMT00023 (IL ???... ???) N008 ( 12, 12) [000092] ---XG------- * JTRUE void N007 ( 10, 10) [000091] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000194] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000086] ------------ | \--* LCL_VAR int V08 arg8 u:1 N006 ( 5, 5) [000136] ---XG------- \--* IND bool N005 ( 2, 2) [000196] -------N---- \--* ADD byref N003 ( 1, 1) [000087] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] ------------ BB09 [052..05C) -> BB13 (cond), preds={BB08} succs={BB10,BB13} ***** BB09 STMT00025 (IL ???... ???) N008 ( 12, 12) [000099] ---XG------- * JTRUE void N007 ( 10, 10) [000098] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000197] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000093] ------------ | \--* LCL_VAR int V09 arg9 u:1 N006 ( 5, 5) [000138] ---XG------- \--* IND bool N005 ( 2, 2) [000199] -------N---- \--* ADD byref N003 ( 1, 1) [000094] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] ------------ BB10 [05C..06B) -> BB13 (cond), preds={BB09} succs={BB11,BB13} ***** BB10 STMT00027 (IL ???... ???) N012 ( 26, 19) [000108] --CXG------- * JTRUE void N011 ( 24, 17) [000107] J-CXG--N---- \--* NE int N009 ( 22, 15) [000105] --CXG------- +--* CAST int <- bool <- int N008 ( 21, 13) [000104] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality N006 ( 4, 4) [000140] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000201] -------N---- | | \--* ADD byref N003 ( 1, 1) [000101] ------------ | | +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000200] ------------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] N007 ( 3, 2) [000100] ------------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 u:1 N010 ( 1, 1) [000106] ------------ \--* CNS_INT int 0 ------------ BB11 [06B..07A) -> BB13 (cond), preds={BB10} succs={BB12,BB13} ***** BB11 STMT00030 (IL ???... ???) N012 ( 26, 19) [000118] --CXG------- * JTRUE void N011 ( 24, 17) [000117] J-CXG--N---- \--* NE int N009 ( 22, 15) [000115] --CXG------- +--* CAST int <- bool <- int N008 ( 21, 13) [000113] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality N006 ( 4, 4) [000142] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000205] -------N---- | | \--* ADD byref N003 ( 1, 1) [000110] ------------ | | +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000204] ------------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] N007 ( 3, 2) [000109] ------------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 u:1 N010 ( 1, 1) [000116] ------------ \--* CNS_INT int 0 ------------ BB12 [0AB..0AD) (return), preds={BB11} succs={} ***** BB12 STMT00031 (IL 0x0AB...0x0AC) N002 ( 2, 2) [000120] ------------ * RETURN ref N001 ( 1, 1) [000119] ------------ \--* LCL_VAR ref V00 this u:1 (last use) ------------ BB13 [000..0AB) -> BB15 (cond), preds={BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11} succs={BB14,BB15} ***** BB13 STMT00003 (IL 0x07A...0x0AA) N006 ( 8, 7) [000022] -A-XG---R--- * ASG ref N005 ( 3, 2) [000021] D------N---- +--* LCL_VAR ref V13 tmp1 d:2 N004 ( 4, 4) [000007] ---XG------- \--* IND ref N003 ( 2, 2) [000209] -------N---- \--* ADD byref N001 ( 1, 1) [000006] ------------ +--* LCL_VAR ref V00 this u:1 N002 ( 1, 1) [000208] ------------ \--* CNS_INT long 8 field offset Fseq[Syntax] ***** BB13 STMT00004 (IL ???... ???) N003 ( 18, 8) [000030] -AC-----R--- * ASG ref N002 ( 3, 2) [000029] D------N---- +--* LCL_VAR ref V14 tmp2 d:2 N001 ( 14, 5) [000028] --C--------- \--* CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW ***** BB13 STMT00005 (IL ???... ???) N033 ( 98, 58) [000032] --CXG------- * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor N006 ( 3, 4) [000211] ------------ arg4 out+20 +--* CAST int <- ubyte <- int N005 ( 2, 2) [000010] ------------ | \--* LCL_VAR int V03 arg3 u:1 (last use) N008 ( 4, 4) [000212] ------------ arg5 out+28 +--* CAST int <- bool <- int N007 ( 3, 2) [000011] ------------ | \--* LCL_VAR int V04 arg4 u:1 (last use) N009 ( 3, 2) [000012] ------------ arg6 out+30 +--* LCL_VAR ref V05 arg5 u:1 (last use) N011 ( 4, 4) [000213] ------------ arg7 out+38 +--* CAST int <- bool <- int N010 ( 3, 2) [000013] ------------ | \--* LCL_VAR int V06 arg6 u:1 (last use) N013 ( 4, 4) [000214] ------------ arg8 out+40 +--* CAST int <- bool <- int N012 ( 3, 2) [000014] ------------ | \--* LCL_VAR int V07 arg7 u:1 (last use) N015 ( 4, 4) [000215] ------------ arg9 out+48 +--* CAST int <- bool <- int N014 ( 3, 2) [000015] ------------ | \--* LCL_VAR int V08 arg8 u:1 (last use) N017 ( 4, 4) [000216] ------------ arg10 out+50 +--* CAST int <- bool <- int N016 ( 3, 2) [000016] ------------ | \--* LCL_VAR int V09 arg9 u:1 (last use) N018 ( 3, 2) [000017] ------------ arg11 out+58 +--* LCL_VAR ref V10 arg10 u:1 (last use) N019 ( 3, 2) [000018] ------------ arg12 out+60 +--* LCL_VAR ref V11 arg11 u:1 (last use) N027 ( 12, 9) [000149] N--XG------- arg13 out+68 +--* NE int N025 ( 7, 7) [000147] ---XG------- | +--* AND int N023 ( 5, 5) [000145] ---XG------- | | +--* IND ubyte N022 ( 2, 2) [000218] -------N---- | | | \--* ADD byref N020 ( 1, 1) [000019] ------------ | | | +--* LCL_VAR ref V00 this u:1 N021 ( 1, 1) [000217] ------------ | | | \--* CNS_INT long 17 field offset Fseq[_attributes] N024 ( 1, 1) [000146] ------------ | | \--* CNS_INT int 1 N026 ( 1, 1) [000148] ------------ | \--* CNS_INT int 0 N029 ( 3, 4) [000210] ------------ arg3 in r9 +--* CAST int <- ubyte <- int N028 ( 2, 2) [000009] ------------ | \--* LCL_VAR int V02 arg2 u:1 (last use) N030 ( 3, 2) [000031] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 u:2 N031 ( 3, 2) [000023] ------------ arg1 in rdx +--* LCL_VAR ref V13 tmp1 u:2 (last use) N032 ( 1, 1) [000008] ------------ arg2 in r8 \--* LCL_VAR ref V01 arg1 u:1 (last use) ***** BB13 STMT00034 (IL ???... ???) N010 ( 16, 12) [000171] -A-XG---R--- * ASG bool N009 ( 3, 2) [000170] D------N---- +--* LCL_VAR int V15 tmp3 d:2 N008 ( 12, 9) [000155] N--XG------- \--* NE int N006 ( 7, 7) [000153] ---XG------- +--* AND int N004 ( 5, 5) [000151] ---XG------- | +--* IND ubyte N003 ( 2, 2) [000224] -------N---- | | \--* ADD byref N001 ( 1, 1) [000035] ------------ | | +--* LCL_VAR ref V00 this u:1 (last use) N002 ( 1, 1) [000223] ------------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] N005 ( 1, 1) [000152] ------------ | \--* CNS_INT int 2 N007 ( 1, 1) [000154] ------------ \--* CNS_INT int 0 ***** BB13 STMT00035 (IL ???... ???) N002 ( 4, 3) [000169] ---X-------- * NULLCHECK byte N001 ( 3, 2) [000168] ------------ \--* LCL_VAR ref V14 tmp2 u:2 ***** BB13 STMT00032 (IL ???... ???) N004 ( 7, 6) [000161] ------------ * JTRUE void N003 ( 5, 4) [000160] J------N---- \--* EQ int N001 ( 3, 2) [000158] ------------ +--* LCL_VAR int V15 tmp3 u:2 (last use) N002 ( 1, 1) [000159] ------------ \--* CNS_INT int 0 ------------ BB14 [000..000), preds={BB13} succs={BB15} ***** BB14 STMT00033 (IL ???... ???) N011 ( 17, 15) [000167] -A-XG---R--- * ASG ubyte N010 ( 7, 6) [000166] D--XG--N---- +--* IND ubyte N009 ( 4, 3) [000226] -------N---- | \--* ADD byref N007 ( 3, 2) [000034] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 N008 ( 1, 1) [000225] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] N006 ( 9, 8) [000165] ---XG------- \--* OR int N004 ( 7, 6) [000163] ---XG------- +--* IND ubyte N003 ( 4, 3) [000228] -------N---- | \--* ADD byref N001 ( 3, 2) [000162] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 N002 ( 1, 1) [000227] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] N005 ( 1, 1) [000164] ------------ \--* CNS_INT int 2 ------------ BB15 [000..000) (return), preds={BB13,BB14} succs={} ***** BB15 STMT00008 (IL 0x0AA... ???) N002 ( 4, 3) [000040] ------------ * RETURN ref N001 ( 3, 2) [000033] ------------ \--* LCL_VAR ref V14 tmp2 u:2 (last use) ------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *************** Starting PHASE Early Value Propagation *************** In optEarlyProp() After optEarlyProp: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB13 ( cond ) i label target IBC BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB13 ( cond ) i IBC BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB13 ( cond ) i IBC BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB13 ( cond ) i IBC BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB13 ( cond ) i hascall gcsafe IBC BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB13 ( cond ) i gcsafe IBC BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB13 ( cond ) i gcsafe IBC BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB13 ( cond ) i gcsafe IBC BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB13 ( cond ) i gcsafe IBC BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB13 ( cond ) i hascall gcsafe IBC BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB13 ( cond ) i hascall gcsafe IBC BB12 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target gcsafe IBC BB13 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB15 ( cond ) i label target hascall gcsafe newobj nullcheck IBC BB14 [0027] 1 BB13 0.09 [000..000) i internal gcsafe BB15 [0028] 2 BB13,BB14 0.17 14831 [000..000) (return) i internal label target gcsafe newobj nullcheck IBC ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..009) -> BB13 (cond), preds={} succs={BB02,BB13} ***** BB01 STMT00001 (IL ???... ???) N007 ( 8, 8) [000005] ---XG------- * JTRUE void N006 ( 6, 6) [000004] N--XG--N-U-- \--* NE int N001 ( 1, 1) [000000] ------------ +--* LCL_VAR ref V01 arg1 u:1 N005 ( 4, 4) [000121] ---XG------- \--* IND ref N004 ( 2, 2) [000174] -------N---- \--* ADD byref N002 ( 1, 1) [000001] ------------ +--* LCL_VAR ref V00 this u:1 N003 ( 1, 1) [000173] ------------ \--* CNS_INT long 32 field offset Fseq[k__BackingField] ------------ BB02 [009..012) -> BB13 (cond), preds={BB01} succs={BB03,BB13} ***** BB02 STMT00010 (IL ???... ???) N008 ( 11, 12) [000047] ---XG------- * JTRUE void N007 ( 9, 10) [000046] N--XG--N-U-- \--* NE int N002 ( 3, 4) [000175] ------------ +--* CAST int <- ubyte <- int N001 ( 2, 2) [000041] ------------ | \--* LCL_VAR int V02 arg2 u:1 N006 ( 5, 5) [000123] ---XG------- \--* IND ubyte N005 ( 2, 2) [000177] -------N---- \--* ADD byref N003 ( 1, 1) [000042] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] ------------ BB03 [012..01B) -> BB13 (cond), preds={BB02} succs={BB04,BB13} ***** BB03 STMT00012 (IL ???... ???) N008 ( 11, 12) [000054] ---XG------- * JTRUE void N007 ( 9, 10) [000053] N--XG--N-U-- \--* NE int N002 ( 3, 4) [000178] ------------ +--* CAST int <- ubyte <- int N001 ( 2, 2) [000048] ------------ | \--* LCL_VAR int V03 arg3 u:1 N006 ( 5, 5) [000125] ---XG------- \--* IND ubyte N005 ( 2, 2) [000180] -------N---- \--* ADD byref N003 ( 1, 1) [000049] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] ------------ BB04 [01B..025) -> BB13 (cond), preds={BB03} succs={BB05,BB13} ***** BB04 STMT00014 (IL ???... ???) N008 ( 12, 12) [000061] ---XG------- * JTRUE void N007 ( 10, 10) [000060] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000181] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000055] ------------ | \--* LCL_VAR int V04 arg4 u:1 N006 ( 5, 5) [000127] ---XG------- \--* IND bool N005 ( 2, 2) [000183] -------N---- \--* ADD byref N003 ( 1, 1) [000056] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] ------------ BB05 [025..034) -> BB13 (cond), preds={BB04} succs={BB06,BB13} ***** BB05 STMT00017 (IL ???... ???) N012 ( 26, 19) [000071] --CXG------- * JTRUE void N011 ( 24, 17) [000070] J-CXG--N---- \--* NE int N009 ( 22, 15) [000068] --CXG------- +--* CAST int <- bool <- int N008 ( 21, 13) [000066] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality N006 ( 4, 4) [000129] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000185] -------N---- | | \--* ADD byref N003 ( 1, 1) [000063] ------------ | | +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] N007 ( 3, 2) [000062] ------------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 u:1 N010 ( 1, 1) [000069] ------------ \--* CNS_INT int 0 ------------ BB06 [034..03E) -> BB13 (cond), preds={BB05} succs={BB07,BB13} ***** BB06 STMT00019 (IL ???... ???) N008 ( 12, 12) [000078] ---XG------- * JTRUE void N007 ( 10, 10) [000077] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000188] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000072] ------------ | \--* LCL_VAR int V06 arg6 u:1 N006 ( 5, 5) [000132] ---XG------- \--* IND bool N005 ( 2, 2) [000190] -------N---- \--* ADD byref N003 ( 1, 1) [000073] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] ------------ BB07 [03E..048) -> BB13 (cond), preds={BB06} succs={BB08,BB13} ***** BB07 STMT00021 (IL ???... ???) N008 ( 12, 12) [000085] ---XG------- * JTRUE void N007 ( 10, 10) [000084] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000191] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000079] ------------ | \--* LCL_VAR int V07 arg7 u:1 N006 ( 5, 5) [000134] ---XG------- \--* IND bool N005 ( 2, 2) [000193] -------N---- \--* ADD byref N003 ( 1, 1) [000080] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] ------------ BB08 [048..052) -> BB13 (cond), preds={BB07} succs={BB09,BB13} ***** BB08 STMT00023 (IL ???... ???) N008 ( 12, 12) [000092] ---XG------- * JTRUE void N007 ( 10, 10) [000091] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000194] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000086] ------------ | \--* LCL_VAR int V08 arg8 u:1 N006 ( 5, 5) [000136] ---XG------- \--* IND bool N005 ( 2, 2) [000196] -------N---- \--* ADD byref N003 ( 1, 1) [000087] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] ------------ BB09 [052..05C) -> BB13 (cond), preds={BB08} succs={BB10,BB13} ***** BB09 STMT00025 (IL ???... ???) N008 ( 12, 12) [000099] ---XG------- * JTRUE void N007 ( 10, 10) [000098] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000197] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000093] ------------ | \--* LCL_VAR int V09 arg9 u:1 N006 ( 5, 5) [000138] ---XG------- \--* IND bool N005 ( 2, 2) [000199] -------N---- \--* ADD byref N003 ( 1, 1) [000094] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] ------------ BB10 [05C..06B) -> BB13 (cond), preds={BB09} succs={BB11,BB13} ***** BB10 STMT00027 (IL ???... ???) N012 ( 26, 19) [000108] --CXG------- * JTRUE void N011 ( 24, 17) [000107] J-CXG--N---- \--* NE int N009 ( 22, 15) [000105] --CXG------- +--* CAST int <- bool <- int N008 ( 21, 13) [000104] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality N006 ( 4, 4) [000140] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000201] -------N---- | | \--* ADD byref N003 ( 1, 1) [000101] ------------ | | +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000200] ------------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] N007 ( 3, 2) [000100] ------------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 u:1 N010 ( 1, 1) [000106] ------------ \--* CNS_INT int 0 ------------ BB11 [06B..07A) -> BB13 (cond), preds={BB10} succs={BB12,BB13} ***** BB11 STMT00030 (IL ???... ???) N012 ( 26, 19) [000118] --CXG------- * JTRUE void N011 ( 24, 17) [000117] J-CXG--N---- \--* NE int N009 ( 22, 15) [000115] --CXG------- +--* CAST int <- bool <- int N008 ( 21, 13) [000113] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality N006 ( 4, 4) [000142] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000205] -------N---- | | \--* ADD byref N003 ( 1, 1) [000110] ------------ | | +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000204] ------------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] N007 ( 3, 2) [000109] ------------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 u:1 N010 ( 1, 1) [000116] ------------ \--* CNS_INT int 0 ------------ BB12 [0AB..0AD) (return), preds={BB11} succs={} ***** BB12 STMT00031 (IL 0x0AB...0x0AC) N002 ( 2, 2) [000120] ------------ * RETURN ref N001 ( 1, 1) [000119] ------------ \--* LCL_VAR ref V00 this u:1 (last use) ------------ BB13 [000..0AB) -> BB15 (cond), preds={BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11} succs={BB14,BB15} ***** BB13 STMT00003 (IL 0x07A...0x0AA) N006 ( 8, 7) [000022] -A-XG---R--- * ASG ref N005 ( 3, 2) [000021] D------N---- +--* LCL_VAR ref V13 tmp1 d:2 N004 ( 4, 4) [000007] ---XG------- \--* IND ref N003 ( 2, 2) [000209] -------N---- \--* ADD byref N001 ( 1, 1) [000006] ------------ +--* LCL_VAR ref V00 this u:1 N002 ( 1, 1) [000208] ------------ \--* CNS_INT long 8 field offset Fseq[Syntax] ***** BB13 STMT00004 (IL ???... ???) N003 ( 18, 8) [000030] -AC-----R--- * ASG ref N002 ( 3, 2) [000029] D------N---- +--* LCL_VAR ref V14 tmp2 d:2 N001 ( 14, 5) [000028] --C--------- \--* CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW ***** BB13 STMT00005 (IL ???... ???) N033 ( 98, 58) [000032] --CXG------- * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor N006 ( 3, 4) [000211] ------------ arg4 out+20 +--* CAST int <- ubyte <- int N005 ( 2, 2) [000010] ------------ | \--* LCL_VAR int V03 arg3 u:1 (last use) N008 ( 4, 4) [000212] ------------ arg5 out+28 +--* CAST int <- bool <- int N007 ( 3, 2) [000011] ------------ | \--* LCL_VAR int V04 arg4 u:1 (last use) N009 ( 3, 2) [000012] ------------ arg6 out+30 +--* LCL_VAR ref V05 arg5 u:1 (last use) N011 ( 4, 4) [000213] ------------ arg7 out+38 +--* CAST int <- bool <- int N010 ( 3, 2) [000013] ------------ | \--* LCL_VAR int V06 arg6 u:1 (last use) N013 ( 4, 4) [000214] ------------ arg8 out+40 +--* CAST int <- bool <- int N012 ( 3, 2) [000014] ------------ | \--* LCL_VAR int V07 arg7 u:1 (last use) N015 ( 4, 4) [000215] ------------ arg9 out+48 +--* CAST int <- bool <- int N014 ( 3, 2) [000015] ------------ | \--* LCL_VAR int V08 arg8 u:1 (last use) N017 ( 4, 4) [000216] ------------ arg10 out+50 +--* CAST int <- bool <- int N016 ( 3, 2) [000016] ------------ | \--* LCL_VAR int V09 arg9 u:1 (last use) N018 ( 3, 2) [000017] ------------ arg11 out+58 +--* LCL_VAR ref V10 arg10 u:1 (last use) N019 ( 3, 2) [000018] ------------ arg12 out+60 +--* LCL_VAR ref V11 arg11 u:1 (last use) N027 ( 12, 9) [000149] N--XG------- arg13 out+68 +--* NE int N025 ( 7, 7) [000147] ---XG------- | +--* AND int N023 ( 5, 5) [000145] ---XG------- | | +--* IND ubyte N022 ( 2, 2) [000218] -------N---- | | | \--* ADD byref N020 ( 1, 1) [000019] ------------ | | | +--* LCL_VAR ref V00 this u:1 N021 ( 1, 1) [000217] ------------ | | | \--* CNS_INT long 17 field offset Fseq[_attributes] N024 ( 1, 1) [000146] ------------ | | \--* CNS_INT int 1 N026 ( 1, 1) [000148] ------------ | \--* CNS_INT int 0 N029 ( 3, 4) [000210] ------------ arg3 in r9 +--* CAST int <- ubyte <- int N028 ( 2, 2) [000009] ------------ | \--* LCL_VAR int V02 arg2 u:1 (last use) N030 ( 3, 2) [000031] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 u:2 N031 ( 3, 2) [000023] ------------ arg1 in rdx +--* LCL_VAR ref V13 tmp1 u:2 (last use) N032 ( 1, 1) [000008] ------------ arg2 in r8 \--* LCL_VAR ref V01 arg1 u:1 (last use) ***** BB13 STMT00034 (IL ???... ???) N010 ( 16, 12) [000171] -A-XG---R--- * ASG bool N009 ( 3, 2) [000170] D------N---- +--* LCL_VAR int V15 tmp3 d:2 N008 ( 12, 9) [000155] N--XG------- \--* NE int N006 ( 7, 7) [000153] ---XG------- +--* AND int N004 ( 5, 5) [000151] ---XG------- | +--* IND ubyte N003 ( 2, 2) [000224] -------N---- | | \--* ADD byref N001 ( 1, 1) [000035] ------------ | | +--* LCL_VAR ref V00 this u:1 (last use) N002 ( 1, 1) [000223] ------------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] N005 ( 1, 1) [000152] ------------ | \--* CNS_INT int 2 N007 ( 1, 1) [000154] ------------ \--* CNS_INT int 0 ***** BB13 STMT00035 (IL ???... ???) N002 ( 4, 3) [000169] ---X-------- * NULLCHECK byte N001 ( 3, 2) [000168] ------------ \--* LCL_VAR ref V14 tmp2 u:2 ***** BB13 STMT00032 (IL ???... ???) N004 ( 7, 6) [000161] ------------ * JTRUE void N003 ( 5, 4) [000160] J------N---- \--* EQ int N001 ( 3, 2) [000158] ------------ +--* LCL_VAR int V15 tmp3 u:2 (last use) N002 ( 1, 1) [000159] ------------ \--* CNS_INT int 0 ------------ BB14 [000..000), preds={BB13} succs={BB15} ***** BB14 STMT00033 (IL ???... ???) N011 ( 17, 15) [000167] -A-XG---R--- * ASG ubyte N010 ( 7, 6) [000166] D--XG--N---- +--* IND ubyte N009 ( 4, 3) [000226] -------N---- | \--* ADD byref N007 ( 3, 2) [000034] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 N008 ( 1, 1) [000225] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] N006 ( 9, 8) [000165] ---XG------- \--* OR int N004 ( 7, 6) [000163] ---XG------- +--* IND ubyte N003 ( 4, 3) [000228] -------N---- | \--* ADD byref N001 ( 3, 2) [000162] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 N002 ( 1, 1) [000227] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] N005 ( 1, 1) [000164] ------------ \--* CNS_INT int 2 ------------ BB15 [000..000) (return), preds={BB13,BB14} succs={} ***** BB15 STMT00008 (IL 0x0AA... ???) N002 ( 4, 3) [000040] ------------ * RETURN ref N001 ( 3, 2) [000033] ------------ \--* LCL_VAR ref V14 tmp2 u:2 (last use) ------------------------------------------------------------------------------------------------------------------- *************** Finishing PHASE Early Value Propagation *************** Starting PHASE Do value numbering *************** In fgValueNumber() Memory Initial Value in BB01 is: $85 The SSA definition for ByrefExposed (#1) at start of BB01 is $85 {InitVal($4c)} The SSA definition for GcHeap (#1) at start of BB01 is $85 {InitVal($4c)} ***** BB01, STMT00001(before) N007 ( 8, 8) [000005] ---XG------- * JTRUE void N006 ( 6, 6) [000004] N--XG--N-U-- \--* NE int N001 ( 1, 1) [000000] ------------ +--* LCL_VAR ref V01 arg1 u:1 N005 ( 4, 4) [000121] ---XG------- \--* IND ref N004 ( 2, 2) [000174] -------N---- \--* ADD byref N002 ( 1, 1) [000001] ------------ +--* LCL_VAR ref V00 this u:1 N003 ( 1, 1) [000173] ------------ \--* CNS_INT long 32 field offset Fseq[k__BackingField] N001 [000000] LCL_VAR V01 arg1 u:1 => $81 {InitVal($41)} N002 [000001] LCL_VAR V00 this u:1 => $80 {InitVal($40)} N003 [000173] CNS_INT 32 field offset Fseq[k__BackingField] => $140 {LngCns: 32} N004 [000174] ADD => $180 {ADD($80, $140)} VNApplySelectors: VNForHandle(k__BackingField) is $1c0, fieldType is ref VNForMapSelect($85, $1c0):ref returns $200 {$85[$1c0]} VNForMapSelect($200, $80):ref returns $201 {$200[$80]} N005 [000121] IND => N006 [000004] NE => ***** BB01, STMT00001(after) N007 ( 8, 8) [000005] ---XG------- * JTRUE void N006 ( 6, 6) [000004] N--XG--N-U-- \--* NE int N001 ( 1, 1) [000000] ------------ +--* LCL_VAR ref V01 arg1 u:1 $81 N005 ( 4, 4) [000121] ---XG------- \--* IND ref N004 ( 2, 2) [000174] -------N---- \--* ADD byref $180 N002 ( 1, 1) [000001] ------------ +--* LCL_VAR ref V00 this u:1 $80 N003 ( 1, 1) [000173] ------------ \--* CNS_INT long 32 field offset Fseq[k__BackingField] $140 finish(BB01). Succ(BB02). Not yet completed. All preds complete, adding to allDone. Succ(BB13). Not yet completed. Not all preds complete Adding to notallDone, if necessary... Was necessary. The SSA definition for ByrefExposed (#1) at start of BB02 is $85 {InitVal($4c)} The SSA definition for GcHeap (#1) at start of BB02 is $85 {InitVal($4c)} ***** BB02, STMT00010(before) N008 ( 11, 12) [000047] ---XG------- * JTRUE void N007 ( 9, 10) [000046] N--XG--N-U-- \--* NE int N002 ( 3, 4) [000175] ------------ +--* CAST int <- ubyte <- int N001 ( 2, 2) [000041] ------------ | \--* LCL_VAR int V02 arg2 u:1 N006 ( 5, 5) [000123] ---XG------- \--* IND ubyte N005 ( 2, 2) [000177] -------N---- \--* ADD byref N003 ( 1, 1) [000042] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] N001 [000041] LCL_VAR V02 arg2 u:1 => $c0 {InitVal($42)} VNForCastOper(ubyte) is $48 N002 [000175] CAST => $284 {Cast($c0, $48)} N003 [000042] LCL_VAR V00 this u:1 => $80 {InitVal($40)} N004 [000176] CNS_INT 56 field offset Fseq[k__BackingField] => $141 {LngCns: 56} N005 [000177] ADD => $181 {ADD($80, $141)} VNApplySelectors: VNForHandle(k__BackingField) is $1c1, fieldType is ubyte VNForMapSelect($85, $1c1):ubyte returns $2c0 {$85[$1c1]} VNForMapSelect($2c0, $80):ubyte returns $2c1 {$2c0[$80]} N006 [000123] IND => N007 [000046] NE => ***** BB02, STMT00010(after) N008 ( 11, 12) [000047] ---XG------- * JTRUE void N007 ( 9, 10) [000046] N--XG--N-U-- \--* NE int N002 ( 3, 4) [000175] ------------ +--* CAST int <- ubyte <- int $284 N001 ( 2, 2) [000041] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0 N006 ( 5, 5) [000123] ---XG------- \--* IND ubyte N005 ( 2, 2) [000177] -------N---- \--* ADD byref $181 N003 ( 1, 1) [000042] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] $141 finish(BB02). Succ(BB03). Not yet completed. All preds complete, adding to allDone. Succ(BB13). Not yet completed. Not all preds complete Adding to notallDone, if necessary... The SSA definition for ByrefExposed (#1) at start of BB03 is $85 {InitVal($4c)} The SSA definition for GcHeap (#1) at start of BB03 is $85 {InitVal($4c)} ***** BB03, STMT00012(before) N008 ( 11, 12) [000054] ---XG------- * JTRUE void N007 ( 9, 10) [000053] N--XG--N-U-- \--* NE int N002 ( 3, 4) [000178] ------------ +--* CAST int <- ubyte <- int N001 ( 2, 2) [000048] ------------ | \--* LCL_VAR int V03 arg3 u:1 N006 ( 5, 5) [000125] ---XG------- \--* IND ubyte N005 ( 2, 2) [000180] -------N---- \--* ADD byref N003 ( 1, 1) [000049] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] N001 [000048] LCL_VAR V03 arg3 u:1 => $c1 {InitVal($43)} VNForCastOper(ubyte) is $48 N002 [000178] CAST => $289 {Cast($c1, $48)} N003 [000049] LCL_VAR V00 this u:1 => $80 {InitVal($40)} N004 [000179] CNS_INT 57 field offset Fseq[_ResultKind] => $142 {LngCns: 57} N005 [000180] ADD => $182 {ADD($80, $142)} VNApplySelectors: VNForHandle(_ResultKind) is $1c2, fieldType is ubyte VNForMapSelect($85, $1c2):ubyte returns $2c4 {$85[$1c2]} VNForMapSelect($2c4, $80):ubyte returns $2c5 {$2c4[$80]} N006 [000125] IND => N007 [000053] NE => ***** BB03, STMT00012(after) N008 ( 11, 12) [000054] ---XG------- * JTRUE void N007 ( 9, 10) [000053] N--XG--N-U-- \--* NE int N002 ( 3, 4) [000178] ------------ +--* CAST int <- ubyte <- int $289 N001 ( 2, 2) [000048] ------------ | \--* LCL_VAR int V03 arg3 u:1 $c1 N006 ( 5, 5) [000125] ---XG------- \--* IND ubyte N005 ( 2, 2) [000180] -------N---- \--* ADD byref $182 N003 ( 1, 1) [000049] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] $142 finish(BB03). Succ(BB04). Not yet completed. All preds complete, adding to allDone. Succ(BB13). Not yet completed. Not all preds complete Adding to notallDone, if necessary... The SSA definition for ByrefExposed (#1) at start of BB04 is $85 {InitVal($4c)} The SSA definition for GcHeap (#1) at start of BB04 is $85 {InitVal($4c)} ***** BB04, STMT00014(before) N008 ( 12, 12) [000061] ---XG------- * JTRUE void N007 ( 10, 10) [000060] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000181] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000055] ------------ | \--* LCL_VAR int V04 arg4 u:1 N006 ( 5, 5) [000127] ---XG------- \--* IND bool N005 ( 2, 2) [000183] -------N---- \--* ADD byref N003 ( 1, 1) [000056] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] N001 [000055] LCL_VAR V04 arg4 u:1 => $100 {InitVal($44)} VNForCastOper(bool) is $44 N002 [000181] CAST => $28e {Cast($100, $44)} N003 [000056] LCL_VAR V00 this u:1 => $80 {InitVal($40)} N004 [000182] CNS_INT 58 field offset Fseq[k__BackingField] => $143 {LngCns: 58} N005 [000183] ADD => $183 {ADD($80, $143)} VNApplySelectors: VNForHandle(k__BackingField) is $1c3, fieldType is bool VNForMapSelect($85, $1c3):bool returns $340 {$85[$1c3]} VNForMapSelect($340, $80):bool returns $341 {$340[$80]} N006 [000127] IND => N007 [000060] NE => ***** BB04, STMT00014(after) N008 ( 12, 12) [000061] ---XG------- * JTRUE void N007 ( 10, 10) [000060] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000181] ------------ +--* CAST int <- bool <- int $28e N001 ( 3, 2) [000055] ------------ | \--* LCL_VAR int V04 arg4 u:1 $100 N006 ( 5, 5) [000127] ---XG------- \--* IND bool N005 ( 2, 2) [000183] -------N---- \--* ADD byref $183 N003 ( 1, 1) [000056] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] $143 finish(BB04). Succ(BB05). Not yet completed. All preds complete, adding to allDone. Succ(BB13). Not yet completed. Not all preds complete Adding to notallDone, if necessary... The SSA definition for ByrefExposed (#1) at start of BB05 is $85 {InitVal($4c)} The SSA definition for GcHeap (#1) at start of BB05 is $85 {InitVal($4c)} ***** BB05, STMT00017(before) N012 ( 26, 19) [000071] --CXG------- * JTRUE void N011 ( 24, 17) [000070] J-CXG--N---- \--* NE int N009 ( 22, 15) [000068] --CXG------- +--* CAST int <- bool <- int N008 ( 21, 13) [000066] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality N006 ( 4, 4) [000129] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000185] -------N---- | | \--* ADD byref N003 ( 1, 1) [000063] ------------ | | +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] N007 ( 3, 2) [000062] ------------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 u:1 N010 ( 1, 1) [000069] ------------ \--* CNS_INT int 0 N001 [000187] ARGPLACE => $241 {241} N002 [000186] ARGPLACE => $242 {242} N003 [000063] LCL_VAR V00 this u:1 => $80 {InitVal($40)} N004 [000184] CNS_INT 40 field offset Fseq[k__BackingField] => $144 {LngCns: 40} N005 [000185] ADD => $184 {ADD($80, $144)} VNApplySelectors: VNForHandle(k__BackingField) is $1c4, fieldType is ref VNForMapSelect($85, $1c4):ref returns $205 {$85[$1c4]} VNForMapSelect($205, $80):ref returns $206 {$205[$80]} N006 [000129] IND => N007 [000062] LCL_VAR V05 arg5 u:1 => $82 {InitVal($45)} VN of ARGPLACE tree [000187] updated to $82 {InitVal($45)} VN of ARGPLACE tree [000186] updated to fgCurMemoryVN[GcHeap] assigned for CALL at [000066] to VN: $244. N008 [000066] CALL r2r_ind => $3c0 {3c0} VNForCastOper(bool) is $44 N009 [000068] CAST => $293 {Cast($3c0, $44)} N010 [000069] CNS_INT 0 => $40 {IntCns 0} N011 [000070] NE => $294 {NE($293, $40)} ***** BB05, STMT00017(after) N012 ( 26, 19) [000071] --CXG------- * JTRUE void N011 ( 24, 17) [000070] J-CXG--N---- \--* NE int $294 N009 ( 22, 15) [000068] --CXG------- +--* CAST int <- bool <- int $293 N008 ( 21, 13) [000066] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 N006 ( 4, 4) [000129] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000185] -------N---- | | \--* ADD byref $184 N003 ( 1, 1) [000063] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] $144 N007 ( 3, 2) [000062] ------------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 u:1 $82 N010 ( 1, 1) [000069] ------------ \--* CNS_INT int 0 $40 finish(BB05). Succ(BB06). Not yet completed. All preds complete, adding to allDone. Succ(BB13). Not yet completed. Not all preds complete Adding to notallDone, if necessary... The SSA definition for ByrefExposed (#5) at start of BB06 is $244 {244} The SSA definition for GcHeap (#5) at start of BB06 is $244 {244} ***** BB06, STMT00019(before) N008 ( 12, 12) [000078] ---XG------- * JTRUE void N007 ( 10, 10) [000077] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000188] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000072] ------------ | \--* LCL_VAR int V06 arg6 u:1 N006 ( 5, 5) [000132] ---XG------- \--* IND bool N005 ( 2, 2) [000190] -------N---- \--* ADD byref N003 ( 1, 1) [000073] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] N001 [000072] LCL_VAR V06 arg6 u:1 => $101 {InitVal($46)} VNForCastOper(bool) is $44 N002 [000188] CAST => $295 {Cast($101, $44)} N003 [000073] LCL_VAR V00 this u:1 => $80 {InitVal($40)} N004 [000189] CNS_INT 59 field offset Fseq[k__BackingField] => $145 {LngCns: 59} N005 [000190] ADD => $185 {ADD($80, $145)} VNApplySelectors: VNForHandle(k__BackingField) is $1c5, fieldType is bool VNForMapSelect($244, $1c5):bool returns $344 {$244[$1c5]} VNForMapSelect($344, $80):bool returns $345 {$344[$80]} N006 [000132] IND => N007 [000077] NE => ***** BB06, STMT00019(after) N008 ( 12, 12) [000078] ---XG------- * JTRUE void N007 ( 10, 10) [000077] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000188] ------------ +--* CAST int <- bool <- int $295 N001 ( 3, 2) [000072] ------------ | \--* LCL_VAR int V06 arg6 u:1 $101 N006 ( 5, 5) [000132] ---XG------- \--* IND bool N005 ( 2, 2) [000190] -------N---- \--* ADD byref $185 N003 ( 1, 1) [000073] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] $145 finish(BB06). Succ(BB07). Not yet completed. All preds complete, adding to allDone. Succ(BB13). Not yet completed. Not all preds complete Adding to notallDone, if necessary... The SSA definition for ByrefExposed (#5) at start of BB07 is $244 {244} The SSA definition for GcHeap (#5) at start of BB07 is $244 {244} ***** BB07, STMT00021(before) N008 ( 12, 12) [000085] ---XG------- * JTRUE void N007 ( 10, 10) [000084] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000191] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000079] ------------ | \--* LCL_VAR int V07 arg7 u:1 N006 ( 5, 5) [000134] ---XG------- \--* IND bool N005 ( 2, 2) [000193] -------N---- \--* ADD byref N003 ( 1, 1) [000080] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] N001 [000079] LCL_VAR V07 arg7 u:1 => $102 {InitVal($47)} VNForCastOper(bool) is $44 N002 [000191] CAST => $29a {Cast($102, $44)} N003 [000080] LCL_VAR V00 this u:1 => $80 {InitVal($40)} N004 [000192] CNS_INT 60 field offset Fseq[k__BackingField] => $146 {LngCns: 60} N005 [000193] ADD => $186 {ADD($80, $146)} VNApplySelectors: VNForHandle(k__BackingField) is $1c6, fieldType is bool VNForMapSelect($244, $1c6):bool returns $348 {$244[$1c6]} VNForMapSelect($348, $80):bool returns $349 {$348[$80]} N006 [000134] IND => N007 [000084] NE => ***** BB07, STMT00021(after) N008 ( 12, 12) [000085] ---XG------- * JTRUE void N007 ( 10, 10) [000084] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000191] ------------ +--* CAST int <- bool <- int $29a N001 ( 3, 2) [000079] ------------ | \--* LCL_VAR int V07 arg7 u:1 $102 N006 ( 5, 5) [000134] ---XG------- \--* IND bool N005 ( 2, 2) [000193] -------N---- \--* ADD byref $186 N003 ( 1, 1) [000080] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] $146 finish(BB07). Succ(BB08). Not yet completed. All preds complete, adding to allDone. Succ(BB13). Not yet completed. Not all preds complete Adding to notallDone, if necessary... The SSA definition for ByrefExposed (#5) at start of BB08 is $244 {244} The SSA definition for GcHeap (#5) at start of BB08 is $244 {244} ***** BB08, STMT00023(before) N008 ( 12, 12) [000092] ---XG------- * JTRUE void N007 ( 10, 10) [000091] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000194] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000086] ------------ | \--* LCL_VAR int V08 arg8 u:1 N006 ( 5, 5) [000136] ---XG------- \--* IND bool N005 ( 2, 2) [000196] -------N---- \--* ADD byref N003 ( 1, 1) [000087] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] N001 [000086] LCL_VAR V08 arg8 u:1 => $103 {InitVal($48)} VNForCastOper(bool) is $44 N002 [000194] CAST => $29f {Cast($103, $44)} N003 [000087] LCL_VAR V00 this u:1 => $80 {InitVal($40)} N004 [000195] CNS_INT 61 field offset Fseq[k__BackingField] => $147 {LngCns: 61} N005 [000196] ADD => $187 {ADD($80, $147)} VNApplySelectors: VNForHandle(k__BackingField) is $1c7, fieldType is bool VNForMapSelect($244, $1c7):bool returns $34c {$244[$1c7]} VNForMapSelect($34c, $80):bool returns $34d {$34c[$80]} N006 [000136] IND => N007 [000091] NE => ***** BB08, STMT00023(after) N008 ( 12, 12) [000092] ---XG------- * JTRUE void N007 ( 10, 10) [000091] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000194] ------------ +--* CAST int <- bool <- int $29f N001 ( 3, 2) [000086] ------------ | \--* LCL_VAR int V08 arg8 u:1 $103 N006 ( 5, 5) [000136] ---XG------- \--* IND bool N005 ( 2, 2) [000196] -------N---- \--* ADD byref $187 N003 ( 1, 1) [000087] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] $147 finish(BB08). Succ(BB09). Not yet completed. All preds complete, adding to allDone. Succ(BB13). Not yet completed. Not all preds complete Adding to notallDone, if necessary... The SSA definition for ByrefExposed (#5) at start of BB09 is $244 {244} The SSA definition for GcHeap (#5) at start of BB09 is $244 {244} ***** BB09, STMT00025(before) N008 ( 12, 12) [000099] ---XG------- * JTRUE void N007 ( 10, 10) [000098] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000197] ------------ +--* CAST int <- bool <- int N001 ( 3, 2) [000093] ------------ | \--* LCL_VAR int V09 arg9 u:1 N006 ( 5, 5) [000138] ---XG------- \--* IND bool N005 ( 2, 2) [000199] -------N---- \--* ADD byref N003 ( 1, 1) [000094] ------------ +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] N001 [000093] LCL_VAR V09 arg9 u:1 => $104 {InitVal($49)} VNForCastOper(bool) is $44 N002 [000197] CAST => $2a4 {Cast($104, $44)} N003 [000094] LCL_VAR V00 this u:1 => $80 {InitVal($40)} N004 [000198] CNS_INT 62 field offset Fseq[k__BackingField] => $148 {LngCns: 62} N005 [000199] ADD => $188 {ADD($80, $148)} VNApplySelectors: VNForHandle(k__BackingField) is $1c8, fieldType is bool VNForMapSelect($244, $1c8):bool returns $350 {$244[$1c8]} VNForMapSelect($350, $80):bool returns $351 {$350[$80]} N006 [000138] IND => N007 [000098] NE => ***** BB09, STMT00025(after) N008 ( 12, 12) [000099] ---XG------- * JTRUE void N007 ( 10, 10) [000098] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000197] ------------ +--* CAST int <- bool <- int $2a4 N001 ( 3, 2) [000093] ------------ | \--* LCL_VAR int V09 arg9 u:1 $104 N006 ( 5, 5) [000138] ---XG------- \--* IND bool N005 ( 2, 2) [000199] -------N---- \--* ADD byref $188 N003 ( 1, 1) [000094] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] $148 finish(BB09). Succ(BB10). Not yet completed. All preds complete, adding to allDone. Succ(BB13). Not yet completed. Not all preds complete Adding to notallDone, if necessary... The SSA definition for ByrefExposed (#5) at start of BB10 is $244 {244} The SSA definition for GcHeap (#5) at start of BB10 is $244 {244} ***** BB10, STMT00027(before) N012 ( 26, 19) [000108] --CXG------- * JTRUE void N011 ( 24, 17) [000107] J-CXG--N---- \--* NE int N009 ( 22, 15) [000105] --CXG------- +--* CAST int <- bool <- int N008 ( 21, 13) [000104] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality N006 ( 4, 4) [000140] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000201] -------N---- | | \--* ADD byref N003 ( 1, 1) [000101] ------------ | | +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000200] ------------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] N007 ( 3, 2) [000100] ------------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 u:1 N010 ( 1, 1) [000106] ------------ \--* CNS_INT int 0 N001 [000203] ARGPLACE => $245 {245} N002 [000202] ARGPLACE => $246 {246} N003 [000101] LCL_VAR V00 this u:1 => $80 {InitVal($40)} N004 [000200] CNS_INT 48 field offset Fseq[k__BackingField] => $149 {LngCns: 48} N005 [000201] ADD => $189 {ADD($80, $149)} VNApplySelectors: VNForHandle(k__BackingField) is $1c9, fieldType is ref VNForMapSelect($244, $1c9):ref returns $209 {$244[$1c9]} VNForMapSelect($209, $80):ref returns $20a {$209[$80]} N006 [000140] IND => N007 [000100] LCL_VAR V10 arg10 u:1 => $83 {InitVal($4a)} VN of ARGPLACE tree [000203] updated to $83 {InitVal($4a)} VN of ARGPLACE tree [000202] updated to fgCurMemoryVN[GcHeap] assigned for CALL at [000104] to VN: $248. N008 [000104] CALL r2r_ind => $3c1 {3c1} VNForCastOper(bool) is $44 N009 [000105] CAST => $2a9 {Cast($3c1, $44)} N010 [000106] CNS_INT 0 => $40 {IntCns 0} N011 [000107] NE => $2aa {NE($2a9, $40)} ***** BB10, STMT00027(after) N012 ( 26, 19) [000108] --CXG------- * JTRUE void N011 ( 24, 17) [000107] J-CXG--N---- \--* NE int $2aa N009 ( 22, 15) [000105] --CXG------- +--* CAST int <- bool <- int $2a9 N008 ( 21, 13) [000104] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 N006 ( 4, 4) [000140] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000201] -------N---- | | \--* ADD byref $189 N003 ( 1, 1) [000101] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] $149 N007 ( 3, 2) [000100] ------------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 u:1 $83 N010 ( 1, 1) [000106] ------------ \--* CNS_INT int 0 $40 finish(BB10). Succ(BB11). Not yet completed. All preds complete, adding to allDone. Succ(BB13). Not yet completed. Not all preds complete Adding to notallDone, if necessary... The SSA definition for ByrefExposed (#6) at start of BB11 is $248 {248} The SSA definition for GcHeap (#6) at start of BB11 is $248 {248} ***** BB11, STMT00030(before) N012 ( 26, 19) [000118] --CXG------- * JTRUE void N011 ( 24, 17) [000117] J-CXG--N---- \--* NE int N009 ( 22, 15) [000115] --CXG------- +--* CAST int <- bool <- int N008 ( 21, 13) [000113] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality N006 ( 4, 4) [000142] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000205] -------N---- | | \--* ADD byref N003 ( 1, 1) [000110] ------------ | | +--* LCL_VAR ref V00 this u:1 N004 ( 1, 1) [000204] ------------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] N007 ( 3, 2) [000109] ------------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 u:1 N010 ( 1, 1) [000116] ------------ \--* CNS_INT int 0 N001 [000207] ARGPLACE => $249 {249} N002 [000206] ARGPLACE => $24a {24a} N003 [000110] LCL_VAR V00 this u:1 => $80 {InitVal($40)} N004 [000204] CNS_INT 24 field offset Fseq[k__BackingField] => $14a {LngCns: 24} N005 [000205] ADD => $18a {ADD($80, $14a)} VNApplySelectors: VNForHandle(k__BackingField) is $1ca, fieldType is ref VNForMapSelect($248, $1ca):ref returns $20d {$248[$1ca]} VNForMapSelect($20d, $80):ref returns $20e {$20d[$80]} N006 [000142] IND => N007 [000109] LCL_VAR V11 arg11 u:1 => $84 {InitVal($4b)} VN of ARGPLACE tree [000207] updated to $84 {InitVal($4b)} VN of ARGPLACE tree [000206] updated to fgCurMemoryVN[GcHeap] assigned for CALL at [000113] to VN: $24c. N008 [000113] CALL r2r_ind => $3c2 {3c2} VNForCastOper(bool) is $44 N009 [000115] CAST => $2ab {Cast($3c2, $44)} N010 [000116] CNS_INT 0 => $40 {IntCns 0} N011 [000117] NE => $2ac {NE($2ab, $40)} ***** BB11, STMT00030(after) N012 ( 26, 19) [000118] --CXG------- * JTRUE void N011 ( 24, 17) [000117] J-CXG--N---- \--* NE int $2ac N009 ( 22, 15) [000115] --CXG------- +--* CAST int <- bool <- int $2ab N008 ( 21, 13) [000113] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 N006 ( 4, 4) [000142] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000205] -------N---- | | \--* ADD byref $18a N003 ( 1, 1) [000110] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] $14a N007 ( 3, 2) [000109] ------------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 u:1 $84 N010 ( 1, 1) [000116] ------------ \--* CNS_INT int 0 $40 finish(BB11). Succ(BB12). Not yet completed. All preds complete, adding to allDone. Succ(BB13). Not yet completed. All preds complete, adding to allDone. Building phi application: $47 = SSA# 7. Building phi application: $46 = SSA# 6. Building phi application: $211 = phi($46, $47). Building phi application: $45 = SSA# 5. Building phi application: $212 = phi($45, $211). Building phi application: $41 = SSA# 1. Building phi application: $213 = phi($41, $212). The SSA definition for GcHeap (#2) at start of BB13 is $214 {PhiMemoryDef($1cb, $213)} ***** BB13, STMT00003(before) N006 ( 8, 7) [000022] -A-XG---R--- * ASG ref N005 ( 3, 2) [000021] D------N---- +--* LCL_VAR ref V13 tmp1 d:2 N004 ( 4, 4) [000007] ---XG------- \--* IND ref N003 ( 2, 2) [000209] -------N---- \--* ADD byref N001 ( 1, 1) [000006] ------------ +--* LCL_VAR ref V00 this u:1 N002 ( 1, 1) [000208] ------------ \--* CNS_INT long 8 field offset Fseq[Syntax] N001 [000006] LCL_VAR V00 this u:1 => $80 {InitVal($40)} N002 [000208] CNS_INT 8 field offset Fseq[Syntax] => $14b {LngCns: 8} N003 [000209] ADD => $18b {ADD($80, $14b)} VNApplySelectors: VNForHandle(Syntax) is $1cc, fieldType is ref VNForMapSelect($214, $1cc):ref returns $217 {$214[$1cc]} VNForMapSelect($217, $80):ref returns $218 {$217[$80]} N004 [000007] IND => N005 [000021] LCL_VAR V13 tmp1 d:2 => N006 [000022] ASG => ***** BB13, STMT00003(after) N006 ( 8, 7) [000022] -A-XG---R--- * ASG ref N005 ( 3, 2) [000021] D------N---- +--* LCL_VAR ref V13 tmp1 d:2 N004 ( 4, 4) [000007] ---XG------- \--* IND ref N003 ( 2, 2) [000209] -------N---- \--* ADD byref $18b N001 ( 1, 1) [000006] ------------ +--* LCL_VAR ref V00 this u:1 $80 N002 ( 1, 1) [000208] ------------ \--* CNS_INT long 8 field offset Fseq[Syntax] $14b --------- ***** BB13, STMT00004(before) N003 ( 18, 8) [000030] -AC-----R--- * ASG ref N002 ( 3, 2) [000029] D------N---- +--* LCL_VAR ref V14 tmp2 d:2 N001 ( 14, 5) [000028] --C--------- \--* CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW N001 [000028] CALL help r2r_ind => $21b {JitReadyToRunNew($1cd, $24f)} N002 [000029] LCL_VAR V14 tmp2 d:2 => $21b {JitReadyToRunNew($1cd, $24f)} N003 [000030] ASG => $21b {JitReadyToRunNew($1cd, $24f)} ***** BB13, STMT00004(after) N003 ( 18, 8) [000030] -AC-----R--- * ASG ref $21b N002 ( 3, 2) [000029] D------N---- +--* LCL_VAR ref V14 tmp2 d:2 $21b N001 ( 14, 5) [000028] --C--------- \--* CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW $21b --------- ***** BB13, STMT00005(before) N033 ( 98, 58) [000032] --CXG------- * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor N006 ( 3, 4) [000211] ------------ arg4 out+20 +--* CAST int <- ubyte <- int N005 ( 2, 2) [000010] ------------ | \--* LCL_VAR int V03 arg3 u:1 (last use) N008 ( 4, 4) [000212] ------------ arg5 out+28 +--* CAST int <- bool <- int N007 ( 3, 2) [000011] ------------ | \--* LCL_VAR int V04 arg4 u:1 (last use) N009 ( 3, 2) [000012] ------------ arg6 out+30 +--* LCL_VAR ref V05 arg5 u:1 (last use) N011 ( 4, 4) [000213] ------------ arg7 out+38 +--* CAST int <- bool <- int N010 ( 3, 2) [000013] ------------ | \--* LCL_VAR int V06 arg6 u:1 (last use) N013 ( 4, 4) [000214] ------------ arg8 out+40 +--* CAST int <- bool <- int N012 ( 3, 2) [000014] ------------ | \--* LCL_VAR int V07 arg7 u:1 (last use) N015 ( 4, 4) [000215] ------------ arg9 out+48 +--* CAST int <- bool <- int N014 ( 3, 2) [000015] ------------ | \--* LCL_VAR int V08 arg8 u:1 (last use) N017 ( 4, 4) [000216] ------------ arg10 out+50 +--* CAST int <- bool <- int N016 ( 3, 2) [000016] ------------ | \--* LCL_VAR int V09 arg9 u:1 (last use) N018 ( 3, 2) [000017] ------------ arg11 out+58 +--* LCL_VAR ref V10 arg10 u:1 (last use) N019 ( 3, 2) [000018] ------------ arg12 out+60 +--* LCL_VAR ref V11 arg11 u:1 (last use) N027 ( 12, 9) [000149] N--XG------- arg13 out+68 +--* NE int N025 ( 7, 7) [000147] ---XG------- | +--* AND int N023 ( 5, 5) [000145] ---XG------- | | +--* IND ubyte N022 ( 2, 2) [000218] -------N---- | | | \--* ADD byref N020 ( 1, 1) [000019] ------------ | | | +--* LCL_VAR ref V00 this u:1 N021 ( 1, 1) [000217] ------------ | | | \--* CNS_INT long 17 field offset Fseq[_attributes] N024 ( 1, 1) [000146] ------------ | | \--* CNS_INT int 1 N026 ( 1, 1) [000148] ------------ | \--* CNS_INT int 0 N029 ( 3, 4) [000210] ------------ arg3 in r9 +--* CAST int <- ubyte <- int N028 ( 2, 2) [000009] ------------ | \--* LCL_VAR int V02 arg2 u:1 (last use) N030 ( 3, 2) [000031] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 u:2 N031 ( 3, 2) [000023] ------------ arg1 in rdx +--* LCL_VAR ref V13 tmp1 u:2 (last use) N032 ( 1, 1) [000008] ------------ arg2 in r8 \--* LCL_VAR ref V01 arg1 u:1 (last use) N001 [000220] ARGPLACE => $251 {251} N002 [000221] ARGPLACE => $252 {252} N003 [000222] ARGPLACE => $253 {253} N004 [000219] ARGPLACE => $3c3 {3c3} N005 [000010] LCL_VAR V03 arg3 u:1 (last use) => $c1 {InitVal($43)} VNForCastOper(ubyte) is $48 N006 [000211] CAST => $289 {Cast($c1, $48)} N007 [000011] LCL_VAR V04 arg4 u:1 (last use) => $100 {InitVal($44)} VNForCastOper(bool) is $44 N008 [000212] CAST => $28e {Cast($100, $44)} N009 [000012] LCL_VAR V05 arg5 u:1 (last use) => $82 {InitVal($45)} N010 [000013] LCL_VAR V06 arg6 u:1 (last use) => $101 {InitVal($46)} VNForCastOper(bool) is $44 N011 [000213] CAST => $295 {Cast($101, $44)} N012 [000014] LCL_VAR V07 arg7 u:1 (last use) => $102 {InitVal($47)} VNForCastOper(bool) is $44 N013 [000214] CAST => $29a {Cast($102, $44)} N014 [000015] LCL_VAR V08 arg8 u:1 (last use) => $103 {InitVal($48)} VNForCastOper(bool) is $44 N015 [000215] CAST => $29f {Cast($103, $44)} N016 [000016] LCL_VAR V09 arg9 u:1 (last use) => $104 {InitVal($49)} VNForCastOper(bool) is $44 N017 [000216] CAST => $2a4 {Cast($104, $44)} N018 [000017] LCL_VAR V10 arg10 u:1 (last use) => $83 {InitVal($4a)} N019 [000018] LCL_VAR V11 arg11 u:1 (last use) => $84 {InitVal($4b)} N020 [000019] LCL_VAR V00 this u:1 => $80 {InitVal($40)} N021 [000217] CNS_INT 17 field offset Fseq[_attributes] => $14c {LngCns: 17} N022 [000218] ADD => $18c {ADD($80, $14c)} VNApplySelectors: VNForHandle(_attributes) is $1ce, fieldType is ubyte VNForMapSelect($214, $1ce):ubyte returns $2ca {$214[$1ce]} VNForMapSelect($2ca, $80):ubyte returns $2cb {$2ca[$80]} N023 [000145] IND => N024 [000146] CNS_INT 1 => $41 {IntCns 1} N025 [000147] AND => N026 [000148] CNS_INT 0 => $40 {IntCns 0} N027 [000149] NE => N028 [000009] LCL_VAR V02 arg2 u:1 (last use) => $c0 {InitVal($42)} VNForCastOper(ubyte) is $48 N029 [000210] CAST => $284 {Cast($c0, $48)} N030 [000031] LCL_VAR V14 tmp2 u:2 => $21b {JitReadyToRunNew($1cd, $24f)} N031 [000023] LCL_VAR V13 tmp1 u:2 (last use) => N032 [000008] LCL_VAR V01 arg1 u:1 (last use) => $81 {InitVal($41)} VN of ARGPLACE tree [000221] updated to $21b {JitReadyToRunNew($1cd, $24f)} VN of ARGPLACE tree [000222] updated to VN of ARGPLACE tree [000219] updated to $81 {InitVal($41)} fgCurMemoryVN[GcHeap] assigned for CALL at [000032] to VN: $254. N033 [000032] CALL r2r_ind => $VN.Void ***** BB13, STMT00005(after) N033 ( 98, 58) [000032] --CXG------- * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor $VN.Void N006 ( 3, 4) [000211] ------------ arg4 out+20 +--* CAST int <- ubyte <- int $289 N005 ( 2, 2) [000010] ------------ | \--* LCL_VAR int V03 arg3 u:1 (last use) $c1 N008 ( 4, 4) [000212] ------------ arg5 out+28 +--* CAST int <- bool <- int $28e N007 ( 3, 2) [000011] ------------ | \--* LCL_VAR int V04 arg4 u:1 (last use) $100 N009 ( 3, 2) [000012] ------------ arg6 out+30 +--* LCL_VAR ref V05 arg5 u:1 (last use) $82 N011 ( 4, 4) [000213] ------------ arg7 out+38 +--* CAST int <- bool <- int $295 N010 ( 3, 2) [000013] ------------ | \--* LCL_VAR int V06 arg6 u:1 (last use) $101 N013 ( 4, 4) [000214] ------------ arg8 out+40 +--* CAST int <- bool <- int $29a N012 ( 3, 2) [000014] ------------ | \--* LCL_VAR int V07 arg7 u:1 (last use) $102 N015 ( 4, 4) [000215] ------------ arg9 out+48 +--* CAST int <- bool <- int $29f N014 ( 3, 2) [000015] ------------ | \--* LCL_VAR int V08 arg8 u:1 (last use) $103 N017 ( 4, 4) [000216] ------------ arg10 out+50 +--* CAST int <- bool <- int $2a4 N016 ( 3, 2) [000016] ------------ | \--* LCL_VAR int V09 arg9 u:1 (last use) $104 N018 ( 3, 2) [000017] ------------ arg11 out+58 +--* LCL_VAR ref V10 arg10 u:1 (last use) $83 N019 ( 3, 2) [000018] ------------ arg12 out+60 +--* LCL_VAR ref V11 arg11 u:1 (last use) $84 N027 ( 12, 9) [000149] N--XG------- arg13 out+68 +--* NE int N025 ( 7, 7) [000147] ---XG------- | +--* AND int N023 ( 5, 5) [000145] ---XG------- | | +--* IND ubyte N022 ( 2, 2) [000218] -------N---- | | | \--* ADD byref $18c N020 ( 1, 1) [000019] ------------ | | | +--* LCL_VAR ref V00 this u:1 $80 N021 ( 1, 1) [000217] ------------ | | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N024 ( 1, 1) [000146] ------------ | | \--* CNS_INT int 1 $41 N026 ( 1, 1) [000148] ------------ | \--* CNS_INT int 0 $40 N029 ( 3, 4) [000210] ------------ arg3 in r9 +--* CAST int <- ubyte <- int $284 N028 ( 2, 2) [000009] ------------ | \--* LCL_VAR int V02 arg2 u:1 (last use) $c0 N030 ( 3, 2) [000031] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 u:2 $21b N031 ( 3, 2) [000023] ------------ arg1 in rdx +--* LCL_VAR ref V13 tmp1 u:2 (last use) N032 ( 1, 1) [000008] ------------ arg2 in r8 \--* LCL_VAR ref V01 arg1 u:1 (last use) $81 --------- ***** BB13, STMT00034(before) N010 ( 16, 12) [000171] -A-XG---R--- * ASG bool N009 ( 3, 2) [000170] D------N---- +--* LCL_VAR int V15 tmp3 d:2 N008 ( 12, 9) [000155] N--XG------- \--* NE int N006 ( 7, 7) [000153] ---XG------- +--* AND int N004 ( 5, 5) [000151] ---XG------- | +--* IND ubyte N003 ( 2, 2) [000224] -------N---- | | \--* ADD byref N001 ( 1, 1) [000035] ------------ | | +--* LCL_VAR ref V00 this u:1 (last use) N002 ( 1, 1) [000223] ------------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] N005 ( 1, 1) [000152] ------------ | \--* CNS_INT int 2 N007 ( 1, 1) [000154] ------------ \--* CNS_INT int 0 N001 [000035] LCL_VAR V00 this u:1 (last use) => $80 {InitVal($40)} N002 [000223] CNS_INT 17 field offset Fseq[_attributes] => $14c {LngCns: 17} N003 [000224] ADD => $18c {ADD($80, $14c)} VNApplySelectors: VNForHandle(_attributes) is $1ce, fieldType is ubyte VNForMapSelect($254, $1ce):ubyte returns $2ce {$254[$1ce]} VNForMapSelect($2ce, $80):ubyte returns $2cf {$2ce[$80]} N004 [000151] IND => N005 [000152] CNS_INT 2 => $42 {IntCns 2} N006 [000153] AND => N007 [000154] CNS_INT 0 => $40 {IntCns 0} N008 [000155] NE => N009 [000170] LCL_VAR V15 tmp3 d:2 => N010 [000171] ASG => ***** BB13, STMT00034(after) N010 ( 16, 12) [000171] -A-XG---R--- * ASG bool N009 ( 3, 2) [000170] D------N---- +--* LCL_VAR int V15 tmp3 d:2 N008 ( 12, 9) [000155] N--XG------- \--* NE int N006 ( 7, 7) [000153] ---XG------- +--* AND int N004 ( 5, 5) [000151] ---XG------- | +--* IND ubyte N003 ( 2, 2) [000224] -------N---- | | \--* ADD byref $18c N001 ( 1, 1) [000035] ------------ | | +--* LCL_VAR ref V00 this u:1 (last use) $80 N002 ( 1, 1) [000223] ------------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000152] ------------ | \--* CNS_INT int 2 $42 N007 ( 1, 1) [000154] ------------ \--* CNS_INT int 0 $40 --------- ***** BB13, STMT00035(before) N002 ( 4, 3) [000169] ---X-------- * NULLCHECK byte N001 ( 3, 2) [000168] ------------ \--* LCL_VAR ref V14 tmp2 u:2 N001 [000168] LCL_VAR V14 tmp2 u:2 => $21b {JitReadyToRunNew($1cd, $24f)} N002 [000169] NULLCHECK => $21d {norm=$3 {3}, exc=$21c {NullPtrExc($21b)}} ***** BB13, STMT00035(after) N002 ( 4, 3) [000169] ---X-------- * NULLCHECK byte $21d N001 ( 3, 2) [000168] ------------ \--* LCL_VAR ref V14 tmp2 u:2 $21b --------- ***** BB13, STMT00032(before) N004 ( 7, 6) [000161] ------------ * JTRUE void N003 ( 5, 4) [000160] J------N---- \--* EQ int N001 ( 3, 2) [000158] ------------ +--* LCL_VAR int V15 tmp3 u:2 (last use) N002 ( 1, 1) [000159] ------------ \--* CNS_INT int 0 N001 [000158] LCL_VAR V15 tmp3 u:2 (last use) => N002 [000159] CNS_INT 0 => $40 {IntCns 0} N003 [000160] EQ => ***** BB13, STMT00032(after) N004 ( 7, 6) [000161] ------------ * JTRUE void N003 ( 5, 4) [000160] J------N---- \--* EQ int N001 ( 3, 2) [000158] ------------ +--* LCL_VAR int V15 tmp3 u:2 (last use) N002 ( 1, 1) [000159] ------------ \--* CNS_INT int 0 $40 finish(BB13). Succ(BB14). Not yet completed. All preds complete, adding to allDone. Succ(BB15). Not yet completed. Not all preds complete Adding to notallDone, if necessary... Was necessary. The SSA definition for ByrefExposed (#3) at start of BB14 is $254 {254} The SSA definition for GcHeap (#3) at start of BB14 is $254 {254} ***** BB14, STMT00033(before) N011 ( 17, 15) [000167] -A-XG---R--- * ASG ubyte N010 ( 7, 6) [000166] D--XG--N---- +--* IND ubyte N009 ( 4, 3) [000226] -------N---- | \--* ADD byref N007 ( 3, 2) [000034] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 N008 ( 1, 1) [000225] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] N006 ( 9, 8) [000165] ---XG------- \--* OR int N004 ( 7, 6) [000163] ---XG------- +--* IND ubyte N003 ( 4, 3) [000228] -------N---- | \--* ADD byref N001 ( 3, 2) [000162] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 N002 ( 1, 1) [000227] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] N005 ( 1, 1) [000164] ------------ \--* CNS_INT int 2 N001 [000162] LCL_VAR V14 tmp2 u:2 => $21b {JitReadyToRunNew($1cd, $24f)} N002 [000227] CNS_INT 17 field offset Fseq[_attributes] => $14c {LngCns: 17} N003 [000228] ADD => $18d {ADD($14c, $21b)} VNApplySelectors: VNForHandle(_attributes) is $1ce, fieldType is ubyte VNForMapSelect($254, $1ce):ubyte returns $2ce {$254[$1ce]} VNForMapSelect($2ce, $21b):ubyte returns $2d2 {$2ce[$21b]} N004 [000163] IND => N005 [000164] CNS_INT 2 => $42 {IntCns 2} N006 [000165] OR => N007 [000034] LCL_VAR V14 tmp2 u:2 => $21b {JitReadyToRunNew($1cd, $24f)} N008 [000225] CNS_INT 17 field offset Fseq[_attributes] => $14c {LngCns: 17} N009 [000226] ADD => $18d {ADD($14c, $21b)} VNForCastOper(ubyte) is $48 VNApplySelectors: VNForHandle(_attributes) is $1ce, fieldType is ubyte VNForMapSelect($254, $1ce):ubyte returns $2ce {$254[$1ce]} VNForMapSelect($2ce, $21b):ubyte returns $2d2 {$2ce[$21b]} VNForMapStore($2ce, $21b, $404):ubyte returns $440 {$2ce[$21b := $404]} VNApplySelectorsAssign: VNForHandle(_attributes) is $1ce, fieldType is ubyte VNForMapStore($254, $1ce, $440):ubyte returns $441 {$254[$1ce := $440]} fgCurMemoryVN[GcHeap] assigned for StoreField at [000167] to VN: $441. N011 [000167] ASG => $VN.Void ***** BB14, STMT00033(after) N011 ( 17, 15) [000167] -A-XG---R--- * ASG ubyte $VN.Void N010 ( 7, 6) [000166] D--XG--N---- +--* IND ubyte $404 N009 ( 4, 3) [000226] -------N---- | \--* ADD byref $18d N007 ( 3, 2) [000034] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 $21b N008 ( 1, 1) [000225] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N006 ( 9, 8) [000165] ---XG------- \--* OR int N004 ( 7, 6) [000163] ---XG------- +--* IND ubyte N003 ( 4, 3) [000228] -------N---- | \--* ADD byref $18d N001 ( 3, 2) [000162] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 $21b N002 ( 1, 1) [000227] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000164] ------------ \--* CNS_INT int 2 $42 finish(BB14). Succ(BB15). Not yet completed. All preds complete, adding to allDone. The SSA definition for ByrefExposed (#3) at start of BB15 is $254 {254} The SSA definition for GcHeap (#3) at start of BB15 is $254 {254} ***** BB15, STMT00008(before) N002 ( 4, 3) [000040] ------------ * RETURN ref N001 ( 3, 2) [000033] ------------ \--* LCL_VAR ref V14 tmp2 u:2 (last use) N001 [000033] LCL_VAR V14 tmp2 u:2 (last use) => $21b {JitReadyToRunNew($1cd, $24f)} N002 [000040] RETURN => $255 {255} ***** BB15, STMT00008(after) N002 ( 4, 3) [000040] ------------ * RETURN ref $255 N001 ( 3, 2) [000033] ------------ \--* LCL_VAR ref V14 tmp2 u:2 (last use) $21b finish(BB15). The SSA definition for ByrefExposed (#7) at start of BB12 is $24c {24c} The SSA definition for GcHeap (#7) at start of BB12 is $24c {24c} ***** BB12, STMT00031(before) N002 ( 2, 2) [000120] ------------ * RETURN ref N001 ( 1, 1) [000119] ------------ \--* LCL_VAR ref V00 this u:1 (last use) N001 [000119] LCL_VAR V00 this u:1 (last use) => $80 {InitVal($40)} N002 [000120] RETURN => $256 {256} ***** BB12, STMT00031(after) N002 ( 2, 2) [000120] ------------ * RETURN ref $256 N001 ( 1, 1) [000119] ------------ \--* LCL_VAR ref V00 this u:1 (last use) $80 finish(BB12). *************** Finishing PHASE Do value numbering *************** Starting PHASE Hoist loop code *************** Finishing PHASE Hoist loop code *************** Starting PHASE VN based copy prop *************** In optVnCopyProp() Copy Assertion for BB01 curSsaName stack: { } Copy Assertion for BB13 curSsaName stack: { 0-[000001]:V00 1-[000000]:V01 } Live vars: {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} => {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11 V13} Live vars: {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11 V13} => {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11 V13 V14} Live vars: {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11 V13 V14} => {V00 V01 V02 V04 V05 V06 V07 V08 V09 V10 V11 V13 V14} Live vars: {V00 V01 V02 V04 V05 V06 V07 V08 V09 V10 V11 V13 V14} => {V00 V01 V02 V05 V06 V07 V08 V09 V10 V11 V13 V14} Live vars: {V00 V01 V02 V05 V06 V07 V08 V09 V10 V11 V13 V14} => {V00 V01 V02 V06 V07 V08 V09 V10 V11 V13 V14} Live vars: {V00 V01 V02 V06 V07 V08 V09 V10 V11 V13 V14} => {V00 V01 V02 V07 V08 V09 V10 V11 V13 V14} Live vars: {V00 V01 V02 V07 V08 V09 V10 V11 V13 V14} => {V00 V01 V02 V08 V09 V10 V11 V13 V14} Live vars: {V00 V01 V02 V08 V09 V10 V11 V13 V14} => {V00 V01 V02 V09 V10 V11 V13 V14} Live vars: {V00 V01 V02 V09 V10 V11 V13 V14} => {V00 V01 V02 V10 V11 V13 V14} Live vars: {V00 V01 V02 V10 V11 V13 V14} => {V00 V01 V02 V11 V13 V14} Live vars: {V00 V01 V02 V11 V13 V14} => {V00 V01 V02 V13 V14} Live vars: {V00 V01 V02 V13 V14} => {V00 V01 V13 V14} Live vars: {V00 V01 V13 V14} => {V00 V01 V14} Live vars: {V00 V01 V14} => {V00 V14} Live vars: {V00 V14} => {V14} Live vars: {V14} => {V14 V15} Live vars: {V14 V15} => {V14} Copy Assertion for BB15 curSsaName stack: { 0-[000001]:V00 1-[000000]:V01 2-[000009]:V02 3-[000010]:V03 4-[000011]:V04 5-[000012]:V05 6-[000013]:V06 7-[000014]:V07 8-[000015]:V08 9-[000016]:V09 10-[000017]:V10 11-[000018]:V11 13-[000021]:V13 14-[000029]:V14 15-[000170]:V15 } Live vars: {V14} => {} Copy Assertion for BB14 curSsaName stack: { 0-[000001]:V00 1-[000000]:V01 2-[000009]:V02 3-[000010]:V03 4-[000011]:V04 5-[000012]:V05 6-[000013]:V06 7-[000014]:V07 8-[000015]:V08 9-[000016]:V09 10-[000017]:V10 11-[000018]:V11 13-[000021]:V13 14-[000029]:V14 15-[000170]:V15 } Copy Assertion for BB02 curSsaName stack: { 0-[000001]:V00 1-[000000]:V01 2-[000009]:V02 3-[000010]:V03 4-[000011]:V04 5-[000012]:V05 6-[000013]:V06 7-[000014]:V07 8-[000015]:V08 9-[000016]:V09 10-[000017]:V10 11-[000018]:V11 } Copy Assertion for BB03 curSsaName stack: { 0-[000001]:V00 1-[000000]:V01 2-[000009]:V02 3-[000010]:V03 4-[000011]:V04 5-[000012]:V05 6-[000013]:V06 7-[000014]:V07 8-[000015]:V08 9-[000016]:V09 10-[000017]:V10 11-[000018]:V11 } Copy Assertion for BB04 curSsaName stack: { 0-[000001]:V00 1-[000000]:V01 2-[000009]:V02 3-[000010]:V03 4-[000011]:V04 5-[000012]:V05 6-[000013]:V06 7-[000014]:V07 8-[000015]:V08 9-[000016]:V09 10-[000017]:V10 11-[000018]:V11 } Copy Assertion for BB05 curSsaName stack: { 0-[000001]:V00 1-[000000]:V01 2-[000009]:V02 3-[000010]:V03 4-[000011]:V04 5-[000012]:V05 6-[000013]:V06 7-[000014]:V07 8-[000015]:V08 9-[000016]:V09 10-[000017]:V10 11-[000018]:V11 } Copy Assertion for BB06 curSsaName stack: { 0-[000001]:V00 1-[000000]:V01 2-[000009]:V02 3-[000010]:V03 4-[000011]:V04 5-[000012]:V05 6-[000013]:V06 7-[000014]:V07 8-[000015]:V08 9-[000016]:V09 10-[000017]:V10 11-[000018]:V11 } Copy Assertion for BB07 curSsaName stack: { 0-[000001]:V00 1-[000000]:V01 2-[000009]:V02 3-[000010]:V03 4-[000011]:V04 5-[000012]:V05 6-[000013]:V06 7-[000014]:V07 8-[000015]:V08 9-[000016]:V09 10-[000017]:V10 11-[000018]:V11 } Copy Assertion for BB08 curSsaName stack: { 0-[000001]:V00 1-[000000]:V01 2-[000009]:V02 3-[000010]:V03 4-[000011]:V04 5-[000012]:V05 6-[000013]:V06 7-[000014]:V07 8-[000015]:V08 9-[000016]:V09 10-[000017]:V10 11-[000018]:V11 } Copy Assertion for BB09 curSsaName stack: { 0-[000001]:V00 1-[000000]:V01 2-[000009]:V02 3-[000010]:V03 4-[000011]:V04 5-[000012]:V05 6-[000013]:V06 7-[000014]:V07 8-[000015]:V08 9-[000016]:V09 10-[000017]:V10 11-[000018]:V11 } Copy Assertion for BB10 curSsaName stack: { 0-[000001]:V00 1-[000000]:V01 2-[000009]:V02 3-[000010]:V03 4-[000011]:V04 5-[000012]:V05 6-[000013]:V06 7-[000014]:V07 8-[000015]:V08 9-[000016]:V09 10-[000017]:V10 11-[000018]:V11 } Copy Assertion for BB11 curSsaName stack: { 0-[000001]:V00 1-[000000]:V01 2-[000009]:V02 3-[000010]:V03 4-[000011]:V04 5-[000012]:V05 6-[000013]:V06 7-[000014]:V07 8-[000015]:V08 9-[000016]:V09 10-[000017]:V10 11-[000018]:V11 } Copy Assertion for BB12 curSsaName stack: { 0-[000001]:V00 1-[000000]:V01 2-[000009]:V02 3-[000010]:V03 4-[000011]:V04 5-[000012]:V05 6-[000013]:V06 7-[000014]:V07 8-[000015]:V08 9-[000016]:V09 10-[000017]:V10 11-[000018]:V11 } Live vars: {V00} => {} *************** Finishing PHASE VN based copy prop *************** Starting PHASE Optimize Valnum CSEs *************** In optOptimizeCSEs() Blocks/Trees at start of optOptimizeCSE phase ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB13 ( cond ) i label target IBC BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB13 ( cond ) i IBC BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB13 ( cond ) i IBC BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB13 ( cond ) i IBC BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB13 ( cond ) i hascall gcsafe IBC BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB13 ( cond ) i gcsafe IBC BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB13 ( cond ) i gcsafe IBC BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB13 ( cond ) i gcsafe IBC BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB13 ( cond ) i gcsafe IBC BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB13 ( cond ) i hascall gcsafe IBC BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB13 ( cond ) i hascall gcsafe IBC BB12 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target gcsafe IBC BB13 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB15 ( cond ) i label target hascall gcsafe newobj nullcheck IBC BB14 [0027] 1 BB13 0.09 [000..000) i internal gcsafe BB15 [0028] 2 BB13,BB14 0.17 14831 [000..000) (return) i internal label target gcsafe newobj nullcheck IBC ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..009) -> BB13 (cond), preds={} succs={BB02,BB13} ***** BB01 STMT00001 (IL ???... ???) N007 ( 8, 8) [000005] ---XG------- * JTRUE void N006 ( 6, 6) [000004] N--XG--N-U-- \--* NE int N001 ( 1, 1) [000000] ------------ +--* LCL_VAR ref V01 arg1 u:1 $81 N005 ( 4, 4) [000121] ---XG------- \--* IND ref N004 ( 2, 2) [000174] -------N---- \--* ADD byref $180 N002 ( 1, 1) [000001] ------------ +--* LCL_VAR ref V00 this u:1 $80 N003 ( 1, 1) [000173] ------------ \--* CNS_INT long 32 field offset Fseq[k__BackingField] $140 ------------ BB02 [009..012) -> BB13 (cond), preds={BB01} succs={BB03,BB13} ***** BB02 STMT00010 (IL ???... ???) N008 ( 11, 12) [000047] ---XG------- * JTRUE void N007 ( 9, 10) [000046] N--XG--N-U-- \--* NE int N002 ( 3, 4) [000175] ------------ +--* CAST int <- ubyte <- int $284 N001 ( 2, 2) [000041] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0 N006 ( 5, 5) [000123] ---XG------- \--* IND ubyte N005 ( 2, 2) [000177] -------N---- \--* ADD byref $181 N003 ( 1, 1) [000042] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] $141 ------------ BB03 [012..01B) -> BB13 (cond), preds={BB02} succs={BB04,BB13} ***** BB03 STMT00012 (IL ???... ???) N008 ( 11, 12) [000054] ---XG------- * JTRUE void N007 ( 9, 10) [000053] N--XG--N-U-- \--* NE int N002 ( 3, 4) [000178] ------------ +--* CAST int <- ubyte <- int $289 N001 ( 2, 2) [000048] ------------ | \--* LCL_VAR int V03 arg3 u:1 $c1 N006 ( 5, 5) [000125] ---XG------- \--* IND ubyte N005 ( 2, 2) [000180] -------N---- \--* ADD byref $182 N003 ( 1, 1) [000049] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] $142 ------------ BB04 [01B..025) -> BB13 (cond), preds={BB03} succs={BB05,BB13} ***** BB04 STMT00014 (IL ???... ???) N008 ( 12, 12) [000061] ---XG------- * JTRUE void N007 ( 10, 10) [000060] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000181] ------------ +--* CAST int <- bool <- int $28e N001 ( 3, 2) [000055] ------------ | \--* LCL_VAR int V04 arg4 u:1 $100 N006 ( 5, 5) [000127] ---XG------- \--* IND bool N005 ( 2, 2) [000183] -------N---- \--* ADD byref $183 N003 ( 1, 1) [000056] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] $143 ------------ BB05 [025..034) -> BB13 (cond), preds={BB04} succs={BB06,BB13} ***** BB05 STMT00017 (IL ???... ???) N012 ( 26, 19) [000071] --CXG------- * JTRUE void N011 ( 24, 17) [000070] J-CXG--N---- \--* NE int $294 N009 ( 22, 15) [000068] --CXG------- +--* CAST int <- bool <- int $293 N008 ( 21, 13) [000066] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 N006 ( 4, 4) [000129] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000185] -------N---- | | \--* ADD byref $184 N003 ( 1, 1) [000063] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] $144 N007 ( 3, 2) [000062] ------------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 u:1 $82 N010 ( 1, 1) [000069] ------------ \--* CNS_INT int 0 $40 ------------ BB06 [034..03E) -> BB13 (cond), preds={BB05} succs={BB07,BB13} ***** BB06 STMT00019 (IL ???... ???) N008 ( 12, 12) [000078] ---XG------- * JTRUE void N007 ( 10, 10) [000077] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000188] ------------ +--* CAST int <- bool <- int $295 N001 ( 3, 2) [000072] ------------ | \--* LCL_VAR int V06 arg6 u:1 $101 N006 ( 5, 5) [000132] ---XG------- \--* IND bool N005 ( 2, 2) [000190] -------N---- \--* ADD byref $185 N003 ( 1, 1) [000073] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] $145 ------------ BB07 [03E..048) -> BB13 (cond), preds={BB06} succs={BB08,BB13} ***** BB07 STMT00021 (IL ???... ???) N008 ( 12, 12) [000085] ---XG------- * JTRUE void N007 ( 10, 10) [000084] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000191] ------------ +--* CAST int <- bool <- int $29a N001 ( 3, 2) [000079] ------------ | \--* LCL_VAR int V07 arg7 u:1 $102 N006 ( 5, 5) [000134] ---XG------- \--* IND bool N005 ( 2, 2) [000193] -------N---- \--* ADD byref $186 N003 ( 1, 1) [000080] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] $146 ------------ BB08 [048..052) -> BB13 (cond), preds={BB07} succs={BB09,BB13} ***** BB08 STMT00023 (IL ???... ???) N008 ( 12, 12) [000092] ---XG------- * JTRUE void N007 ( 10, 10) [000091] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000194] ------------ +--* CAST int <- bool <- int $29f N001 ( 3, 2) [000086] ------------ | \--* LCL_VAR int V08 arg8 u:1 $103 N006 ( 5, 5) [000136] ---XG------- \--* IND bool N005 ( 2, 2) [000196] -------N---- \--* ADD byref $187 N003 ( 1, 1) [000087] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] $147 ------------ BB09 [052..05C) -> BB13 (cond), preds={BB08} succs={BB10,BB13} ***** BB09 STMT00025 (IL ???... ???) N008 ( 12, 12) [000099] ---XG------- * JTRUE void N007 ( 10, 10) [000098] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000197] ------------ +--* CAST int <- bool <- int $2a4 N001 ( 3, 2) [000093] ------------ | \--* LCL_VAR int V09 arg9 u:1 $104 N006 ( 5, 5) [000138] ---XG------- \--* IND bool N005 ( 2, 2) [000199] -------N---- \--* ADD byref $188 N003 ( 1, 1) [000094] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] $148 ------------ BB10 [05C..06B) -> BB13 (cond), preds={BB09} succs={BB11,BB13} ***** BB10 STMT00027 (IL ???... ???) N012 ( 26, 19) [000108] --CXG------- * JTRUE void N011 ( 24, 17) [000107] J-CXG--N---- \--* NE int $2aa N009 ( 22, 15) [000105] --CXG------- +--* CAST int <- bool <- int $2a9 N008 ( 21, 13) [000104] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 N006 ( 4, 4) [000140] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000201] -------N---- | | \--* ADD byref $189 N003 ( 1, 1) [000101] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] $149 N007 ( 3, 2) [000100] ------------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 u:1 $83 N010 ( 1, 1) [000106] ------------ \--* CNS_INT int 0 $40 ------------ BB11 [06B..07A) -> BB13 (cond), preds={BB10} succs={BB12,BB13} ***** BB11 STMT00030 (IL ???... ???) N012 ( 26, 19) [000118] --CXG------- * JTRUE void N011 ( 24, 17) [000117] J-CXG--N---- \--* NE int $2ac N009 ( 22, 15) [000115] --CXG------- +--* CAST int <- bool <- int $2ab N008 ( 21, 13) [000113] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 N006 ( 4, 4) [000142] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000205] -------N---- | | \--* ADD byref $18a N003 ( 1, 1) [000110] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] $14a N007 ( 3, 2) [000109] ------------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 u:1 $84 N010 ( 1, 1) [000116] ------------ \--* CNS_INT int 0 $40 ------------ BB12 [0AB..0AD) (return), preds={BB11} succs={} ***** BB12 STMT00031 (IL 0x0AB...0x0AC) N002 ( 2, 2) [000120] ------------ * RETURN ref $256 N001 ( 1, 1) [000119] ------------ \--* LCL_VAR ref V00 this u:1 (last use) $80 ------------ BB13 [000..0AB) -> BB15 (cond), preds={BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11} succs={BB14,BB15} ***** BB13 STMT00003 (IL 0x07A...0x0AA) N006 ( 8, 7) [000022] -A-XG---R--- * ASG ref N005 ( 3, 2) [000021] D------N---- +--* LCL_VAR ref V13 tmp1 d:2 N004 ( 4, 4) [000007] ---XG------- \--* IND ref N003 ( 2, 2) [000209] -------N---- \--* ADD byref $18b N001 ( 1, 1) [000006] ------------ +--* LCL_VAR ref V00 this u:1 $80 N002 ( 1, 1) [000208] ------------ \--* CNS_INT long 8 field offset Fseq[Syntax] $14b ***** BB13 STMT00004 (IL ???... ???) N003 ( 18, 8) [000030] -AC-----R--- * ASG ref $21b N002 ( 3, 2) [000029] D------N---- +--* LCL_VAR ref V14 tmp2 d:2 $21b N001 ( 14, 5) [000028] --C--------- \--* CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW $21b ***** BB13 STMT00005 (IL ???... ???) N033 ( 98, 58) [000032] --CXG------- * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor $VN.Void N006 ( 3, 4) [000211] ------------ arg4 out+20 +--* CAST int <- ubyte <- int $289 N005 ( 2, 2) [000010] ------------ | \--* LCL_VAR int V03 arg3 u:1 (last use) $c1 N008 ( 4, 4) [000212] ------------ arg5 out+28 +--* CAST int <- bool <- int $28e N007 ( 3, 2) [000011] ------------ | \--* LCL_VAR int V04 arg4 u:1 (last use) $100 N009 ( 3, 2) [000012] ------------ arg6 out+30 +--* LCL_VAR ref V05 arg5 u:1 (last use) $82 N011 ( 4, 4) [000213] ------------ arg7 out+38 +--* CAST int <- bool <- int $295 N010 ( 3, 2) [000013] ------------ | \--* LCL_VAR int V06 arg6 u:1 (last use) $101 N013 ( 4, 4) [000214] ------------ arg8 out+40 +--* CAST int <- bool <- int $29a N012 ( 3, 2) [000014] ------------ | \--* LCL_VAR int V07 arg7 u:1 (last use) $102 N015 ( 4, 4) [000215] ------------ arg9 out+48 +--* CAST int <- bool <- int $29f N014 ( 3, 2) [000015] ------------ | \--* LCL_VAR int V08 arg8 u:1 (last use) $103 N017 ( 4, 4) [000216] ------------ arg10 out+50 +--* CAST int <- bool <- int $2a4 N016 ( 3, 2) [000016] ------------ | \--* LCL_VAR int V09 arg9 u:1 (last use) $104 N018 ( 3, 2) [000017] ------------ arg11 out+58 +--* LCL_VAR ref V10 arg10 u:1 (last use) $83 N019 ( 3, 2) [000018] ------------ arg12 out+60 +--* LCL_VAR ref V11 arg11 u:1 (last use) $84 N027 ( 12, 9) [000149] N--XG------- arg13 out+68 +--* NE int N025 ( 7, 7) [000147] ---XG------- | +--* AND int N023 ( 5, 5) [000145] ---XG------- | | +--* IND ubyte N022 ( 2, 2) [000218] -------N---- | | | \--* ADD byref $18c N020 ( 1, 1) [000019] ------------ | | | +--* LCL_VAR ref V00 this u:1 $80 N021 ( 1, 1) [000217] ------------ | | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N024 ( 1, 1) [000146] ------------ | | \--* CNS_INT int 1 $41 N026 ( 1, 1) [000148] ------------ | \--* CNS_INT int 0 $40 N029 ( 3, 4) [000210] ------------ arg3 in r9 +--* CAST int <- ubyte <- int $284 N028 ( 2, 2) [000009] ------------ | \--* LCL_VAR int V02 arg2 u:1 (last use) $c0 N030 ( 3, 2) [000031] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 u:2 $21b N031 ( 3, 2) [000023] ------------ arg1 in rdx +--* LCL_VAR ref V13 tmp1 u:2 (last use) N032 ( 1, 1) [000008] ------------ arg2 in r8 \--* LCL_VAR ref V01 arg1 u:1 (last use) $81 ***** BB13 STMT00034 (IL ???... ???) N010 ( 16, 12) [000171] -A-XG---R--- * ASG bool N009 ( 3, 2) [000170] D------N---- +--* LCL_VAR int V15 tmp3 d:2 N008 ( 12, 9) [000155] N--XG------- \--* NE int N006 ( 7, 7) [000153] ---XG------- +--* AND int N004 ( 5, 5) [000151] ---XG------- | +--* IND ubyte N003 ( 2, 2) [000224] -------N---- | | \--* ADD byref $18c N001 ( 1, 1) [000035] ------------ | | +--* LCL_VAR ref V00 this u:1 (last use) $80 N002 ( 1, 1) [000223] ------------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000152] ------------ | \--* CNS_INT int 2 $42 N007 ( 1, 1) [000154] ------------ \--* CNS_INT int 0 $40 ***** BB13 STMT00035 (IL ???... ???) N002 ( 4, 3) [000169] ---X-------- * NULLCHECK byte $21d N001 ( 3, 2) [000168] ------------ \--* LCL_VAR ref V14 tmp2 u:2 $21b ***** BB13 STMT00032 (IL ???... ???) N004 ( 7, 6) [000161] ------------ * JTRUE void N003 ( 5, 4) [000160] J------N---- \--* EQ int N001 ( 3, 2) [000158] ------------ +--* LCL_VAR int V15 tmp3 u:2 (last use) N002 ( 1, 1) [000159] ------------ \--* CNS_INT int 0 $40 ------------ BB14 [000..000), preds={BB13} succs={BB15} ***** BB14 STMT00033 (IL ???... ???) N011 ( 17, 15) [000167] -A-XG---R--- * ASG ubyte $VN.Void N010 ( 7, 6) [000166] D--XG--N---- +--* IND ubyte $404 N009 ( 4, 3) [000226] -------N---- | \--* ADD byref $18d N007 ( 3, 2) [000034] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 $21b N008 ( 1, 1) [000225] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N006 ( 9, 8) [000165] ---XG------- \--* OR int N004 ( 7, 6) [000163] ---XG------- +--* IND ubyte N003 ( 4, 3) [000228] -------N---- | \--* ADD byref $18d N001 ( 3, 2) [000162] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 $21b N002 ( 1, 1) [000227] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000164] ------------ \--* CNS_INT int 2 $42 ------------ BB15 [000..000) (return), preds={BB13,BB14} succs={} ***** BB15 STMT00008 (IL 0x0AA... ???) N002 ( 4, 3) [000040] ------------ * RETURN ref $255 N001 ( 3, 2) [000033] ------------ \--* LCL_VAR ref V14 tmp2 u:2 (last use) $21b ------------------------------------------------------------------------------------------------------------------- *************** In optOptimizeValnumCSEs() CSE candidate #01, key=$289 in BB13, [cost= 3, size= 4]: N006 ( 3, 4) CSE #01 (use)[000211] ------------ * CAST int <- ubyte <- int $289 N005 ( 2, 2) [000010] ------------ \--* LCL_VAR int V03 arg3 u:1 (last use) $c1 CSE candidate #02, key=$28e in BB13, [cost= 4, size= 4]: N008 ( 4, 4) CSE #02 (use)[000212] ------------ * CAST int <- bool <- int $28e N007 ( 3, 2) [000011] ------------ \--* LCL_VAR int V04 arg4 u:1 (last use) $100 CSE candidate #03, key=$295 in BB13, [cost= 4, size= 4]: N011 ( 4, 4) CSE #03 (use)[000213] ------------ * CAST int <- bool <- int $295 N010 ( 3, 2) [000013] ------------ \--* LCL_VAR int V06 arg6 u:1 (last use) $101 CSE candidate #04, key=$29a in BB13, [cost= 4, size= 4]: N013 ( 4, 4) CSE #04 (use)[000214] ------------ * CAST int <- bool <- int $29a N012 ( 3, 2) [000014] ------------ \--* LCL_VAR int V07 arg7 u:1 (last use) $102 CSE candidate #05, key=$29f in BB13, [cost= 4, size= 4]: N015 ( 4, 4) CSE #05 (use)[000215] ------------ * CAST int <- bool <- int $29f N014 ( 3, 2) [000015] ------------ \--* LCL_VAR int V08 arg8 u:1 (last use) $103 CSE candidate #06, key=$2a4 in BB13, [cost= 4, size= 4]: N017 ( 4, 4) CSE #06 (use)[000216] ------------ * CAST int <- bool <- int $2a4 N016 ( 3, 2) [000016] ------------ \--* LCL_VAR int V09 arg9 u:1 (last use) $104 CSE candidate #07, key=$284 in BB13, [cost= 3, size= 4]: N029 ( 3, 4) CSE #07 (use)[000210] ------------ * CAST int <- ubyte <- int $284 N028 ( 2, 2) [000009] ------------ \--* LCL_VAR int V02 arg2 u:1 (last use) $c0 Blocks that generate CSE def/uses BB02 cseGen = 0000000000003000 BB03 cseGen = 0000000000000003 BB04 cseGen = 000000000000000C BB06 cseGen = 0000000000000030 BB07 cseGen = 00000000000000C0 BB08 cseGen = 0000000000000300 BB09 cseGen = 0000000000000C00 BB13 cseGen = 0000000000001555 Performing DataFlow for ValnumCSE's StartMerge BB01 :: cseOut = 0000000000007FFF EndMerge BB01 :: cseIn = 0000000000000000 :: cseGen = 0000000000000000 => cseOut = 0000000000000000 != preMerge = 0000000000007FFF, => true StartMerge BB02 :: cseOut = 0000000000007FFF Merge BB02 and BB01 :: cseIn = 0000000000007FFF :: cseOut = 0000000000007FFF => cseIn = 0000000000000000 EndMerge BB02 :: cseIn = 0000000000000000 :: cseGen = 0000000000003000 => cseOut = 0000000000003000 != preMerge = 0000000000007FFF, => true StartMerge BB13 :: cseOut = 0000000000007FFF Merge BB13 and BB01 :: cseIn = 0000000000007FFF :: cseOut = 0000000000007FFF => cseIn = 0000000000000000 Merge BB13 and BB02 :: cseIn = 0000000000000000 :: cseOut = 0000000000007FFF => cseIn = 0000000000000000 Merge BB13 and BB03 :: cseIn = 0000000000000000 :: cseOut = 0000000000007FFF => cseIn = 0000000000000000 Merge BB13 and BB04 :: cseIn = 0000000000000000 :: cseOut = 0000000000007FFF => cseIn = 0000000000000000 Merge BB13 and BB05 :: cseIn = 0000000000000000 :: cseOut = 0000000000007FFF => cseIn = 0000000000000000 Merge BB13 and BB06 :: cseIn = 0000000000000000 :: cseOut = 0000000000007FFF => cseIn = 0000000000000000 Merge BB13 and BB07 :: cseIn = 0000000000000000 :: cseOut = 0000000000007FFF => cseIn = 0000000000000000 Merge BB13 and BB08 :: cseIn = 0000000000000000 :: cseOut = 0000000000007FFF => cseIn = 0000000000000000 Merge BB13 and BB09 :: cseIn = 0000000000000000 :: cseOut = 0000000000007FFF => cseIn = 0000000000000000 Merge BB13 and BB10 :: cseIn = 0000000000000000 :: cseOut = 0000000000007FFF => cseIn = 0000000000000000 Merge BB13 and BB11 :: cseIn = 0000000000000000 :: cseOut = 0000000000007FFF => cseIn = 0000000000000000 EndMerge BB13 :: cseIn = 0000000000000000 :: cseGen = 0000000000001555 => cseOut = 0000000000001555 != preMerge = 0000000000007FFF, => true StartMerge BB03 :: cseOut = 0000000000007FFF Merge BB03 and BB02 :: cseIn = 0000000000007FFF :: cseOut = 0000000000007FFF => cseIn = 0000000000003000 EndMerge BB03 :: cseIn = 0000000000003000 :: cseGen = 0000000000000003 => cseOut = 0000000000003003 != preMerge = 0000000000007FFF, => true StartMerge BB13 :: cseOut = 0000000000001555 Merge BB13 and BB01 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB02 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB03 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB04 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB05 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB06 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB07 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB08 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB09 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB10 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB11 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 EndMerge BB13 :: cseIn = 0000000000000000 :: cseGen = 0000000000001555 => cseOut = 0000000000001555 != preMerge = 0000000000001555, => false StartMerge BB14 :: cseOut = 0000000000007FFF Merge BB14 and BB13 :: cseIn = 0000000000007FFF :: cseOut = 0000000000007FFF => cseIn = 0000000000001555 EndMerge BB14 :: cseIn = 0000000000001555 :: cseGen = 0000000000000000 => cseOut = 0000000000001555 != preMerge = 0000000000007FFF, => true StartMerge BB15 :: cseOut = 0000000000007FFF Merge BB15 and BB13 :: cseIn = 0000000000007FFF :: cseOut = 0000000000007FFF => cseIn = 0000000000001555 Merge BB15 and BB14 :: cseIn = 0000000000001555 :: cseOut = 0000000000007FFF => cseIn = 0000000000001555 EndMerge BB15 :: cseIn = 0000000000001555 :: cseGen = 0000000000000000 => cseOut = 0000000000001555 != preMerge = 0000000000007FFF, => true StartMerge BB04 :: cseOut = 0000000000007FFF Merge BB04 and BB03 :: cseIn = 0000000000007FFF :: cseOut = 0000000000007FFF => cseIn = 0000000000003003 EndMerge BB04 :: cseIn = 0000000000003003 :: cseGen = 000000000000000C => cseOut = 000000000000300F != preMerge = 0000000000007FFF, => true StartMerge BB13 :: cseOut = 0000000000001555 Merge BB13 and BB01 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB02 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB03 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB04 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB05 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB06 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB07 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB08 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB09 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB10 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB11 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 EndMerge BB13 :: cseIn = 0000000000000000 :: cseGen = 0000000000001555 => cseOut = 0000000000001555 != preMerge = 0000000000001555, => false StartMerge BB15 :: cseOut = 0000000000001555 Merge BB15 and BB13 :: cseIn = 0000000000001555 :: cseOut = 0000000000001555 => cseIn = 0000000000001555 Merge BB15 and BB14 :: cseIn = 0000000000001555 :: cseOut = 0000000000001555 => cseIn = 0000000000001555 EndMerge BB15 :: cseIn = 0000000000001555 :: cseGen = 0000000000000000 => cseOut = 0000000000001555 != preMerge = 0000000000001555, => false StartMerge BB05 :: cseOut = 0000000000007FFF Merge BB05 and BB04 :: cseIn = 0000000000007FFF :: cseOut = 0000000000007FFF => cseIn = 000000000000300F EndMerge BB05 :: cseIn = 000000000000300F -- cseKill = 0000000000001555 :: cseGen = 0000000000000000 => cseOut = 0000000000001005 != preMerge = 0000000000007FFF, => true StartMerge BB13 :: cseOut = 0000000000001555 Merge BB13 and BB01 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB02 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB03 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB04 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB05 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB06 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB07 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB08 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB09 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB10 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB11 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 EndMerge BB13 :: cseIn = 0000000000000000 :: cseGen = 0000000000001555 => cseOut = 0000000000001555 != preMerge = 0000000000001555, => false StartMerge BB06 :: cseOut = 0000000000007FFF Merge BB06 and BB05 :: cseIn = 0000000000007FFF :: cseOut = 0000000000007FFF => cseIn = 0000000000001005 EndMerge BB06 :: cseIn = 0000000000001005 :: cseGen = 0000000000000030 => cseOut = 0000000000001035 != preMerge = 0000000000007FFF, => true StartMerge BB13 :: cseOut = 0000000000001555 Merge BB13 and BB01 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB02 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB03 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB04 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB05 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB06 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB07 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB08 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB09 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB10 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB11 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 EndMerge BB13 :: cseIn = 0000000000000000 :: cseGen = 0000000000001555 => cseOut = 0000000000001555 != preMerge = 0000000000001555, => false StartMerge BB07 :: cseOut = 0000000000007FFF Merge BB07 and BB06 :: cseIn = 0000000000007FFF :: cseOut = 0000000000007FFF => cseIn = 0000000000001035 EndMerge BB07 :: cseIn = 0000000000001035 :: cseGen = 00000000000000C0 => cseOut = 00000000000010F5 != preMerge = 0000000000007FFF, => true StartMerge BB13 :: cseOut = 0000000000001555 Merge BB13 and BB01 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB02 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB03 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB04 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB05 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB06 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB07 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB08 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB09 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB10 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB11 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 EndMerge BB13 :: cseIn = 0000000000000000 :: cseGen = 0000000000001555 => cseOut = 0000000000001555 != preMerge = 0000000000001555, => false StartMerge BB08 :: cseOut = 0000000000007FFF Merge BB08 and BB07 :: cseIn = 0000000000007FFF :: cseOut = 0000000000007FFF => cseIn = 00000000000010F5 EndMerge BB08 :: cseIn = 00000000000010F5 :: cseGen = 0000000000000300 => cseOut = 00000000000013F5 != preMerge = 0000000000007FFF, => true StartMerge BB13 :: cseOut = 0000000000001555 Merge BB13 and BB01 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB02 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB03 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB04 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB05 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB06 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB07 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB08 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB09 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB10 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB11 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 EndMerge BB13 :: cseIn = 0000000000000000 :: cseGen = 0000000000001555 => cseOut = 0000000000001555 != preMerge = 0000000000001555, => false StartMerge BB09 :: cseOut = 0000000000007FFF Merge BB09 and BB08 :: cseIn = 0000000000007FFF :: cseOut = 0000000000007FFF => cseIn = 00000000000013F5 EndMerge BB09 :: cseIn = 00000000000013F5 :: cseGen = 0000000000000C00 => cseOut = 0000000000001FF5 != preMerge = 0000000000007FFF, => true StartMerge BB13 :: cseOut = 0000000000001555 Merge BB13 and BB01 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB02 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB03 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB04 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB05 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB06 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB07 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB08 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB09 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB10 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB11 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 EndMerge BB13 :: cseIn = 0000000000000000 :: cseGen = 0000000000001555 => cseOut = 0000000000001555 != preMerge = 0000000000001555, => false StartMerge BB10 :: cseOut = 0000000000007FFF Merge BB10 and BB09 :: cseIn = 0000000000007FFF :: cseOut = 0000000000007FFF => cseIn = 0000000000001FF5 EndMerge BB10 :: cseIn = 0000000000001FF5 -- cseKill = 0000000000001555 :: cseGen = 0000000000000000 => cseOut = 0000000000001555 != preMerge = 0000000000007FFF, => true StartMerge BB13 :: cseOut = 0000000000001555 Merge BB13 and BB01 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB02 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB03 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB04 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB05 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB06 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB07 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB08 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB09 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB10 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB11 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 EndMerge BB13 :: cseIn = 0000000000000000 :: cseGen = 0000000000001555 => cseOut = 0000000000001555 != preMerge = 0000000000001555, => false StartMerge BB11 :: cseOut = 0000000000007FFF Merge BB11 and BB10 :: cseIn = 0000000000007FFF :: cseOut = 0000000000007FFF => cseIn = 0000000000001555 EndMerge BB11 :: cseIn = 0000000000001555 -- cseKill = 0000000000001555 :: cseGen = 0000000000000000 => cseOut = 0000000000001555 != preMerge = 0000000000007FFF, => true StartMerge BB13 :: cseOut = 0000000000001555 Merge BB13 and BB01 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB02 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB03 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB04 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB05 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB06 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB07 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB08 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB09 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB10 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB11 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 EndMerge BB13 :: cseIn = 0000000000000000 :: cseGen = 0000000000001555 => cseOut = 0000000000001555 != preMerge = 0000000000001555, => false StartMerge BB12 :: cseOut = 0000000000007FFF Merge BB12 and BB11 :: cseIn = 0000000000007FFF :: cseOut = 0000000000007FFF => cseIn = 0000000000001555 EndMerge BB12 :: cseIn = 0000000000001555 :: cseGen = 0000000000000000 => cseOut = 0000000000001555 != preMerge = 0000000000007FFF, => true StartMerge BB13 :: cseOut = 0000000000001555 Merge BB13 and BB01 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB02 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB03 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB04 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB05 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB06 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB07 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB08 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB09 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB10 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 Merge BB13 and BB11 :: cseIn = 0000000000000000 :: cseOut = 0000000000001555 => cseIn = 0000000000000000 EndMerge BB13 :: cseIn = 0000000000000000 :: cseGen = 0000000000001555 => cseOut = 0000000000001555 != preMerge = 0000000000001555, => false After performing DataFlow for ValnumCSE's BB01 cseIn = 0000000000000000, cseGen = 0000000000000000, cseOut = 0000000000000000 BB02 cseIn = 0000000000000000, cseGen = 0000000000003000, cseOut = 0000000000003000 BB03 cseIn = 0000000000003000, cseGen = 0000000000000003, cseOut = 0000000000003003 BB04 cseIn = 0000000000003003, cseGen = 000000000000000C, cseOut = 000000000000300F BB05 cseIn = 000000000000300F, cseGen = 0000000000000000, cseOut = 0000000000001005 BB06 cseIn = 0000000000001005, cseGen = 0000000000000030, cseOut = 0000000000001035 BB07 cseIn = 0000000000001035, cseGen = 00000000000000C0, cseOut = 00000000000010F5 BB08 cseIn = 00000000000010F5, cseGen = 0000000000000300, cseOut = 00000000000013F5 BB09 cseIn = 00000000000013F5, cseGen = 0000000000000C00, cseOut = 0000000000001FF5 BB10 cseIn = 0000000000001FF5, cseGen = 0000000000000000, cseOut = 0000000000001555 BB11 cseIn = 0000000000001555, cseGen = 0000000000000000, cseOut = 0000000000001555 BB12 cseIn = 0000000000001555, cseGen = 0000000000000000, cseOut = 0000000000001555 BB13 cseIn = 0000000000000000, cseGen = 0000000000001555, cseOut = 0000000000001555 BB14 cseIn = 0000000000001555, cseGen = 0000000000000000, cseOut = 0000000000001555 BB15 cseIn = 0000000000001555, cseGen = 0000000000000000, cseOut = 0000000000001555 Labeling the CSEs with Use/Def information BB02 [000175] Def of CSE #07 [weight=0.83] BB03 [000178] Def of CSE #01 [weight=0.83] BB04 [000181] Def of CSE #02 [weight=0.83] BB06 [000188] Def of CSE #03 [weight=0.83] BB07 [000191] Def of CSE #04 [weight=0.83] BB08 [000194] Def of CSE #05 [weight=0.83] BB09 [000197] Def of CSE #06 [weight=0.83] BB13 [000211] Def of CSE #01 [weight=0.17] BB13 [000212] Def of CSE #02 [weight=0.17] BB13 [000213] Def of CSE #03 [weight=0.17] BB13 [000214] Def of CSE #04 [weight=0.17] BB13 [000215] Def of CSE #05 [weight=0.17] BB13 [000216] Def of CSE #06 [weight=0.17] BB13 [000210] Def of CSE #07 [weight=0.17] ************ Trees at start of optValnumCSE_Heuristic() ------------ BB01 [000..009) -> BB13 (cond), preds={} succs={BB02,BB13} ***** BB01 STMT00001 (IL ???... ???) N007 ( 8, 8) [000005] ---XG------- * JTRUE void N006 ( 6, 6) [000004] N--XG--N-U-- \--* NE int N001 ( 1, 1) [000000] ------------ +--* LCL_VAR ref V01 arg1 u:1 $81 N005 ( 4, 4) [000121] ---XG------- \--* IND ref N004 ( 2, 2) [000174] -------N---- \--* ADD byref $180 N002 ( 1, 1) [000001] ------------ +--* LCL_VAR ref V00 this u:1 $80 N003 ( 1, 1) [000173] ------------ \--* CNS_INT long 32 field offset Fseq[k__BackingField] $140 ------------ BB02 [009..012) -> BB13 (cond), preds={BB01} succs={BB03,BB13} ***** BB02 STMT00010 (IL ???... ???) N008 ( 11, 12) [000047] ---XG------- * JTRUE void N007 ( 9, 10) [000046] N--XG--N-U-- \--* NE int N002 ( 3, 4) CSE #07 (def)[000175] ------------ +--* CAST int <- ubyte <- int $284 N001 ( 2, 2) [000041] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0 N006 ( 5, 5) [000123] ---XG------- \--* IND ubyte N005 ( 2, 2) [000177] -------N---- \--* ADD byref $181 N003 ( 1, 1) [000042] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] $141 ------------ BB03 [012..01B) -> BB13 (cond), preds={BB02} succs={BB04,BB13} ***** BB03 STMT00012 (IL ???... ???) N008 ( 11, 12) [000054] ---XG------- * JTRUE void N007 ( 9, 10) [000053] N--XG--N-U-- \--* NE int N002 ( 3, 4) CSE #01 (def)[000178] ------------ +--* CAST int <- ubyte <- int $289 N001 ( 2, 2) [000048] ------------ | \--* LCL_VAR int V03 arg3 u:1 $c1 N006 ( 5, 5) [000125] ---XG------- \--* IND ubyte N005 ( 2, 2) [000180] -------N---- \--* ADD byref $182 N003 ( 1, 1) [000049] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] $142 ------------ BB04 [01B..025) -> BB13 (cond), preds={BB03} succs={BB05,BB13} ***** BB04 STMT00014 (IL ???... ???) N008 ( 12, 12) [000061] ---XG------- * JTRUE void N007 ( 10, 10) [000060] N--XG--N-U-- \--* NE int N002 ( 4, 4) CSE #02 (def)[000181] ------------ +--* CAST int <- bool <- int $28e N001 ( 3, 2) [000055] ------------ | \--* LCL_VAR int V04 arg4 u:1 $100 N006 ( 5, 5) [000127] ---XG------- \--* IND bool N005 ( 2, 2) [000183] -------N---- \--* ADD byref $183 N003 ( 1, 1) [000056] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] $143 ------------ BB05 [025..034) -> BB13 (cond), preds={BB04} succs={BB06,BB13} ***** BB05 STMT00017 (IL ???... ???) N012 ( 26, 19) [000071] --CXG------- * JTRUE void N011 ( 24, 17) [000070] J-CXG--N---- \--* NE int $294 N009 ( 22, 15) [000068] --CXG------- +--* CAST int <- bool <- int $293 N008 ( 21, 13) [000066] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 N006 ( 4, 4) [000129] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000185] -------N---- | | \--* ADD byref $184 N003 ( 1, 1) [000063] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] $144 N007 ( 3, 2) [000062] ------------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 u:1 $82 N010 ( 1, 1) [000069] ------------ \--* CNS_INT int 0 $40 ------------ BB06 [034..03E) -> BB13 (cond), preds={BB05} succs={BB07,BB13} ***** BB06 STMT00019 (IL ???... ???) N008 ( 12, 12) [000078] ---XG------- * JTRUE void N007 ( 10, 10) [000077] N--XG--N-U-- \--* NE int N002 ( 4, 4) CSE #03 (def)[000188] ------------ +--* CAST int <- bool <- int $295 N001 ( 3, 2) [000072] ------------ | \--* LCL_VAR int V06 arg6 u:1 $101 N006 ( 5, 5) [000132] ---XG------- \--* IND bool N005 ( 2, 2) [000190] -------N---- \--* ADD byref $185 N003 ( 1, 1) [000073] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] $145 ------------ BB07 [03E..048) -> BB13 (cond), preds={BB06} succs={BB08,BB13} ***** BB07 STMT00021 (IL ???... ???) N008 ( 12, 12) [000085] ---XG------- * JTRUE void N007 ( 10, 10) [000084] N--XG--N-U-- \--* NE int N002 ( 4, 4) CSE #04 (def)[000191] ------------ +--* CAST int <- bool <- int $29a N001 ( 3, 2) [000079] ------------ | \--* LCL_VAR int V07 arg7 u:1 $102 N006 ( 5, 5) [000134] ---XG------- \--* IND bool N005 ( 2, 2) [000193] -------N---- \--* ADD byref $186 N003 ( 1, 1) [000080] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] $146 ------------ BB08 [048..052) -> BB13 (cond), preds={BB07} succs={BB09,BB13} ***** BB08 STMT00023 (IL ???... ???) N008 ( 12, 12) [000092] ---XG------- * JTRUE void N007 ( 10, 10) [000091] N--XG--N-U-- \--* NE int N002 ( 4, 4) CSE #05 (def)[000194] ------------ +--* CAST int <- bool <- int $29f N001 ( 3, 2) [000086] ------------ | \--* LCL_VAR int V08 arg8 u:1 $103 N006 ( 5, 5) [000136] ---XG------- \--* IND bool N005 ( 2, 2) [000196] -------N---- \--* ADD byref $187 N003 ( 1, 1) [000087] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] $147 ------------ BB09 [052..05C) -> BB13 (cond), preds={BB08} succs={BB10,BB13} ***** BB09 STMT00025 (IL ???... ???) N008 ( 12, 12) [000099] ---XG------- * JTRUE void N007 ( 10, 10) [000098] N--XG--N-U-- \--* NE int N002 ( 4, 4) CSE #06 (def)[000197] ------------ +--* CAST int <- bool <- int $2a4 N001 ( 3, 2) [000093] ------------ | \--* LCL_VAR int V09 arg9 u:1 $104 N006 ( 5, 5) [000138] ---XG------- \--* IND bool N005 ( 2, 2) [000199] -------N---- \--* ADD byref $188 N003 ( 1, 1) [000094] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] $148 ------------ BB10 [05C..06B) -> BB13 (cond), preds={BB09} succs={BB11,BB13} ***** BB10 STMT00027 (IL ???... ???) N012 ( 26, 19) [000108] --CXG------- * JTRUE void N011 ( 24, 17) [000107] J-CXG--N---- \--* NE int $2aa N009 ( 22, 15) [000105] --CXG------- +--* CAST int <- bool <- int $2a9 N008 ( 21, 13) [000104] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 N006 ( 4, 4) [000140] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000201] -------N---- | | \--* ADD byref $189 N003 ( 1, 1) [000101] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] $149 N007 ( 3, 2) [000100] ------------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 u:1 $83 N010 ( 1, 1) [000106] ------------ \--* CNS_INT int 0 $40 ------------ BB11 [06B..07A) -> BB13 (cond), preds={BB10} succs={BB12,BB13} ***** BB11 STMT00030 (IL ???... ???) N012 ( 26, 19) [000118] --CXG------- * JTRUE void N011 ( 24, 17) [000117] J-CXG--N---- \--* NE int $2ac N009 ( 22, 15) [000115] --CXG------- +--* CAST int <- bool <- int $2ab N008 ( 21, 13) [000113] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 N006 ( 4, 4) [000142] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000205] -------N---- | | \--* ADD byref $18a N003 ( 1, 1) [000110] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] $14a N007 ( 3, 2) [000109] ------------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 u:1 $84 N010 ( 1, 1) [000116] ------------ \--* CNS_INT int 0 $40 ------------ BB12 [0AB..0AD) (return), preds={BB11} succs={} ***** BB12 STMT00031 (IL 0x0AB...0x0AC) N002 ( 2, 2) [000120] ------------ * RETURN ref $256 N001 ( 1, 1) [000119] ------------ \--* LCL_VAR ref V00 this u:1 (last use) $80 ------------ BB13 [000..0AB) -> BB15 (cond), preds={BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11} succs={BB14,BB15} ***** BB13 STMT00003 (IL 0x07A...0x0AA) N006 ( 8, 7) [000022] -A-XG---R--- * ASG ref N005 ( 3, 2) [000021] D------N---- +--* LCL_VAR ref V13 tmp1 d:2 N004 ( 4, 4) [000007] ---XG------- \--* IND ref N003 ( 2, 2) [000209] -------N---- \--* ADD byref $18b N001 ( 1, 1) [000006] ------------ +--* LCL_VAR ref V00 this u:1 $80 N002 ( 1, 1) [000208] ------------ \--* CNS_INT long 8 field offset Fseq[Syntax] $14b ***** BB13 STMT00004 (IL ???... ???) N003 ( 18, 8) [000030] -AC-----R--- * ASG ref $21b N002 ( 3, 2) [000029] D------N---- +--* LCL_VAR ref V14 tmp2 d:2 $21b N001 ( 14, 5) [000028] --C--------- \--* CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW $21b ***** BB13 STMT00005 (IL ???... ???) N033 ( 98, 58) [000032] --CXG------- * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor $VN.Void N006 ( 3, 4) CSE #01 (def)[000211] ------------ arg4 out+20 +--* CAST int <- ubyte <- int $289 N005 ( 2, 2) [000010] ------------ | \--* LCL_VAR int V03 arg3 u:1 (last use) $c1 N008 ( 4, 4) CSE #02 (def)[000212] ------------ arg5 out+28 +--* CAST int <- bool <- int $28e N007 ( 3, 2) [000011] ------------ | \--* LCL_VAR int V04 arg4 u:1 (last use) $100 N009 ( 3, 2) [000012] ------------ arg6 out+30 +--* LCL_VAR ref V05 arg5 u:1 (last use) $82 N011 ( 4, 4) CSE #03 (def)[000213] ------------ arg7 out+38 +--* CAST int <- bool <- int $295 N010 ( 3, 2) [000013] ------------ | \--* LCL_VAR int V06 arg6 u:1 (last use) $101 N013 ( 4, 4) CSE #04 (def)[000214] ------------ arg8 out+40 +--* CAST int <- bool <- int $29a N012 ( 3, 2) [000014] ------------ | \--* LCL_VAR int V07 arg7 u:1 (last use) $102 N015 ( 4, 4) CSE #05 (def)[000215] ------------ arg9 out+48 +--* CAST int <- bool <- int $29f N014 ( 3, 2) [000015] ------------ | \--* LCL_VAR int V08 arg8 u:1 (last use) $103 N017 ( 4, 4) CSE #06 (def)[000216] ------------ arg10 out+50 +--* CAST int <- bool <- int $2a4 N016 ( 3, 2) [000016] ------------ | \--* LCL_VAR int V09 arg9 u:1 (last use) $104 N018 ( 3, 2) [000017] ------------ arg11 out+58 +--* LCL_VAR ref V10 arg10 u:1 (last use) $83 N019 ( 3, 2) [000018] ------------ arg12 out+60 +--* LCL_VAR ref V11 arg11 u:1 (last use) $84 N027 ( 12, 9) [000149] N--XG------- arg13 out+68 +--* NE int N025 ( 7, 7) [000147] ---XG------- | +--* AND int N023 ( 5, 5) [000145] ---XG------- | | +--* IND ubyte N022 ( 2, 2) [000218] -------N---- | | | \--* ADD byref $18c N020 ( 1, 1) [000019] ------------ | | | +--* LCL_VAR ref V00 this u:1 $80 N021 ( 1, 1) [000217] ------------ | | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N024 ( 1, 1) [000146] ------------ | | \--* CNS_INT int 1 $41 N026 ( 1, 1) [000148] ------------ | \--* CNS_INT int 0 $40 N029 ( 3, 4) CSE #07 (def)[000210] ------------ arg3 in r9 +--* CAST int <- ubyte <- int $284 N028 ( 2, 2) [000009] ------------ | \--* LCL_VAR int V02 arg2 u:1 (last use) $c0 N030 ( 3, 2) [000031] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 u:2 $21b N031 ( 3, 2) [000023] ------------ arg1 in rdx +--* LCL_VAR ref V13 tmp1 u:2 (last use) N032 ( 1, 1) [000008] ------------ arg2 in r8 \--* LCL_VAR ref V01 arg1 u:1 (last use) $81 ***** BB13 STMT00034 (IL ???... ???) N010 ( 16, 12) [000171] -A-XG---R--- * ASG bool N009 ( 3, 2) [000170] D------N---- +--* LCL_VAR int V15 tmp3 d:2 N008 ( 12, 9) [000155] N--XG------- \--* NE int N006 ( 7, 7) [000153] ---XG------- +--* AND int N004 ( 5, 5) [000151] ---XG------- | +--* IND ubyte N003 ( 2, 2) [000224] -------N---- | | \--* ADD byref $18c N001 ( 1, 1) [000035] ------------ | | +--* LCL_VAR ref V00 this u:1 (last use) $80 N002 ( 1, 1) [000223] ------------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000152] ------------ | \--* CNS_INT int 2 $42 N007 ( 1, 1) [000154] ------------ \--* CNS_INT int 0 $40 ***** BB13 STMT00035 (IL ???... ???) N002 ( 4, 3) [000169] ---X-------- * NULLCHECK byte $21d N001 ( 3, 2) [000168] ------------ \--* LCL_VAR ref V14 tmp2 u:2 $21b ***** BB13 STMT00032 (IL ???... ???) N004 ( 7, 6) [000161] ------------ * JTRUE void N003 ( 5, 4) [000160] J------N---- \--* EQ int N001 ( 3, 2) [000158] ------------ +--* LCL_VAR int V15 tmp3 u:2 (last use) N002 ( 1, 1) [000159] ------------ \--* CNS_INT int 0 $40 ------------ BB14 [000..000), preds={BB13} succs={BB15} ***** BB14 STMT00033 (IL ???... ???) N011 ( 17, 15) [000167] -A-XG---R--- * ASG ubyte $VN.Void N010 ( 7, 6) [000166] D--XG--N---- +--* IND ubyte $404 N009 ( 4, 3) [000226] -------N---- | \--* ADD byref $18d N007 ( 3, 2) [000034] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 $21b N008 ( 1, 1) [000225] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N006 ( 9, 8) [000165] ---XG------- \--* OR int N004 ( 7, 6) [000163] ---XG------- +--* IND ubyte N003 ( 4, 3) [000228] -------N---- | \--* ADD byref $18d N001 ( 3, 2) [000162] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 $21b N002 ( 1, 1) [000227] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000164] ------------ \--* CNS_INT int 2 $42 ------------ BB15 [000..000) (return), preds={BB13,BB14} succs={} ***** BB15 STMT00008 (IL 0x0AA... ???) N002 ( 4, 3) [000040] ------------ * RETURN ref $255 N001 ( 3, 2) [000033] ------------ \--* LCL_VAR ref V14 tmp2 u:2 (last use) $21b ------------------------------------------------------------------------------------------------------------------- Aggressive CSE Promotion cutoff is 200 Moderate CSE Promotion cutoff is 100 enregCount is 15 Framesize estimate is 0x0000 We have a small frame Sorted CSE candidates: CSE #02, {$28e, $4 } useCnt=0: [def=100, use= 0, cost= 4 ] :: N002 ( 4, 4) CSE #02 (def)[000181] ------------ * CAST int <- bool <- int $28e CSE #03, {$295, $4 } useCnt=0: [def=100, use= 0, cost= 4 ] :: N002 ( 4, 4) CSE #03 (def)[000188] ------------ * CAST int <- bool <- int $295 CSE #04, {$29a, $4 } useCnt=0: [def=100, use= 0, cost= 4 ] :: N002 ( 4, 4) CSE #04 (def)[000191] ------------ * CAST int <- bool <- int $29a CSE #05, {$29f, $4 } useCnt=0: [def=100, use= 0, cost= 4 ] :: N002 ( 4, 4) CSE #05 (def)[000194] ------------ * CAST int <- bool <- int $29f CSE #06, {$2a4, $4 } useCnt=0: [def=100, use= 0, cost= 4 ] :: N002 ( 4, 4) CSE #06 (def)[000197] ------------ * CAST int <- bool <- int $2a4 CSE #01, {$289, $4 } useCnt=0: [def=100, use= 0, cost= 3 ] :: N002 ( 3, 4) CSE #01 (def)[000178] ------------ * CAST int <- ubyte <- int $289 CSE #07, {$284, $4 } useCnt=0: [def=100, use= 0, cost= 3 ] :: N002 ( 3, 4) CSE #07 (def)[000175] ------------ * CAST int <- ubyte <- int $284 Skipped CSE #02 because use count is 0 Skipped CSE #03 because use count is 0 Skipped CSE #04 because use count is 0 Skipped CSE #05 because use count is 0 Skipped CSE #06 because use count is 0 Skipped CSE #01 because use count is 0 Skipped CSE #07 because use count is 0 *************** Finishing PHASE Optimize Valnum CSEs *************** Starting PHASE Assertion prop *************** In optAssertionPropMain() Blocks/Trees at start of phase ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB13 ( cond ) i label target IBC BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB13 ( cond ) i IBC BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB13 ( cond ) i IBC BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB13 ( cond ) i IBC BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB13 ( cond ) i hascall gcsafe IBC BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB13 ( cond ) i gcsafe IBC BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB13 ( cond ) i gcsafe IBC BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB13 ( cond ) i gcsafe IBC BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB13 ( cond ) i gcsafe IBC BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB13 ( cond ) i hascall gcsafe IBC BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB13 ( cond ) i hascall gcsafe IBC BB12 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target gcsafe IBC BB13 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB15 ( cond ) i label target hascall gcsafe newobj nullcheck IBC BB14 [0027] 1 BB13 0.09 [000..000) i internal gcsafe BB15 [0028] 2 BB13,BB14 0.17 14831 [000..000) (return) i internal label target gcsafe newobj nullcheck IBC ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..009) -> BB13 (cond), preds={} succs={BB02,BB13} ***** BB01 STMT00001 (IL ???... ???) N007 ( 8, 8) [000005] ---XG------- * JTRUE void N006 ( 6, 6) [000004] N--XG--N-U-- \--* NE int N001 ( 1, 1) [000000] ------------ +--* LCL_VAR ref V01 arg1 u:1 $81 N005 ( 4, 4) [000121] ---XG------- \--* IND ref N004 ( 2, 2) [000174] -------N---- \--* ADD byref $180 N002 ( 1, 1) [000001] ------------ +--* LCL_VAR ref V00 this u:1 $80 N003 ( 1, 1) [000173] ------------ \--* CNS_INT long 32 field offset Fseq[k__BackingField] $140 ------------ BB02 [009..012) -> BB13 (cond), preds={BB01} succs={BB03,BB13} ***** BB02 STMT00010 (IL ???... ???) N008 ( 11, 12) [000047] ---XG------- * JTRUE void N007 ( 9, 10) [000046] N--XG--N-U-- \--* NE int N002 ( 3, 4) [000175] ------------ +--* CAST int <- ubyte <- int $284 N001 ( 2, 2) [000041] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0 N006 ( 5, 5) [000123] ---XG------- \--* IND ubyte N005 ( 2, 2) [000177] -------N---- \--* ADD byref $181 N003 ( 1, 1) [000042] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] $141 ------------ BB03 [012..01B) -> BB13 (cond), preds={BB02} succs={BB04,BB13} ***** BB03 STMT00012 (IL ???... ???) N008 ( 11, 12) [000054] ---XG------- * JTRUE void N007 ( 9, 10) [000053] N--XG--N-U-- \--* NE int N002 ( 3, 4) [000178] ------------ +--* CAST int <- ubyte <- int $289 N001 ( 2, 2) [000048] ------------ | \--* LCL_VAR int V03 arg3 u:1 $c1 N006 ( 5, 5) [000125] ---XG------- \--* IND ubyte N005 ( 2, 2) [000180] -------N---- \--* ADD byref $182 N003 ( 1, 1) [000049] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] $142 ------------ BB04 [01B..025) -> BB13 (cond), preds={BB03} succs={BB05,BB13} ***** BB04 STMT00014 (IL ???... ???) N008 ( 12, 12) [000061] ---XG------- * JTRUE void N007 ( 10, 10) [000060] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000181] ------------ +--* CAST int <- bool <- int $28e N001 ( 3, 2) [000055] ------------ | \--* LCL_VAR int V04 arg4 u:1 $100 N006 ( 5, 5) [000127] ---XG------- \--* IND bool N005 ( 2, 2) [000183] -------N---- \--* ADD byref $183 N003 ( 1, 1) [000056] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] $143 ------------ BB05 [025..034) -> BB13 (cond), preds={BB04} succs={BB06,BB13} ***** BB05 STMT00017 (IL ???... ???) N012 ( 26, 19) [000071] --CXG------- * JTRUE void N011 ( 24, 17) [000070] J-CXG--N---- \--* NE int $294 N009 ( 22, 15) [000068] --CXG------- +--* CAST int <- bool <- int $293 N008 ( 21, 13) [000066] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 N006 ( 4, 4) [000129] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000185] -------N---- | | \--* ADD byref $184 N003 ( 1, 1) [000063] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] $144 N007 ( 3, 2) [000062] ------------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 u:1 $82 N010 ( 1, 1) [000069] ------------ \--* CNS_INT int 0 $40 ------------ BB06 [034..03E) -> BB13 (cond), preds={BB05} succs={BB07,BB13} ***** BB06 STMT00019 (IL ???... ???) N008 ( 12, 12) [000078] ---XG------- * JTRUE void N007 ( 10, 10) [000077] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000188] ------------ +--* CAST int <- bool <- int $295 N001 ( 3, 2) [000072] ------------ | \--* LCL_VAR int V06 arg6 u:1 $101 N006 ( 5, 5) [000132] ---XG------- \--* IND bool N005 ( 2, 2) [000190] -------N---- \--* ADD byref $185 N003 ( 1, 1) [000073] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] $145 ------------ BB07 [03E..048) -> BB13 (cond), preds={BB06} succs={BB08,BB13} ***** BB07 STMT00021 (IL ???... ???) N008 ( 12, 12) [000085] ---XG------- * JTRUE void N007 ( 10, 10) [000084] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000191] ------------ +--* CAST int <- bool <- int $29a N001 ( 3, 2) [000079] ------------ | \--* LCL_VAR int V07 arg7 u:1 $102 N006 ( 5, 5) [000134] ---XG------- \--* IND bool N005 ( 2, 2) [000193] -------N---- \--* ADD byref $186 N003 ( 1, 1) [000080] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] $146 ------------ BB08 [048..052) -> BB13 (cond), preds={BB07} succs={BB09,BB13} ***** BB08 STMT00023 (IL ???... ???) N008 ( 12, 12) [000092] ---XG------- * JTRUE void N007 ( 10, 10) [000091] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000194] ------------ +--* CAST int <- bool <- int $29f N001 ( 3, 2) [000086] ------------ | \--* LCL_VAR int V08 arg8 u:1 $103 N006 ( 5, 5) [000136] ---XG------- \--* IND bool N005 ( 2, 2) [000196] -------N---- \--* ADD byref $187 N003 ( 1, 1) [000087] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] $147 ------------ BB09 [052..05C) -> BB13 (cond), preds={BB08} succs={BB10,BB13} ***** BB09 STMT00025 (IL ???... ???) N008 ( 12, 12) [000099] ---XG------- * JTRUE void N007 ( 10, 10) [000098] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000197] ------------ +--* CAST int <- bool <- int $2a4 N001 ( 3, 2) [000093] ------------ | \--* LCL_VAR int V09 arg9 u:1 $104 N006 ( 5, 5) [000138] ---XG------- \--* IND bool N005 ( 2, 2) [000199] -------N---- \--* ADD byref $188 N003 ( 1, 1) [000094] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] $148 ------------ BB10 [05C..06B) -> BB13 (cond), preds={BB09} succs={BB11,BB13} ***** BB10 STMT00027 (IL ???... ???) N012 ( 26, 19) [000108] --CXG------- * JTRUE void N011 ( 24, 17) [000107] J-CXG--N---- \--* NE int $2aa N009 ( 22, 15) [000105] --CXG------- +--* CAST int <- bool <- int $2a9 N008 ( 21, 13) [000104] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 N006 ( 4, 4) [000140] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000201] -------N---- | | \--* ADD byref $189 N003 ( 1, 1) [000101] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] $149 N007 ( 3, 2) [000100] ------------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 u:1 $83 N010 ( 1, 1) [000106] ------------ \--* CNS_INT int 0 $40 ------------ BB11 [06B..07A) -> BB13 (cond), preds={BB10} succs={BB12,BB13} ***** BB11 STMT00030 (IL ???... ???) N012 ( 26, 19) [000118] --CXG------- * JTRUE void N011 ( 24, 17) [000117] J-CXG--N---- \--* NE int $2ac N009 ( 22, 15) [000115] --CXG------- +--* CAST int <- bool <- int $2ab N008 ( 21, 13) [000113] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 N006 ( 4, 4) [000142] ---XG------- arg1 in rdx | +--* IND ref N005 ( 2, 2) [000205] -------N---- | | \--* ADD byref $18a N003 ( 1, 1) [000110] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] $14a N007 ( 3, 2) [000109] ------------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 u:1 $84 N010 ( 1, 1) [000116] ------------ \--* CNS_INT int 0 $40 ------------ BB12 [0AB..0AD) (return), preds={BB11} succs={} ***** BB12 STMT00031 (IL 0x0AB...0x0AC) N002 ( 2, 2) [000120] ------------ * RETURN ref $256 N001 ( 1, 1) [000119] ------------ \--* LCL_VAR ref V00 this u:1 (last use) $80 ------------ BB13 [000..0AB) -> BB15 (cond), preds={BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11} succs={BB14,BB15} ***** BB13 STMT00003 (IL 0x07A...0x0AA) N006 ( 8, 7) [000022] -A-XG---R--- * ASG ref N005 ( 3, 2) [000021] D------N---- +--* LCL_VAR ref V13 tmp1 d:2 N004 ( 4, 4) [000007] ---XG------- \--* IND ref N003 ( 2, 2) [000209] -------N---- \--* ADD byref $18b N001 ( 1, 1) [000006] ------------ +--* LCL_VAR ref V00 this u:1 $80 N002 ( 1, 1) [000208] ------------ \--* CNS_INT long 8 field offset Fseq[Syntax] $14b ***** BB13 STMT00004 (IL ???... ???) N003 ( 18, 8) [000030] -AC-----R--- * ASG ref $21b N002 ( 3, 2) [000029] D------N---- +--* LCL_VAR ref V14 tmp2 d:2 $21b N001 ( 14, 5) [000028] --C--------- \--* CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW $21b ***** BB13 STMT00005 (IL ???... ???) N033 ( 98, 58) [000032] --CXG------- * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor $VN.Void N006 ( 3, 4) [000211] ------------ arg4 out+20 +--* CAST int <- ubyte <- int $289 N005 ( 2, 2) [000010] ------------ | \--* LCL_VAR int V03 arg3 u:1 (last use) $c1 N008 ( 4, 4) [000212] ------------ arg5 out+28 +--* CAST int <- bool <- int $28e N007 ( 3, 2) [000011] ------------ | \--* LCL_VAR int V04 arg4 u:1 (last use) $100 N009 ( 3, 2) [000012] ------------ arg6 out+30 +--* LCL_VAR ref V05 arg5 u:1 (last use) $82 N011 ( 4, 4) [000213] ------------ arg7 out+38 +--* CAST int <- bool <- int $295 N010 ( 3, 2) [000013] ------------ | \--* LCL_VAR int V06 arg6 u:1 (last use) $101 N013 ( 4, 4) [000214] ------------ arg8 out+40 +--* CAST int <- bool <- int $29a N012 ( 3, 2) [000014] ------------ | \--* LCL_VAR int V07 arg7 u:1 (last use) $102 N015 ( 4, 4) [000215] ------------ arg9 out+48 +--* CAST int <- bool <- int $29f N014 ( 3, 2) [000015] ------------ | \--* LCL_VAR int V08 arg8 u:1 (last use) $103 N017 ( 4, 4) [000216] ------------ arg10 out+50 +--* CAST int <- bool <- int $2a4 N016 ( 3, 2) [000016] ------------ | \--* LCL_VAR int V09 arg9 u:1 (last use) $104 N018 ( 3, 2) [000017] ------------ arg11 out+58 +--* LCL_VAR ref V10 arg10 u:1 (last use) $83 N019 ( 3, 2) [000018] ------------ arg12 out+60 +--* LCL_VAR ref V11 arg11 u:1 (last use) $84 N027 ( 12, 9) [000149] N--XG------- arg13 out+68 +--* NE int N025 ( 7, 7) [000147] ---XG------- | +--* AND int N023 ( 5, 5) [000145] ---XG------- | | +--* IND ubyte N022 ( 2, 2) [000218] -------N---- | | | \--* ADD byref $18c N020 ( 1, 1) [000019] ------------ | | | +--* LCL_VAR ref V00 this u:1 $80 N021 ( 1, 1) [000217] ------------ | | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N024 ( 1, 1) [000146] ------------ | | \--* CNS_INT int 1 $41 N026 ( 1, 1) [000148] ------------ | \--* CNS_INT int 0 $40 N029 ( 3, 4) [000210] ------------ arg3 in r9 +--* CAST int <- ubyte <- int $284 N028 ( 2, 2) [000009] ------------ | \--* LCL_VAR int V02 arg2 u:1 (last use) $c0 N030 ( 3, 2) [000031] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 u:2 $21b N031 ( 3, 2) [000023] ------------ arg1 in rdx +--* LCL_VAR ref V13 tmp1 u:2 (last use) N032 ( 1, 1) [000008] ------------ arg2 in r8 \--* LCL_VAR ref V01 arg1 u:1 (last use) $81 ***** BB13 STMT00034 (IL ???... ???) N010 ( 16, 12) [000171] -A-XG---R--- * ASG bool N009 ( 3, 2) [000170] D------N---- +--* LCL_VAR int V15 tmp3 d:2 N008 ( 12, 9) [000155] N--XG------- \--* NE int N006 ( 7, 7) [000153] ---XG------- +--* AND int N004 ( 5, 5) [000151] ---XG------- | +--* IND ubyte N003 ( 2, 2) [000224] -------N---- | | \--* ADD byref $18c N001 ( 1, 1) [000035] ------------ | | +--* LCL_VAR ref V00 this u:1 (last use) $80 N002 ( 1, 1) [000223] ------------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000152] ------------ | \--* CNS_INT int 2 $42 N007 ( 1, 1) [000154] ------------ \--* CNS_INT int 0 $40 ***** BB13 STMT00035 (IL ???... ???) N002 ( 4, 3) [000169] ---X-------- * NULLCHECK byte $21d N001 ( 3, 2) [000168] ------------ \--* LCL_VAR ref V14 tmp2 u:2 $21b ***** BB13 STMT00032 (IL ???... ???) N004 ( 7, 6) [000161] ------------ * JTRUE void N003 ( 5, 4) [000160] J------N---- \--* EQ int N001 ( 3, 2) [000158] ------------ +--* LCL_VAR int V15 tmp3 u:2 (last use) N002 ( 1, 1) [000159] ------------ \--* CNS_INT int 0 $40 ------------ BB14 [000..000), preds={BB13} succs={BB15} ***** BB14 STMT00033 (IL ???... ???) N011 ( 17, 15) [000167] -A-XG---R--- * ASG ubyte $VN.Void N010 ( 7, 6) [000166] D--XG--N---- +--* IND ubyte $404 N009 ( 4, 3) [000226] -------N---- | \--* ADD byref $18d N007 ( 3, 2) [000034] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 $21b N008 ( 1, 1) [000225] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N006 ( 9, 8) [000165] ---XG------- \--* OR int N004 ( 7, 6) [000163] ---XG------- +--* IND ubyte N003 ( 4, 3) [000228] -------N---- | \--* ADD byref $18d N001 ( 3, 2) [000162] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 $21b N002 ( 1, 1) [000227] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000164] ------------ \--* CNS_INT int 2 $42 ------------ BB15 [000..000) (return), preds={BB13,BB14} succs={} ***** BB15 STMT00008 (IL 0x0AA... ???) N002 ( 4, 3) [000040] ------------ * RETURN ref $255 N001 ( 3, 2) [000033] ------------ \--* LCL_VAR ref V14 tmp2 u:2 (last use) $21b ------------------------------------------------------------------------------------------------------------------- GenTreeNode creates assertion: N005 ( 4, 4) [000121] ---XG------- * IND ref In BB01 New Global Constant Assertion: (128, 0) ($80,$0) V00.01 != null index=#01, mask=0000000000000001 GenTreeNode creates assertion: N002 ( 3, 4) [000175] ------------ * CAST int <- ubyte <- int $284 In BB02 New Global Subrange Assertion: (192, 0) ($c0,$0) V02.01 in [0..255] index=#02, mask=0000000000000002 GenTreeNode creates assertion: N002 ( 3, 4) [000178] ------------ * CAST int <- ubyte <- int $289 In BB03 New Global Subrange Assertion: (193, 0) ($c1,$0) V03.01 in [0..255] index=#03, mask=0000000000000004 GenTreeNode creates assertion: N002 ( 4, 4) [000181] ------------ * CAST int <- bool <- int $28e In BB04 New Global Subrange Assertion: (256, 0) ($100,$0) V04.01 in [0..1] index=#04, mask=0000000000000008 GenTreeNode creates assertion: N002 ( 4, 4) [000188] ------------ * CAST int <- bool <- int $295 In BB06 New Global Subrange Assertion: (257, 0) ($101,$0) V06.01 in [0..1] index=#05, mask=0000000000000010 GenTreeNode creates assertion: N002 ( 4, 4) [000191] ------------ * CAST int <- bool <- int $29a In BB07 New Global Subrange Assertion: (258, 0) ($102,$0) V07.01 in [0..1] index=#06, mask=0000000000000020 GenTreeNode creates assertion: N002 ( 4, 4) [000194] ------------ * CAST int <- bool <- int $29f In BB08 New Global Subrange Assertion: (259, 0) ($103,$0) V08.01 in [0..1] index=#07, mask=0000000000000040 GenTreeNode creates assertion: N002 ( 4, 4) [000197] ------------ * CAST int <- bool <- int $2a4 In BB09 New Global Subrange Assertion: (260, 0) ($104,$0) V09.01 in [0..1] index=#08, mask=0000000000000080 VN based non-null prop in BB13: N002 ( 4, 3) [000169] ---X-------- * NULLCHECK byte $21d fgMorphTree (before 158): N002 ( 4, 3) [000169] -----O------ * NULLCHECK byte $21d N001 ( 3, 2) [000168] ------------ \--* LCL_VAR ref V14 tmp2 u:2 $21b fgMorphTree (before 159): N001 ( 3, 2) [000168] ------------ * LCL_VAR ref V14 tmp2 u:2 $21b fgMorphTree (after 159): N001 ( 3, 2) [000168] ------------ * LCL_VAR ref V14 tmp2 u:2 $21b fgMorphTree (after 158): N002 ( 4, 3) [000169] -----O------ * NULLCHECK byte $21d N001 ( 3, 2) [000168] ------------ \--* LCL_VAR ref V14 tmp2 u:2 $21b Removing statement STMT00035 (IL ???... ???) N002 ( 4, 3) [000169] -----O------ * NULLCHECK byte $21d N001 ( 3, 2) [000168] ------------ \--* LCL_VAR ref V14 tmp2 u:2 $21b in BB13 as useless: optVNAssertionPropCurStmt removed tree: N002 ( 4, 3) [000169] -----O------ * NULLCHECK byte $21d N001 ( 3, 2) [000168] ------------ \--* LCL_VAR ref V14 tmp2 u:2 $21b GenTreeNode creates assertion: N004 ( 7, 6) [000161] ------------ * JTRUE void In BB13 New Global Constant Assertion: (697, 64) ($2b9,$40) V15.02 == 0 index=#09, mask=0000000000000100 GenTreeNode creates assertion: N004 ( 7, 6) [000161] ------------ * JTRUE void In BB13 New Global Constant Assertion: (697, 64) ($2b9,$40) V15.02 != 0 index=#10, mask=0000000000000200 VN based non-null prop in BB14: N004 ( 7, 6) [000163] ---XG------- * IND ubyte VN based non-null prop in BB14: N010 ( 7, 6) [000166] D--XG--N---- * IND ubyte $404 fgMorphTree (before 160): N011 ( 17, 15) [000167] -A-XG---R--- * ASG ubyte $VN.Void N010 ( 7, 6) [000166] n---GO-N---- +--* IND ubyte $404 N009 ( 4, 3) [000226] -------N---- | \--* ADD byref $18d N007 ( 3, 2) [000034] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 $21b N008 ( 1, 1) [000225] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N006 ( 9, 8) [000165] ---XG------- \--* OR int N004 ( 7, 6) [000163] n---GO------ +--* IND ubyte N003 ( 4, 3) [000228] -------N---- | \--* ADD byref $18d N001 ( 3, 2) [000162] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 $21b N002 ( 1, 1) [000227] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000164] ------------ \--* CNS_INT int 2 $42 fgMorphTree (before 161): N010 ( 7, 6) [000166] n---GO-N---- * IND ubyte $404 N009 ( 4, 3) [000226] -------N---- \--* ADD byref $18d N007 ( 3, 2) [000034] ------------ +--* LCL_VAR ref V14 tmp2 u:2 $21b N008 ( 1, 1) [000225] ------------ \--* CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (before 162): N009 ( 4, 3) [000226] -------N---- * ADD byref $18d N007 ( 3, 2) [000034] ------------ +--* LCL_VAR ref V14 tmp2 u:2 $21b N008 ( 1, 1) [000225] ------------ \--* CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (before 163): N007 ( 3, 2) [000034] ------------ * LCL_VAR ref V14 tmp2 u:2 $21b fgMorphTree (after 163): N007 ( 3, 2) [000034] ------------ * LCL_VAR ref V14 tmp2 u:2 $21b fgMorphTree (before 164): N008 ( 1, 1) [000225] ------------ * CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (after 164): N008 ( 1, 1) [000225] ------------ * CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (after 162): N009 ( 4, 3) [000226] -------N---- * ADD byref $18d N007 ( 3, 2) [000034] ------------ +--* LCL_VAR ref V14 tmp2 u:2 $21b N008 ( 1, 1) [000225] ------------ \--* CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (after 161): N010 ( 7, 6) [000166] n---GO-N---- * IND ubyte $404 N009 ( 4, 3) [000226] -------N---- \--* ADD byref $18d N007 ( 3, 2) [000034] ------------ +--* LCL_VAR ref V14 tmp2 u:2 $21b N008 ( 1, 1) [000225] ------------ \--* CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (before 165): N006 ( 9, 8) [000165] ---XG------- * OR int N004 ( 7, 6) [000163] n---GO------ +--* IND ubyte N003 ( 4, 3) [000228] -------N---- | \--* ADD byref $18d N001 ( 3, 2) [000162] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 $21b N002 ( 1, 1) [000227] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000164] ------------ \--* CNS_INT int 2 $42 fgMorphTree (before 166): N004 ( 7, 6) [000163] n---GO------ * IND ubyte N003 ( 4, 3) [000228] -------N---- \--* ADD byref $18d N001 ( 3, 2) [000162] ------------ +--* LCL_VAR ref V14 tmp2 u:2 $21b N002 ( 1, 1) [000227] ------------ \--* CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (before 167): N003 ( 4, 3) [000228] -------N---- * ADD byref $18d N001 ( 3, 2) [000162] ------------ +--* LCL_VAR ref V14 tmp2 u:2 $21b N002 ( 1, 1) [000227] ------------ \--* CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (before 168): N001 ( 3, 2) [000162] ------------ * LCL_VAR ref V14 tmp2 u:2 $21b fgMorphTree (after 168): N001 ( 3, 2) [000162] ------------ * LCL_VAR ref V14 tmp2 u:2 $21b fgMorphTree (before 169): N002 ( 1, 1) [000227] ------------ * CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (after 169): N002 ( 1, 1) [000227] ------------ * CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (after 167): N003 ( 4, 3) [000228] -------N---- * ADD byref $18d N001 ( 3, 2) [000162] ------------ +--* LCL_VAR ref V14 tmp2 u:2 $21b N002 ( 1, 1) [000227] ------------ \--* CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (after 166): N004 ( 7, 6) [000163] n---GO------ * IND ubyte N003 ( 4, 3) [000228] -------N---- \--* ADD byref $18d N001 ( 3, 2) [000162] ------------ +--* LCL_VAR ref V14 tmp2 u:2 $21b N002 ( 1, 1) [000227] ------------ \--* CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (before 170): N005 ( 1, 1) [000164] ------------ * CNS_INT int 2 $42 fgMorphTree (after 170): N005 ( 1, 1) [000164] ------------ * CNS_INT int 2 $42 fgMorphTree (after 165): N006 ( 9, 8) [000165] ----GO------ * OR int N004 ( 7, 6) [000163] n---GO------ +--* IND ubyte N003 ( 4, 3) [000228] -------N---- | \--* ADD byref $18d N001 ( 3, 2) [000162] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 $21b N002 ( 1, 1) [000227] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000164] ------------ \--* CNS_INT int 2 $42 fgMorphTree (after 160): N011 ( 17, 15) [000167] -A--GO--R--- * ASG ubyte $VN.Void N010 ( 7, 6) [000166] n---GO-N---- +--* IND ubyte $404 N009 ( 4, 3) [000226] -------N---- | \--* ADD byref $18d N007 ( 3, 2) [000034] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 $21b N008 ( 1, 1) [000225] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N006 ( 9, 8) [000165] ----GO------ \--* OR int N004 ( 7, 6) [000163] n---GO------ +--* IND ubyte N003 ( 4, 3) [000228] -------N---- | \--* ADD byref $18d N001 ( 3, 2) [000162] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 $21b N002 ( 1, 1) [000227] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000164] ------------ \--* CNS_INT int 2 $42 optVNAssertionPropCurStmt morphed tree: N011 ( 17, 15) [000167] -A--GO--R--- * ASG ubyte $VN.Void N010 ( 7, 6) [000166] n---GO-N---- +--* IND ubyte $404 N009 ( 4, 3) [000226] -------N---- | \--* ADD byref $18d N007 ( 3, 2) [000034] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 $21b N008 ( 1, 1) [000225] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N006 ( 9, 8) [000165] ----GO------ \--* OR int N004 ( 7, 6) [000163] n---GO------ +--* IND ubyte N003 ( 4, 3) [000228] -------N---- | \--* ADD byref $18d N001 ( 3, 2) [000162] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 $21b N002 ( 1, 1) [000227] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000164] ------------ \--* CNS_INT int 2 $42 GenTreeNode creates assertion: N004 ( 7, 6) [000163] n---GO------ * IND ubyte In BB14 New Global Constant Assertion: (539, 0) ($21b,$0) V14.02 != null index=#11, mask=0000000000000400 BB01 valueGen = 0000000000000001 => BB13 valueGen = 0000000000000001, BB02 valueGen = 0000000000000001 => BB13 valueGen = 0000000000000001, BB03 valueGen = 0000000000000001 => BB13 valueGen = 0000000000000001, BB04 valueGen = 0000000000000001 => BB13 valueGen = 0000000000000001, BB05 valueGen = 0000000000000001 => BB13 valueGen = 0000000000000001, BB06 valueGen = 0000000000000001 => BB13 valueGen = 0000000000000001, BB07 valueGen = 0000000000000001 => BB13 valueGen = 0000000000000001, BB08 valueGen = 0000000000000001 => BB13 valueGen = 0000000000000001, BB09 valueGen = 0000000000000001 => BB13 valueGen = 0000000000000001, BB10 valueGen = 0000000000000001 => BB13 valueGen = 0000000000000001, BB11 valueGen = 0000000000000001 => BB13 valueGen = 0000000000000001, BB12 valueGen = 0000000000000000 BB13 valueGen = 0000000000000201 => BB15 valueGen = 0000000000000101, BB14 valueGen = 0000000000000400 BB15 valueGen = 0000000000000000 AssertionPropCallback::StartMerge: BB01 in -> 0000000000000000 AssertionPropCallback::EndMerge : BB01 in -> 0000000000000000 AssertionPropCallback::Changed : BB01 before out -> 00000000000007FF; after out -> 0000000000000001; jumpDest before out -> 00000000000007FF; jumpDest after out -> 0000000000000001; AssertionPropCallback::StartMerge: BB02 in -> 00000000000007FF AssertionPropCallback::Merge : BB02 in -> 00000000000007FF, predBlock BB01 out -> 0000000000000001 AssertionPropCallback::EndMerge : BB02 in -> 0000000000000001 AssertionPropCallback::Changed : BB02 before out -> 00000000000007FF; after out -> 0000000000000001; jumpDest before out -> 00000000000007FF; jumpDest after out -> 0000000000000001; AssertionPropCallback::StartMerge: BB13 in -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 00000000000007FF, predBlock BB01 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB02 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB03 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB04 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB05 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB06 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB07 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB08 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB09 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB10 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB11 out -> 00000000000007FF AssertionPropCallback::EndMerge : BB13 in -> 0000000000000001 AssertionPropCallback::Changed : BB13 before out -> 00000000000007FF; after out -> 0000000000000201; jumpDest before out -> 00000000000007FF; jumpDest after out -> 0000000000000101; AssertionPropCallback::StartMerge: BB03 in -> 00000000000007FF AssertionPropCallback::Merge : BB03 in -> 00000000000007FF, predBlock BB02 out -> 0000000000000001 AssertionPropCallback::EndMerge : BB03 in -> 0000000000000001 AssertionPropCallback::Changed : BB03 before out -> 00000000000007FF; after out -> 0000000000000001; jumpDest before out -> 00000000000007FF; jumpDest after out -> 0000000000000001; AssertionPropCallback::StartMerge: BB13 in -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB01 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB02 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB03 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB04 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB05 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB06 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB07 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB08 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB09 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB10 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB11 out -> 00000000000007FF AssertionPropCallback::EndMerge : BB13 in -> 0000000000000001 AssertionPropCallback::Unchanged : BB13 out -> 0000000000000201; jumpDest out -> 0000000000000101 AssertionPropCallback::StartMerge: BB14 in -> 00000000000007FF AssertionPropCallback::Merge : BB14 in -> 00000000000007FF, predBlock BB13 out -> 0000000000000201 AssertionPropCallback::EndMerge : BB14 in -> 0000000000000201 AssertionPropCallback::Changed : BB14 before out -> 00000000000007FF; after out -> 0000000000000601; jumpDest before out -> 00000000000007FF; jumpDest after out -> 0000000000000201; AssertionPropCallback::StartMerge: BB15 in -> 00000000000007FF AssertionPropCallback::Merge : BB15 in -> 00000000000007FF, predBlock BB13 out -> 0000000000000201 AssertionPropCallback::Merge : BB15 in -> 0000000000000101, predBlock BB14 out -> 0000000000000601 AssertionPropCallback::EndMerge : BB15 in -> 0000000000000001 AssertionPropCallback::Changed : BB15 before out -> 00000000000007FF; after out -> 0000000000000001; jumpDest before out -> 00000000000007FF; jumpDest after out -> 0000000000000001; AssertionPropCallback::StartMerge: BB04 in -> 00000000000007FF AssertionPropCallback::Merge : BB04 in -> 00000000000007FF, predBlock BB03 out -> 0000000000000001 AssertionPropCallback::EndMerge : BB04 in -> 0000000000000001 AssertionPropCallback::Changed : BB04 before out -> 00000000000007FF; after out -> 0000000000000001; jumpDest before out -> 00000000000007FF; jumpDest after out -> 0000000000000001; AssertionPropCallback::StartMerge: BB13 in -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB01 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB02 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB03 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB04 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB05 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB06 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB07 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB08 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB09 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB10 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB11 out -> 00000000000007FF AssertionPropCallback::EndMerge : BB13 in -> 0000000000000001 AssertionPropCallback::Unchanged : BB13 out -> 0000000000000201; jumpDest out -> 0000000000000101 AssertionPropCallback::StartMerge: BB15 in -> 0000000000000001 AssertionPropCallback::Merge : BB15 in -> 0000000000000001, predBlock BB13 out -> 0000000000000201 AssertionPropCallback::Merge : BB15 in -> 0000000000000001, predBlock BB14 out -> 0000000000000601 AssertionPropCallback::EndMerge : BB15 in -> 0000000000000001 AssertionPropCallback::Unchanged : BB15 out -> 0000000000000001; jumpDest out -> 0000000000000001 AssertionPropCallback::StartMerge: BB05 in -> 00000000000007FF AssertionPropCallback::Merge : BB05 in -> 00000000000007FF, predBlock BB04 out -> 0000000000000001 AssertionPropCallback::EndMerge : BB05 in -> 0000000000000001 AssertionPropCallback::Changed : BB05 before out -> 00000000000007FF; after out -> 0000000000000001; jumpDest before out -> 00000000000007FF; jumpDest after out -> 0000000000000001; AssertionPropCallback::StartMerge: BB13 in -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB01 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB02 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB03 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB04 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB05 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB06 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB07 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB08 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB09 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB10 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB11 out -> 00000000000007FF AssertionPropCallback::EndMerge : BB13 in -> 0000000000000001 AssertionPropCallback::Unchanged : BB13 out -> 0000000000000201; jumpDest out -> 0000000000000101 AssertionPropCallback::StartMerge: BB06 in -> 00000000000007FF AssertionPropCallback::Merge : BB06 in -> 00000000000007FF, predBlock BB05 out -> 0000000000000001 AssertionPropCallback::EndMerge : BB06 in -> 0000000000000001 AssertionPropCallback::Changed : BB06 before out -> 00000000000007FF; after out -> 0000000000000001; jumpDest before out -> 00000000000007FF; jumpDest after out -> 0000000000000001; AssertionPropCallback::StartMerge: BB13 in -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB01 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB02 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB03 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB04 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB05 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB06 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB07 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB08 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB09 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB10 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB11 out -> 00000000000007FF AssertionPropCallback::EndMerge : BB13 in -> 0000000000000001 AssertionPropCallback::Unchanged : BB13 out -> 0000000000000201; jumpDest out -> 0000000000000101 AssertionPropCallback::StartMerge: BB07 in -> 00000000000007FF AssertionPropCallback::Merge : BB07 in -> 00000000000007FF, predBlock BB06 out -> 0000000000000001 AssertionPropCallback::EndMerge : BB07 in -> 0000000000000001 AssertionPropCallback::Changed : BB07 before out -> 00000000000007FF; after out -> 0000000000000001; jumpDest before out -> 00000000000007FF; jumpDest after out -> 0000000000000001; AssertionPropCallback::StartMerge: BB13 in -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB01 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB02 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB03 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB04 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB05 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB06 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB07 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB08 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB09 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB10 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB11 out -> 00000000000007FF AssertionPropCallback::EndMerge : BB13 in -> 0000000000000001 AssertionPropCallback::Unchanged : BB13 out -> 0000000000000201; jumpDest out -> 0000000000000101 AssertionPropCallback::StartMerge: BB08 in -> 00000000000007FF AssertionPropCallback::Merge : BB08 in -> 00000000000007FF, predBlock BB07 out -> 0000000000000001 AssertionPropCallback::EndMerge : BB08 in -> 0000000000000001 AssertionPropCallback::Changed : BB08 before out -> 00000000000007FF; after out -> 0000000000000001; jumpDest before out -> 00000000000007FF; jumpDest after out -> 0000000000000001; AssertionPropCallback::StartMerge: BB13 in -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB01 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB02 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB03 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB04 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB05 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB06 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB07 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB08 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB09 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB10 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB11 out -> 00000000000007FF AssertionPropCallback::EndMerge : BB13 in -> 0000000000000001 AssertionPropCallback::Unchanged : BB13 out -> 0000000000000201; jumpDest out -> 0000000000000101 AssertionPropCallback::StartMerge: BB09 in -> 00000000000007FF AssertionPropCallback::Merge : BB09 in -> 00000000000007FF, predBlock BB08 out -> 0000000000000001 AssertionPropCallback::EndMerge : BB09 in -> 0000000000000001 AssertionPropCallback::Changed : BB09 before out -> 00000000000007FF; after out -> 0000000000000001; jumpDest before out -> 00000000000007FF; jumpDest after out -> 0000000000000001; AssertionPropCallback::StartMerge: BB13 in -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB01 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB02 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB03 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB04 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB05 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB06 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB07 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB08 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB09 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB10 out -> 00000000000007FF AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB11 out -> 00000000000007FF AssertionPropCallback::EndMerge : BB13 in -> 0000000000000001 AssertionPropCallback::Unchanged : BB13 out -> 0000000000000201; jumpDest out -> 0000000000000101 AssertionPropCallback::StartMerge: BB10 in -> 00000000000007FF AssertionPropCallback::Merge : BB10 in -> 00000000000007FF, predBlock BB09 out -> 0000000000000001 AssertionPropCallback::EndMerge : BB10 in -> 0000000000000001 AssertionPropCallback::Changed : BB10 before out -> 00000000000007FF; after out -> 0000000000000001; jumpDest before out -> 00000000000007FF; jumpDest after out -> 0000000000000001; AssertionPropCallback::StartMerge: BB13 in -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB01 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB02 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB03 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB04 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB05 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB06 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB07 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB08 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB09 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB10 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB11 out -> 00000000000007FF AssertionPropCallback::EndMerge : BB13 in -> 0000000000000001 AssertionPropCallback::Unchanged : BB13 out -> 0000000000000201; jumpDest out -> 0000000000000101 AssertionPropCallback::StartMerge: BB11 in -> 00000000000007FF AssertionPropCallback::Merge : BB11 in -> 00000000000007FF, predBlock BB10 out -> 0000000000000001 AssertionPropCallback::EndMerge : BB11 in -> 0000000000000001 AssertionPropCallback::Changed : BB11 before out -> 00000000000007FF; after out -> 0000000000000001; jumpDest before out -> 00000000000007FF; jumpDest after out -> 0000000000000001; AssertionPropCallback::StartMerge: BB13 in -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB01 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB02 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB03 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB04 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB05 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB06 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB07 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB08 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB09 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB10 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB11 out -> 0000000000000001 AssertionPropCallback::EndMerge : BB13 in -> 0000000000000001 AssertionPropCallback::Unchanged : BB13 out -> 0000000000000201; jumpDest out -> 0000000000000101 AssertionPropCallback::StartMerge: BB12 in -> 00000000000007FF AssertionPropCallback::Merge : BB12 in -> 00000000000007FF, predBlock BB11 out -> 0000000000000001 AssertionPropCallback::EndMerge : BB12 in -> 0000000000000001 AssertionPropCallback::Changed : BB12 before out -> 00000000000007FF; after out -> 0000000000000001; jumpDest before out -> 00000000000007FF; jumpDest after out -> 0000000000000001; AssertionPropCallback::StartMerge: BB13 in -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB01 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB02 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB03 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB04 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB05 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB06 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB07 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB08 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB09 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB10 out -> 0000000000000001 AssertionPropCallback::Merge : BB13 in -> 0000000000000001, predBlock BB11 out -> 0000000000000001 AssertionPropCallback::EndMerge : BB13 in -> 0000000000000001 AssertionPropCallback::Unchanged : BB13 out -> 0000000000000201; jumpDest out -> 0000000000000101 BB01 valueIn = 0000000000000000 valueOut = 0000000000000001 => BB13 valueOut= 0000000000000001 BB02 valueIn = 0000000000000001 valueOut = 0000000000000001 => BB13 valueOut= 0000000000000001 BB03 valueIn = 0000000000000001 valueOut = 0000000000000001 => BB13 valueOut= 0000000000000001 BB04 valueIn = 0000000000000001 valueOut = 0000000000000001 => BB13 valueOut= 0000000000000001 BB05 valueIn = 0000000000000001 valueOut = 0000000000000001 => BB13 valueOut= 0000000000000001 BB06 valueIn = 0000000000000001 valueOut = 0000000000000001 => BB13 valueOut= 0000000000000001 BB07 valueIn = 0000000000000001 valueOut = 0000000000000001 => BB13 valueOut= 0000000000000001 BB08 valueIn = 0000000000000001 valueOut = 0000000000000001 => BB13 valueOut= 0000000000000001 BB09 valueIn = 0000000000000001 valueOut = 0000000000000001 => BB13 valueOut= 0000000000000001 BB10 valueIn = 0000000000000001 valueOut = 0000000000000001 => BB13 valueOut= 0000000000000001 BB11 valueIn = 0000000000000001 valueOut = 0000000000000001 => BB13 valueOut= 0000000000000001 BB12 valueIn = 0000000000000001 valueOut = 0000000000000001 BB13 valueIn = 0000000000000001 valueOut = 0000000000000201 => BB15 valueOut= 0000000000000101 BB14 valueIn = 0000000000000201 valueOut = 0000000000000601 BB15 valueIn = 0000000000000001 valueOut = 0000000000000001 Propagating 0000000000000000 assertions for BB01, stmt STMT00001, tree [000000], tree -> 0 Propagating 0000000000000000 assertions for BB01, stmt STMT00001, tree [000001], tree -> 0 Propagating 0000000000000000 assertions for BB01, stmt STMT00001, tree [000173], tree -> 0 Propagating 0000000000000000 assertions for BB01, stmt STMT00001, tree [000174], tree -> 0 Propagating 0000000000000000 assertions for BB01, stmt STMT00001, tree [000121], tree -> 1 Propagating 0000000000000001 assertions for BB01, stmt STMT00001, tree [000004], tree -> 0 Propagating 0000000000000001 assertions for BB01, stmt STMT00001, tree [000005], tree -> 0 Propagating 0000000000000001 assertions for BB02, stmt STMT00010, tree [000041], tree -> 0 Propagating 0000000000000001 assertions for BB02, stmt STMT00010, tree [000175], tree -> 0 Propagating 0000000000000001 assertions for BB02, stmt STMT00010, tree [000042], tree -> 0 Propagating 0000000000000001 assertions for BB02, stmt STMT00010, tree [000176], tree -> 0 Propagating 0000000000000001 assertions for BB02, stmt STMT00010, tree [000177], tree -> 0 Propagating 0000000000000001 assertions for BB02, stmt STMT00010, tree [000123], tree -> 1 Non-null prop for index #01 in BB02: N006 ( 5, 5) [000123] ---XG------- * IND ubyte Propagating 0000000000000001 assertions for BB02, stmt STMT00010, tree [000046], tree -> 0 Propagating 0000000000000001 assertions for BB02, stmt STMT00010, tree [000047], tree -> 0 Re-morphing this stmt: STMT00010 (IL ???... ???) N008 ( 11, 12) [000047] ---XG------- * JTRUE void N007 ( 9, 10) [000046] N--XG--N-U-- \--* NE int N002 ( 3, 4) [000175] ------------ +--* CAST int <- ubyte <- int $284 N001 ( 2, 2) [000041] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0 N006 ( 5, 5) [000123] n---GO------ \--* IND ubyte N005 ( 2, 2) [000177] -------N---- \--* ADD byref $181 N003 ( 1, 1) [000042] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] $141 fgMorphTree (before 171): N008 ( 11, 12) [000047] ---XG------- * JTRUE void N007 ( 9, 10) [000046] N--XG--N-U-- \--* NE int N002 ( 3, 4) [000175] ------------ +--* CAST int <- ubyte <- int $284 N001 ( 2, 2) [000041] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0 N006 ( 5, 5) [000123] n---GO------ \--* IND ubyte N005 ( 2, 2) [000177] -------N---- \--* ADD byref $181 N003 ( 1, 1) [000042] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] $141 fgMorphTree (before 172): N007 ( 9, 10) [000046] N--XG--N-U-- * NE int N002 ( 3, 4) [000175] ------------ +--* CAST int <- ubyte <- int $284 N001 ( 2, 2) [000041] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0 N006 ( 5, 5) [000123] n---GO------ \--* IND ubyte N005 ( 2, 2) [000177] -------N---- \--* ADD byref $181 N003 ( 1, 1) [000042] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] $141 fgMorphTree (before 173): N002 ( 3, 4) [000175] ------------ * CAST int <- ubyte <- int $284 N001 ( 2, 2) [000041] ------------ \--* LCL_VAR int V02 arg2 u:1 $c0 fgMorphTree (before 174): N001 ( 2, 2) [000041] ------------ * LCL_VAR int V02 arg2 u:1 $c0 fgMorphTree (after 174): N001 ( 2, 2) [000041] ------------ * LCL_VAR int V02 arg2 u:1 $c0 fgMorphTree (after 173): N002 ( 3, 4) [000175] ------------ * CAST int <- ubyte <- int $284 N001 ( 2, 2) [000041] ------------ \--* LCL_VAR int V02 arg2 u:1 $c0 fgMorphTree (before 175): N006 ( 5, 5) [000123] n---GO------ * IND ubyte N005 ( 2, 2) [000177] -------N---- \--* ADD byref $181 N003 ( 1, 1) [000042] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] $141 fgMorphTree (before 176): N005 ( 2, 2) [000177] -------N---- * ADD byref $181 N003 ( 1, 1) [000042] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] $141 fgMorphTree (before 177): N003 ( 1, 1) [000042] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (after 177): N003 ( 1, 1) [000042] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (before 178): N004 ( 1, 1) [000176] ------------ * CNS_INT long 56 field offset Fseq[k__BackingField] $141 fgMorphTree (after 178): N004 ( 1, 1) [000176] ------------ * CNS_INT long 56 field offset Fseq[k__BackingField] $141 fgMorphTree (after 176): N005 ( 2, 2) [000177] -------N---- * ADD byref $181 N003 ( 1, 1) [000042] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] $141 fgMorphTree (after 175): N006 ( 5, 5) [000123] n---GO------ * IND ubyte N005 ( 2, 2) [000177] -------N---- \--* ADD byref $181 N003 ( 1, 1) [000042] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] $141 fgMorphTree (after 172): N007 ( 9, 10) [000046] N---GO-N-U-- * NE int N002 ( 3, 4) [000175] ------------ +--* CAST int <- ubyte <- int $284 N001 ( 2, 2) [000041] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0 N006 ( 5, 5) [000123] n---GO------ \--* IND ubyte N005 ( 2, 2) [000177] -------N---- \--* ADD byref $181 N003 ( 1, 1) [000042] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] $141 fgMorphTree (after 171): N008 ( 11, 12) [000047] ----GO------ * JTRUE void N007 ( 9, 10) [000046] N---GO-N-U-- \--* NE int N002 ( 3, 4) [000175] ------------ +--* CAST int <- ubyte <- int $284 N001 ( 2, 2) [000041] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0 N006 ( 5, 5) [000123] n---GO------ \--* IND ubyte N005 ( 2, 2) [000177] -------N---- \--* ADD byref $181 N003 ( 1, 1) [000042] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] $141 optAssertionPropMain morphed tree: N008 ( 11, 12) [000047] ----GO------ * JTRUE void N007 ( 9, 10) [000046] N---GO-N-U-- \--* NE int N002 ( 3, 4) [000175] ------------ +--* CAST int <- ubyte <- int $284 N001 ( 2, 2) [000041] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0 N006 ( 5, 5) [000123] n---GO------ \--* IND ubyte N005 ( 2, 2) [000177] -------N---- \--* ADD byref $181 N003 ( 1, 1) [000042] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] $141 Propagating 0000000000000001 assertions for BB03, stmt STMT00012, tree [000048], tree -> 0 Propagating 0000000000000001 assertions for BB03, stmt STMT00012, tree [000178], tree -> 0 Propagating 0000000000000001 assertions for BB03, stmt STMT00012, tree [000049], tree -> 0 Propagating 0000000000000001 assertions for BB03, stmt STMT00012, tree [000179], tree -> 0 Propagating 0000000000000001 assertions for BB03, stmt STMT00012, tree [000180], tree -> 0 Propagating 0000000000000001 assertions for BB03, stmt STMT00012, tree [000125], tree -> 1 Non-null prop for index #01 in BB03: N006 ( 5, 5) [000125] ---XG------- * IND ubyte Propagating 0000000000000001 assertions for BB03, stmt STMT00012, tree [000053], tree -> 0 Propagating 0000000000000001 assertions for BB03, stmt STMT00012, tree [000054], tree -> 0 Re-morphing this stmt: STMT00012 (IL ???... ???) N008 ( 11, 12) [000054] ---XG------- * JTRUE void N007 ( 9, 10) [000053] N--XG--N-U-- \--* NE int N002 ( 3, 4) [000178] ------------ +--* CAST int <- ubyte <- int $289 N001 ( 2, 2) [000048] ------------ | \--* LCL_VAR int V03 arg3 u:1 $c1 N006 ( 5, 5) [000125] n---GO------ \--* IND ubyte N005 ( 2, 2) [000180] -------N---- \--* ADD byref $182 N003 ( 1, 1) [000049] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] $142 fgMorphTree (before 179): N008 ( 11, 12) [000054] ---XG------- * JTRUE void N007 ( 9, 10) [000053] N--XG--N-U-- \--* NE int N002 ( 3, 4) [000178] ------------ +--* CAST int <- ubyte <- int $289 N001 ( 2, 2) [000048] ------------ | \--* LCL_VAR int V03 arg3 u:1 $c1 N006 ( 5, 5) [000125] n---GO------ \--* IND ubyte N005 ( 2, 2) [000180] -------N---- \--* ADD byref $182 N003 ( 1, 1) [000049] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] $142 fgMorphTree (before 180): N007 ( 9, 10) [000053] N--XG--N-U-- * NE int N002 ( 3, 4) [000178] ------------ +--* CAST int <- ubyte <- int $289 N001 ( 2, 2) [000048] ------------ | \--* LCL_VAR int V03 arg3 u:1 $c1 N006 ( 5, 5) [000125] n---GO------ \--* IND ubyte N005 ( 2, 2) [000180] -------N---- \--* ADD byref $182 N003 ( 1, 1) [000049] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] $142 fgMorphTree (before 181): N002 ( 3, 4) [000178] ------------ * CAST int <- ubyte <- int $289 N001 ( 2, 2) [000048] ------------ \--* LCL_VAR int V03 arg3 u:1 $c1 fgMorphTree (before 182): N001 ( 2, 2) [000048] ------------ * LCL_VAR int V03 arg3 u:1 $c1 fgMorphTree (after 182): N001 ( 2, 2) [000048] ------------ * LCL_VAR int V03 arg3 u:1 $c1 fgMorphTree (after 181): N002 ( 3, 4) [000178] ------------ * CAST int <- ubyte <- int $289 N001 ( 2, 2) [000048] ------------ \--* LCL_VAR int V03 arg3 u:1 $c1 fgMorphTree (before 183): N006 ( 5, 5) [000125] n---GO------ * IND ubyte N005 ( 2, 2) [000180] -------N---- \--* ADD byref $182 N003 ( 1, 1) [000049] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] $142 fgMorphTree (before 184): N005 ( 2, 2) [000180] -------N---- * ADD byref $182 N003 ( 1, 1) [000049] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] $142 fgMorphTree (before 185): N003 ( 1, 1) [000049] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (after 185): N003 ( 1, 1) [000049] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (before 186): N004 ( 1, 1) [000179] ------------ * CNS_INT long 57 field offset Fseq[_ResultKind] $142 fgMorphTree (after 186): N004 ( 1, 1) [000179] ------------ * CNS_INT long 57 field offset Fseq[_ResultKind] $142 fgMorphTree (after 184): N005 ( 2, 2) [000180] -------N---- * ADD byref $182 N003 ( 1, 1) [000049] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] $142 fgMorphTree (after 183): N006 ( 5, 5) [000125] n---GO------ * IND ubyte N005 ( 2, 2) [000180] -------N---- \--* ADD byref $182 N003 ( 1, 1) [000049] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] $142 fgMorphTree (after 180): N007 ( 9, 10) [000053] N---GO-N-U-- * NE int N002 ( 3, 4) [000178] ------------ +--* CAST int <- ubyte <- int $289 N001 ( 2, 2) [000048] ------------ | \--* LCL_VAR int V03 arg3 u:1 $c1 N006 ( 5, 5) [000125] n---GO------ \--* IND ubyte N005 ( 2, 2) [000180] -------N---- \--* ADD byref $182 N003 ( 1, 1) [000049] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] $142 fgMorphTree (after 179): N008 ( 11, 12) [000054] ----GO------ * JTRUE void N007 ( 9, 10) [000053] N---GO-N-U-- \--* NE int N002 ( 3, 4) [000178] ------------ +--* CAST int <- ubyte <- int $289 N001 ( 2, 2) [000048] ------------ | \--* LCL_VAR int V03 arg3 u:1 $c1 N006 ( 5, 5) [000125] n---GO------ \--* IND ubyte N005 ( 2, 2) [000180] -------N---- \--* ADD byref $182 N003 ( 1, 1) [000049] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] $142 optAssertionPropMain morphed tree: N008 ( 11, 12) [000054] ----GO------ * JTRUE void N007 ( 9, 10) [000053] N---GO-N-U-- \--* NE int N002 ( 3, 4) [000178] ------------ +--* CAST int <- ubyte <- int $289 N001 ( 2, 2) [000048] ------------ | \--* LCL_VAR int V03 arg3 u:1 $c1 N006 ( 5, 5) [000125] n---GO------ \--* IND ubyte N005 ( 2, 2) [000180] -------N---- \--* ADD byref $182 N003 ( 1, 1) [000049] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] $142 Propagating 0000000000000001 assertions for BB04, stmt STMT00014, tree [000055], tree -> 0 Propagating 0000000000000001 assertions for BB04, stmt STMT00014, tree [000181], tree -> 0 Propagating 0000000000000001 assertions for BB04, stmt STMT00014, tree [000056], tree -> 0 Propagating 0000000000000001 assertions for BB04, stmt STMT00014, tree [000182], tree -> 0 Propagating 0000000000000001 assertions for BB04, stmt STMT00014, tree [000183], tree -> 0 Propagating 0000000000000001 assertions for BB04, stmt STMT00014, tree [000127], tree -> 1 Non-null prop for index #01 in BB04: N006 ( 5, 5) [000127] ---XG------- * IND bool Propagating 0000000000000001 assertions for BB04, stmt STMT00014, tree [000060], tree -> 0 Propagating 0000000000000001 assertions for BB04, stmt STMT00014, tree [000061], tree -> 0 Re-morphing this stmt: STMT00014 (IL ???... ???) N008 ( 12, 12) [000061] ---XG------- * JTRUE void N007 ( 10, 10) [000060] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000181] ------------ +--* CAST int <- bool <- int $28e N001 ( 3, 2) [000055] ------------ | \--* LCL_VAR int V04 arg4 u:1 $100 N006 ( 5, 5) [000127] n---GO------ \--* IND bool N005 ( 2, 2) [000183] -------N---- \--* ADD byref $183 N003 ( 1, 1) [000056] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] $143 fgMorphTree (before 187): N008 ( 12, 12) [000061] ---XG------- * JTRUE void N007 ( 10, 10) [000060] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000181] ------------ +--* CAST int <- bool <- int $28e N001 ( 3, 2) [000055] ------------ | \--* LCL_VAR int V04 arg4 u:1 $100 N006 ( 5, 5) [000127] n---GO------ \--* IND bool N005 ( 2, 2) [000183] -------N---- \--* ADD byref $183 N003 ( 1, 1) [000056] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] $143 fgMorphTree (before 188): N007 ( 10, 10) [000060] N--XG--N-U-- * NE int N002 ( 4, 4) [000181] ------------ +--* CAST int <- bool <- int $28e N001 ( 3, 2) [000055] ------------ | \--* LCL_VAR int V04 arg4 u:1 $100 N006 ( 5, 5) [000127] n---GO------ \--* IND bool N005 ( 2, 2) [000183] -------N---- \--* ADD byref $183 N003 ( 1, 1) [000056] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] $143 fgMorphTree (before 189): N002 ( 4, 4) [000181] ------------ * CAST int <- bool <- int $28e N001 ( 3, 2) [000055] ------------ \--* LCL_VAR int V04 arg4 u:1 $100 fgMorphTree (before 190): N001 ( 3, 2) [000055] ------------ * LCL_VAR int V04 arg4 u:1 $100 fgMorphTree (after 190): N001 ( 3, 2) [000055] ------------ * LCL_VAR int V04 arg4 u:1 $100 fgMorphTree (after 189): N002 ( 4, 4) [000181] ------------ * CAST int <- bool <- int $28e N001 ( 3, 2) [000055] ------------ \--* LCL_VAR int V04 arg4 u:1 $100 fgMorphTree (before 191): N006 ( 5, 5) [000127] n---GO------ * IND bool N005 ( 2, 2) [000183] -------N---- \--* ADD byref $183 N003 ( 1, 1) [000056] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] $143 fgMorphTree (before 192): N005 ( 2, 2) [000183] -------N---- * ADD byref $183 N003 ( 1, 1) [000056] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] $143 fgMorphTree (before 193): N003 ( 1, 1) [000056] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (after 193): N003 ( 1, 1) [000056] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (before 194): N004 ( 1, 1) [000182] ------------ * CNS_INT long 58 field offset Fseq[k__BackingField] $143 fgMorphTree (after 194): N004 ( 1, 1) [000182] ------------ * CNS_INT long 58 field offset Fseq[k__BackingField] $143 fgMorphTree (after 192): N005 ( 2, 2) [000183] -------N---- * ADD byref $183 N003 ( 1, 1) [000056] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] $143 fgMorphTree (after 191): N006 ( 5, 5) [000127] n---GO------ * IND bool N005 ( 2, 2) [000183] -------N---- \--* ADD byref $183 N003 ( 1, 1) [000056] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] $143 fgMorphTree (after 188): N007 ( 10, 10) [000060] N---GO-N-U-- * NE int N002 ( 4, 4) [000181] ------------ +--* CAST int <- bool <- int $28e N001 ( 3, 2) [000055] ------------ | \--* LCL_VAR int V04 arg4 u:1 $100 N006 ( 5, 5) [000127] n---GO------ \--* IND bool N005 ( 2, 2) [000183] -------N---- \--* ADD byref $183 N003 ( 1, 1) [000056] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] $143 fgMorphTree (after 187): N008 ( 12, 12) [000061] ----GO------ * JTRUE void N007 ( 10, 10) [000060] N---GO-N-U-- \--* NE int N002 ( 4, 4) [000181] ------------ +--* CAST int <- bool <- int $28e N001 ( 3, 2) [000055] ------------ | \--* LCL_VAR int V04 arg4 u:1 $100 N006 ( 5, 5) [000127] n---GO------ \--* IND bool N005 ( 2, 2) [000183] -------N---- \--* ADD byref $183 N003 ( 1, 1) [000056] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] $143 optAssertionPropMain morphed tree: N008 ( 12, 12) [000061] ----GO------ * JTRUE void N007 ( 10, 10) [000060] N---GO-N-U-- \--* NE int N002 ( 4, 4) [000181] ------------ +--* CAST int <- bool <- int $28e N001 ( 3, 2) [000055] ------------ | \--* LCL_VAR int V04 arg4 u:1 $100 N006 ( 5, 5) [000127] n---GO------ \--* IND bool N005 ( 2, 2) [000183] -------N---- \--* ADD byref $183 N003 ( 1, 1) [000056] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] $143 Propagating 0000000000000001 assertions for BB05, stmt STMT00017, tree [000187], tree -> 0 Propagating 0000000000000001 assertions for BB05, stmt STMT00017, tree [000186], tree -> 0 Propagating 0000000000000001 assertions for BB05, stmt STMT00017, tree [000063], tree -> 0 Propagating 0000000000000001 assertions for BB05, stmt STMT00017, tree [000184], tree -> 0 Propagating 0000000000000001 assertions for BB05, stmt STMT00017, tree [000185], tree -> 0 Propagating 0000000000000001 assertions for BB05, stmt STMT00017, tree [000129], tree -> 1 Non-null prop for index #01 in BB05: N006 ( 4, 4) [000129] ---XG------- * IND ref Propagating 0000000000000001 assertions for BB05, stmt STMT00017, tree [000062], tree -> 0 Propagating 0000000000000001 assertions for BB05, stmt STMT00017, tree [000066], tree -> 0 Propagating 0000000000000001 assertions for BB05, stmt STMT00017, tree [000068], tree -> 0 Propagating 0000000000000001 assertions for BB05, stmt STMT00017, tree [000069], tree -> 0 Propagating 0000000000000001 assertions for BB05, stmt STMT00017, tree [000070], tree -> 0 Propagating 0000000000000001 assertions for BB05, stmt STMT00017, tree [000071], tree -> 0 Re-morphing this stmt: STMT00017 (IL ???... ???) N012 ( 26, 19) [000071] --CXG------- * JTRUE void N011 ( 24, 17) [000070] J-CXG--N---- \--* NE int $294 N009 ( 22, 15) [000068] --CXG------- +--* CAST int <- bool <- int $293 N008 ( 21, 13) [000066] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 N006 ( 4, 4) [000129] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000185] -------N---- | | \--* ADD byref $184 N003 ( 1, 1) [000063] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] $144 N007 ( 3, 2) [000062] ------------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 u:1 $82 N010 ( 1, 1) [000069] ------------ \--* CNS_INT int 0 $40 fgMorphTree (before 195): N012 ( 26, 19) [000071] --CXG------- * JTRUE void N011 ( 24, 17) [000070] J-CXG--N---- \--* NE int $294 N009 ( 22, 15) [000068] --CXG------- +--* CAST int <- bool <- int $293 N008 ( 21, 13) [000066] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 N006 ( 4, 4) [000129] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000185] -------N---- | | \--* ADD byref $184 N003 ( 1, 1) [000063] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] $144 N007 ( 3, 2) [000062] ------------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 u:1 $82 N010 ( 1, 1) [000069] ------------ \--* CNS_INT int 0 $40 fgMorphTree (before 196): N011 ( 24, 17) [000070] J-CXG--N---- * NE int $294 N009 ( 22, 15) [000068] --CXG------- +--* CAST int <- bool <- int $293 N008 ( 21, 13) [000066] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 N006 ( 4, 4) [000129] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000185] -------N---- | | \--* ADD byref $184 N003 ( 1, 1) [000063] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] $144 N007 ( 3, 2) [000062] ------------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 u:1 $82 N010 ( 1, 1) [000069] ------------ \--* CNS_INT int 0 $40 fgMorphTree (before 197): N009 ( 22, 15) [000068] --CXG------- * CAST int <- bool <- int $293 N008 ( 21, 13) [000066] --CXG------- \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 N006 ( 4, 4) [000129] n---GO------ arg1 in rdx +--* IND ref N005 ( 2, 2) [000185] -------N---- | \--* ADD byref $184 N003 ( 1, 1) [000063] ------------ | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ | \--* CNS_INT long 40 field offset Fseq[k__BackingField] $144 N007 ( 3, 2) [000062] ------------ arg0 in rcx \--* LCL_VAR ref V05 arg5 u:1 $82 fgMorphTree (before 198): N008 ( 21, 13) [000066] --CXG------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 N006 ( 4, 4) [000129] n---GO------ arg1 in rdx +--* IND ref N005 ( 2, 2) [000185] -------N---- | \--* ADD byref $184 N003 ( 1, 1) [000063] ------------ | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ | \--* CNS_INT long 40 field offset Fseq[k__BackingField] $144 N007 ( 3, 2) [000062] ------------ arg0 in rcx \--* LCL_VAR ref V05 arg5 u:1 $82 ReMorphing args for 66.CALL: fgMorphTree (before 199): N006 ( 4, 4) [000129] n---GO------ * IND ref N005 ( 2, 2) [000185] -------N---- \--* ADD byref $184 N003 ( 1, 1) [000063] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ \--* CNS_INT long 40 field offset Fseq[k__BackingField] $144 fgMorphTree (before 200): N005 ( 2, 2) [000185] -------N---- * ADD byref $184 N003 ( 1, 1) [000063] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ \--* CNS_INT long 40 field offset Fseq[k__BackingField] $144 fgMorphTree (before 201): N003 ( 1, 1) [000063] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (after 201): N003 ( 1, 1) [000063] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (before 202): N004 ( 1, 1) [000184] ------------ * CNS_INT long 40 field offset Fseq[k__BackingField] $144 fgMorphTree (after 202): N004 ( 1, 1) [000184] ------------ * CNS_INT long 40 field offset Fseq[k__BackingField] $144 fgMorphTree (after 200): N005 ( 2, 2) [000185] -------N---- * ADD byref $184 N003 ( 1, 1) [000063] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ \--* CNS_INT long 40 field offset Fseq[k__BackingField] $144 fgMorphTree (after 199): N006 ( 4, 4) [000129] n---GO------ * IND ref N005 ( 2, 2) [000185] -------N---- \--* ADD byref $184 N003 ( 1, 1) [000063] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ \--* CNS_INT long 40 field offset Fseq[k__BackingField] $144 fgMorphTree (before 203): N007 ( 3, 2) [000062] ------------ * LCL_VAR ref V05 arg5 u:1 $82 fgMorphTree (after 203): N007 ( 3, 2) [000062] ------------ * LCL_VAR ref V05 arg5 u:1 $82 fgMorphTree (before 204): N001 ( 0, 0) [000187] ----------L- * ARGPLACE ref $82 fgMorphTree (after 204): N001 ( 0, 0) [000187] ----------L- * ARGPLACE ref $82 fgMorphTree (before 205): N002 ( 0, 0) [000186] ----------L- * ARGPLACE ref fgMorphTree (after 205): N002 ( 0, 0) [000186] ----------L- * ARGPLACE ref argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 ArgTable for 66.CALL after fgMorphArgs: fgArgTabEntry[arg 1 129.IND ref (By ref), 1 reg: rdx, align=1, lateArgInx=0, processed] fgArgTabEntry[arg 0 62.LCL_VAR ref (By ref), 1 reg: rcx, align=1, lateArgInx=1, processed] fgMorphTree (after 198): N008 ( 21, 13) [000066] --CXGO------ * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 N006 ( 4, 4) [000129] n---GO------ arg1 in rdx +--* IND ref N005 ( 2, 2) [000185] -------N---- | \--* ADD byref $184 N003 ( 1, 1) [000063] ------------ | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ | \--* CNS_INT long 40 field offset Fseq[k__BackingField] $144 N007 ( 3, 2) [000062] ------------ arg0 in rcx \--* LCL_VAR ref V05 arg5 u:1 $82 fgMorphTree (after 197): N009 ( 22, 15) [000068] --CXGO------ * CAST int <- bool <- int $293 N008 ( 21, 13) [000066] --CXGO------ \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 N006 ( 4, 4) [000129] n---GO------ arg1 in rdx +--* IND ref N005 ( 2, 2) [000185] -------N---- | \--* ADD byref $184 N003 ( 1, 1) [000063] ------------ | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ | \--* CNS_INT long 40 field offset Fseq[k__BackingField] $144 N007 ( 3, 2) [000062] ------------ arg0 in rcx \--* LCL_VAR ref V05 arg5 u:1 $82 fgMorphTree (before 206): N010 ( 1, 1) [000069] ------------ * CNS_INT int 0 $40 fgMorphTree (after 206): N010 ( 1, 1) [000069] ------------ * CNS_INT int 0 $40 fgMorphTree (after 196): N011 ( 24, 17) [000070] J-CXGO-N---- * NE int $294 N009 ( 22, 15) [000068] --CXGO------ +--* CAST int <- bool <- int $293 N008 ( 21, 13) [000066] --CXGO------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 N006 ( 4, 4) [000129] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000185] -------N---- | | \--* ADD byref $184 N003 ( 1, 1) [000063] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] $144 N007 ( 3, 2) [000062] ------------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 u:1 $82 N010 ( 1, 1) [000069] ------------ \--* CNS_INT int 0 $40 fgMorphTree (after 195): N012 ( 26, 19) [000071] --CXGO------ * JTRUE void N011 ( 24, 17) [000070] J-CXGO-N---- \--* NE int $294 N009 ( 22, 15) [000068] --CXGO------ +--* CAST int <- bool <- int $293 N008 ( 21, 13) [000066] --CXGO------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 N006 ( 4, 4) [000129] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000185] -------N---- | | \--* ADD byref $184 N003 ( 1, 1) [000063] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] $144 N007 ( 3, 2) [000062] ------------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 u:1 $82 N010 ( 1, 1) [000069] ------------ \--* CNS_INT int 0 $40 optAssertionPropMain morphed tree: N012 ( 26, 19) [000071] --CXGO------ * JTRUE void N011 ( 24, 17) [000070] J-CXGO-N---- \--* NE int $294 N009 ( 22, 15) [000068] --CXGO------ +--* CAST int <- bool <- int $293 N008 ( 21, 13) [000066] --CXGO------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 N006 ( 4, 4) [000129] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000185] -------N---- | | \--* ADD byref $184 N003 ( 1, 1) [000063] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] $144 N007 ( 3, 2) [000062] ------------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 u:1 $82 N010 ( 1, 1) [000069] ------------ \--* CNS_INT int 0 $40 Propagating 0000000000000001 assertions for BB06, stmt STMT00019, tree [000072], tree -> 0 Propagating 0000000000000001 assertions for BB06, stmt STMT00019, tree [000188], tree -> 0 Propagating 0000000000000001 assertions for BB06, stmt STMT00019, tree [000073], tree -> 0 Propagating 0000000000000001 assertions for BB06, stmt STMT00019, tree [000189], tree -> 0 Propagating 0000000000000001 assertions for BB06, stmt STMT00019, tree [000190], tree -> 0 Propagating 0000000000000001 assertions for BB06, stmt STMT00019, tree [000132], tree -> 1 Non-null prop for index #01 in BB06: N006 ( 5, 5) [000132] ---XG------- * IND bool Propagating 0000000000000001 assertions for BB06, stmt STMT00019, tree [000077], tree -> 0 Propagating 0000000000000001 assertions for BB06, stmt STMT00019, tree [000078], tree -> 0 Re-morphing this stmt: STMT00019 (IL ???... ???) N008 ( 12, 12) [000078] ---XG------- * JTRUE void N007 ( 10, 10) [000077] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000188] ------------ +--* CAST int <- bool <- int $295 N001 ( 3, 2) [000072] ------------ | \--* LCL_VAR int V06 arg6 u:1 $101 N006 ( 5, 5) [000132] n---GO------ \--* IND bool N005 ( 2, 2) [000190] -------N---- \--* ADD byref $185 N003 ( 1, 1) [000073] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] $145 fgMorphTree (before 207): N008 ( 12, 12) [000078] ---XG------- * JTRUE void N007 ( 10, 10) [000077] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000188] ------------ +--* CAST int <- bool <- int $295 N001 ( 3, 2) [000072] ------------ | \--* LCL_VAR int V06 arg6 u:1 $101 N006 ( 5, 5) [000132] n---GO------ \--* IND bool N005 ( 2, 2) [000190] -------N---- \--* ADD byref $185 N003 ( 1, 1) [000073] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] $145 fgMorphTree (before 208): N007 ( 10, 10) [000077] N--XG--N-U-- * NE int N002 ( 4, 4) [000188] ------------ +--* CAST int <- bool <- int $295 N001 ( 3, 2) [000072] ------------ | \--* LCL_VAR int V06 arg6 u:1 $101 N006 ( 5, 5) [000132] n---GO------ \--* IND bool N005 ( 2, 2) [000190] -------N---- \--* ADD byref $185 N003 ( 1, 1) [000073] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] $145 fgMorphTree (before 209): N002 ( 4, 4) [000188] ------------ * CAST int <- bool <- int $295 N001 ( 3, 2) [000072] ------------ \--* LCL_VAR int V06 arg6 u:1 $101 fgMorphTree (before 210): N001 ( 3, 2) [000072] ------------ * LCL_VAR int V06 arg6 u:1 $101 fgMorphTree (after 210): N001 ( 3, 2) [000072] ------------ * LCL_VAR int V06 arg6 u:1 $101 fgMorphTree (after 209): N002 ( 4, 4) [000188] ------------ * CAST int <- bool <- int $295 N001 ( 3, 2) [000072] ------------ \--* LCL_VAR int V06 arg6 u:1 $101 fgMorphTree (before 211): N006 ( 5, 5) [000132] n---GO------ * IND bool N005 ( 2, 2) [000190] -------N---- \--* ADD byref $185 N003 ( 1, 1) [000073] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] $145 fgMorphTree (before 212): N005 ( 2, 2) [000190] -------N---- * ADD byref $185 N003 ( 1, 1) [000073] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] $145 fgMorphTree (before 213): N003 ( 1, 1) [000073] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (after 213): N003 ( 1, 1) [000073] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (before 214): N004 ( 1, 1) [000189] ------------ * CNS_INT long 59 field offset Fseq[k__BackingField] $145 fgMorphTree (after 214): N004 ( 1, 1) [000189] ------------ * CNS_INT long 59 field offset Fseq[k__BackingField] $145 fgMorphTree (after 212): N005 ( 2, 2) [000190] -------N---- * ADD byref $185 N003 ( 1, 1) [000073] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] $145 fgMorphTree (after 211): N006 ( 5, 5) [000132] n---GO------ * IND bool N005 ( 2, 2) [000190] -------N---- \--* ADD byref $185 N003 ( 1, 1) [000073] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] $145 fgMorphTree (after 208): N007 ( 10, 10) [000077] N---GO-N-U-- * NE int N002 ( 4, 4) [000188] ------------ +--* CAST int <- bool <- int $295 N001 ( 3, 2) [000072] ------------ | \--* LCL_VAR int V06 arg6 u:1 $101 N006 ( 5, 5) [000132] n---GO------ \--* IND bool N005 ( 2, 2) [000190] -------N---- \--* ADD byref $185 N003 ( 1, 1) [000073] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] $145 fgMorphTree (after 207): N008 ( 12, 12) [000078] ----GO------ * JTRUE void N007 ( 10, 10) [000077] N---GO-N-U-- \--* NE int N002 ( 4, 4) [000188] ------------ +--* CAST int <- bool <- int $295 N001 ( 3, 2) [000072] ------------ | \--* LCL_VAR int V06 arg6 u:1 $101 N006 ( 5, 5) [000132] n---GO------ \--* IND bool N005 ( 2, 2) [000190] -------N---- \--* ADD byref $185 N003 ( 1, 1) [000073] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] $145 optAssertionPropMain morphed tree: N008 ( 12, 12) [000078] ----GO------ * JTRUE void N007 ( 10, 10) [000077] N---GO-N-U-- \--* NE int N002 ( 4, 4) [000188] ------------ +--* CAST int <- bool <- int $295 N001 ( 3, 2) [000072] ------------ | \--* LCL_VAR int V06 arg6 u:1 $101 N006 ( 5, 5) [000132] n---GO------ \--* IND bool N005 ( 2, 2) [000190] -------N---- \--* ADD byref $185 N003 ( 1, 1) [000073] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] $145 Propagating 0000000000000001 assertions for BB07, stmt STMT00021, tree [000079], tree -> 0 Propagating 0000000000000001 assertions for BB07, stmt STMT00021, tree [000191], tree -> 0 Propagating 0000000000000001 assertions for BB07, stmt STMT00021, tree [000080], tree -> 0 Propagating 0000000000000001 assertions for BB07, stmt STMT00021, tree [000192], tree -> 0 Propagating 0000000000000001 assertions for BB07, stmt STMT00021, tree [000193], tree -> 0 Propagating 0000000000000001 assertions for BB07, stmt STMT00021, tree [000134], tree -> 1 Non-null prop for index #01 in BB07: N006 ( 5, 5) [000134] ---XG------- * IND bool Propagating 0000000000000001 assertions for BB07, stmt STMT00021, tree [000084], tree -> 0 Propagating 0000000000000001 assertions for BB07, stmt STMT00021, tree [000085], tree -> 0 Re-morphing this stmt: STMT00021 (IL ???... ???) N008 ( 12, 12) [000085] ---XG------- * JTRUE void N007 ( 10, 10) [000084] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000191] ------------ +--* CAST int <- bool <- int $29a N001 ( 3, 2) [000079] ------------ | \--* LCL_VAR int V07 arg7 u:1 $102 N006 ( 5, 5) [000134] n---GO------ \--* IND bool N005 ( 2, 2) [000193] -------N---- \--* ADD byref $186 N003 ( 1, 1) [000080] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] $146 fgMorphTree (before 215): N008 ( 12, 12) [000085] ---XG------- * JTRUE void N007 ( 10, 10) [000084] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000191] ------------ +--* CAST int <- bool <- int $29a N001 ( 3, 2) [000079] ------------ | \--* LCL_VAR int V07 arg7 u:1 $102 N006 ( 5, 5) [000134] n---GO------ \--* IND bool N005 ( 2, 2) [000193] -------N---- \--* ADD byref $186 N003 ( 1, 1) [000080] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] $146 fgMorphTree (before 216): N007 ( 10, 10) [000084] N--XG--N-U-- * NE int N002 ( 4, 4) [000191] ------------ +--* CAST int <- bool <- int $29a N001 ( 3, 2) [000079] ------------ | \--* LCL_VAR int V07 arg7 u:1 $102 N006 ( 5, 5) [000134] n---GO------ \--* IND bool N005 ( 2, 2) [000193] -------N---- \--* ADD byref $186 N003 ( 1, 1) [000080] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] $146 fgMorphTree (before 217): N002 ( 4, 4) [000191] ------------ * CAST int <- bool <- int $29a N001 ( 3, 2) [000079] ------------ \--* LCL_VAR int V07 arg7 u:1 $102 fgMorphTree (before 218): N001 ( 3, 2) [000079] ------------ * LCL_VAR int V07 arg7 u:1 $102 fgMorphTree (after 218): N001 ( 3, 2) [000079] ------------ * LCL_VAR int V07 arg7 u:1 $102 fgMorphTree (after 217): N002 ( 4, 4) [000191] ------------ * CAST int <- bool <- int $29a N001 ( 3, 2) [000079] ------------ \--* LCL_VAR int V07 arg7 u:1 $102 fgMorphTree (before 219): N006 ( 5, 5) [000134] n---GO------ * IND bool N005 ( 2, 2) [000193] -------N---- \--* ADD byref $186 N003 ( 1, 1) [000080] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] $146 fgMorphTree (before 220): N005 ( 2, 2) [000193] -------N---- * ADD byref $186 N003 ( 1, 1) [000080] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] $146 fgMorphTree (before 221): N003 ( 1, 1) [000080] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (after 221): N003 ( 1, 1) [000080] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (before 222): N004 ( 1, 1) [000192] ------------ * CNS_INT long 60 field offset Fseq[k__BackingField] $146 fgMorphTree (after 222): N004 ( 1, 1) [000192] ------------ * CNS_INT long 60 field offset Fseq[k__BackingField] $146 fgMorphTree (after 220): N005 ( 2, 2) [000193] -------N---- * ADD byref $186 N003 ( 1, 1) [000080] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] $146 fgMorphTree (after 219): N006 ( 5, 5) [000134] n---GO------ * IND bool N005 ( 2, 2) [000193] -------N---- \--* ADD byref $186 N003 ( 1, 1) [000080] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] $146 fgMorphTree (after 216): N007 ( 10, 10) [000084] N---GO-N-U-- * NE int N002 ( 4, 4) [000191] ------------ +--* CAST int <- bool <- int $29a N001 ( 3, 2) [000079] ------------ | \--* LCL_VAR int V07 arg7 u:1 $102 N006 ( 5, 5) [000134] n---GO------ \--* IND bool N005 ( 2, 2) [000193] -------N---- \--* ADD byref $186 N003 ( 1, 1) [000080] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] $146 fgMorphTree (after 215): N008 ( 12, 12) [000085] ----GO------ * JTRUE void N007 ( 10, 10) [000084] N---GO-N-U-- \--* NE int N002 ( 4, 4) [000191] ------------ +--* CAST int <- bool <- int $29a N001 ( 3, 2) [000079] ------------ | \--* LCL_VAR int V07 arg7 u:1 $102 N006 ( 5, 5) [000134] n---GO------ \--* IND bool N005 ( 2, 2) [000193] -------N---- \--* ADD byref $186 N003 ( 1, 1) [000080] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] $146 optAssertionPropMain morphed tree: N008 ( 12, 12) [000085] ----GO------ * JTRUE void N007 ( 10, 10) [000084] N---GO-N-U-- \--* NE int N002 ( 4, 4) [000191] ------------ +--* CAST int <- bool <- int $29a N001 ( 3, 2) [000079] ------------ | \--* LCL_VAR int V07 arg7 u:1 $102 N006 ( 5, 5) [000134] n---GO------ \--* IND bool N005 ( 2, 2) [000193] -------N---- \--* ADD byref $186 N003 ( 1, 1) [000080] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] $146 Propagating 0000000000000001 assertions for BB08, stmt STMT00023, tree [000086], tree -> 0 Propagating 0000000000000001 assertions for BB08, stmt STMT00023, tree [000194], tree -> 0 Propagating 0000000000000001 assertions for BB08, stmt STMT00023, tree [000087], tree -> 0 Propagating 0000000000000001 assertions for BB08, stmt STMT00023, tree [000195], tree -> 0 Propagating 0000000000000001 assertions for BB08, stmt STMT00023, tree [000196], tree -> 0 Propagating 0000000000000001 assertions for BB08, stmt STMT00023, tree [000136], tree -> 1 Non-null prop for index #01 in BB08: N006 ( 5, 5) [000136] ---XG------- * IND bool Propagating 0000000000000001 assertions for BB08, stmt STMT00023, tree [000091], tree -> 0 Propagating 0000000000000001 assertions for BB08, stmt STMT00023, tree [000092], tree -> 0 Re-morphing this stmt: STMT00023 (IL ???... ???) N008 ( 12, 12) [000092] ---XG------- * JTRUE void N007 ( 10, 10) [000091] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000194] ------------ +--* CAST int <- bool <- int $29f N001 ( 3, 2) [000086] ------------ | \--* LCL_VAR int V08 arg8 u:1 $103 N006 ( 5, 5) [000136] n---GO------ \--* IND bool N005 ( 2, 2) [000196] -------N---- \--* ADD byref $187 N003 ( 1, 1) [000087] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] $147 fgMorphTree (before 223): N008 ( 12, 12) [000092] ---XG------- * JTRUE void N007 ( 10, 10) [000091] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000194] ------------ +--* CAST int <- bool <- int $29f N001 ( 3, 2) [000086] ------------ | \--* LCL_VAR int V08 arg8 u:1 $103 N006 ( 5, 5) [000136] n---GO------ \--* IND bool N005 ( 2, 2) [000196] -------N---- \--* ADD byref $187 N003 ( 1, 1) [000087] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] $147 fgMorphTree (before 224): N007 ( 10, 10) [000091] N--XG--N-U-- * NE int N002 ( 4, 4) [000194] ------------ +--* CAST int <- bool <- int $29f N001 ( 3, 2) [000086] ------------ | \--* LCL_VAR int V08 arg8 u:1 $103 N006 ( 5, 5) [000136] n---GO------ \--* IND bool N005 ( 2, 2) [000196] -------N---- \--* ADD byref $187 N003 ( 1, 1) [000087] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] $147 fgMorphTree (before 225): N002 ( 4, 4) [000194] ------------ * CAST int <- bool <- int $29f N001 ( 3, 2) [000086] ------------ \--* LCL_VAR int V08 arg8 u:1 $103 fgMorphTree (before 226): N001 ( 3, 2) [000086] ------------ * LCL_VAR int V08 arg8 u:1 $103 fgMorphTree (after 226): N001 ( 3, 2) [000086] ------------ * LCL_VAR int V08 arg8 u:1 $103 fgMorphTree (after 225): N002 ( 4, 4) [000194] ------------ * CAST int <- bool <- int $29f N001 ( 3, 2) [000086] ------------ \--* LCL_VAR int V08 arg8 u:1 $103 fgMorphTree (before 227): N006 ( 5, 5) [000136] n---GO------ * IND bool N005 ( 2, 2) [000196] -------N---- \--* ADD byref $187 N003 ( 1, 1) [000087] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] $147 fgMorphTree (before 228): N005 ( 2, 2) [000196] -------N---- * ADD byref $187 N003 ( 1, 1) [000087] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] $147 fgMorphTree (before 229): N003 ( 1, 1) [000087] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (after 229): N003 ( 1, 1) [000087] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (before 230): N004 ( 1, 1) [000195] ------------ * CNS_INT long 61 field offset Fseq[k__BackingField] $147 fgMorphTree (after 230): N004 ( 1, 1) [000195] ------------ * CNS_INT long 61 field offset Fseq[k__BackingField] $147 fgMorphTree (after 228): N005 ( 2, 2) [000196] -------N---- * ADD byref $187 N003 ( 1, 1) [000087] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] $147 fgMorphTree (after 227): N006 ( 5, 5) [000136] n---GO------ * IND bool N005 ( 2, 2) [000196] -------N---- \--* ADD byref $187 N003 ( 1, 1) [000087] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] $147 fgMorphTree (after 224): N007 ( 10, 10) [000091] N---GO-N-U-- * NE int N002 ( 4, 4) [000194] ------------ +--* CAST int <- bool <- int $29f N001 ( 3, 2) [000086] ------------ | \--* LCL_VAR int V08 arg8 u:1 $103 N006 ( 5, 5) [000136] n---GO------ \--* IND bool N005 ( 2, 2) [000196] -------N---- \--* ADD byref $187 N003 ( 1, 1) [000087] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] $147 fgMorphTree (after 223): N008 ( 12, 12) [000092] ----GO------ * JTRUE void N007 ( 10, 10) [000091] N---GO-N-U-- \--* NE int N002 ( 4, 4) [000194] ------------ +--* CAST int <- bool <- int $29f N001 ( 3, 2) [000086] ------------ | \--* LCL_VAR int V08 arg8 u:1 $103 N006 ( 5, 5) [000136] n---GO------ \--* IND bool N005 ( 2, 2) [000196] -------N---- \--* ADD byref $187 N003 ( 1, 1) [000087] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] $147 optAssertionPropMain morphed tree: N008 ( 12, 12) [000092] ----GO------ * JTRUE void N007 ( 10, 10) [000091] N---GO-N-U-- \--* NE int N002 ( 4, 4) [000194] ------------ +--* CAST int <- bool <- int $29f N001 ( 3, 2) [000086] ------------ | \--* LCL_VAR int V08 arg8 u:1 $103 N006 ( 5, 5) [000136] n---GO------ \--* IND bool N005 ( 2, 2) [000196] -------N---- \--* ADD byref $187 N003 ( 1, 1) [000087] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] $147 Propagating 0000000000000001 assertions for BB09, stmt STMT00025, tree [000093], tree -> 0 Propagating 0000000000000001 assertions for BB09, stmt STMT00025, tree [000197], tree -> 0 Propagating 0000000000000001 assertions for BB09, stmt STMT00025, tree [000094], tree -> 0 Propagating 0000000000000001 assertions for BB09, stmt STMT00025, tree [000198], tree -> 0 Propagating 0000000000000001 assertions for BB09, stmt STMT00025, tree [000199], tree -> 0 Propagating 0000000000000001 assertions for BB09, stmt STMT00025, tree [000138], tree -> 1 Non-null prop for index #01 in BB09: N006 ( 5, 5) [000138] ---XG------- * IND bool Propagating 0000000000000001 assertions for BB09, stmt STMT00025, tree [000098], tree -> 0 Propagating 0000000000000001 assertions for BB09, stmt STMT00025, tree [000099], tree -> 0 Re-morphing this stmt: STMT00025 (IL ???... ???) N008 ( 12, 12) [000099] ---XG------- * JTRUE void N007 ( 10, 10) [000098] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000197] ------------ +--* CAST int <- bool <- int $2a4 N001 ( 3, 2) [000093] ------------ | \--* LCL_VAR int V09 arg9 u:1 $104 N006 ( 5, 5) [000138] n---GO------ \--* IND bool N005 ( 2, 2) [000199] -------N---- \--* ADD byref $188 N003 ( 1, 1) [000094] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] $148 fgMorphTree (before 231): N008 ( 12, 12) [000099] ---XG------- * JTRUE void N007 ( 10, 10) [000098] N--XG--N-U-- \--* NE int N002 ( 4, 4) [000197] ------------ +--* CAST int <- bool <- int $2a4 N001 ( 3, 2) [000093] ------------ | \--* LCL_VAR int V09 arg9 u:1 $104 N006 ( 5, 5) [000138] n---GO------ \--* IND bool N005 ( 2, 2) [000199] -------N---- \--* ADD byref $188 N003 ( 1, 1) [000094] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] $148 fgMorphTree (before 232): N007 ( 10, 10) [000098] N--XG--N-U-- * NE int N002 ( 4, 4) [000197] ------------ +--* CAST int <- bool <- int $2a4 N001 ( 3, 2) [000093] ------------ | \--* LCL_VAR int V09 arg9 u:1 $104 N006 ( 5, 5) [000138] n---GO------ \--* IND bool N005 ( 2, 2) [000199] -------N---- \--* ADD byref $188 N003 ( 1, 1) [000094] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] $148 fgMorphTree (before 233): N002 ( 4, 4) [000197] ------------ * CAST int <- bool <- int $2a4 N001 ( 3, 2) [000093] ------------ \--* LCL_VAR int V09 arg9 u:1 $104 fgMorphTree (before 234): N001 ( 3, 2) [000093] ------------ * LCL_VAR int V09 arg9 u:1 $104 fgMorphTree (after 234): N001 ( 3, 2) [000093] ------------ * LCL_VAR int V09 arg9 u:1 $104 fgMorphTree (after 233): N002 ( 4, 4) [000197] ------------ * CAST int <- bool <- int $2a4 N001 ( 3, 2) [000093] ------------ \--* LCL_VAR int V09 arg9 u:1 $104 fgMorphTree (before 235): N006 ( 5, 5) [000138] n---GO------ * IND bool N005 ( 2, 2) [000199] -------N---- \--* ADD byref $188 N003 ( 1, 1) [000094] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] $148 fgMorphTree (before 236): N005 ( 2, 2) [000199] -------N---- * ADD byref $188 N003 ( 1, 1) [000094] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] $148 fgMorphTree (before 237): N003 ( 1, 1) [000094] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (after 237): N003 ( 1, 1) [000094] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (before 238): N004 ( 1, 1) [000198] ------------ * CNS_INT long 62 field offset Fseq[k__BackingField] $148 fgMorphTree (after 238): N004 ( 1, 1) [000198] ------------ * CNS_INT long 62 field offset Fseq[k__BackingField] $148 fgMorphTree (after 236): N005 ( 2, 2) [000199] -------N---- * ADD byref $188 N003 ( 1, 1) [000094] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] $148 fgMorphTree (after 235): N006 ( 5, 5) [000138] n---GO------ * IND bool N005 ( 2, 2) [000199] -------N---- \--* ADD byref $188 N003 ( 1, 1) [000094] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] $148 fgMorphTree (after 232): N007 ( 10, 10) [000098] N---GO-N-U-- * NE int N002 ( 4, 4) [000197] ------------ +--* CAST int <- bool <- int $2a4 N001 ( 3, 2) [000093] ------------ | \--* LCL_VAR int V09 arg9 u:1 $104 N006 ( 5, 5) [000138] n---GO------ \--* IND bool N005 ( 2, 2) [000199] -------N---- \--* ADD byref $188 N003 ( 1, 1) [000094] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] $148 fgMorphTree (after 231): N008 ( 12, 12) [000099] ----GO------ * JTRUE void N007 ( 10, 10) [000098] N---GO-N-U-- \--* NE int N002 ( 4, 4) [000197] ------------ +--* CAST int <- bool <- int $2a4 N001 ( 3, 2) [000093] ------------ | \--* LCL_VAR int V09 arg9 u:1 $104 N006 ( 5, 5) [000138] n---GO------ \--* IND bool N005 ( 2, 2) [000199] -------N---- \--* ADD byref $188 N003 ( 1, 1) [000094] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] $148 optAssertionPropMain morphed tree: N008 ( 12, 12) [000099] ----GO------ * JTRUE void N007 ( 10, 10) [000098] N---GO-N-U-- \--* NE int N002 ( 4, 4) [000197] ------------ +--* CAST int <- bool <- int $2a4 N001 ( 3, 2) [000093] ------------ | \--* LCL_VAR int V09 arg9 u:1 $104 N006 ( 5, 5) [000138] n---GO------ \--* IND bool N005 ( 2, 2) [000199] -------N---- \--* ADD byref $188 N003 ( 1, 1) [000094] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] $148 Propagating 0000000000000001 assertions for BB10, stmt STMT00027, tree [000203], tree -> 0 Propagating 0000000000000001 assertions for BB10, stmt STMT00027, tree [000202], tree -> 0 Propagating 0000000000000001 assertions for BB10, stmt STMT00027, tree [000101], tree -> 0 Propagating 0000000000000001 assertions for BB10, stmt STMT00027, tree [000200], tree -> 0 Propagating 0000000000000001 assertions for BB10, stmt STMT00027, tree [000201], tree -> 0 Propagating 0000000000000001 assertions for BB10, stmt STMT00027, tree [000140], tree -> 1 Non-null prop for index #01 in BB10: N006 ( 4, 4) [000140] ---XG------- * IND ref Propagating 0000000000000001 assertions for BB10, stmt STMT00027, tree [000100], tree -> 0 Propagating 0000000000000001 assertions for BB10, stmt STMT00027, tree [000104], tree -> 0 Propagating 0000000000000001 assertions for BB10, stmt STMT00027, tree [000105], tree -> 0 Propagating 0000000000000001 assertions for BB10, stmt STMT00027, tree [000106], tree -> 0 Propagating 0000000000000001 assertions for BB10, stmt STMT00027, tree [000107], tree -> 0 Propagating 0000000000000001 assertions for BB10, stmt STMT00027, tree [000108], tree -> 0 Re-morphing this stmt: STMT00027 (IL ???... ???) N012 ( 26, 19) [000108] --CXG------- * JTRUE void N011 ( 24, 17) [000107] J-CXG--N---- \--* NE int $2aa N009 ( 22, 15) [000105] --CXG------- +--* CAST int <- bool <- int $2a9 N008 ( 21, 13) [000104] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 N006 ( 4, 4) [000140] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000201] -------N---- | | \--* ADD byref $189 N003 ( 1, 1) [000101] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] $149 N007 ( 3, 2) [000100] ------------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 u:1 $83 N010 ( 1, 1) [000106] ------------ \--* CNS_INT int 0 $40 fgMorphTree (before 239): N012 ( 26, 19) [000108] --CXG------- * JTRUE void N011 ( 24, 17) [000107] J-CXG--N---- \--* NE int $2aa N009 ( 22, 15) [000105] --CXG------- +--* CAST int <- bool <- int $2a9 N008 ( 21, 13) [000104] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 N006 ( 4, 4) [000140] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000201] -------N---- | | \--* ADD byref $189 N003 ( 1, 1) [000101] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] $149 N007 ( 3, 2) [000100] ------------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 u:1 $83 N010 ( 1, 1) [000106] ------------ \--* CNS_INT int 0 $40 fgMorphTree (before 240): N011 ( 24, 17) [000107] J-CXG--N---- * NE int $2aa N009 ( 22, 15) [000105] --CXG------- +--* CAST int <- bool <- int $2a9 N008 ( 21, 13) [000104] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 N006 ( 4, 4) [000140] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000201] -------N---- | | \--* ADD byref $189 N003 ( 1, 1) [000101] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] $149 N007 ( 3, 2) [000100] ------------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 u:1 $83 N010 ( 1, 1) [000106] ------------ \--* CNS_INT int 0 $40 fgMorphTree (before 241): N009 ( 22, 15) [000105] --CXG------- * CAST int <- bool <- int $2a9 N008 ( 21, 13) [000104] --CXG------- \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 N006 ( 4, 4) [000140] n---GO------ arg1 in rdx +--* IND ref N005 ( 2, 2) [000201] -------N---- | \--* ADD byref $189 N003 ( 1, 1) [000101] ------------ | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ | \--* CNS_INT long 48 field offset Fseq[k__BackingField] $149 N007 ( 3, 2) [000100] ------------ arg0 in rcx \--* LCL_VAR ref V10 arg10 u:1 $83 fgMorphTree (before 242): N008 ( 21, 13) [000104] --CXG------- * CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 N006 ( 4, 4) [000140] n---GO------ arg1 in rdx +--* IND ref N005 ( 2, 2) [000201] -------N---- | \--* ADD byref $189 N003 ( 1, 1) [000101] ------------ | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ | \--* CNS_INT long 48 field offset Fseq[k__BackingField] $149 N007 ( 3, 2) [000100] ------------ arg0 in rcx \--* LCL_VAR ref V10 arg10 u:1 $83 ReMorphing args for 104.CALL: fgMorphTree (before 243): N006 ( 4, 4) [000140] n---GO------ * IND ref N005 ( 2, 2) [000201] -------N---- \--* ADD byref $189 N003 ( 1, 1) [000101] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ \--* CNS_INT long 48 field offset Fseq[k__BackingField] $149 fgMorphTree (before 244): N005 ( 2, 2) [000201] -------N---- * ADD byref $189 N003 ( 1, 1) [000101] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ \--* CNS_INT long 48 field offset Fseq[k__BackingField] $149 fgMorphTree (before 245): N003 ( 1, 1) [000101] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (after 245): N003 ( 1, 1) [000101] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (before 246): N004 ( 1, 1) [000200] ------------ * CNS_INT long 48 field offset Fseq[k__BackingField] $149 fgMorphTree (after 246): N004 ( 1, 1) [000200] ------------ * CNS_INT long 48 field offset Fseq[k__BackingField] $149 fgMorphTree (after 244): N005 ( 2, 2) [000201] -------N---- * ADD byref $189 N003 ( 1, 1) [000101] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ \--* CNS_INT long 48 field offset Fseq[k__BackingField] $149 fgMorphTree (after 243): N006 ( 4, 4) [000140] n---GO------ * IND ref N005 ( 2, 2) [000201] -------N---- \--* ADD byref $189 N003 ( 1, 1) [000101] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ \--* CNS_INT long 48 field offset Fseq[k__BackingField] $149 fgMorphTree (before 247): N007 ( 3, 2) [000100] ------------ * LCL_VAR ref V10 arg10 u:1 $83 fgMorphTree (after 247): N007 ( 3, 2) [000100] ------------ * LCL_VAR ref V10 arg10 u:1 $83 fgMorphTree (before 248): N001 ( 0, 0) [000203] ----------L- * ARGPLACE ref $83 fgMorphTree (after 248): N001 ( 0, 0) [000203] ----------L- * ARGPLACE ref $83 fgMorphTree (before 249): N002 ( 0, 0) [000202] ----------L- * ARGPLACE ref fgMorphTree (after 249): N002 ( 0, 0) [000202] ----------L- * ARGPLACE ref argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 ArgTable for 104.CALL after fgMorphArgs: fgArgTabEntry[arg 1 140.IND ref (By ref), 1 reg: rdx, align=1, lateArgInx=0, processed] fgArgTabEntry[arg 0 100.LCL_VAR ref (By ref), 1 reg: rcx, align=1, lateArgInx=1, processed] fgMorphTree (after 242): N008 ( 21, 13) [000104] --CXGO------ * CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 N006 ( 4, 4) [000140] n---GO------ arg1 in rdx +--* IND ref N005 ( 2, 2) [000201] -------N---- | \--* ADD byref $189 N003 ( 1, 1) [000101] ------------ | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ | \--* CNS_INT long 48 field offset Fseq[k__BackingField] $149 N007 ( 3, 2) [000100] ------------ arg0 in rcx \--* LCL_VAR ref V10 arg10 u:1 $83 fgMorphTree (after 241): N009 ( 22, 15) [000105] --CXGO------ * CAST int <- bool <- int $2a9 N008 ( 21, 13) [000104] --CXGO------ \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 N006 ( 4, 4) [000140] n---GO------ arg1 in rdx +--* IND ref N005 ( 2, 2) [000201] -------N---- | \--* ADD byref $189 N003 ( 1, 1) [000101] ------------ | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ | \--* CNS_INT long 48 field offset Fseq[k__BackingField] $149 N007 ( 3, 2) [000100] ------------ arg0 in rcx \--* LCL_VAR ref V10 arg10 u:1 $83 fgMorphTree (before 250): N010 ( 1, 1) [000106] ------------ * CNS_INT int 0 $40 fgMorphTree (after 250): N010 ( 1, 1) [000106] ------------ * CNS_INT int 0 $40 fgMorphTree (after 240): N011 ( 24, 17) [000107] J-CXGO-N---- * NE int $2aa N009 ( 22, 15) [000105] --CXGO------ +--* CAST int <- bool <- int $2a9 N008 ( 21, 13) [000104] --CXGO------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 N006 ( 4, 4) [000140] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000201] -------N---- | | \--* ADD byref $189 N003 ( 1, 1) [000101] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] $149 N007 ( 3, 2) [000100] ------------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 u:1 $83 N010 ( 1, 1) [000106] ------------ \--* CNS_INT int 0 $40 fgMorphTree (after 239): N012 ( 26, 19) [000108] --CXGO------ * JTRUE void N011 ( 24, 17) [000107] J-CXGO-N---- \--* NE int $2aa N009 ( 22, 15) [000105] --CXGO------ +--* CAST int <- bool <- int $2a9 N008 ( 21, 13) [000104] --CXGO------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 N006 ( 4, 4) [000140] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000201] -------N---- | | \--* ADD byref $189 N003 ( 1, 1) [000101] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] $149 N007 ( 3, 2) [000100] ------------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 u:1 $83 N010 ( 1, 1) [000106] ------------ \--* CNS_INT int 0 $40 optAssertionPropMain morphed tree: N012 ( 26, 19) [000108] --CXGO------ * JTRUE void N011 ( 24, 17) [000107] J-CXGO-N---- \--* NE int $2aa N009 ( 22, 15) [000105] --CXGO------ +--* CAST int <- bool <- int $2a9 N008 ( 21, 13) [000104] --CXGO------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 N006 ( 4, 4) [000140] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000201] -------N---- | | \--* ADD byref $189 N003 ( 1, 1) [000101] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] $149 N007 ( 3, 2) [000100] ------------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 u:1 $83 N010 ( 1, 1) [000106] ------------ \--* CNS_INT int 0 $40 Propagating 0000000000000001 assertions for BB11, stmt STMT00030, tree [000207], tree -> 0 Propagating 0000000000000001 assertions for BB11, stmt STMT00030, tree [000206], tree -> 0 Propagating 0000000000000001 assertions for BB11, stmt STMT00030, tree [000110], tree -> 0 Propagating 0000000000000001 assertions for BB11, stmt STMT00030, tree [000204], tree -> 0 Propagating 0000000000000001 assertions for BB11, stmt STMT00030, tree [000205], tree -> 0 Propagating 0000000000000001 assertions for BB11, stmt STMT00030, tree [000142], tree -> 1 Non-null prop for index #01 in BB11: N006 ( 4, 4) [000142] ---XG------- * IND ref Propagating 0000000000000001 assertions for BB11, stmt STMT00030, tree [000109], tree -> 0 Propagating 0000000000000001 assertions for BB11, stmt STMT00030, tree [000113], tree -> 0 Propagating 0000000000000001 assertions for BB11, stmt STMT00030, tree [000115], tree -> 0 Propagating 0000000000000001 assertions for BB11, stmt STMT00030, tree [000116], tree -> 0 Propagating 0000000000000001 assertions for BB11, stmt STMT00030, tree [000117], tree -> 0 Propagating 0000000000000001 assertions for BB11, stmt STMT00030, tree [000118], tree -> 0 Re-morphing this stmt: STMT00030 (IL ???... ???) N012 ( 26, 19) [000118] --CXG------- * JTRUE void N011 ( 24, 17) [000117] J-CXG--N---- \--* NE int $2ac N009 ( 22, 15) [000115] --CXG------- +--* CAST int <- bool <- int $2ab N008 ( 21, 13) [000113] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 N006 ( 4, 4) [000142] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000205] -------N---- | | \--* ADD byref $18a N003 ( 1, 1) [000110] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] $14a N007 ( 3, 2) [000109] ------------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 u:1 $84 N010 ( 1, 1) [000116] ------------ \--* CNS_INT int 0 $40 fgMorphTree (before 251): N012 ( 26, 19) [000118] --CXG------- * JTRUE void N011 ( 24, 17) [000117] J-CXG--N---- \--* NE int $2ac N009 ( 22, 15) [000115] --CXG------- +--* CAST int <- bool <- int $2ab N008 ( 21, 13) [000113] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 N006 ( 4, 4) [000142] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000205] -------N---- | | \--* ADD byref $18a N003 ( 1, 1) [000110] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] $14a N007 ( 3, 2) [000109] ------------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 u:1 $84 N010 ( 1, 1) [000116] ------------ \--* CNS_INT int 0 $40 fgMorphTree (before 252): N011 ( 24, 17) [000117] J-CXG--N---- * NE int $2ac N009 ( 22, 15) [000115] --CXG------- +--* CAST int <- bool <- int $2ab N008 ( 21, 13) [000113] --CXG------- | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 N006 ( 4, 4) [000142] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000205] -------N---- | | \--* ADD byref $18a N003 ( 1, 1) [000110] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] $14a N007 ( 3, 2) [000109] ------------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 u:1 $84 N010 ( 1, 1) [000116] ------------ \--* CNS_INT int 0 $40 fgMorphTree (before 253): N009 ( 22, 15) [000115] --CXG------- * CAST int <- bool <- int $2ab N008 ( 21, 13) [000113] --CXG------- \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 N006 ( 4, 4) [000142] n---GO------ arg1 in rdx +--* IND ref N005 ( 2, 2) [000205] -------N---- | \--* ADD byref $18a N003 ( 1, 1) [000110] ------------ | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ | \--* CNS_INT long 24 field offset Fseq[k__BackingField] $14a N007 ( 3, 2) [000109] ------------ arg0 in rcx \--* LCL_VAR ref V11 arg11 u:1 $84 fgMorphTree (before 254): N008 ( 21, 13) [000113] --CXG------- * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 N006 ( 4, 4) [000142] n---GO------ arg1 in rdx +--* IND ref N005 ( 2, 2) [000205] -------N---- | \--* ADD byref $18a N003 ( 1, 1) [000110] ------------ | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ | \--* CNS_INT long 24 field offset Fseq[k__BackingField] $14a N007 ( 3, 2) [000109] ------------ arg0 in rcx \--* LCL_VAR ref V11 arg11 u:1 $84 ReMorphing args for 113.CALL: fgMorphTree (before 255): N006 ( 4, 4) [000142] n---GO------ * IND ref N005 ( 2, 2) [000205] -------N---- \--* ADD byref $18a N003 ( 1, 1) [000110] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ \--* CNS_INT long 24 field offset Fseq[k__BackingField] $14a fgMorphTree (before 256): N005 ( 2, 2) [000205] -------N---- * ADD byref $18a N003 ( 1, 1) [000110] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ \--* CNS_INT long 24 field offset Fseq[k__BackingField] $14a fgMorphTree (before 257): N003 ( 1, 1) [000110] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (after 257): N003 ( 1, 1) [000110] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (before 258): N004 ( 1, 1) [000204] ------------ * CNS_INT long 24 field offset Fseq[k__BackingField] $14a fgMorphTree (after 258): N004 ( 1, 1) [000204] ------------ * CNS_INT long 24 field offset Fseq[k__BackingField] $14a fgMorphTree (after 256): N005 ( 2, 2) [000205] -------N---- * ADD byref $18a N003 ( 1, 1) [000110] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ \--* CNS_INT long 24 field offset Fseq[k__BackingField] $14a fgMorphTree (after 255): N006 ( 4, 4) [000142] n---GO------ * IND ref N005 ( 2, 2) [000205] -------N---- \--* ADD byref $18a N003 ( 1, 1) [000110] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ \--* CNS_INT long 24 field offset Fseq[k__BackingField] $14a fgMorphTree (before 259): N007 ( 3, 2) [000109] ------------ * LCL_VAR ref V11 arg11 u:1 $84 fgMorphTree (after 259): N007 ( 3, 2) [000109] ------------ * LCL_VAR ref V11 arg11 u:1 $84 fgMorphTree (before 260): N001 ( 0, 0) [000207] ----------L- * ARGPLACE ref $84 fgMorphTree (after 260): N001 ( 0, 0) [000207] ----------L- * ARGPLACE ref $84 fgMorphTree (before 261): N002 ( 0, 0) [000206] ----------L- * ARGPLACE ref fgMorphTree (after 261): N002 ( 0, 0) [000206] ----------L- * ARGPLACE ref argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 ArgTable for 113.CALL after fgMorphArgs: fgArgTabEntry[arg 1 142.IND ref (By ref), 1 reg: rdx, align=1, lateArgInx=0, processed] fgArgTabEntry[arg 0 109.LCL_VAR ref (By ref), 1 reg: rcx, align=1, lateArgInx=1, processed] fgMorphTree (after 254): N008 ( 21, 13) [000113] --CXGO------ * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 N006 ( 4, 4) [000142] n---GO------ arg1 in rdx +--* IND ref N005 ( 2, 2) [000205] -------N---- | \--* ADD byref $18a N003 ( 1, 1) [000110] ------------ | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ | \--* CNS_INT long 24 field offset Fseq[k__BackingField] $14a N007 ( 3, 2) [000109] ------------ arg0 in rcx \--* LCL_VAR ref V11 arg11 u:1 $84 fgMorphTree (after 253): N009 ( 22, 15) [000115] --CXGO------ * CAST int <- bool <- int $2ab N008 ( 21, 13) [000113] --CXGO------ \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 N006 ( 4, 4) [000142] n---GO------ arg1 in rdx +--* IND ref N005 ( 2, 2) [000205] -------N---- | \--* ADD byref $18a N003 ( 1, 1) [000110] ------------ | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ | \--* CNS_INT long 24 field offset Fseq[k__BackingField] $14a N007 ( 3, 2) [000109] ------------ arg0 in rcx \--* LCL_VAR ref V11 arg11 u:1 $84 fgMorphTree (before 262): N010 ( 1, 1) [000116] ------------ * CNS_INT int 0 $40 fgMorphTree (after 262): N010 ( 1, 1) [000116] ------------ * CNS_INT int 0 $40 fgMorphTree (after 252): N011 ( 24, 17) [000117] J-CXGO-N---- * NE int $2ac N009 ( 22, 15) [000115] --CXGO------ +--* CAST int <- bool <- int $2ab N008 ( 21, 13) [000113] --CXGO------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 N006 ( 4, 4) [000142] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000205] -------N---- | | \--* ADD byref $18a N003 ( 1, 1) [000110] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] $14a N007 ( 3, 2) [000109] ------------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 u:1 $84 N010 ( 1, 1) [000116] ------------ \--* CNS_INT int 0 $40 fgMorphTree (after 251): N012 ( 26, 19) [000118] --CXGO------ * JTRUE void N011 ( 24, 17) [000117] J-CXGO-N---- \--* NE int $2ac N009 ( 22, 15) [000115] --CXGO------ +--* CAST int <- bool <- int $2ab N008 ( 21, 13) [000113] --CXGO------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 N006 ( 4, 4) [000142] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000205] -------N---- | | \--* ADD byref $18a N003 ( 1, 1) [000110] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] $14a N007 ( 3, 2) [000109] ------------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 u:1 $84 N010 ( 1, 1) [000116] ------------ \--* CNS_INT int 0 $40 optAssertionPropMain morphed tree: N012 ( 26, 19) [000118] --CXGO------ * JTRUE void N011 ( 24, 17) [000117] J-CXGO-N---- \--* NE int $2ac N009 ( 22, 15) [000115] --CXGO------ +--* CAST int <- bool <- int $2ab N008 ( 21, 13) [000113] --CXGO------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 N006 ( 4, 4) [000142] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000205] -------N---- | | \--* ADD byref $18a N003 ( 1, 1) [000110] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] $14a N007 ( 3, 2) [000109] ------------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 u:1 $84 N010 ( 1, 1) [000116] ------------ \--* CNS_INT int 0 $40 Propagating 0000000000000001 assertions for BB12, stmt STMT00031, tree [000119], tree -> 0 Propagating 0000000000000001 assertions for BB12, stmt STMT00031, tree [000120], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00003, tree [000006], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00003, tree [000208], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00003, tree [000209], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00003, tree [000007], tree -> 1 Non-null prop for index #01 in BB13: N004 ( 4, 4) [000007] ---XG------- * IND ref Propagating 0000000000000001 assertions for BB13, stmt STMT00003, tree [000021], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00003, tree [000022], tree -> 0 Re-morphing this stmt: STMT00003 (IL 0x07A...0x0AA) N006 ( 8, 7) [000022] -A-XG---R--- * ASG ref N005 ( 3, 2) [000021] D------N---- +--* LCL_VAR ref V13 tmp1 d:2 N004 ( 4, 4) [000007] n---GO------ \--* IND ref N003 ( 2, 2) [000209] -------N---- \--* ADD byref $18b N001 ( 1, 1) [000006] ------------ +--* LCL_VAR ref V00 this u:1 $80 N002 ( 1, 1) [000208] ------------ \--* CNS_INT long 8 field offset Fseq[Syntax] $14b fgMorphTree (before 263): N006 ( 8, 7) [000022] -A-XG---R--- * ASG ref N005 ( 3, 2) [000021] D------N---- +--* LCL_VAR ref V13 tmp1 d:2 N004 ( 4, 4) [000007] n---GO------ \--* IND ref N003 ( 2, 2) [000209] -------N---- \--* ADD byref $18b N001 ( 1, 1) [000006] ------------ +--* LCL_VAR ref V00 this u:1 $80 N002 ( 1, 1) [000208] ------------ \--* CNS_INT long 8 field offset Fseq[Syntax] $14b fgMorphTree (before 264): N005 ( 3, 2) [000021] D------N---- * LCL_VAR ref V13 tmp1 d:2 fgMorphTree (after 264): N005 ( 3, 2) [000021] D------N---- * LCL_VAR ref V13 tmp1 d:2 fgMorphTree (before 265): N004 ( 4, 4) [000007] n---GO------ * IND ref N003 ( 2, 2) [000209] -------N---- \--* ADD byref $18b N001 ( 1, 1) [000006] ------------ +--* LCL_VAR ref V00 this u:1 $80 N002 ( 1, 1) [000208] ------------ \--* CNS_INT long 8 field offset Fseq[Syntax] $14b fgMorphTree (before 266): N003 ( 2, 2) [000209] -------N---- * ADD byref $18b N001 ( 1, 1) [000006] ------------ +--* LCL_VAR ref V00 this u:1 $80 N002 ( 1, 1) [000208] ------------ \--* CNS_INT long 8 field offset Fseq[Syntax] $14b fgMorphTree (before 267): N001 ( 1, 1) [000006] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (after 267): N001 ( 1, 1) [000006] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (before 268): N002 ( 1, 1) [000208] ------------ * CNS_INT long 8 field offset Fseq[Syntax] $14b fgMorphTree (after 268): N002 ( 1, 1) [000208] ------------ * CNS_INT long 8 field offset Fseq[Syntax] $14b fgMorphTree (after 266): N003 ( 2, 2) [000209] -------N---- * ADD byref $18b N001 ( 1, 1) [000006] ------------ +--* LCL_VAR ref V00 this u:1 $80 N002 ( 1, 1) [000208] ------------ \--* CNS_INT long 8 field offset Fseq[Syntax] $14b fgMorphTree (after 265): N004 ( 4, 4) [000007] n---GO------ * IND ref N003 ( 2, 2) [000209] -------N---- \--* ADD byref $18b N001 ( 1, 1) [000006] ------------ +--* LCL_VAR ref V00 this u:1 $80 N002 ( 1, 1) [000208] ------------ \--* CNS_INT long 8 field offset Fseq[Syntax] $14b fgMorphTree (after 263): N006 ( 8, 7) [000022] -A--GO--R--- * ASG ref N005 ( 3, 2) [000021] D------N---- +--* LCL_VAR ref V13 tmp1 d:2 N004 ( 4, 4) [000007] n---GO------ \--* IND ref N003 ( 2, 2) [000209] -------N---- \--* ADD byref $18b N001 ( 1, 1) [000006] ------------ +--* LCL_VAR ref V00 this u:1 $80 N002 ( 1, 1) [000208] ------------ \--* CNS_INT long 8 field offset Fseq[Syntax] $14b optAssertionPropMain morphed tree: N006 ( 8, 7) [000022] -A--GO--R--- * ASG ref N005 ( 3, 2) [000021] D------N---- +--* LCL_VAR ref V13 tmp1 d:2 N004 ( 4, 4) [000007] n---GO------ \--* IND ref N003 ( 2, 2) [000209] -------N---- \--* ADD byref $18b N001 ( 1, 1) [000006] ------------ +--* LCL_VAR ref V00 this u:1 $80 N002 ( 1, 1) [000208] ------------ \--* CNS_INT long 8 field offset Fseq[Syntax] $14b Propagating 0000000000000001 assertions for BB13, stmt STMT00004, tree [000028], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00004, tree [000029], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00004, tree [000030], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000220], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000221], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000222], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000219], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000010], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000211], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000011], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000212], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000012], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000013], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000213], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000014], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000214], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000015], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000215], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000016], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000216], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000017], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000018], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000019], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000217], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000218], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000145], tree -> 1 Non-null prop for index #01 in BB13: N023 ( 5, 5) [000145] ---XG------- * IND ubyte Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000146], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000147], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000148], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000149], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000009], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000210], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000031], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000023], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000008], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00005, tree [000032], tree -> 0 Re-morphing this stmt: STMT00005 (IL ???... ???) N033 ( 98, 58) [000032] --CXG------- * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor $VN.Void N006 ( 3, 4) [000211] ------------ arg4 out+20 +--* CAST int <- ubyte <- int $289 N005 ( 2, 2) [000010] ------------ | \--* LCL_VAR int V03 arg3 u:1 (last use) $c1 N008 ( 4, 4) [000212] ------------ arg5 out+28 +--* CAST int <- bool <- int $28e N007 ( 3, 2) [000011] ------------ | \--* LCL_VAR int V04 arg4 u:1 (last use) $100 N009 ( 3, 2) [000012] ------------ arg6 out+30 +--* LCL_VAR ref V05 arg5 u:1 (last use) $82 N011 ( 4, 4) [000213] ------------ arg7 out+38 +--* CAST int <- bool <- int $295 N010 ( 3, 2) [000013] ------------ | \--* LCL_VAR int V06 arg6 u:1 (last use) $101 N013 ( 4, 4) [000214] ------------ arg8 out+40 +--* CAST int <- bool <- int $29a N012 ( 3, 2) [000014] ------------ | \--* LCL_VAR int V07 arg7 u:1 (last use) $102 N015 ( 4, 4) [000215] ------------ arg9 out+48 +--* CAST int <- bool <- int $29f N014 ( 3, 2) [000015] ------------ | \--* LCL_VAR int V08 arg8 u:1 (last use) $103 N017 ( 4, 4) [000216] ------------ arg10 out+50 +--* CAST int <- bool <- int $2a4 N016 ( 3, 2) [000016] ------------ | \--* LCL_VAR int V09 arg9 u:1 (last use) $104 N018 ( 3, 2) [000017] ------------ arg11 out+58 +--* LCL_VAR ref V10 arg10 u:1 (last use) $83 N019 ( 3, 2) [000018] ------------ arg12 out+60 +--* LCL_VAR ref V11 arg11 u:1 (last use) $84 N027 ( 12, 9) [000149] N--XG------- arg13 out+68 +--* NE int N025 ( 7, 7) [000147] ---XG------- | +--* AND int N023 ( 5, 5) [000145] n---GO------ | | +--* IND ubyte N022 ( 2, 2) [000218] -------N---- | | | \--* ADD byref $18c N020 ( 1, 1) [000019] ------------ | | | +--* LCL_VAR ref V00 this u:1 $80 N021 ( 1, 1) [000217] ------------ | | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N024 ( 1, 1) [000146] ------------ | | \--* CNS_INT int 1 $41 N026 ( 1, 1) [000148] ------------ | \--* CNS_INT int 0 $40 N029 ( 3, 4) [000210] ------------ arg3 in r9 +--* CAST int <- ubyte <- int $284 N028 ( 2, 2) [000009] ------------ | \--* LCL_VAR int V02 arg2 u:1 (last use) $c0 N030 ( 3, 2) [000031] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 u:2 $21b N031 ( 3, 2) [000023] ------------ arg1 in rdx +--* LCL_VAR ref V13 tmp1 u:2 (last use) N032 ( 1, 1) [000008] ------------ arg2 in r8 \--* LCL_VAR ref V01 arg1 u:1 (last use) $81 fgMorphTree (before 269): N033 ( 98, 58) [000032] --CXG------- * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor $VN.Void N006 ( 3, 4) [000211] ------------ arg4 out+20 +--* CAST int <- ubyte <- int $289 N005 ( 2, 2) [000010] ------------ | \--* LCL_VAR int V03 arg3 u:1 (last use) $c1 N008 ( 4, 4) [000212] ------------ arg5 out+28 +--* CAST int <- bool <- int $28e N007 ( 3, 2) [000011] ------------ | \--* LCL_VAR int V04 arg4 u:1 (last use) $100 N009 ( 3, 2) [000012] ------------ arg6 out+30 +--* LCL_VAR ref V05 arg5 u:1 (last use) $82 N011 ( 4, 4) [000213] ------------ arg7 out+38 +--* CAST int <- bool <- int $295 N010 ( 3, 2) [000013] ------------ | \--* LCL_VAR int V06 arg6 u:1 (last use) $101 N013 ( 4, 4) [000214] ------------ arg8 out+40 +--* CAST int <- bool <- int $29a N012 ( 3, 2) [000014] ------------ | \--* LCL_VAR int V07 arg7 u:1 (last use) $102 N015 ( 4, 4) [000215] ------------ arg9 out+48 +--* CAST int <- bool <- int $29f N014 ( 3, 2) [000015] ------------ | \--* LCL_VAR int V08 arg8 u:1 (last use) $103 N017 ( 4, 4) [000216] ------------ arg10 out+50 +--* CAST int <- bool <- int $2a4 N016 ( 3, 2) [000016] ------------ | \--* LCL_VAR int V09 arg9 u:1 (last use) $104 N018 ( 3, 2) [000017] ------------ arg11 out+58 +--* LCL_VAR ref V10 arg10 u:1 (last use) $83 N019 ( 3, 2) [000018] ------------ arg12 out+60 +--* LCL_VAR ref V11 arg11 u:1 (last use) $84 N027 ( 12, 9) [000149] N--XG------- arg13 out+68 +--* NE int N025 ( 7, 7) [000147] ---XG------- | +--* AND int N023 ( 5, 5) [000145] n---GO------ | | +--* IND ubyte N022 ( 2, 2) [000218] -------N---- | | | \--* ADD byref $18c N020 ( 1, 1) [000019] ------------ | | | +--* LCL_VAR ref V00 this u:1 $80 N021 ( 1, 1) [000217] ------------ | | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N024 ( 1, 1) [000146] ------------ | | \--* CNS_INT int 1 $41 N026 ( 1, 1) [000148] ------------ | \--* CNS_INT int 0 $40 N029 ( 3, 4) [000210] ------------ arg3 in r9 +--* CAST int <- ubyte <- int $284 N028 ( 2, 2) [000009] ------------ | \--* LCL_VAR int V02 arg2 u:1 (last use) $c0 N030 ( 3, 2) [000031] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 u:2 $21b N031 ( 3, 2) [000023] ------------ arg1 in rdx +--* LCL_VAR ref V13 tmp1 u:2 (last use) N032 ( 1, 1) [000008] ------------ arg2 in r8 \--* LCL_VAR ref V01 arg1 u:1 (last use) $81 ReMorphing args for 32.CALL: fgMorphTree (before 270): N029 ( 3, 4) [000210] ------------ * CAST int <- ubyte <- int $284 N028 ( 2, 2) [000009] ------------ \--* LCL_VAR int V02 arg2 u:1 (last use) $c0 fgMorphTree (before 271): N028 ( 2, 2) [000009] ------------ * LCL_VAR int V02 arg2 u:1 (last use) $c0 fgMorphTree (after 271): N028 ( 2, 2) [000009] ------------ * LCL_VAR int V02 arg2 u:1 (last use) $c0 fgMorphTree (after 270): N029 ( 3, 4) [000210] ------------ * CAST int <- ubyte <- int $284 N028 ( 2, 2) [000009] ------------ \--* LCL_VAR int V02 arg2 u:1 (last use) $c0 fgMorphTree (before 272): N030 ( 3, 2) [000031] ------------ * LCL_VAR ref V14 tmp2 u:2 $21b fgMorphTree (after 272): N030 ( 3, 2) [000031] ------------ * LCL_VAR ref V14 tmp2 u:2 $21b fgMorphTree (before 273): N031 ( 3, 2) [000023] ------------ * LCL_VAR ref V13 tmp1 u:2 (last use) fgMorphTree (after 273): N031 ( 3, 2) [000023] ------------ * LCL_VAR ref V13 tmp1 u:2 (last use) fgMorphTree (before 274): N032 ( 1, 1) [000008] ------------ * LCL_VAR ref V01 arg1 u:1 (last use) $81 fgMorphTree (after 274): N032 ( 1, 1) [000008] ------------ * LCL_VAR ref V01 arg1 u:1 (last use) $81 fgMorphTree (before 275): N001 ( 0, 0) [000220] ----------L- * ARGPLACE ref $251 fgMorphTree (after 275): N001 ( 0, 0) [000220] ----------L- * ARGPLACE ref $251 fgMorphTree (before 276): N002 ( 0, 0) [000221] ----------L- * ARGPLACE ref $21b fgMorphTree (after 276): N002 ( 0, 0) [000221] ----------L- * ARGPLACE ref $21b fgMorphTree (before 277): N003 ( 0, 0) [000222] ----------L- * ARGPLACE ref fgMorphTree (after 277): N003 ( 0, 0) [000222] ----------L- * ARGPLACE ref fgMorphTree (before 278): N004 ( 0, 0) [000219] ----------L- * ARGPLACE int $81 fgMorphTree (after 278): N004 ( 0, 0) [000219] ----------L- * ARGPLACE int $81 fgMorphTree (before 279): N006 ( 3, 4) [000211] ------------ * CAST int <- ubyte <- int $289 N005 ( 2, 2) [000010] ------------ \--* LCL_VAR int V03 arg3 u:1 (last use) $c1 fgMorphTree (before 280): N005 ( 2, 2) [000010] ------------ * LCL_VAR int V03 arg3 u:1 (last use) $c1 fgMorphTree (after 280): N005 ( 2, 2) [000010] ------------ * LCL_VAR int V03 arg3 u:1 (last use) $c1 fgMorphTree (after 279): N006 ( 3, 4) [000211] ------------ * CAST int <- ubyte <- int $289 N005 ( 2, 2) [000010] ------------ \--* LCL_VAR int V03 arg3 u:1 (last use) $c1 fgMorphTree (before 281): N008 ( 4, 4) [000212] ------------ * CAST int <- bool <- int $28e N007 ( 3, 2) [000011] ------------ \--* LCL_VAR int V04 arg4 u:1 (last use) $100 fgMorphTree (before 282): N007 ( 3, 2) [000011] ------------ * LCL_VAR int V04 arg4 u:1 (last use) $100 fgMorphTree (after 282): N007 ( 3, 2) [000011] ------------ * LCL_VAR int V04 arg4 u:1 (last use) $100 fgMorphTree (after 281): N008 ( 4, 4) [000212] ------------ * CAST int <- bool <- int $28e N007 ( 3, 2) [000011] ------------ \--* LCL_VAR int V04 arg4 u:1 (last use) $100 fgMorphTree (before 283): N009 ( 3, 2) [000012] ------------ * LCL_VAR ref V05 arg5 u:1 (last use) $82 fgMorphTree (after 283): N009 ( 3, 2) [000012] ------------ * LCL_VAR ref V05 arg5 u:1 (last use) $82 fgMorphTree (before 284): N011 ( 4, 4) [000213] ------------ * CAST int <- bool <- int $295 N010 ( 3, 2) [000013] ------------ \--* LCL_VAR int V06 arg6 u:1 (last use) $101 fgMorphTree (before 285): N010 ( 3, 2) [000013] ------------ * LCL_VAR int V06 arg6 u:1 (last use) $101 fgMorphTree (after 285): N010 ( 3, 2) [000013] ------------ * LCL_VAR int V06 arg6 u:1 (last use) $101 fgMorphTree (after 284): N011 ( 4, 4) [000213] ------------ * CAST int <- bool <- int $295 N010 ( 3, 2) [000013] ------------ \--* LCL_VAR int V06 arg6 u:1 (last use) $101 fgMorphTree (before 286): N013 ( 4, 4) [000214] ------------ * CAST int <- bool <- int $29a N012 ( 3, 2) [000014] ------------ \--* LCL_VAR int V07 arg7 u:1 (last use) $102 fgMorphTree (before 287): N012 ( 3, 2) [000014] ------------ * LCL_VAR int V07 arg7 u:1 (last use) $102 fgMorphTree (after 287): N012 ( 3, 2) [000014] ------------ * LCL_VAR int V07 arg7 u:1 (last use) $102 fgMorphTree (after 286): N013 ( 4, 4) [000214] ------------ * CAST int <- bool <- int $29a N012 ( 3, 2) [000014] ------------ \--* LCL_VAR int V07 arg7 u:1 (last use) $102 fgMorphTree (before 288): N015 ( 4, 4) [000215] ------------ * CAST int <- bool <- int $29f N014 ( 3, 2) [000015] ------------ \--* LCL_VAR int V08 arg8 u:1 (last use) $103 fgMorphTree (before 289): N014 ( 3, 2) [000015] ------------ * LCL_VAR int V08 arg8 u:1 (last use) $103 fgMorphTree (after 289): N014 ( 3, 2) [000015] ------------ * LCL_VAR int V08 arg8 u:1 (last use) $103 fgMorphTree (after 288): N015 ( 4, 4) [000215] ------------ * CAST int <- bool <- int $29f N014 ( 3, 2) [000015] ------------ \--* LCL_VAR int V08 arg8 u:1 (last use) $103 fgMorphTree (before 290): N017 ( 4, 4) [000216] ------------ * CAST int <- bool <- int $2a4 N016 ( 3, 2) [000016] ------------ \--* LCL_VAR int V09 arg9 u:1 (last use) $104 fgMorphTree (before 291): N016 ( 3, 2) [000016] ------------ * LCL_VAR int V09 arg9 u:1 (last use) $104 fgMorphTree (after 291): N016 ( 3, 2) [000016] ------------ * LCL_VAR int V09 arg9 u:1 (last use) $104 fgMorphTree (after 290): N017 ( 4, 4) [000216] ------------ * CAST int <- bool <- int $2a4 N016 ( 3, 2) [000016] ------------ \--* LCL_VAR int V09 arg9 u:1 (last use) $104 fgMorphTree (before 292): N018 ( 3, 2) [000017] ------------ * LCL_VAR ref V10 arg10 u:1 (last use) $83 fgMorphTree (after 292): N018 ( 3, 2) [000017] ------------ * LCL_VAR ref V10 arg10 u:1 (last use) $83 fgMorphTree (before 293): N019 ( 3, 2) [000018] ------------ * LCL_VAR ref V11 arg11 u:1 (last use) $84 fgMorphTree (after 293): N019 ( 3, 2) [000018] ------------ * LCL_VAR ref V11 arg11 u:1 (last use) $84 fgMorphTree (before 294): N027 ( 12, 9) [000149] N--XG------- * NE int N025 ( 7, 7) [000147] ---XG------- +--* AND int N023 ( 5, 5) [000145] n---GO------ | +--* IND ubyte N022 ( 2, 2) [000218] -------N---- | | \--* ADD byref $18c N020 ( 1, 1) [000019] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N021 ( 1, 1) [000217] ------------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N024 ( 1, 1) [000146] ------------ | \--* CNS_INT int 1 $41 N026 ( 1, 1) [000148] ------------ \--* CNS_INT int 0 $40 fgMorphTree (before 295): N025 ( 7, 7) [000147] ---XG------- * AND int N023 ( 5, 5) [000145] n---GO------ +--* IND ubyte N022 ( 2, 2) [000218] -------N---- | \--* ADD byref $18c N020 ( 1, 1) [000019] ------------ | +--* LCL_VAR ref V00 this u:1 $80 N021 ( 1, 1) [000217] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N024 ( 1, 1) [000146] ------------ \--* CNS_INT int 1 $41 fgMorphTree (before 296): N023 ( 5, 5) [000145] n---GO------ * IND ubyte N022 ( 2, 2) [000218] -------N---- \--* ADD byref $18c N020 ( 1, 1) [000019] ------------ +--* LCL_VAR ref V00 this u:1 $80 N021 ( 1, 1) [000217] ------------ \--* CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (before 297): N022 ( 2, 2) [000218] -------N---- * ADD byref $18c N020 ( 1, 1) [000019] ------------ +--* LCL_VAR ref V00 this u:1 $80 N021 ( 1, 1) [000217] ------------ \--* CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (before 298): N020 ( 1, 1) [000019] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (after 298): N020 ( 1, 1) [000019] ------------ * LCL_VAR ref V00 this u:1 $80 fgMorphTree (before 299): N021 ( 1, 1) [000217] ------------ * CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (after 299): N021 ( 1, 1) [000217] ------------ * CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (after 297): N022 ( 2, 2) [000218] -------N---- * ADD byref $18c N020 ( 1, 1) [000019] ------------ +--* LCL_VAR ref V00 this u:1 $80 N021 ( 1, 1) [000217] ------------ \--* CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (after 296): N023 ( 5, 5) [000145] n---GO------ * IND ubyte N022 ( 2, 2) [000218] -------N---- \--* ADD byref $18c N020 ( 1, 1) [000019] ------------ +--* LCL_VAR ref V00 this u:1 $80 N021 ( 1, 1) [000217] ------------ \--* CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (before 300): N024 ( 1, 1) [000146] ------------ * CNS_INT int 1 $41 fgMorphTree (after 300): N024 ( 1, 1) [000146] ------------ * CNS_INT int 1 $41 fgMorphTree (after 295): N025 ( 7, 7) [000147] ----GO------ * AND int N023 ( 5, 5) [000145] n---GO------ +--* IND ubyte N022 ( 2, 2) [000218] -------N---- | \--* ADD byref $18c N020 ( 1, 1) [000019] ------------ | +--* LCL_VAR ref V00 this u:1 $80 N021 ( 1, 1) [000217] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N024 ( 1, 1) [000146] ------------ \--* CNS_INT int 1 $41 fgMorphTree (before 301): N026 ( 1, 1) [000148] ------------ * CNS_INT int 0 $40 fgMorphTree (after 301): N026 ( 1, 1) [000148] ------------ * CNS_INT int 0 $40 fgMorphTree (after 294): N027 ( 12, 9) [000149] N---GO------ * NE int N025 ( 7, 7) [000147] ----GO------ +--* AND int N023 ( 5, 5) [000145] n---GO------ | +--* IND ubyte N022 ( 2, 2) [000218] -------N---- | | \--* ADD byref $18c N020 ( 1, 1) [000019] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N021 ( 1, 1) [000217] ------------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N024 ( 1, 1) [000146] ------------ | \--* CNS_INT int 1 $41 N026 ( 1, 1) [000148] ------------ \--* CNS_INT int 0 $40 argSlots=14, preallocatedArgCount=14, nextSlotNum=14, outgoingArgSpaceSize=112 ArgTable for 32.CALL after fgMorphArgs: fgArgTabEntry[arg 13 149.NE int (By ref), numSlots=1, slotNum=13, align=1, processed] fgArgTabEntry[arg 9 215.CAST bool (By ref), numSlots=1, slotNum=9, align=1, processed] fgArgTabEntry[arg 10 216.CAST bool (By ref), numSlots=1, slotNum=10, align=1, processed] fgArgTabEntry[arg 3 210.CAST ubyte (By ref), 1 reg: r9, align=1, lateArgInx=0, processed] fgArgTabEntry[arg 4 211.CAST ubyte (By ref), numSlots=1, slotNum=4, align=1, processed] fgArgTabEntry[arg 5 212.CAST bool (By ref), numSlots=1, slotNum=5, align=1, processed] fgArgTabEntry[arg 8 214.CAST bool (By ref), numSlots=1, slotNum=8, align=1, processed] fgArgTabEntry[arg 7 213.CAST bool (By ref), numSlots=1, slotNum=7, align=1, processed] fgArgTabEntry[arg 0 31.LCL_VAR ref (By ref), 1 reg: rcx, align=1, lateArgInx=1, processed] fgArgTabEntry[arg 1 23.LCL_VAR ref (By ref), 1 reg: rdx, align=1, lateArgInx=2, processed] fgArgTabEntry[arg 2 8.LCL_VAR ref (By ref), 1 reg: r8, align=1, lateArgInx=3, processed] fgArgTabEntry[arg 6 12.LCL_VAR ref (By ref), numSlots=1, slotNum=6, align=1, processed] fgArgTabEntry[arg 11 17.LCL_VAR ref (By ref), numSlots=1, slotNum=11, align=1, processed] fgArgTabEntry[arg 12 18.LCL_VAR ref (By ref), numSlots=1, slotNum=12, align=1, processed] fgMorphTree (after 269): N033 ( 98, 58) [000032] --CXGO------ * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor $VN.Void N006 ( 3, 4) [000211] ------------ arg4 out+20 +--* CAST int <- ubyte <- int $289 N005 ( 2, 2) [000010] ------------ | \--* LCL_VAR int V03 arg3 u:1 (last use) $c1 N008 ( 4, 4) [000212] ------------ arg5 out+28 +--* CAST int <- bool <- int $28e N007 ( 3, 2) [000011] ------------ | \--* LCL_VAR int V04 arg4 u:1 (last use) $100 N009 ( 3, 2) [000012] ------------ arg6 out+30 +--* LCL_VAR ref V05 arg5 u:1 (last use) $82 N011 ( 4, 4) [000213] ------------ arg7 out+38 +--* CAST int <- bool <- int $295 N010 ( 3, 2) [000013] ------------ | \--* LCL_VAR int V06 arg6 u:1 (last use) $101 N013 ( 4, 4) [000214] ------------ arg8 out+40 +--* CAST int <- bool <- int $29a N012 ( 3, 2) [000014] ------------ | \--* LCL_VAR int V07 arg7 u:1 (last use) $102 N015 ( 4, 4) [000215] ------------ arg9 out+48 +--* CAST int <- bool <- int $29f N014 ( 3, 2) [000015] ------------ | \--* LCL_VAR int V08 arg8 u:1 (last use) $103 N017 ( 4, 4) [000216] ------------ arg10 out+50 +--* CAST int <- bool <- int $2a4 N016 ( 3, 2) [000016] ------------ | \--* LCL_VAR int V09 arg9 u:1 (last use) $104 N018 ( 3, 2) [000017] ------------ arg11 out+58 +--* LCL_VAR ref V10 arg10 u:1 (last use) $83 N019 ( 3, 2) [000018] ------------ arg12 out+60 +--* LCL_VAR ref V11 arg11 u:1 (last use) $84 N027 ( 12, 9) [000149] N---GO------ arg13 out+68 +--* NE int N025 ( 7, 7) [000147] ----GO------ | +--* AND int N023 ( 5, 5) [000145] n---GO------ | | +--* IND ubyte N022 ( 2, 2) [000218] -------N---- | | | \--* ADD byref $18c N020 ( 1, 1) [000019] ------------ | | | +--* LCL_VAR ref V00 this u:1 $80 N021 ( 1, 1) [000217] ------------ | | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N024 ( 1, 1) [000146] ------------ | | \--* CNS_INT int 1 $41 N026 ( 1, 1) [000148] ------------ | \--* CNS_INT int 0 $40 N029 ( 3, 4) [000210] ------------ arg3 in r9 +--* CAST int <- ubyte <- int $284 N028 ( 2, 2) [000009] ------------ | \--* LCL_VAR int V02 arg2 u:1 (last use) $c0 N030 ( 3, 2) [000031] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 u:2 $21b N031 ( 3, 2) [000023] ------------ arg1 in rdx +--* LCL_VAR ref V13 tmp1 u:2 (last use) N032 ( 1, 1) [000008] ------------ arg2 in r8 \--* LCL_VAR ref V01 arg1 u:1 (last use) $81 optAssertionPropMain morphed tree: N033 ( 98, 58) [000032] --CXGO------ * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor $VN.Void N006 ( 3, 4) [000211] ------------ arg4 out+20 +--* CAST int <- ubyte <- int $289 N005 ( 2, 2) [000010] ------------ | \--* LCL_VAR int V03 arg3 u:1 (last use) $c1 N008 ( 4, 4) [000212] ------------ arg5 out+28 +--* CAST int <- bool <- int $28e N007 ( 3, 2) [000011] ------------ | \--* LCL_VAR int V04 arg4 u:1 (last use) $100 N009 ( 3, 2) [000012] ------------ arg6 out+30 +--* LCL_VAR ref V05 arg5 u:1 (last use) $82 N011 ( 4, 4) [000213] ------------ arg7 out+38 +--* CAST int <- bool <- int $295 N010 ( 3, 2) [000013] ------------ | \--* LCL_VAR int V06 arg6 u:1 (last use) $101 N013 ( 4, 4) [000214] ------------ arg8 out+40 +--* CAST int <- bool <- int $29a N012 ( 3, 2) [000014] ------------ | \--* LCL_VAR int V07 arg7 u:1 (last use) $102 N015 ( 4, 4) [000215] ------------ arg9 out+48 +--* CAST int <- bool <- int $29f N014 ( 3, 2) [000015] ------------ | \--* LCL_VAR int V08 arg8 u:1 (last use) $103 N017 ( 4, 4) [000216] ------------ arg10 out+50 +--* CAST int <- bool <- int $2a4 N016 ( 3, 2) [000016] ------------ | \--* LCL_VAR int V09 arg9 u:1 (last use) $104 N018 ( 3, 2) [000017] ------------ arg11 out+58 +--* LCL_VAR ref V10 arg10 u:1 (last use) $83 N019 ( 3, 2) [000018] ------------ arg12 out+60 +--* LCL_VAR ref V11 arg11 u:1 (last use) $84 N027 ( 12, 9) [000149] N---GO------ arg13 out+68 +--* NE int N025 ( 7, 7) [000147] ----GO------ | +--* AND int N023 ( 5, 5) [000145] n---GO------ | | +--* IND ubyte N022 ( 2, 2) [000218] -------N---- | | | \--* ADD byref $18c N020 ( 1, 1) [000019] ------------ | | | +--* LCL_VAR ref V00 this u:1 $80 N021 ( 1, 1) [000217] ------------ | | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N024 ( 1, 1) [000146] ------------ | | \--* CNS_INT int 1 $41 N026 ( 1, 1) [000148] ------------ | \--* CNS_INT int 0 $40 N029 ( 3, 4) [000210] ------------ arg3 in r9 +--* CAST int <- ubyte <- int $284 N028 ( 2, 2) [000009] ------------ | \--* LCL_VAR int V02 arg2 u:1 (last use) $c0 N030 ( 3, 2) [000031] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 u:2 $21b N031 ( 3, 2) [000023] ------------ arg1 in rdx +--* LCL_VAR ref V13 tmp1 u:2 (last use) N032 ( 1, 1) [000008] ------------ arg2 in r8 \--* LCL_VAR ref V01 arg1 u:1 (last use) $81 Propagating 0000000000000001 assertions for BB13, stmt STMT00034, tree [000035], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00034, tree [000223], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00034, tree [000224], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00034, tree [000151], tree -> 1 Non-null prop for index #01 in BB13: N004 ( 5, 5) [000151] ---XG------- * IND ubyte Propagating 0000000000000001 assertions for BB13, stmt STMT00034, tree [000152], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00034, tree [000153], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00034, tree [000154], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00034, tree [000155], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00034, tree [000170], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00034, tree [000171], tree -> 0 Re-morphing this stmt: STMT00034 (IL ???... ???) N010 ( 16, 12) [000171] -A-XG---R--- * ASG bool N009 ( 3, 2) [000170] D------N---- +--* LCL_VAR int V15 tmp3 d:2 N008 ( 12, 9) [000155] N--XG------- \--* NE int N006 ( 7, 7) [000153] ---XG------- +--* AND int N004 ( 5, 5) [000151] n---GO------ | +--* IND ubyte N003 ( 2, 2) [000224] -------N---- | | \--* ADD byref $18c N001 ( 1, 1) [000035] ------------ | | +--* LCL_VAR ref V00 this u:1 (last use) $80 N002 ( 1, 1) [000223] ------------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000152] ------------ | \--* CNS_INT int 2 $42 N007 ( 1, 1) [000154] ------------ \--* CNS_INT int 0 $40 fgMorphTree (before 302): N010 ( 16, 12) [000171] -A-XG---R--- * ASG bool N009 ( 3, 2) [000170] D------N---- +--* LCL_VAR int V15 tmp3 d:2 N008 ( 12, 9) [000155] N--XG------- \--* NE int N006 ( 7, 7) [000153] ---XG------- +--* AND int N004 ( 5, 5) [000151] n---GO------ | +--* IND ubyte N003 ( 2, 2) [000224] -------N---- | | \--* ADD byref $18c N001 ( 1, 1) [000035] ------------ | | +--* LCL_VAR ref V00 this u:1 (last use) $80 N002 ( 1, 1) [000223] ------------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000152] ------------ | \--* CNS_INT int 2 $42 N007 ( 1, 1) [000154] ------------ \--* CNS_INT int 0 $40 fgMorphTree (before 303): N009 ( 3, 2) [000170] D------N---- * LCL_VAR int V15 tmp3 d:2 fgMorphTree (after 303): N009 ( 3, 2) [000170] D------N---- * LCL_VAR int V15 tmp3 d:2 fgMorphTree (before 304): N008 ( 12, 9) [000155] N--XG------- * NE int N006 ( 7, 7) [000153] ---XG------- +--* AND int N004 ( 5, 5) [000151] n---GO------ | +--* IND ubyte N003 ( 2, 2) [000224] -------N---- | | \--* ADD byref $18c N001 ( 1, 1) [000035] ------------ | | +--* LCL_VAR ref V00 this u:1 (last use) $80 N002 ( 1, 1) [000223] ------------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000152] ------------ | \--* CNS_INT int 2 $42 N007 ( 1, 1) [000154] ------------ \--* CNS_INT int 0 $40 fgMorphTree (before 305): N006 ( 7, 7) [000153] ---XG------- * AND int N004 ( 5, 5) [000151] n---GO------ +--* IND ubyte N003 ( 2, 2) [000224] -------N---- | \--* ADD byref $18c N001 ( 1, 1) [000035] ------------ | +--* LCL_VAR ref V00 this u:1 (last use) $80 N002 ( 1, 1) [000223] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000152] ------------ \--* CNS_INT int 2 $42 fgMorphTree (before 306): N004 ( 5, 5) [000151] n---GO------ * IND ubyte N003 ( 2, 2) [000224] -------N---- \--* ADD byref $18c N001 ( 1, 1) [000035] ------------ +--* LCL_VAR ref V00 this u:1 (last use) $80 N002 ( 1, 1) [000223] ------------ \--* CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (before 307): N003 ( 2, 2) [000224] -------N---- * ADD byref $18c N001 ( 1, 1) [000035] ------------ +--* LCL_VAR ref V00 this u:1 (last use) $80 N002 ( 1, 1) [000223] ------------ \--* CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (before 308): N001 ( 1, 1) [000035] ------------ * LCL_VAR ref V00 this u:1 (last use) $80 fgMorphTree (after 308): N001 ( 1, 1) [000035] ------------ * LCL_VAR ref V00 this u:1 (last use) $80 fgMorphTree (before 309): N002 ( 1, 1) [000223] ------------ * CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (after 309): N002 ( 1, 1) [000223] ------------ * CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (after 307): N003 ( 2, 2) [000224] -------N---- * ADD byref $18c N001 ( 1, 1) [000035] ------------ +--* LCL_VAR ref V00 this u:1 (last use) $80 N002 ( 1, 1) [000223] ------------ \--* CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (after 306): N004 ( 5, 5) [000151] n---GO------ * IND ubyte N003 ( 2, 2) [000224] -------N---- \--* ADD byref $18c N001 ( 1, 1) [000035] ------------ +--* LCL_VAR ref V00 this u:1 (last use) $80 N002 ( 1, 1) [000223] ------------ \--* CNS_INT long 17 field offset Fseq[_attributes] $14c fgMorphTree (before 310): N005 ( 1, 1) [000152] ------------ * CNS_INT int 2 $42 fgMorphTree (after 310): N005 ( 1, 1) [000152] ------------ * CNS_INT int 2 $42 fgMorphTree (after 305): N006 ( 7, 7) [000153] ----GO------ * AND int N004 ( 5, 5) [000151] n---GO------ +--* IND ubyte N003 ( 2, 2) [000224] -------N---- | \--* ADD byref $18c N001 ( 1, 1) [000035] ------------ | +--* LCL_VAR ref V00 this u:1 (last use) $80 N002 ( 1, 1) [000223] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000152] ------------ \--* CNS_INT int 2 $42 fgMorphTree (before 311): N007 ( 1, 1) [000154] ------------ * CNS_INT int 0 $40 fgMorphTree (after 311): N007 ( 1, 1) [000154] ------------ * CNS_INT int 0 $40 fgMorphTree (after 304): N008 ( 12, 9) [000155] N---GO------ * NE int N006 ( 7, 7) [000153] ----GO------ +--* AND int N004 ( 5, 5) [000151] n---GO------ | +--* IND ubyte N003 ( 2, 2) [000224] -------N---- | | \--* ADD byref $18c N001 ( 1, 1) [000035] ------------ | | +--* LCL_VAR ref V00 this u:1 (last use) $80 N002 ( 1, 1) [000223] ------------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000152] ------------ | \--* CNS_INT int 2 $42 N007 ( 1, 1) [000154] ------------ \--* CNS_INT int 0 $40 fgMorphTree (after 302): N010 ( 16, 12) [000171] -A--GO--R--- * ASG bool N009 ( 3, 2) [000170] D------N---- +--* LCL_VAR int V15 tmp3 d:2 N008 ( 12, 9) [000155] N---GO------ \--* NE int N006 ( 7, 7) [000153] ----GO------ +--* AND int N004 ( 5, 5) [000151] n---GO------ | +--* IND ubyte N003 ( 2, 2) [000224] -------N---- | | \--* ADD byref $18c N001 ( 1, 1) [000035] ------------ | | +--* LCL_VAR ref V00 this u:1 (last use) $80 N002 ( 1, 1) [000223] ------------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000152] ------------ | \--* CNS_INT int 2 $42 N007 ( 1, 1) [000154] ------------ \--* CNS_INT int 0 $40 optAssertionPropMain morphed tree: N010 ( 16, 12) [000171] -A--GO--R--- * ASG bool N009 ( 3, 2) [000170] D------N---- +--* LCL_VAR int V15 tmp3 d:2 N008 ( 12, 9) [000155] N---GO------ \--* NE int N006 ( 7, 7) [000153] ----GO------ +--* AND int N004 ( 5, 5) [000151] n---GO------ | +--* IND ubyte N003 ( 2, 2) [000224] -------N---- | | \--* ADD byref $18c N001 ( 1, 1) [000035] ------------ | | +--* LCL_VAR ref V00 this u:1 (last use) $80 N002 ( 1, 1) [000223] ------------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000152] ------------ | \--* CNS_INT int 2 $42 N007 ( 1, 1) [000154] ------------ \--* CNS_INT int 0 $40 Propagating 0000000000000001 assertions for BB13, stmt STMT00032, tree [000158], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00032, tree [000159], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00032, tree [000160], tree -> 0 Propagating 0000000000000001 assertions for BB13, stmt STMT00032, tree [000161], tree -> 9 Propagating 0000000000000201 assertions for BB14, stmt STMT00033, tree [000162], tree -> 0 Propagating 0000000000000201 assertions for BB14, stmt STMT00033, tree [000227], tree -> 0 Propagating 0000000000000201 assertions for BB14, stmt STMT00033, tree [000228], tree -> 0 Propagating 0000000000000201 assertions for BB14, stmt STMT00033, tree [000163], tree -> 11 Propagating 0000000000000601 assertions for BB14, stmt STMT00033, tree [000164], tree -> 0 Propagating 0000000000000601 assertions for BB14, stmt STMT00033, tree [000165], tree -> 0 Propagating 0000000000000601 assertions for BB14, stmt STMT00033, tree [000034], tree -> 0 Propagating 0000000000000601 assertions for BB14, stmt STMT00033, tree [000225], tree -> 0 Propagating 0000000000000601 assertions for BB14, stmt STMT00033, tree [000226], tree -> 0 Propagating 0000000000000601 assertions for BB14, stmt STMT00033, tree [000166], tree -> 11 Propagating 0000000000000601 assertions for BB14, stmt STMT00033, tree [000167], tree -> 0 Propagating 0000000000000001 assertions for BB15, stmt STMT00008, tree [000033], tree -> 0 Propagating 0000000000000001 assertions for BB15, stmt STMT00008, tree [000040], tree -> 0 *************** In fgDebugCheckBBlist *************** Finishing PHASE Assertion prop *************** Starting PHASE Optimize index checks *************** In OptimizeRangeChecks() Blocks/trees before phase ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB13 ( cond ) i label target IBC BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB13 ( cond ) i IBC BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB13 ( cond ) i IBC BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB13 ( cond ) i IBC BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB13 ( cond ) i hascall gcsafe IBC BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB13 ( cond ) i gcsafe IBC BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB13 ( cond ) i gcsafe IBC BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB13 ( cond ) i gcsafe IBC BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB13 ( cond ) i gcsafe IBC BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB13 ( cond ) i hascall gcsafe IBC BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB13 ( cond ) i hascall gcsafe IBC BB12 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target gcsafe IBC BB13 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB15 ( cond ) i label target hascall gcsafe newobj nullcheck IBC BB14 [0027] 1 BB13 0.09 [000..000) i internal gcsafe BB15 [0028] 2 BB13,BB14 0.17 14831 [000..000) (return) i internal label target gcsafe newobj nullcheck IBC ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..009) -> BB13 (cond), preds={} succs={BB02,BB13} ***** BB01 STMT00001 (IL ???... ???) N007 ( 8, 8) [000005] ---XG------- * JTRUE void N006 ( 6, 6) [000004] N--XG--N-U-- \--* NE int N001 ( 1, 1) [000000] ------------ +--* LCL_VAR ref V01 arg1 u:1 $81 N005 ( 4, 4) [000121] ---XG------- \--* IND ref N004 ( 2, 2) [000174] -------N---- \--* ADD byref $180 N002 ( 1, 1) [000001] ------------ +--* LCL_VAR ref V00 this u:1 $80 N003 ( 1, 1) [000173] ------------ \--* CNS_INT long 32 field offset Fseq[k__BackingField] $140 ------------ BB02 [009..012) -> BB13 (cond), preds={BB01} succs={BB03,BB13} ***** BB02 STMT00010 (IL ???... ???) N008 ( 11, 12) [000047] ----GO------ * JTRUE void N007 ( 9, 10) [000046] N---GO-N-U-- \--* NE int N002 ( 3, 4) [000175] ------------ +--* CAST int <- ubyte <- int $284 N001 ( 2, 2) [000041] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0 N006 ( 5, 5) [000123] n---GO------ \--* IND ubyte N005 ( 2, 2) [000177] -------N---- \--* ADD byref $181 N003 ( 1, 1) [000042] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] $141 ------------ BB03 [012..01B) -> BB13 (cond), preds={BB02} succs={BB04,BB13} ***** BB03 STMT00012 (IL ???... ???) N008 ( 11, 12) [000054] ----GO------ * JTRUE void N007 ( 9, 10) [000053] N---GO-N-U-- \--* NE int N002 ( 3, 4) [000178] ------------ +--* CAST int <- ubyte <- int $289 N001 ( 2, 2) [000048] ------------ | \--* LCL_VAR int V03 arg3 u:1 $c1 N006 ( 5, 5) [000125] n---GO------ \--* IND ubyte N005 ( 2, 2) [000180] -------N---- \--* ADD byref $182 N003 ( 1, 1) [000049] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] $142 ------------ BB04 [01B..025) -> BB13 (cond), preds={BB03} succs={BB05,BB13} ***** BB04 STMT00014 (IL ???... ???) N008 ( 12, 12) [000061] ----GO------ * JTRUE void N007 ( 10, 10) [000060] N---GO-N-U-- \--* NE int N002 ( 4, 4) [000181] ------------ +--* CAST int <- bool <- int $28e N001 ( 3, 2) [000055] ------------ | \--* LCL_VAR int V04 arg4 u:1 $100 N006 ( 5, 5) [000127] n---GO------ \--* IND bool N005 ( 2, 2) [000183] -------N---- \--* ADD byref $183 N003 ( 1, 1) [000056] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] $143 ------------ BB05 [025..034) -> BB13 (cond), preds={BB04} succs={BB06,BB13} ***** BB05 STMT00017 (IL ???... ???) N012 ( 26, 19) [000071] --CXGO------ * JTRUE void N011 ( 24, 17) [000070] J-CXGO-N---- \--* NE int $294 N009 ( 22, 15) [000068] --CXGO------ +--* CAST int <- bool <- int $293 N008 ( 21, 13) [000066] --CXGO------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 N006 ( 4, 4) [000129] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000185] -------N---- | | \--* ADD byref $184 N003 ( 1, 1) [000063] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] $144 N007 ( 3, 2) [000062] ------------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 u:1 $82 N010 ( 1, 1) [000069] ------------ \--* CNS_INT int 0 $40 ------------ BB06 [034..03E) -> BB13 (cond), preds={BB05} succs={BB07,BB13} ***** BB06 STMT00019 (IL ???... ???) N008 ( 12, 12) [000078] ----GO------ * JTRUE void N007 ( 10, 10) [000077] N---GO-N-U-- \--* NE int N002 ( 4, 4) [000188] ------------ +--* CAST int <- bool <- int $295 N001 ( 3, 2) [000072] ------------ | \--* LCL_VAR int V06 arg6 u:1 $101 N006 ( 5, 5) [000132] n---GO------ \--* IND bool N005 ( 2, 2) [000190] -------N---- \--* ADD byref $185 N003 ( 1, 1) [000073] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] $145 ------------ BB07 [03E..048) -> BB13 (cond), preds={BB06} succs={BB08,BB13} ***** BB07 STMT00021 (IL ???... ???) N008 ( 12, 12) [000085] ----GO------ * JTRUE void N007 ( 10, 10) [000084] N---GO-N-U-- \--* NE int N002 ( 4, 4) [000191] ------------ +--* CAST int <- bool <- int $29a N001 ( 3, 2) [000079] ------------ | \--* LCL_VAR int V07 arg7 u:1 $102 N006 ( 5, 5) [000134] n---GO------ \--* IND bool N005 ( 2, 2) [000193] -------N---- \--* ADD byref $186 N003 ( 1, 1) [000080] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] $146 ------------ BB08 [048..052) -> BB13 (cond), preds={BB07} succs={BB09,BB13} ***** BB08 STMT00023 (IL ???... ???) N008 ( 12, 12) [000092] ----GO------ * JTRUE void N007 ( 10, 10) [000091] N---GO-N-U-- \--* NE int N002 ( 4, 4) [000194] ------------ +--* CAST int <- bool <- int $29f N001 ( 3, 2) [000086] ------------ | \--* LCL_VAR int V08 arg8 u:1 $103 N006 ( 5, 5) [000136] n---GO------ \--* IND bool N005 ( 2, 2) [000196] -------N---- \--* ADD byref $187 N003 ( 1, 1) [000087] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] $147 ------------ BB09 [052..05C) -> BB13 (cond), preds={BB08} succs={BB10,BB13} ***** BB09 STMT00025 (IL ???... ???) N008 ( 12, 12) [000099] ----GO------ * JTRUE void N007 ( 10, 10) [000098] N---GO-N-U-- \--* NE int N002 ( 4, 4) [000197] ------------ +--* CAST int <- bool <- int $2a4 N001 ( 3, 2) [000093] ------------ | \--* LCL_VAR int V09 arg9 u:1 $104 N006 ( 5, 5) [000138] n---GO------ \--* IND bool N005 ( 2, 2) [000199] -------N---- \--* ADD byref $188 N003 ( 1, 1) [000094] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] $148 ------------ BB10 [05C..06B) -> BB13 (cond), preds={BB09} succs={BB11,BB13} ***** BB10 STMT00027 (IL ???... ???) N012 ( 26, 19) [000108] --CXGO------ * JTRUE void N011 ( 24, 17) [000107] J-CXGO-N---- \--* NE int $2aa N009 ( 22, 15) [000105] --CXGO------ +--* CAST int <- bool <- int $2a9 N008 ( 21, 13) [000104] --CXGO------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 N006 ( 4, 4) [000140] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000201] -------N---- | | \--* ADD byref $189 N003 ( 1, 1) [000101] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] $149 N007 ( 3, 2) [000100] ------------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 u:1 $83 N010 ( 1, 1) [000106] ------------ \--* CNS_INT int 0 $40 ------------ BB11 [06B..07A) -> BB13 (cond), preds={BB10} succs={BB12,BB13} ***** BB11 STMT00030 (IL ???... ???) N012 ( 26, 19) [000118] --CXGO------ * JTRUE void N011 ( 24, 17) [000117] J-CXGO-N---- \--* NE int $2ac N009 ( 22, 15) [000115] --CXGO------ +--* CAST int <- bool <- int $2ab N008 ( 21, 13) [000113] --CXGO------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 N006 ( 4, 4) [000142] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000205] -------N---- | | \--* ADD byref $18a N003 ( 1, 1) [000110] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] $14a N007 ( 3, 2) [000109] ------------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 u:1 $84 N010 ( 1, 1) [000116] ------------ \--* CNS_INT int 0 $40 ------------ BB12 [0AB..0AD) (return), preds={BB11} succs={} ***** BB12 STMT00031 (IL 0x0AB...0x0AC) N002 ( 2, 2) [000120] ------------ * RETURN ref $256 N001 ( 1, 1) [000119] ------------ \--* LCL_VAR ref V00 this u:1 (last use) $80 ------------ BB13 [000..0AB) -> BB15 (cond), preds={BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11} succs={BB14,BB15} ***** BB13 STMT00003 (IL 0x07A...0x0AA) N006 ( 8, 7) [000022] -A--GO--R--- * ASG ref N005 ( 3, 2) [000021] D------N---- +--* LCL_VAR ref V13 tmp1 d:2 N004 ( 4, 4) [000007] n---GO------ \--* IND ref N003 ( 2, 2) [000209] -------N---- \--* ADD byref $18b N001 ( 1, 1) [000006] ------------ +--* LCL_VAR ref V00 this u:1 $80 N002 ( 1, 1) [000208] ------------ \--* CNS_INT long 8 field offset Fseq[Syntax] $14b ***** BB13 STMT00004 (IL ???... ???) N003 ( 18, 8) [000030] -AC-----R--- * ASG ref $21b N002 ( 3, 2) [000029] D------N---- +--* LCL_VAR ref V14 tmp2 d:2 $21b N001 ( 14, 5) [000028] --C--------- \--* CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW $21b ***** BB13 STMT00005 (IL ???... ???) N033 ( 98, 58) [000032] --CXGO------ * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor $VN.Void N006 ( 3, 4) [000211] ------------ arg4 out+20 +--* CAST int <- ubyte <- int $289 N005 ( 2, 2) [000010] ------------ | \--* LCL_VAR int V03 arg3 u:1 (last use) $c1 N008 ( 4, 4) [000212] ------------ arg5 out+28 +--* CAST int <- bool <- int $28e N007 ( 3, 2) [000011] ------------ | \--* LCL_VAR int V04 arg4 u:1 (last use) $100 N009 ( 3, 2) [000012] ------------ arg6 out+30 +--* LCL_VAR ref V05 arg5 u:1 (last use) $82 N011 ( 4, 4) [000213] ------------ arg7 out+38 +--* CAST int <- bool <- int $295 N010 ( 3, 2) [000013] ------------ | \--* LCL_VAR int V06 arg6 u:1 (last use) $101 N013 ( 4, 4) [000214] ------------ arg8 out+40 +--* CAST int <- bool <- int $29a N012 ( 3, 2) [000014] ------------ | \--* LCL_VAR int V07 arg7 u:1 (last use) $102 N015 ( 4, 4) [000215] ------------ arg9 out+48 +--* CAST int <- bool <- int $29f N014 ( 3, 2) [000015] ------------ | \--* LCL_VAR int V08 arg8 u:1 (last use) $103 N017 ( 4, 4) [000216] ------------ arg10 out+50 +--* CAST int <- bool <- int $2a4 N016 ( 3, 2) [000016] ------------ | \--* LCL_VAR int V09 arg9 u:1 (last use) $104 N018 ( 3, 2) [000017] ------------ arg11 out+58 +--* LCL_VAR ref V10 arg10 u:1 (last use) $83 N019 ( 3, 2) [000018] ------------ arg12 out+60 +--* LCL_VAR ref V11 arg11 u:1 (last use) $84 N027 ( 12, 9) [000149] N---GO------ arg13 out+68 +--* NE int N025 ( 7, 7) [000147] ----GO------ | +--* AND int N023 ( 5, 5) [000145] n---GO------ | | +--* IND ubyte N022 ( 2, 2) [000218] -------N---- | | | \--* ADD byref $18c N020 ( 1, 1) [000019] ------------ | | | +--* LCL_VAR ref V00 this u:1 $80 N021 ( 1, 1) [000217] ------------ | | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N024 ( 1, 1) [000146] ------------ | | \--* CNS_INT int 1 $41 N026 ( 1, 1) [000148] ------------ | \--* CNS_INT int 0 $40 N029 ( 3, 4) [000210] ------------ arg3 in r9 +--* CAST int <- ubyte <- int $284 N028 ( 2, 2) [000009] ------------ | \--* LCL_VAR int V02 arg2 u:1 (last use) $c0 N030 ( 3, 2) [000031] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 u:2 $21b N031 ( 3, 2) [000023] ------------ arg1 in rdx +--* LCL_VAR ref V13 tmp1 u:2 (last use) N032 ( 1, 1) [000008] ------------ arg2 in r8 \--* LCL_VAR ref V01 arg1 u:1 (last use) $81 ***** BB13 STMT00034 (IL ???... ???) N010 ( 16, 12) [000171] -A--GO--R--- * ASG bool N009 ( 3, 2) [000170] D------N---- +--* LCL_VAR int V15 tmp3 d:2 N008 ( 12, 9) [000155] N---GO------ \--* NE int N006 ( 7, 7) [000153] ----GO------ +--* AND int N004 ( 5, 5) [000151] n---GO------ | +--* IND ubyte N003 ( 2, 2) [000224] -------N---- | | \--* ADD byref $18c N001 ( 1, 1) [000035] ------------ | | +--* LCL_VAR ref V00 this u:1 (last use) $80 N002 ( 1, 1) [000223] ------------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000152] ------------ | \--* CNS_INT int 2 $42 N007 ( 1, 1) [000154] ------------ \--* CNS_INT int 0 $40 ***** BB13 STMT00032 (IL ???... ???) N004 ( 7, 6) [000161] ------------ * JTRUE void N003 ( 5, 4) [000160] J------N---- \--* EQ int N001 ( 3, 2) [000158] ------------ +--* LCL_VAR int V15 tmp3 u:2 (last use) N002 ( 1, 1) [000159] ------------ \--* CNS_INT int 0 $40 ------------ BB14 [000..000), preds={BB13} succs={BB15} ***** BB14 STMT00033 (IL ???... ???) N011 ( 17, 15) [000167] -A--GO--R--- * ASG ubyte $VN.Void N010 ( 7, 6) [000166] n---GO-N---- +--* IND ubyte $404 N009 ( 4, 3) [000226] -------N---- | \--* ADD byref $18d N007 ( 3, 2) [000034] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 $21b N008 ( 1, 1) [000225] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N006 ( 9, 8) [000165] ----GO------ \--* OR int N004 ( 7, 6) [000163] n---GO------ +--* IND ubyte N003 ( 4, 3) [000228] -------N---- | \--* ADD byref $18d N001 ( 3, 2) [000162] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 $21b N002 ( 1, 1) [000227] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000164] ------------ \--* CNS_INT int 2 $42 ------------ BB15 [000..000) (return), preds={BB13,BB14} succs={} ***** BB15 STMT00008 (IL 0x0AA... ???) N002 ( 4, 3) [000040] ------------ * RETURN ref $255 N001 ( 3, 2) [000033] ------------ \--* LCL_VAR ref V14 tmp2 u:2 (last use) $21b ------------------------------------------------------------------------------------------------------------------- *************** Finishing PHASE Optimize index checks *************** Starting PHASE Insert GC Polls *************** Finishing PHASE Insert GC Polls [no changes] *************** Starting PHASE Determine first cold block *************** In fgDetermineFirstColdBlock() No procedure splitting will be done for this method *************** Finishing PHASE Determine first cold block Trees before Rationalize IR ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB13 ( cond ) i label target IBC BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB13 ( cond ) i IBC BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB13 ( cond ) i IBC BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB13 ( cond ) i IBC BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB13 ( cond ) i hascall gcsafe IBC BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB13 ( cond ) i gcsafe IBC BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB13 ( cond ) i gcsafe IBC BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB13 ( cond ) i gcsafe IBC BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB13 ( cond ) i gcsafe IBC BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB13 ( cond ) i hascall gcsafe IBC BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB13 ( cond ) i hascall gcsafe IBC BB12 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target gcsafe IBC BB13 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB15 ( cond ) i label target hascall gcsafe newobj nullcheck IBC BB14 [0027] 1 BB13 0.09 [000..000) i internal gcsafe BB15 [0028] 2 BB13,BB14 0.17 14831 [000..000) (return) i internal label target gcsafe newobj nullcheck IBC ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..009) -> BB13 (cond), preds={} succs={BB02,BB13} ***** BB01 STMT00001 (IL ???... ???) N007 ( 8, 8) [000005] ---XG------- * JTRUE void N006 ( 6, 6) [000004] N--XG--N-U-- \--* NE int N001 ( 1, 1) [000000] ------------ +--* LCL_VAR ref V01 arg1 u:1 $81 N005 ( 4, 4) [000121] ---XG------- \--* IND ref N004 ( 2, 2) [000174] -------N---- \--* ADD byref $180 N002 ( 1, 1) [000001] ------------ +--* LCL_VAR ref V00 this u:1 $80 N003 ( 1, 1) [000173] ------------ \--* CNS_INT long 32 field offset Fseq[k__BackingField] $140 ------------ BB02 [009..012) -> BB13 (cond), preds={BB01} succs={BB03,BB13} ***** BB02 STMT00010 (IL ???... ???) N008 ( 11, 12) [000047] ----GO------ * JTRUE void N007 ( 9, 10) [000046] N---GO-N-U-- \--* NE int N002 ( 3, 4) [000175] ------------ +--* CAST int <- ubyte <- int $284 N001 ( 2, 2) [000041] ------------ | \--* LCL_VAR int V02 arg2 u:1 $c0 N006 ( 5, 5) [000123] n---GO------ \--* IND ubyte N005 ( 2, 2) [000177] -------N---- \--* ADD byref $181 N003 ( 1, 1) [000042] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000176] ------------ \--* CNS_INT long 56 field offset Fseq[k__BackingField] $141 ------------ BB03 [012..01B) -> BB13 (cond), preds={BB02} succs={BB04,BB13} ***** BB03 STMT00012 (IL ???... ???) N008 ( 11, 12) [000054] ----GO------ * JTRUE void N007 ( 9, 10) [000053] N---GO-N-U-- \--* NE int N002 ( 3, 4) [000178] ------------ +--* CAST int <- ubyte <- int $289 N001 ( 2, 2) [000048] ------------ | \--* LCL_VAR int V03 arg3 u:1 $c1 N006 ( 5, 5) [000125] n---GO------ \--* IND ubyte N005 ( 2, 2) [000180] -------N---- \--* ADD byref $182 N003 ( 1, 1) [000049] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000179] ------------ \--* CNS_INT long 57 field offset Fseq[_ResultKind] $142 ------------ BB04 [01B..025) -> BB13 (cond), preds={BB03} succs={BB05,BB13} ***** BB04 STMT00014 (IL ???... ???) N008 ( 12, 12) [000061] ----GO------ * JTRUE void N007 ( 10, 10) [000060] N---GO-N-U-- \--* NE int N002 ( 4, 4) [000181] ------------ +--* CAST int <- bool <- int $28e N001 ( 3, 2) [000055] ------------ | \--* LCL_VAR int V04 arg4 u:1 $100 N006 ( 5, 5) [000127] n---GO------ \--* IND bool N005 ( 2, 2) [000183] -------N---- \--* ADD byref $183 N003 ( 1, 1) [000056] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000182] ------------ \--* CNS_INT long 58 field offset Fseq[k__BackingField] $143 ------------ BB05 [025..034) -> BB13 (cond), preds={BB04} succs={BB06,BB13} ***** BB05 STMT00017 (IL ???... ???) N012 ( 26, 19) [000071] --CXGO------ * JTRUE void N011 ( 24, 17) [000070] J-CXGO-N---- \--* NE int $294 N009 ( 22, 15) [000068] --CXGO------ +--* CAST int <- bool <- int $293 N008 ( 21, 13) [000066] --CXGO------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 N006 ( 4, 4) [000129] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000185] -------N---- | | \--* ADD byref $184 N003 ( 1, 1) [000063] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ | | \--* CNS_INT long 40 field offset Fseq[k__BackingField] $144 N007 ( 3, 2) [000062] ------------ arg0 in rcx | \--* LCL_VAR ref V05 arg5 u:1 $82 N010 ( 1, 1) [000069] ------------ \--* CNS_INT int 0 $40 ------------ BB06 [034..03E) -> BB13 (cond), preds={BB05} succs={BB07,BB13} ***** BB06 STMT00019 (IL ???... ???) N008 ( 12, 12) [000078] ----GO------ * JTRUE void N007 ( 10, 10) [000077] N---GO-N-U-- \--* NE int N002 ( 4, 4) [000188] ------------ +--* CAST int <- bool <- int $295 N001 ( 3, 2) [000072] ------------ | \--* LCL_VAR int V06 arg6 u:1 $101 N006 ( 5, 5) [000132] n---GO------ \--* IND bool N005 ( 2, 2) [000190] -------N---- \--* ADD byref $185 N003 ( 1, 1) [000073] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000189] ------------ \--* CNS_INT long 59 field offset Fseq[k__BackingField] $145 ------------ BB07 [03E..048) -> BB13 (cond), preds={BB06} succs={BB08,BB13} ***** BB07 STMT00021 (IL ???... ???) N008 ( 12, 12) [000085] ----GO------ * JTRUE void N007 ( 10, 10) [000084] N---GO-N-U-- \--* NE int N002 ( 4, 4) [000191] ------------ +--* CAST int <- bool <- int $29a N001 ( 3, 2) [000079] ------------ | \--* LCL_VAR int V07 arg7 u:1 $102 N006 ( 5, 5) [000134] n---GO------ \--* IND bool N005 ( 2, 2) [000193] -------N---- \--* ADD byref $186 N003 ( 1, 1) [000080] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000192] ------------ \--* CNS_INT long 60 field offset Fseq[k__BackingField] $146 ------------ BB08 [048..052) -> BB13 (cond), preds={BB07} succs={BB09,BB13} ***** BB08 STMT00023 (IL ???... ???) N008 ( 12, 12) [000092] ----GO------ * JTRUE void N007 ( 10, 10) [000091] N---GO-N-U-- \--* NE int N002 ( 4, 4) [000194] ------------ +--* CAST int <- bool <- int $29f N001 ( 3, 2) [000086] ------------ | \--* LCL_VAR int V08 arg8 u:1 $103 N006 ( 5, 5) [000136] n---GO------ \--* IND bool N005 ( 2, 2) [000196] -------N---- \--* ADD byref $187 N003 ( 1, 1) [000087] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000195] ------------ \--* CNS_INT long 61 field offset Fseq[k__BackingField] $147 ------------ BB09 [052..05C) -> BB13 (cond), preds={BB08} succs={BB10,BB13} ***** BB09 STMT00025 (IL ???... ???) N008 ( 12, 12) [000099] ----GO------ * JTRUE void N007 ( 10, 10) [000098] N---GO-N-U-- \--* NE int N002 ( 4, 4) [000197] ------------ +--* CAST int <- bool <- int $2a4 N001 ( 3, 2) [000093] ------------ | \--* LCL_VAR int V09 arg9 u:1 $104 N006 ( 5, 5) [000138] n---GO------ \--* IND bool N005 ( 2, 2) [000199] -------N---- \--* ADD byref $188 N003 ( 1, 1) [000094] ------------ +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000198] ------------ \--* CNS_INT long 62 field offset Fseq[k__BackingField] $148 ------------ BB10 [05C..06B) -> BB13 (cond), preds={BB09} succs={BB11,BB13} ***** BB10 STMT00027 (IL ???... ???) N012 ( 26, 19) [000108] --CXGO------ * JTRUE void N011 ( 24, 17) [000107] J-CXGO-N---- \--* NE int $2aa N009 ( 22, 15) [000105] --CXGO------ +--* CAST int <- bool <- int $2a9 N008 ( 21, 13) [000104] --CXGO------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 N006 ( 4, 4) [000140] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000201] -------N---- | | \--* ADD byref $189 N003 ( 1, 1) [000101] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ | | \--* CNS_INT long 48 field offset Fseq[k__BackingField] $149 N007 ( 3, 2) [000100] ------------ arg0 in rcx | \--* LCL_VAR ref V10 arg10 u:1 $83 N010 ( 1, 1) [000106] ------------ \--* CNS_INT int 0 $40 ------------ BB11 [06B..07A) -> BB13 (cond), preds={BB10} succs={BB12,BB13} ***** BB11 STMT00030 (IL ???... ???) N012 ( 26, 19) [000118] --CXGO------ * JTRUE void N011 ( 24, 17) [000117] J-CXGO-N---- \--* NE int $2ac N009 ( 22, 15) [000115] --CXGO------ +--* CAST int <- bool <- int $2ab N008 ( 21, 13) [000113] --CXGO------ | \--* CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 N006 ( 4, 4) [000142] n---GO------ arg1 in rdx | +--* IND ref N005 ( 2, 2) [000205] -------N---- | | \--* ADD byref $18a N003 ( 1, 1) [000110] ------------ | | +--* LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ | | \--* CNS_INT long 24 field offset Fseq[k__BackingField] $14a N007 ( 3, 2) [000109] ------------ arg0 in rcx | \--* LCL_VAR ref V11 arg11 u:1 $84 N010 ( 1, 1) [000116] ------------ \--* CNS_INT int 0 $40 ------------ BB12 [0AB..0AD) (return), preds={BB11} succs={} ***** BB12 STMT00031 (IL 0x0AB...0x0AC) N002 ( 2, 2) [000120] ------------ * RETURN ref $256 N001 ( 1, 1) [000119] ------------ \--* LCL_VAR ref V00 this u:1 (last use) $80 ------------ BB13 [000..0AB) -> BB15 (cond), preds={BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11} succs={BB14,BB15} ***** BB13 STMT00003 (IL 0x07A...0x0AA) N006 ( 8, 7) [000022] -A--GO--R--- * ASG ref N005 ( 3, 2) [000021] D------N---- +--* LCL_VAR ref V13 tmp1 d:2 N004 ( 4, 4) [000007] n---GO------ \--* IND ref N003 ( 2, 2) [000209] -------N---- \--* ADD byref $18b N001 ( 1, 1) [000006] ------------ +--* LCL_VAR ref V00 this u:1 $80 N002 ( 1, 1) [000208] ------------ \--* CNS_INT long 8 field offset Fseq[Syntax] $14b ***** BB13 STMT00004 (IL ???... ???) N003 ( 18, 8) [000030] -AC-----R--- * ASG ref $21b N002 ( 3, 2) [000029] D------N---- +--* LCL_VAR ref V14 tmp2 d:2 $21b N001 ( 14, 5) [000028] --C--------- \--* CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW $21b ***** BB13 STMT00005 (IL ???... ???) N033 ( 98, 58) [000032] --CXGO------ * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor $VN.Void N006 ( 3, 4) [000211] ------------ arg4 out+20 +--* CAST int <- ubyte <- int $289 N005 ( 2, 2) [000010] ------------ | \--* LCL_VAR int V03 arg3 u:1 (last use) $c1 N008 ( 4, 4) [000212] ------------ arg5 out+28 +--* CAST int <- bool <- int $28e N007 ( 3, 2) [000011] ------------ | \--* LCL_VAR int V04 arg4 u:1 (last use) $100 N009 ( 3, 2) [000012] ------------ arg6 out+30 +--* LCL_VAR ref V05 arg5 u:1 (last use) $82 N011 ( 4, 4) [000213] ------------ arg7 out+38 +--* CAST int <- bool <- int $295 N010 ( 3, 2) [000013] ------------ | \--* LCL_VAR int V06 arg6 u:1 (last use) $101 N013 ( 4, 4) [000214] ------------ arg8 out+40 +--* CAST int <- bool <- int $29a N012 ( 3, 2) [000014] ------------ | \--* LCL_VAR int V07 arg7 u:1 (last use) $102 N015 ( 4, 4) [000215] ------------ arg9 out+48 +--* CAST int <- bool <- int $29f N014 ( 3, 2) [000015] ------------ | \--* LCL_VAR int V08 arg8 u:1 (last use) $103 N017 ( 4, 4) [000216] ------------ arg10 out+50 +--* CAST int <- bool <- int $2a4 N016 ( 3, 2) [000016] ------------ | \--* LCL_VAR int V09 arg9 u:1 (last use) $104 N018 ( 3, 2) [000017] ------------ arg11 out+58 +--* LCL_VAR ref V10 arg10 u:1 (last use) $83 N019 ( 3, 2) [000018] ------------ arg12 out+60 +--* LCL_VAR ref V11 arg11 u:1 (last use) $84 N027 ( 12, 9) [000149] N---GO------ arg13 out+68 +--* NE int N025 ( 7, 7) [000147] ----GO------ | +--* AND int N023 ( 5, 5) [000145] n---GO------ | | +--* IND ubyte N022 ( 2, 2) [000218] -------N---- | | | \--* ADD byref $18c N020 ( 1, 1) [000019] ------------ | | | +--* LCL_VAR ref V00 this u:1 $80 N021 ( 1, 1) [000217] ------------ | | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N024 ( 1, 1) [000146] ------------ | | \--* CNS_INT int 1 $41 N026 ( 1, 1) [000148] ------------ | \--* CNS_INT int 0 $40 N029 ( 3, 4) [000210] ------------ arg3 in r9 +--* CAST int <- ubyte <- int $284 N028 ( 2, 2) [000009] ------------ | \--* LCL_VAR int V02 arg2 u:1 (last use) $c0 N030 ( 3, 2) [000031] ------------ this in rcx +--* LCL_VAR ref V14 tmp2 u:2 $21b N031 ( 3, 2) [000023] ------------ arg1 in rdx +--* LCL_VAR ref V13 tmp1 u:2 (last use) N032 ( 1, 1) [000008] ------------ arg2 in r8 \--* LCL_VAR ref V01 arg1 u:1 (last use) $81 ***** BB13 STMT00034 (IL ???... ???) N010 ( 16, 12) [000171] -A--GO--R--- * ASG bool N009 ( 3, 2) [000170] D------N---- +--* LCL_VAR int V15 tmp3 d:2 N008 ( 12, 9) [000155] N---GO------ \--* NE int N006 ( 7, 7) [000153] ----GO------ +--* AND int N004 ( 5, 5) [000151] n---GO------ | +--* IND ubyte N003 ( 2, 2) [000224] -------N---- | | \--* ADD byref $18c N001 ( 1, 1) [000035] ------------ | | +--* LCL_VAR ref V00 this u:1 (last use) $80 N002 ( 1, 1) [000223] ------------ | | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000152] ------------ | \--* CNS_INT int 2 $42 N007 ( 1, 1) [000154] ------------ \--* CNS_INT int 0 $40 ***** BB13 STMT00032 (IL ???... ???) N004 ( 7, 6) [000161] ------------ * JTRUE void N003 ( 5, 4) [000160] J------N---- \--* EQ int N001 ( 3, 2) [000158] ------------ +--* LCL_VAR int V15 tmp3 u:2 (last use) N002 ( 1, 1) [000159] ------------ \--* CNS_INT int 0 $40 ------------ BB14 [000..000), preds={BB13} succs={BB15} ***** BB14 STMT00033 (IL ???... ???) N011 ( 17, 15) [000167] -A--GO--R--- * ASG ubyte $VN.Void N010 ( 7, 6) [000166] n---GO-N---- +--* IND ubyte $404 N009 ( 4, 3) [000226] -------N---- | \--* ADD byref $18d N007 ( 3, 2) [000034] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 $21b N008 ( 1, 1) [000225] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N006 ( 9, 8) [000165] ----GO------ \--* OR int N004 ( 7, 6) [000163] n---GO------ +--* IND ubyte N003 ( 4, 3) [000228] -------N---- | \--* ADD byref $18d N001 ( 3, 2) [000162] ------------ | +--* LCL_VAR ref V14 tmp2 u:2 $21b N002 ( 1, 1) [000227] ------------ | \--* CNS_INT long 17 field offset Fseq[_attributes] $14c N005 ( 1, 1) [000164] ------------ \--* CNS_INT int 2 $42 ------------ BB15 [000..000) (return), preds={BB13,BB14} succs={} ***** BB15 STMT00008 (IL 0x0AA... ???) N002 ( 4, 3) [000040] ------------ * RETURN ref $255 N001 ( 3, 2) [000033] ------------ \--* LCL_VAR ref V14 tmp2 u:2 (last use) $21b ------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Rationalize IR rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N006 ( 8, 7) [000022] DA--GO------ * STORE_LCL_VAR ref V13 tmp1 d:2 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N003 ( 18, 8) [000030] DAC--------- * STORE_LCL_VAR ref V14 tmp2 d:2 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N010 ( 16, 12) [000171] DA--GO------ * STORE_LCL_VAR int V15 tmp3 d:2 *************** Finishing PHASE Rationalize IR Trees after Rationalize IR ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB13 ( cond ) i label target IBC LIR BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB13 ( cond ) i IBC LIR BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB13 ( cond ) i IBC LIR BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB13 ( cond ) i IBC LIR BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB13 ( cond ) i hascall gcsafe IBC LIR BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB13 ( cond ) i gcsafe IBC LIR BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB13 ( cond ) i gcsafe IBC LIR BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB13 ( cond ) i gcsafe IBC LIR BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB13 ( cond ) i gcsafe IBC LIR BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB13 ( cond ) i hascall gcsafe IBC LIR BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB13 ( cond ) i hascall gcsafe IBC LIR BB12 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target gcsafe IBC LIR BB13 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB15 ( cond ) i label target hascall gcsafe newobj nullcheck IBC LIR BB14 [0027] 1 BB13 0.09 [000..000) i internal gcsafe LIR BB15 [0028] 2 BB13,BB14 0.17 14831 [000..000) (return) i internal label target gcsafe newobj nullcheck IBC LIR ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..009) -> BB13 (cond), preds={} succs={BB02,BB13} N001 ( 1, 1) [000000] ------------ t0 = LCL_VAR ref V01 arg1 u:1 $81 N002 ( 1, 1) [000001] ------------ t1 = LCL_VAR ref V00 this u:1 $80 N003 ( 1, 1) [000173] ------------ t173 = CNS_INT long 32 field offset Fseq[k__BackingField] $140 /--* t1 ref +--* t173 long N004 ( 2, 2) [000174] -------N---- t174 = * ADD byref $180 /--* t174 byref N005 ( 4, 4) [000121] ---XG------- t121 = * IND ref /--* t0 ref +--* t121 ref N006 ( 6, 6) [000004] N--XG--N-U-- t4 = * NE int /--* t4 int N007 ( 8, 8) [000005] ---XG------- * JTRUE void ------------ BB02 [009..012) -> BB13 (cond), preds={BB01} succs={BB03,BB13} N001 ( 2, 2) [000041] ------------ t41 = LCL_VAR int V02 arg2 u:1 $c0 /--* t41 int N002 ( 3, 4) [000175] ------------ t175 = * CAST int <- ubyte <- int $284 N003 ( 1, 1) [000042] ------------ t42 = LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000176] ------------ t176 = CNS_INT long 56 field offset Fseq[k__BackingField] $141 /--* t42 ref +--* t176 long N005 ( 2, 2) [000177] -------N---- t177 = * ADD byref $181 /--* t177 byref N006 ( 5, 5) [000123] n---GO------ t123 = * IND ubyte /--* t175 int +--* t123 ubyte N007 ( 9, 10) [000046] N---GO-N-U-- t46 = * NE int /--* t46 int N008 ( 11, 12) [000047] ----GO------ * JTRUE void ------------ BB03 [012..01B) -> BB13 (cond), preds={BB02} succs={BB04,BB13} N001 ( 2, 2) [000048] ------------ t48 = LCL_VAR int V03 arg3 u:1 $c1 /--* t48 int N002 ( 3, 4) [000178] ------------ t178 = * CAST int <- ubyte <- int $289 N003 ( 1, 1) [000049] ------------ t49 = LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000179] ------------ t179 = CNS_INT long 57 field offset Fseq[_ResultKind] $142 /--* t49 ref +--* t179 long N005 ( 2, 2) [000180] -------N---- t180 = * ADD byref $182 /--* t180 byref N006 ( 5, 5) [000125] n---GO------ t125 = * IND ubyte /--* t178 int +--* t125 ubyte N007 ( 9, 10) [000053] N---GO-N-U-- t53 = * NE int /--* t53 int N008 ( 11, 12) [000054] ----GO------ * JTRUE void ------------ BB04 [01B..025) -> BB13 (cond), preds={BB03} succs={BB05,BB13} N001 ( 3, 2) [000055] ------------ t55 = LCL_VAR int V04 arg4 u:1 $100 /--* t55 int N002 ( 4, 4) [000181] ------------ t181 = * CAST int <- bool <- int $28e N003 ( 1, 1) [000056] ------------ t56 = LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000182] ------------ t182 = CNS_INT long 58 field offset Fseq[k__BackingField] $143 /--* t56 ref +--* t182 long N005 ( 2, 2) [000183] -------N---- t183 = * ADD byref $183 /--* t183 byref N006 ( 5, 5) [000127] n---GO------ t127 = * IND bool /--* t181 int +--* t127 bool N007 ( 10, 10) [000060] N---GO-N-U-- t60 = * NE int /--* t60 int N008 ( 12, 12) [000061] ----GO------ * JTRUE void ------------ BB05 [025..034) -> BB13 (cond), preds={BB04} succs={BB06,BB13} N003 ( 1, 1) [000063] ------------ t63 = LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ t184 = CNS_INT long 40 field offset Fseq[k__BackingField] $144 /--* t63 ref +--* t184 long N005 ( 2, 2) [000185] -------N---- t185 = * ADD byref $184 /--* t185 byref N006 ( 4, 4) [000129] n---GO------ t129 = * IND ref N007 ( 3, 2) [000062] ------------ t62 = LCL_VAR ref V05 arg5 u:1 $82 /--* t129 ref arg1 in rdx +--* t62 ref arg0 in rcx N008 ( 21, 13) [000066] --CXGO------ t66 = * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 /--* t66 int N009 ( 22, 15) [000068] ---XGO------ t68 = * CAST int <- bool <- int $293 N010 ( 1, 1) [000069] ------------ t69 = CNS_INT int 0 $40 /--* t68 int +--* t69 int N011 ( 24, 17) [000070] J--XGO-N---- t70 = * NE int $294 /--* t70 int N012 ( 26, 19) [000071] ---XGO------ * JTRUE void ------------ BB06 [034..03E) -> BB13 (cond), preds={BB05} succs={BB07,BB13} N001 ( 3, 2) [000072] ------------ t72 = LCL_VAR int V06 arg6 u:1 $101 /--* t72 int N002 ( 4, 4) [000188] ------------ t188 = * CAST int <- bool <- int $295 N003 ( 1, 1) [000073] ------------ t73 = LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000189] ------------ t189 = CNS_INT long 59 field offset Fseq[k__BackingField] $145 /--* t73 ref +--* t189 long N005 ( 2, 2) [000190] -------N---- t190 = * ADD byref $185 /--* t190 byref N006 ( 5, 5) [000132] n---GO------ t132 = * IND bool /--* t188 int +--* t132 bool N007 ( 10, 10) [000077] N---GO-N-U-- t77 = * NE int /--* t77 int N008 ( 12, 12) [000078] ----GO------ * JTRUE void ------------ BB07 [03E..048) -> BB13 (cond), preds={BB06} succs={BB08,BB13} N001 ( 3, 2) [000079] ------------ t79 = LCL_VAR int V07 arg7 u:1 $102 /--* t79 int N002 ( 4, 4) [000191] ------------ t191 = * CAST int <- bool <- int $29a N003 ( 1, 1) [000080] ------------ t80 = LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000192] ------------ t192 = CNS_INT long 60 field offset Fseq[k__BackingField] $146 /--* t80 ref +--* t192 long N005 ( 2, 2) [000193] -------N---- t193 = * ADD byref $186 /--* t193 byref N006 ( 5, 5) [000134] n---GO------ t134 = * IND bool /--* t191 int +--* t134 bool N007 ( 10, 10) [000084] N---GO-N-U-- t84 = * NE int /--* t84 int N008 ( 12, 12) [000085] ----GO------ * JTRUE void ------------ BB08 [048..052) -> BB13 (cond), preds={BB07} succs={BB09,BB13} N001 ( 3, 2) [000086] ------------ t86 = LCL_VAR int V08 arg8 u:1 $103 /--* t86 int N002 ( 4, 4) [000194] ------------ t194 = * CAST int <- bool <- int $29f N003 ( 1, 1) [000087] ------------ t87 = LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000195] ------------ t195 = CNS_INT long 61 field offset Fseq[k__BackingField] $147 /--* t87 ref +--* t195 long N005 ( 2, 2) [000196] -------N---- t196 = * ADD byref $187 /--* t196 byref N006 ( 5, 5) [000136] n---GO------ t136 = * IND bool /--* t194 int +--* t136 bool N007 ( 10, 10) [000091] N---GO-N-U-- t91 = * NE int /--* t91 int N008 ( 12, 12) [000092] ----GO------ * JTRUE void ------------ BB09 [052..05C) -> BB13 (cond), preds={BB08} succs={BB10,BB13} N001 ( 3, 2) [000093] ------------ t93 = LCL_VAR int V09 arg9 u:1 $104 /--* t93 int N002 ( 4, 4) [000197] ------------ t197 = * CAST int <- bool <- int $2a4 N003 ( 1, 1) [000094] ------------ t94 = LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000198] ------------ t198 = CNS_INT long 62 field offset Fseq[k__BackingField] $148 /--* t94 ref +--* t198 long N005 ( 2, 2) [000199] -------N---- t199 = * ADD byref $188 /--* t199 byref N006 ( 5, 5) [000138] n---GO------ t138 = * IND bool /--* t197 int +--* t138 bool N007 ( 10, 10) [000098] N---GO-N-U-- t98 = * NE int /--* t98 int N008 ( 12, 12) [000099] ----GO------ * JTRUE void ------------ BB10 [05C..06B) -> BB13 (cond), preds={BB09} succs={BB11,BB13} N003 ( 1, 1) [000101] ------------ t101 = LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ t200 = CNS_INT long 48 field offset Fseq[k__BackingField] $149 /--* t101 ref +--* t200 long N005 ( 2, 2) [000201] -------N---- t201 = * ADD byref $189 /--* t201 byref N006 ( 4, 4) [000140] n---GO------ t140 = * IND ref N007 ( 3, 2) [000100] ------------ t100 = LCL_VAR ref V10 arg10 u:1 $83 /--* t140 ref arg1 in rdx +--* t100 ref arg0 in rcx N008 ( 21, 13) [000104] --CXGO------ t104 = * CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 /--* t104 int N009 ( 22, 15) [000105] ---XGO------ t105 = * CAST int <- bool <- int $2a9 N010 ( 1, 1) [000106] ------------ t106 = CNS_INT int 0 $40 /--* t105 int +--* t106 int N011 ( 24, 17) [000107] J--XGO-N---- t107 = * NE int $2aa /--* t107 int N012 ( 26, 19) [000108] ---XGO------ * JTRUE void ------------ BB11 [06B..07A) -> BB13 (cond), preds={BB10} succs={BB12,BB13} N003 ( 1, 1) [000110] ------------ t110 = LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ t204 = CNS_INT long 24 field offset Fseq[k__BackingField] $14a /--* t110 ref +--* t204 long N005 ( 2, 2) [000205] -------N---- t205 = * ADD byref $18a /--* t205 byref N006 ( 4, 4) [000142] n---GO------ t142 = * IND ref N007 ( 3, 2) [000109] ------------ t109 = LCL_VAR ref V11 arg11 u:1 $84 /--* t142 ref arg1 in rdx +--* t109 ref arg0 in rcx N008 ( 21, 13) [000113] --CXGO------ t113 = * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 /--* t113 int N009 ( 22, 15) [000115] ---XGO------ t115 = * CAST int <- bool <- int $2ab N010 ( 1, 1) [000116] ------------ t116 = CNS_INT int 0 $40 /--* t115 int +--* t116 int N011 ( 24, 17) [000117] J--XGO-N---- t117 = * NE int $2ac /--* t117 int N012 ( 26, 19) [000118] ---XGO------ * JTRUE void ------------ BB12 [0AB..0AD) (return), preds={BB11} succs={} [000229] ------------ IL_OFFSET void IL offset: 0xab N001 ( 1, 1) [000119] ------------ t119 = LCL_VAR ref V00 this u:1 (last use) $80 /--* t119 ref N002 ( 2, 2) [000120] ------------ * RETURN ref $256 ------------ BB13 [000..0AB) -> BB15 (cond), preds={BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11} succs={BB14,BB15} [000230] ------------ IL_OFFSET void IL offset: 0x7a N001 ( 1, 1) [000006] ------------ t6 = LCL_VAR ref V00 this u:1 $80 N002 ( 1, 1) [000208] ------------ t208 = CNS_INT long 8 field offset Fseq[Syntax] $14b /--* t6 ref +--* t208 long N003 ( 2, 2) [000209] -------N---- t209 = * ADD byref $18b /--* t209 byref N004 ( 4, 4) [000007] n---GO------ t7 = * IND ref /--* t7 ref N006 ( 8, 7) [000022] DA--GO------ * STORE_LCL_VAR ref V13 tmp1 d:2 N001 ( 14, 5) [000028] --C--------- t28 = CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW $21b /--* t28 ref N003 ( 18, 8) [000030] DA---------- * STORE_LCL_VAR ref V14 tmp2 d:2 N005 ( 2, 2) [000010] ------------ t10 = LCL_VAR int V03 arg3 u:1 (last use) $c1 /--* t10 int N006 ( 3, 4) [000211] ------------ t211 = * CAST int <- ubyte <- int $289 N007 ( 3, 2) [000011] ------------ t11 = LCL_VAR int V04 arg4 u:1 (last use) $100 /--* t11 int N008 ( 4, 4) [000212] ------------ t212 = * CAST int <- bool <- int $28e N009 ( 3, 2) [000012] ------------ t12 = LCL_VAR ref V05 arg5 u:1 (last use) $82 N010 ( 3, 2) [000013] ------------ t13 = LCL_VAR int V06 arg6 u:1 (last use) $101 /--* t13 int N011 ( 4, 4) [000213] ------------ t213 = * CAST int <- bool <- int $295 N012 ( 3, 2) [000014] ------------ t14 = LCL_VAR int V07 arg7 u:1 (last use) $102 /--* t14 int N013 ( 4, 4) [000214] ------------ t214 = * CAST int <- bool <- int $29a N014 ( 3, 2) [000015] ------------ t15 = LCL_VAR int V08 arg8 u:1 (last use) $103 /--* t15 int N015 ( 4, 4) [000215] ------------ t215 = * CAST int <- bool <- int $29f N016 ( 3, 2) [000016] ------------ t16 = LCL_VAR int V09 arg9 u:1 (last use) $104 /--* t16 int N017 ( 4, 4) [000216] ------------ t216 = * CAST int <- bool <- int $2a4 N018 ( 3, 2) [000017] ------------ t17 = LCL_VAR ref V10 arg10 u:1 (last use) $83 N019 ( 3, 2) [000018] ------------ t18 = LCL_VAR ref V11 arg11 u:1 (last use) $84 N020 ( 1, 1) [000019] ------------ t19 = LCL_VAR ref V00 this u:1 $80 N021 ( 1, 1) [000217] ------------ t217 = CNS_INT long 17 field offset Fseq[_attributes] $14c /--* t19 ref +--* t217 long N022 ( 2, 2) [000218] -------N---- t218 = * ADD byref $18c /--* t218 byref N023 ( 5, 5) [000145] n---GO------ t145 = * IND ubyte N024 ( 1, 1) [000146] ------------ t146 = CNS_INT int 1 $41 /--* t145 ubyte +--* t146 int N025 ( 7, 7) [000147] ----GO------ t147 = * AND int N026 ( 1, 1) [000148] ------------ t148 = CNS_INT int 0 $40 /--* t147 int +--* t148 int N027 ( 12, 9) [000149] N---GO------ t149 = * NE int N028 ( 2, 2) [000009] ------------ t9 = LCL_VAR int V02 arg2 u:1 (last use) $c0 /--* t9 int N029 ( 3, 4) [000210] ------------ t210 = * CAST int <- ubyte <- int $284 N030 ( 3, 2) [000031] ------------ t31 = LCL_VAR ref V14 tmp2 u:2 $21b N031 ( 3, 2) [000023] ------------ t23 = LCL_VAR ref V13 tmp1 u:2 (last use) N032 ( 1, 1) [000008] ------------ t8 = LCL_VAR ref V01 arg1 u:1 (last use) $81 /--* t211 int arg4 out+20 +--* t212 int arg5 out+28 +--* t12 ref arg6 out+30 +--* t213 int arg7 out+38 +--* t214 int arg8 out+40 +--* t215 int arg9 out+48 +--* t216 int arg10 out+50 +--* t17 ref arg11 out+58 +--* t18 ref arg12 out+60 +--* t149 int arg13 out+68 +--* t210 int arg3 in r9 +--* t31 ref this in rcx +--* t23 ref arg1 in rdx +--* t8 ref arg2 in r8 N033 ( 98, 58) [000032] --CXGO------ * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor $VN.Void N001 ( 1, 1) [000035] ------------ t35 = LCL_VAR ref V00 this u:1 (last use) $80 N002 ( 1, 1) [000223] ------------ t223 = CNS_INT long 17 field offset Fseq[_attributes] $14c /--* t35 ref +--* t223 long N003 ( 2, 2) [000224] -------N---- t224 = * ADD byref $18c /--* t224 byref N004 ( 5, 5) [000151] n---GO------ t151 = * IND ubyte N005 ( 1, 1) [000152] ------------ t152 = CNS_INT int 2 $42 /--* t151 ubyte +--* t152 int N006 ( 7, 7) [000153] ----GO------ t153 = * AND int N007 ( 1, 1) [000154] ------------ t154 = CNS_INT int 0 $40 /--* t153 int +--* t154 int N008 ( 12, 9) [000155] N---GO------ t155 = * NE int /--* t155 int N010 ( 16, 12) [000171] DA--GO------ * STORE_LCL_VAR int V15 tmp3 d:2 N001 ( 3, 2) [000158] ------------ t158 = LCL_VAR int V15 tmp3 u:2 (last use) N002 ( 1, 1) [000159] ------------ t159 = CNS_INT int 0 $40 /--* t158 int +--* t159 int N003 ( 5, 4) [000160] J------N---- t160 = * EQ int /--* t160 int N004 ( 7, 6) [000161] ------------ * JTRUE void ------------ BB14 [000..000), preds={BB13} succs={BB15} N001 ( 3, 2) [000162] ------------ t162 = LCL_VAR ref V14 tmp2 u:2 $21b N002 ( 1, 1) [000227] ------------ t227 = CNS_INT long 17 field offset Fseq[_attributes] $14c /--* t162 ref +--* t227 long N003 ( 4, 3) [000228] -------N---- t228 = * ADD byref $18d /--* t228 byref N004 ( 7, 6) [000163] n---GO------ t163 = * IND ubyte N005 ( 1, 1) [000164] ------------ t164 = CNS_INT int 2 $42 /--* t163 ubyte +--* t164 int N006 ( 9, 8) [000165] ----GO------ t165 = * OR int N007 ( 3, 2) [000034] ------------ t34 = LCL_VAR ref V14 tmp2 u:2 $21b N008 ( 1, 1) [000225] ------------ t225 = CNS_INT long 17 field offset Fseq[_attributes] $14c /--* t34 ref +--* t225 long N009 ( 4, 3) [000226] -------N---- t226 = * ADD byref $18d /--* t226 byref +--* t165 int [000231] -A--GO------ * STOREIND ubyte ------------ BB15 [000..000) (return), preds={BB13,BB14} succs={} [000232] ------------ IL_OFFSET void IL offset: 0xaa N001 ( 3, 2) [000033] ------------ t33 = LCL_VAR ref V14 tmp2 u:2 (last use) $21b /--* t33 ref N002 ( 4, 3) [000040] ------------ * RETURN ref $255 ------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *************** Starting PHASE Do 'simple' lowering Bumping outgoingArgSpaceSize to 32 for call [000066] outgoingArgSpaceSize 32 sufficient for call [000104], which needs 32 outgoingArgSpaceSize 32 sufficient for call [000113], which needs 32 outgoingArgSpaceSize 32 sufficient for call [000028], which needs 32 Bumping outgoingArgSpaceSize to 112 for call [000032] *************** Finishing PHASE Do 'simple' lowering *************** In fgDebugCheckBBlist Trees before Lowering nodeinfo ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB13 ( cond ) i label target IBC LIR BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB13 ( cond ) i IBC LIR BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB13 ( cond ) i IBC LIR BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB13 ( cond ) i IBC LIR BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB13 ( cond ) i hascall gcsafe IBC LIR BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB13 ( cond ) i gcsafe IBC LIR BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB13 ( cond ) i gcsafe IBC LIR BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB13 ( cond ) i gcsafe IBC LIR BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB13 ( cond ) i gcsafe IBC LIR BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB13 ( cond ) i hascall gcsafe IBC LIR BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB13 ( cond ) i hascall gcsafe IBC LIR BB12 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target gcsafe IBC LIR BB13 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB15 ( cond ) i label target hascall gcsafe newobj nullcheck IBC LIR BB14 [0027] 1 BB13 0.09 [000..000) i internal gcsafe LIR BB15 [0028] 2 BB13,BB14 0.17 14831 [000..000) (return) i internal label target gcsafe newobj nullcheck IBC LIR ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..009) -> BB13 (cond), preds={} succs={BB02,BB13} N001 ( 1, 1) [000000] ------------ t0 = LCL_VAR ref V01 arg1 u:1 $81 N002 ( 1, 1) [000001] ------------ t1 = LCL_VAR ref V00 this u:1 $80 N003 ( 1, 1) [000173] ------------ t173 = CNS_INT long 32 field offset Fseq[k__BackingField] $140 /--* t1 ref +--* t173 long N004 ( 2, 2) [000174] -------N---- t174 = * ADD byref $180 /--* t174 byref N005 ( 4, 4) [000121] ---XG------- t121 = * IND ref /--* t0 ref +--* t121 ref N006 ( 6, 6) [000004] N--XG--N-U-- t4 = * NE int /--* t4 int N007 ( 8, 8) [000005] ---XG------- * JTRUE void ------------ BB02 [009..012) -> BB13 (cond), preds={BB01} succs={BB03,BB13} N001 ( 2, 2) [000041] ------------ t41 = LCL_VAR int V02 arg2 u:1 $c0 /--* t41 int N002 ( 3, 4) [000175] ------------ t175 = * CAST int <- ubyte <- int $284 N003 ( 1, 1) [000042] ------------ t42 = LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000176] ------------ t176 = CNS_INT long 56 field offset Fseq[k__BackingField] $141 /--* t42 ref +--* t176 long N005 ( 2, 2) [000177] -------N---- t177 = * ADD byref $181 /--* t177 byref N006 ( 5, 5) [000123] n---GO------ t123 = * IND ubyte /--* t175 int +--* t123 ubyte N007 ( 9, 10) [000046] N---GO-N-U-- t46 = * NE int /--* t46 int N008 ( 11, 12) [000047] ----GO------ * JTRUE void ------------ BB03 [012..01B) -> BB13 (cond), preds={BB02} succs={BB04,BB13} N001 ( 2, 2) [000048] ------------ t48 = LCL_VAR int V03 arg3 u:1 $c1 /--* t48 int N002 ( 3, 4) [000178] ------------ t178 = * CAST int <- ubyte <- int $289 N003 ( 1, 1) [000049] ------------ t49 = LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000179] ------------ t179 = CNS_INT long 57 field offset Fseq[_ResultKind] $142 /--* t49 ref +--* t179 long N005 ( 2, 2) [000180] -------N---- t180 = * ADD byref $182 /--* t180 byref N006 ( 5, 5) [000125] n---GO------ t125 = * IND ubyte /--* t178 int +--* t125 ubyte N007 ( 9, 10) [000053] N---GO-N-U-- t53 = * NE int /--* t53 int N008 ( 11, 12) [000054] ----GO------ * JTRUE void ------------ BB04 [01B..025) -> BB13 (cond), preds={BB03} succs={BB05,BB13} N001 ( 3, 2) [000055] ------------ t55 = LCL_VAR int V04 arg4 u:1 $100 /--* t55 int N002 ( 4, 4) [000181] ------------ t181 = * CAST int <- bool <- int $28e N003 ( 1, 1) [000056] ------------ t56 = LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000182] ------------ t182 = CNS_INT long 58 field offset Fseq[k__BackingField] $143 /--* t56 ref +--* t182 long N005 ( 2, 2) [000183] -------N---- t183 = * ADD byref $183 /--* t183 byref N006 ( 5, 5) [000127] n---GO------ t127 = * IND bool /--* t181 int +--* t127 bool N007 ( 10, 10) [000060] N---GO-N-U-- t60 = * NE int /--* t60 int N008 ( 12, 12) [000061] ----GO------ * JTRUE void ------------ BB05 [025..034) -> BB13 (cond), preds={BB04} succs={BB06,BB13} N003 ( 1, 1) [000063] ------------ t63 = LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000184] ------------ t184 = CNS_INT long 40 field offset Fseq[k__BackingField] $144 /--* t63 ref +--* t184 long N005 ( 2, 2) [000185] -------N---- t185 = * ADD byref $184 /--* t185 byref N006 ( 4, 4) [000129] n---GO------ t129 = * IND ref N007 ( 3, 2) [000062] ------------ t62 = LCL_VAR ref V05 arg5 u:1 $82 /--* t129 ref arg1 in rdx +--* t62 ref arg0 in rcx N008 ( 21, 13) [000066] --CXGO------ t66 = * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 /--* t66 int N009 ( 22, 15) [000068] ---XGO------ t68 = * CAST int <- bool <- int $293 N010 ( 1, 1) [000069] ------------ t69 = CNS_INT int 0 $40 /--* t68 int +--* t69 int N011 ( 24, 17) [000070] J--XGO-N---- t70 = * NE int $294 /--* t70 int N012 ( 26, 19) [000071] ---XGO------ * JTRUE void ------------ BB06 [034..03E) -> BB13 (cond), preds={BB05} succs={BB07,BB13} N001 ( 3, 2) [000072] ------------ t72 = LCL_VAR int V06 arg6 u:1 $101 /--* t72 int N002 ( 4, 4) [000188] ------------ t188 = * CAST int <- bool <- int $295 N003 ( 1, 1) [000073] ------------ t73 = LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000189] ------------ t189 = CNS_INT long 59 field offset Fseq[k__BackingField] $145 /--* t73 ref +--* t189 long N005 ( 2, 2) [000190] -------N---- t190 = * ADD byref $185 /--* t190 byref N006 ( 5, 5) [000132] n---GO------ t132 = * IND bool /--* t188 int +--* t132 bool N007 ( 10, 10) [000077] N---GO-N-U-- t77 = * NE int /--* t77 int N008 ( 12, 12) [000078] ----GO------ * JTRUE void ------------ BB07 [03E..048) -> BB13 (cond), preds={BB06} succs={BB08,BB13} N001 ( 3, 2) [000079] ------------ t79 = LCL_VAR int V07 arg7 u:1 $102 /--* t79 int N002 ( 4, 4) [000191] ------------ t191 = * CAST int <- bool <- int $29a N003 ( 1, 1) [000080] ------------ t80 = LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000192] ------------ t192 = CNS_INT long 60 field offset Fseq[k__BackingField] $146 /--* t80 ref +--* t192 long N005 ( 2, 2) [000193] -------N---- t193 = * ADD byref $186 /--* t193 byref N006 ( 5, 5) [000134] n---GO------ t134 = * IND bool /--* t191 int +--* t134 bool N007 ( 10, 10) [000084] N---GO-N-U-- t84 = * NE int /--* t84 int N008 ( 12, 12) [000085] ----GO------ * JTRUE void ------------ BB08 [048..052) -> BB13 (cond), preds={BB07} succs={BB09,BB13} N001 ( 3, 2) [000086] ------------ t86 = LCL_VAR int V08 arg8 u:1 $103 /--* t86 int N002 ( 4, 4) [000194] ------------ t194 = * CAST int <- bool <- int $29f N003 ( 1, 1) [000087] ------------ t87 = LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000195] ------------ t195 = CNS_INT long 61 field offset Fseq[k__BackingField] $147 /--* t87 ref +--* t195 long N005 ( 2, 2) [000196] -------N---- t196 = * ADD byref $187 /--* t196 byref N006 ( 5, 5) [000136] n---GO------ t136 = * IND bool /--* t194 int +--* t136 bool N007 ( 10, 10) [000091] N---GO-N-U-- t91 = * NE int /--* t91 int N008 ( 12, 12) [000092] ----GO------ * JTRUE void ------------ BB09 [052..05C) -> BB13 (cond), preds={BB08} succs={BB10,BB13} N001 ( 3, 2) [000093] ------------ t93 = LCL_VAR int V09 arg9 u:1 $104 /--* t93 int N002 ( 4, 4) [000197] ------------ t197 = * CAST int <- bool <- int $2a4 N003 ( 1, 1) [000094] ------------ t94 = LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000198] ------------ t198 = CNS_INT long 62 field offset Fseq[k__BackingField] $148 /--* t94 ref +--* t198 long N005 ( 2, 2) [000199] -------N---- t199 = * ADD byref $188 /--* t199 byref N006 ( 5, 5) [000138] n---GO------ t138 = * IND bool /--* t197 int +--* t138 bool N007 ( 10, 10) [000098] N---GO-N-U-- t98 = * NE int /--* t98 int N008 ( 12, 12) [000099] ----GO------ * JTRUE void ------------ BB10 [05C..06B) -> BB13 (cond), preds={BB09} succs={BB11,BB13} N003 ( 1, 1) [000101] ------------ t101 = LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000200] ------------ t200 = CNS_INT long 48 field offset Fseq[k__BackingField] $149 /--* t101 ref +--* t200 long N005 ( 2, 2) [000201] -------N---- t201 = * ADD byref $189 /--* t201 byref N006 ( 4, 4) [000140] n---GO------ t140 = * IND ref N007 ( 3, 2) [000100] ------------ t100 = LCL_VAR ref V10 arg10 u:1 $83 /--* t140 ref arg1 in rdx +--* t100 ref arg0 in rcx N008 ( 21, 13) [000104] --CXGO------ t104 = * CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 /--* t104 int N009 ( 22, 15) [000105] ---XGO------ t105 = * CAST int <- bool <- int $2a9 N010 ( 1, 1) [000106] ------------ t106 = CNS_INT int 0 $40 /--* t105 int +--* t106 int N011 ( 24, 17) [000107] J--XGO-N---- t107 = * NE int $2aa /--* t107 int N012 ( 26, 19) [000108] ---XGO------ * JTRUE void ------------ BB11 [06B..07A) -> BB13 (cond), preds={BB10} succs={BB12,BB13} N003 ( 1, 1) [000110] ------------ t110 = LCL_VAR ref V00 this u:1 $80 N004 ( 1, 1) [000204] ------------ t204 = CNS_INT long 24 field offset Fseq[k__BackingField] $14a /--* t110 ref +--* t204 long N005 ( 2, 2) [000205] -------N---- t205 = * ADD byref $18a /--* t205 byref N006 ( 4, 4) [000142] n---GO------ t142 = * IND ref N007 ( 3, 2) [000109] ------------ t109 = LCL_VAR ref V11 arg11 u:1 $84 /--* t142 ref arg1 in rdx +--* t109 ref arg0 in rcx N008 ( 21, 13) [000113] --CXGO------ t113 = * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 /--* t113 int N009 ( 22, 15) [000115] ---XGO------ t115 = * CAST int <- bool <- int $2ab N010 ( 1, 1) [000116] ------------ t116 = CNS_INT int 0 $40 /--* t115 int +--* t116 int N011 ( 24, 17) [000117] J--XGO-N---- t117 = * NE int $2ac /--* t117 int N012 ( 26, 19) [000118] ---XGO------ * JTRUE void ------------ BB12 [0AB..0AD) (return), preds={BB11} succs={} [000229] ------------ IL_OFFSET void IL offset: 0xab N001 ( 1, 1) [000119] ------------ t119 = LCL_VAR ref V00 this u:1 (last use) $80 /--* t119 ref N002 ( 2, 2) [000120] ------------ * RETURN ref $256 ------------ BB13 [000..0AB) -> BB15 (cond), preds={BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11} succs={BB14,BB15} [000230] ------------ IL_OFFSET void IL offset: 0x7a N001 ( 1, 1) [000006] ------------ t6 = LCL_VAR ref V00 this u:1 $80 N002 ( 1, 1) [000208] ------------ t208 = CNS_INT long 8 field offset Fseq[Syntax] $14b /--* t6 ref +--* t208 long N003 ( 2, 2) [000209] -------N---- t209 = * ADD byref $18b /--* t209 byref N004 ( 4, 4) [000007] n---GO------ t7 = * IND ref /--* t7 ref N006 ( 8, 7) [000022] DA--GO------ * STORE_LCL_VAR ref V13 tmp1 d:2 N001 ( 14, 5) [000028] --C--------- t28 = CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW $21b /--* t28 ref N003 ( 18, 8) [000030] DA---------- * STORE_LCL_VAR ref V14 tmp2 d:2 N005 ( 2, 2) [000010] ------------ t10 = LCL_VAR int V03 arg3 u:1 (last use) $c1 /--* t10 int N006 ( 3, 4) [000211] ------------ t211 = * CAST int <- ubyte <- int $289 N007 ( 3, 2) [000011] ------------ t11 = LCL_VAR int V04 arg4 u:1 (last use) $100 /--* t11 int N008 ( 4, 4) [000212] ------------ t212 = * CAST int <- bool <- int $28e N009 ( 3, 2) [000012] ------------ t12 = LCL_VAR ref V05 arg5 u:1 (last use) $82 N010 ( 3, 2) [000013] ------------ t13 = LCL_VAR int V06 arg6 u:1 (last use) $101 /--* t13 int N011 ( 4, 4) [000213] ------------ t213 = * CAST int <- bool <- int $295 N012 ( 3, 2) [000014] ------------ t14 = LCL_VAR int V07 arg7 u:1 (last use) $102 /--* t14 int N013 ( 4, 4) [000214] ------------ t214 = * CAST int <- bool <- int $29a N014 ( 3, 2) [000015] ------------ t15 = LCL_VAR int V08 arg8 u:1 (last use) $103 /--* t15 int N015 ( 4, 4) [000215] ------------ t215 = * CAST int <- bool <- int $29f N016 ( 3, 2) [000016] ------------ t16 = LCL_VAR int V09 arg9 u:1 (last use) $104 /--* t16 int N017 ( 4, 4) [000216] ------------ t216 = * CAST int <- bool <- int $2a4 N018 ( 3, 2) [000017] ------------ t17 = LCL_VAR ref V10 arg10 u:1 (last use) $83 N019 ( 3, 2) [000018] ------------ t18 = LCL_VAR ref V11 arg11 u:1 (last use) $84 N020 ( 1, 1) [000019] ------------ t19 = LCL_VAR ref V00 this u:1 $80 N021 ( 1, 1) [000217] ------------ t217 = CNS_INT long 17 field offset Fseq[_attributes] $14c /--* t19 ref +--* t217 long N022 ( 2, 2) [000218] -------N---- t218 = * ADD byref $18c /--* t218 byref N023 ( 5, 5) [000145] n---GO------ t145 = * IND ubyte N024 ( 1, 1) [000146] ------------ t146 = CNS_INT int 1 $41 /--* t145 ubyte +--* t146 int N025 ( 7, 7) [000147] ----GO------ t147 = * AND int N026 ( 1, 1) [000148] ------------ t148 = CNS_INT int 0 $40 /--* t147 int +--* t148 int N027 ( 12, 9) [000149] N---GO------ t149 = * NE int N028 ( 2, 2) [000009] ------------ t9 = LCL_VAR int V02 arg2 u:1 (last use) $c0 /--* t9 int N029 ( 3, 4) [000210] ------------ t210 = * CAST int <- ubyte <- int $284 N030 ( 3, 2) [000031] ------------ t31 = LCL_VAR ref V14 tmp2 u:2 $21b N031 ( 3, 2) [000023] ------------ t23 = LCL_VAR ref V13 tmp1 u:2 (last use) N032 ( 1, 1) [000008] ------------ t8 = LCL_VAR ref V01 arg1 u:1 (last use) $81 /--* t211 int arg4 out+20 +--* t212 int arg5 out+28 +--* t12 ref arg6 out+30 +--* t213 int arg7 out+38 +--* t214 int arg8 out+40 +--* t215 int arg9 out+48 +--* t216 int arg10 out+50 +--* t17 ref arg11 out+58 +--* t18 ref arg12 out+60 +--* t149 int arg13 out+68 +--* t210 int arg3 in r9 +--* t31 ref this in rcx +--* t23 ref arg1 in rdx +--* t8 ref arg2 in r8 N033 ( 98, 58) [000032] --CXGO------ * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor $VN.Void N001 ( 1, 1) [000035] ------------ t35 = LCL_VAR ref V00 this u:1 (last use) $80 N002 ( 1, 1) [000223] ------------ t223 = CNS_INT long 17 field offset Fseq[_attributes] $14c /--* t35 ref +--* t223 long N003 ( 2, 2) [000224] -------N---- t224 = * ADD byref $18c /--* t224 byref N004 ( 5, 5) [000151] n---GO------ t151 = * IND ubyte N005 ( 1, 1) [000152] ------------ t152 = CNS_INT int 2 $42 /--* t151 ubyte +--* t152 int N006 ( 7, 7) [000153] ----GO------ t153 = * AND int N007 ( 1, 1) [000154] ------------ t154 = CNS_INT int 0 $40 /--* t153 int +--* t154 int N008 ( 12, 9) [000155] N---GO------ t155 = * NE int /--* t155 int N010 ( 16, 12) [000171] DA--GO------ * STORE_LCL_VAR int V15 tmp3 d:2 N001 ( 3, 2) [000158] ------------ t158 = LCL_VAR int V15 tmp3 u:2 (last use) N002 ( 1, 1) [000159] ------------ t159 = CNS_INT int 0 $40 /--* t158 int +--* t159 int N003 ( 5, 4) [000160] J------N---- t160 = * EQ int /--* t160 int N004 ( 7, 6) [000161] ------------ * JTRUE void ------------ BB14 [000..000), preds={BB13} succs={BB15} N001 ( 3, 2) [000162] ------------ t162 = LCL_VAR ref V14 tmp2 u:2 $21b N002 ( 1, 1) [000227] ------------ t227 = CNS_INT long 17 field offset Fseq[_attributes] $14c /--* t162 ref +--* t227 long N003 ( 4, 3) [000228] -------N---- t228 = * ADD byref $18d /--* t228 byref N004 ( 7, 6) [000163] n---GO------ t163 = * IND ubyte N005 ( 1, 1) [000164] ------------ t164 = CNS_INT int 2 $42 /--* t163 ubyte +--* t164 int N006 ( 9, 8) [000165] ----GO------ t165 = * OR int N007 ( 3, 2) [000034] ------------ t34 = LCL_VAR ref V14 tmp2 u:2 $21b N008 ( 1, 1) [000225] ------------ t225 = CNS_INT long 17 field offset Fseq[_attributes] $14c /--* t34 ref +--* t225 long N009 ( 4, 3) [000226] -------N---- t226 = * ADD byref $18d /--* t226 byref +--* t165 int [000231] -A--GO------ * STOREIND ubyte ------------ BB15 [000..000) (return), preds={BB13,BB14} succs={} [000232] ------------ IL_OFFSET void IL offset: 0xaa N001 ( 3, 2) [000033] ------------ t33 = LCL_VAR ref V14 tmp2 u:2 (last use) $21b /--* t33 ref N002 ( 4, 3) [000040] ------------ * RETURN ref $255 ------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Lowering nodeinfo Addressing mode: Base N002 ( 1, 1) [000001] ------------ * LCL_VAR ref V00 this u:1 $80 + 32 Removing unused node: N003 ( 1, 1) [000173] -c---------- * CNS_INT long 32 field offset Fseq[k__BackingField] $140 New addressing mode node: N004 ( 2, 2) [000174] ------------ * LEA(b+32) byref Addressing mode: Base N003 ( 1, 1) [000042] ------------ * LCL_VAR ref V00 this u:1 $80 + 56 Removing unused node: N004 ( 1, 1) [000176] -c---------- * CNS_INT long 56 field offset Fseq[k__BackingField] $141 New addressing mode node: N005 ( 2, 2) [000177] ------------ * LEA(b+56) byref Addressing mode: Base N003 ( 1, 1) [000049] ------------ * LCL_VAR ref V00 this u:1 $80 + 57 Removing unused node: N004 ( 1, 1) [000179] -c---------- * CNS_INT long 57 field offset Fseq[_ResultKind] $142 New addressing mode node: N005 ( 2, 2) [000180] ------------ * LEA(b+57) byref Addressing mode: Base N003 ( 1, 1) [000056] ------------ * LCL_VAR ref V00 this u:1 $80 + 58 Removing unused node: N004 ( 1, 1) [000182] -c---------- * CNS_INT long 58 field offset Fseq[k__BackingField] $143 New addressing mode node: N005 ( 2, 2) [000183] ------------ * LEA(b+58) byref Addressing mode: Base N003 ( 1, 1) [000063] ------------ * LCL_VAR ref V00 this u:1 $80 + 40 Removing unused node: N004 ( 1, 1) [000184] -c---------- * CNS_INT long 40 field offset Fseq[k__BackingField] $144 New addressing mode node: N005 ( 2, 2) [000185] ------------ * LEA(b+40) byref lowering call (before): N003 ( 1, 1) [000063] ------------ t63 = LCL_VAR ref V00 this u:1 $80 /--* t63 ref N005 ( 2, 2) [000185] -c---------- t185 = * LEA(b+40) byref /--* t185 byref N006 ( 4, 4) [000129] n---GO------ t129 = * IND ref N007 ( 3, 2) [000062] ------------ t62 = LCL_VAR ref V05 arg5 u:1 $82 /--* t129 ref arg1 in rdx +--* t62 ref arg0 in rcx N008 ( 21, 13) [000066] --CXGO------ t66 = * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 objp: ====== args: ====== lowering arg : N001 ( 0, 0) [000187] ----------L- * ARGPLACE ref $82 lowering arg : N002 ( 0, 0) [000186] ----------L- * ARGPLACE ref late: ====== lowering arg : N006 ( 4, 4) [000129] n---GO------ * IND ref new node is : [000233] ----GO------ * PUTARG_REG ref REG rdx lowering arg : N007 ( 3, 2) [000062] ------------ * LCL_VAR ref V05 arg5 u:1 $82 new node is : [000234] ------------ * PUTARG_REG ref REG rcx results of lowering call: N001 ( 1, 4) [000235] ------------ t235 = CNS_INT(h) long 0xd1ffab1e ftn /--* t235 long N002 ( 3, 6) [000236] ------------ t236 = * IND long lowering call (after): N003 ( 1, 1) [000063] ------------ t63 = LCL_VAR ref V00 this u:1 $80 /--* t63 ref N005 ( 2, 2) [000185] -c---------- t185 = * LEA(b+40) byref /--* t185 byref N006 ( 4, 4) [000129] n---GO------ t129 = * IND ref /--* t129 ref [000233] ----GO------ t233 = * PUTARG_REG ref REG rdx N007 ( 3, 2) [000062] ------------ t62 = LCL_VAR ref V05 arg5 u:1 $82 /--* t62 ref [000234] ------------ t234 = * PUTARG_REG ref REG rcx N001 ( 1, 4) [000235] -c---------- t235 = CNS_INT(h) long 0xd1ffab1e ftn /--* t235 long N002 ( 3, 6) [000236] -c---------- t236 = * IND long REG NA /--* t233 ref arg1 in rdx +--* t234 ref arg0 in rcx +--* t236 long control expr N008 ( 21, 13) [000066] --CXGO------ t66 = * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 Addressing mode: Base N003 ( 1, 1) [000073] ------------ * LCL_VAR ref V00 this u:1 $80 + 59 Removing unused node: N004 ( 1, 1) [000189] -c---------- * CNS_INT long 59 field offset Fseq[k__BackingField] $145 New addressing mode node: N005 ( 2, 2) [000190] ------------ * LEA(b+59) byref Addressing mode: Base N003 ( 1, 1) [000080] ------------ * LCL_VAR ref V00 this u:1 $80 + 60 Removing unused node: N004 ( 1, 1) [000192] -c---------- * CNS_INT long 60 field offset Fseq[k__BackingField] $146 New addressing mode node: N005 ( 2, 2) [000193] ------------ * LEA(b+60) byref Addressing mode: Base N003 ( 1, 1) [000087] ------------ * LCL_VAR ref V00 this u:1 $80 + 61 Removing unused node: N004 ( 1, 1) [000195] -c---------- * CNS_INT long 61 field offset Fseq[k__BackingField] $147 New addressing mode node: N005 ( 2, 2) [000196] ------------ * LEA(b+61) byref Addressing mode: Base N003 ( 1, 1) [000094] ------------ * LCL_VAR ref V00 this u:1 $80 + 62 Removing unused node: N004 ( 1, 1) [000198] -c---------- * CNS_INT long 62 field offset Fseq[k__BackingField] $148 New addressing mode node: N005 ( 2, 2) [000199] ------------ * LEA(b+62) byref Addressing mode: Base N003 ( 1, 1) [000101] ------------ * LCL_VAR ref V00 this u:1 $80 + 48 Removing unused node: N004 ( 1, 1) [000200] -c---------- * CNS_INT long 48 field offset Fseq[k__BackingField] $149 New addressing mode node: N005 ( 2, 2) [000201] ------------ * LEA(b+48) byref lowering call (before): N003 ( 1, 1) [000101] ------------ t101 = LCL_VAR ref V00 this u:1 $80 /--* t101 ref N005 ( 2, 2) [000201] -c---------- t201 = * LEA(b+48) byref /--* t201 byref N006 ( 4, 4) [000140] n---GO------ t140 = * IND ref N007 ( 3, 2) [000100] ------------ t100 = LCL_VAR ref V10 arg10 u:1 $83 /--* t140 ref arg1 in rdx +--* t100 ref arg0 in rcx N008 ( 21, 13) [000104] --CXGO------ t104 = * CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 objp: ====== args: ====== lowering arg : N001 ( 0, 0) [000203] ----------L- * ARGPLACE ref $83 lowering arg : N002 ( 0, 0) [000202] ----------L- * ARGPLACE ref late: ====== lowering arg : N006 ( 4, 4) [000140] n---GO------ * IND ref new node is : [000237] ----GO------ * PUTARG_REG ref REG rdx lowering arg : N007 ( 3, 2) [000100] ------------ * LCL_VAR ref V10 arg10 u:1 $83 new node is : [000238] ------------ * PUTARG_REG ref REG rcx results of lowering call: N001 ( 1, 4) [000239] ------------ t239 = CNS_INT(h) long 0xd1ffab1e ftn /--* t239 long N002 ( 3, 6) [000240] ------------ t240 = * IND long lowering call (after): N003 ( 1, 1) [000101] ------------ t101 = LCL_VAR ref V00 this u:1 $80 /--* t101 ref N005 ( 2, 2) [000201] -c---------- t201 = * LEA(b+48) byref /--* t201 byref N006 ( 4, 4) [000140] n---GO------ t140 = * IND ref /--* t140 ref [000237] ----GO------ t237 = * PUTARG_REG ref REG rdx N007 ( 3, 2) [000100] ------------ t100 = LCL_VAR ref V10 arg10 u:1 $83 /--* t100 ref [000238] ------------ t238 = * PUTARG_REG ref REG rcx N001 ( 1, 4) [000239] -c---------- t239 = CNS_INT(h) long 0xd1ffab1e ftn /--* t239 long N002 ( 3, 6) [000240] -c---------- t240 = * IND long REG NA /--* t237 ref arg1 in rdx +--* t238 ref arg0 in rcx +--* t240 long control expr N008 ( 21, 13) [000104] --CXGO------ t104 = * CALL r2r_ind int Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 Addressing mode: Base N003 ( 1, 1) [000110] ------------ * LCL_VAR ref V00 this u:1 $80 + 24 Removing unused node: N004 ( 1, 1) [000204] -c---------- * CNS_INT long 24 field offset Fseq[k__BackingField] $14a New addressing mode node: N005 ( 2, 2) [000205] ------------ * LEA(b+24) byref lowering call (before): N003 ( 1, 1) [000110] ------------ t110 = LCL_VAR ref V00 this u:1 $80 /--* t110 ref N005 ( 2, 2) [000205] -c---------- t205 = * LEA(b+24) byref /--* t205 byref N006 ( 4, 4) [000142] n---GO------ t142 = * IND ref N007 ( 3, 2) [000109] ------------ t109 = LCL_VAR ref V11 arg11 u:1 $84 /--* t142 ref arg1 in rdx +--* t109 ref arg0 in rcx N008 ( 21, 13) [000113] --CXGO------ t113 = * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 objp: ====== args: ====== lowering arg : N001 ( 0, 0) [000207] ----------L- * ARGPLACE ref $84 lowering arg : N002 ( 0, 0) [000206] ----------L- * ARGPLACE ref late: ====== lowering arg : N006 ( 4, 4) [000142] n---GO------ * IND ref new node is : [000241] ----GO------ * PUTARG_REG ref REG rdx lowering arg : N007 ( 3, 2) [000109] ------------ * LCL_VAR ref V11 arg11 u:1 $84 new node is : [000242] ------------ * PUTARG_REG ref REG rcx results of lowering call: N001 ( 1, 4) [000243] ------------ t243 = CNS_INT(h) long 0xd1ffab1e ftn /--* t243 long N002 ( 3, 6) [000244] ------------ t244 = * IND long lowering call (after): N003 ( 1, 1) [000110] ------------ t110 = LCL_VAR ref V00 this u:1 $80 /--* t110 ref N005 ( 2, 2) [000205] -c---------- t205 = * LEA(b+24) byref /--* t205 byref N006 ( 4, 4) [000142] n---GO------ t142 = * IND ref /--* t142 ref [000241] ----GO------ t241 = * PUTARG_REG ref REG rdx N007 ( 3, 2) [000109] ------------ t109 = LCL_VAR ref V11 arg11 u:1 $84 /--* t109 ref [000242] ------------ t242 = * PUTARG_REG ref REG rcx N001 ( 1, 4) [000243] -c---------- t243 = CNS_INT(h) long 0xd1ffab1e ftn /--* t243 long N002 ( 3, 6) [000244] -c---------- t244 = * IND long REG NA /--* t241 ref arg1 in rdx +--* t242 ref arg0 in rcx +--* t244 long control expr N008 ( 21, 13) [000113] --CXGO------ t113 = * CALL r2r_ind int Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 lowering GT_RETURN N002 ( 2, 2) [000120] ------------ * RETURN ref $256 ============Addressing mode: Base N001 ( 1, 1) [000006] ------------ * LCL_VAR ref V00 this u:1 $80 + 8 Removing unused node: N002 ( 1, 1) [000208] -c---------- * CNS_INT long 8 field offset Fseq[Syntax] $14b New addressing mode node: N003 ( 2, 2) [000209] ------------ * LEA(b+8) byref lowering store lcl var/field (before): N001 ( 1, 1) [000006] ------------ t6 = LCL_VAR ref V00 this u:1 $80 /--* t6 ref N003 ( 2, 2) [000209] -c---------- t209 = * LEA(b+8) byref /--* t209 byref N004 ( 4, 4) [000007] n---GO------ t7 = * IND ref /--* t7 ref N006 ( 8, 7) [000022] DA--GO------ * STORE_LCL_VAR ref V13 tmp1 d:2 lowering store lcl var/field (after): N001 ( 1, 1) [000006] ------------ t6 = LCL_VAR ref V00 this u:1 $80 /--* t6 ref N003 ( 2, 2) [000209] -c---------- t209 = * LEA(b+8) byref /--* t209 byref N004 ( 4, 4) [000007] n---GO------ t7 = * IND ref /--* t7 ref N006 ( 8, 7) [000022] DA--GO------ * STORE_LCL_VAR ref V13 tmp1 d:2 lowering call (before): N001 ( 14, 5) [000028] --C--------- t28 = CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW $21b objp: ====== args: ====== late: ====== results of lowering call: N001 ( 1, 4) [000245] ------------ t245 = CNS_INT(h) long 0xd1ffab1e ftn /--* t245 long N002 ( 3, 6) [000246] ------------ t246 = * IND long lowering call (after): N001 ( 1, 4) [000245] -c---------- t245 = CNS_INT(h) long 0xd1ffab1e ftn /--* t245 long N002 ( 3, 6) [000246] -c---------- t246 = * IND long REG NA /--* t246 long control expr N001 ( 14, 5) [000028] --C--------- t28 = * CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW $21b lowering store lcl var/field (before): N001 ( 1, 4) [000245] -c---------- t245 = CNS_INT(h) long 0xd1ffab1e ftn /--* t245 long N002 ( 3, 6) [000246] -c---------- t246 = * IND long REG NA /--* t246 long control expr N001 ( 14, 5) [000028] --C--------- t28 = * CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW $21b /--* t28 ref N003 ( 18, 8) [000030] DA---------- * STORE_LCL_VAR ref V14 tmp2 d:2 lowering store lcl var/field (after): N001 ( 1, 4) [000245] -c---------- t245 = CNS_INT(h) long 0xd1ffab1e ftn /--* t245 long N002 ( 3, 6) [000246] -c---------- t246 = * IND long REG NA /--* t246 long control expr N001 ( 14, 5) [000028] --C--------- t28 = * CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW $21b /--* t28 ref N003 ( 18, 8) [000030] DA---------- * STORE_LCL_VAR ref V14 tmp2 d:2 Addressing mode: Base N020 ( 1, 1) [000019] ------------ * LCL_VAR ref V00 this u:1 $80 + 17 Removing unused node: N021 ( 1, 1) [000217] -c---------- * CNS_INT long 17 field offset Fseq[_attributes] $14c New addressing mode node: N022 ( 2, 2) [000218] ------------ * LEA(b+17) byref lowering call (before): N005 ( 2, 2) [000010] ------------ t10 = LCL_VAR int V03 arg3 u:1 (last use) $c1 /--* t10 int N006 ( 3, 4) [000211] ------------ t211 = * CAST int <- ubyte <- int $289 N007 ( 3, 2) [000011] ------------ t11 = LCL_VAR int V04 arg4 u:1 (last use) $100 /--* t11 int N008 ( 4, 4) [000212] ------------ t212 = * CAST int <- bool <- int $28e N009 ( 3, 2) [000012] ------------ t12 = LCL_VAR ref V05 arg5 u:1 (last use) $82 N010 ( 3, 2) [000013] ------------ t13 = LCL_VAR int V06 arg6 u:1 (last use) $101 /--* t13 int N011 ( 4, 4) [000213] ------------ t213 = * CAST int <- bool <- int $295 N012 ( 3, 2) [000014] ------------ t14 = LCL_VAR int V07 arg7 u:1 (last use) $102 /--* t14 int N013 ( 4, 4) [000214] ------------ t214 = * CAST int <- bool <- int $29a N014 ( 3, 2) [000015] ------------ t15 = LCL_VAR int V08 arg8 u:1 (last use) $103 /--* t15 int N015 ( 4, 4) [000215] ------------ t215 = * CAST int <- bool <- int $29f N016 ( 3, 2) [000016] ------------ t16 = LCL_VAR int V09 arg9 u:1 (last use) $104 /--* t16 int N017 ( 4, 4) [000216] ------------ t216 = * CAST int <- bool <- int $2a4 N018 ( 3, 2) [000017] ------------ t17 = LCL_VAR ref V10 arg10 u:1 (last use) $83 N019 ( 3, 2) [000018] ------------ t18 = LCL_VAR ref V11 arg11 u:1 (last use) $84 N020 ( 1, 1) [000019] ------------ t19 = LCL_VAR ref V00 this u:1 $80 /--* t19 ref N022 ( 2, 2) [000218] -c---------- t218 = * LEA(b+17) byref /--* t218 byref N023 ( 5, 5) [000145] nc--GO------ t145 = * IND ubyte N024 ( 1, 1) [000146] -c---------- t146 = CNS_INT ubyte 1 $41 /--* t145 ubyte +--* t146 ubyte N027 ( 12, 9) [000149] N---GO---U-- t149 = * TEST_NE int N028 ( 2, 2) [000009] ------------ t9 = LCL_VAR int V02 arg2 u:1 (last use) $c0 /--* t9 int N029 ( 3, 4) [000210] ------------ t210 = * CAST int <- ubyte <- int $284 N030 ( 3, 2) [000031] ------------ t31 = LCL_VAR ref V14 tmp2 u:2 $21b N031 ( 3, 2) [000023] ------------ t23 = LCL_VAR ref V13 tmp1 u:2 (last use) N032 ( 1, 1) [000008] ------------ t8 = LCL_VAR ref V01 arg1 u:1 (last use) $81 /--* t211 int arg4 out+20 +--* t212 int arg5 out+28 +--* t12 ref arg6 out+30 +--* t213 int arg7 out+38 +--* t214 int arg8 out+40 +--* t215 int arg9 out+48 +--* t216 int arg10 out+50 +--* t17 ref arg11 out+58 +--* t18 ref arg12 out+60 +--* t149 int arg13 out+68 +--* t210 int arg3 in r9 +--* t31 ref this in rcx +--* t23 ref arg1 in rdx +--* t8 ref arg2 in r8 N033 ( 98, 58) [000032] --CXGO------ * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor $VN.Void objp: ====== lowering arg : N001 ( 0, 0) [000220] ----------L- * ARGPLACE ref $251 args: ====== lowering arg : N002 ( 0, 0) [000221] ----------L- * ARGPLACE ref $21b lowering arg : N003 ( 0, 0) [000222] ----------L- * ARGPLACE ref lowering arg : N004 ( 0, 0) [000219] ----------L- * ARGPLACE int $81 lowering arg : N006 ( 3, 4) [000211] ------------ * CAST int <- ubyte <- int $289 new node is : [000247] ------------ * PUTARG_STK [+0x20] void lowering arg : N008 ( 4, 4) [000212] ------------ * CAST int <- bool <- int $28e new node is : [000248] ------------ * PUTARG_STK [+0x28] void lowering arg : N009 ( 3, 2) [000012] ------------ * LCL_VAR ref V05 arg5 u:1 (last use) $82 new node is : [000249] ------------ * PUTARG_STK [+0x30] void lowering arg : N011 ( 4, 4) [000213] ------------ * CAST int <- bool <- int $295 new node is : [000250] ------------ * PUTARG_STK [+0x38] void lowering arg : N013 ( 4, 4) [000214] ------------ * CAST int <- bool <- int $29a new node is : [000251] ------------ * PUTARG_STK [+0x40] void lowering arg : N015 ( 4, 4) [000215] ------------ * CAST int <- bool <- int $29f new node is : [000252] ------------ * PUTARG_STK [+0x48] void lowering arg : N017 ( 4, 4) [000216] ------------ * CAST int <- bool <- int $2a4 new node is : [000253] ------------ * PUTARG_STK [+0x50] void lowering arg : N018 ( 3, 2) [000017] ------------ * LCL_VAR ref V10 arg10 u:1 (last use) $83 new node is : [000254] ------------ * PUTARG_STK [+0x58] void lowering arg : N019 ( 3, 2) [000018] ------------ * LCL_VAR ref V11 arg11 u:1 (last use) $84 new node is : [000255] ------------ * PUTARG_STK [+0x60] void lowering arg : N027 ( 12, 9) [000149] N---GO---U-- * TEST_NE int new node is : [000256] ----GO------ * PUTARG_STK [+0x68] void late: ====== lowering arg : N029 ( 3, 4) [000210] ------------ * CAST int <- ubyte <- int $284 new node is : [000257] ------------ * PUTARG_REG int REG r9 lowering arg : N030 ( 3, 2) [000031] ------------ * LCL_VAR ref V14 tmp2 u:2 $21b new node is : [000258] ------------ * PUTARG_REG ref REG rcx lowering arg : N031 ( 3, 2) [000023] ------------ * LCL_VAR ref V13 tmp1 u:2 (last use) new node is : [000259] ------------ * PUTARG_REG ref REG rdx lowering arg : N032 ( 1, 1) [000008] ------------ * LCL_VAR ref V01 arg1 u:1 (last use) $81 new node is : [000260] ------------ * PUTARG_REG ref REG r8 results of lowering call: N001 ( 1, 4) [000261] ------------ t261 = CNS_INT(h) long 0xd1ffab1e ftn /--* t261 long N002 ( 3, 6) [000262] ------------ t262 = * IND long lowering call (after): N005 ( 2, 2) [000010] ------------ t10 = LCL_VAR int V03 arg3 u:1 (last use) $c1 /--* t10 int N006 ( 3, 4) [000211] ------------ t211 = * CAST int <- ubyte <- int $289 /--* t211 int [000247] ------------ * PUTARG_STK [+0x20] void N007 ( 3, 2) [000011] ------------ t11 = LCL_VAR int V04 arg4 u:1 (last use) $100 /--* t11 int N008 ( 4, 4) [000212] ------------ t212 = * CAST int <- bool <- int $28e /--* t212 int [000248] ------------ * PUTARG_STK [+0x28] void N009 ( 3, 2) [000012] ------------ t12 = LCL_VAR ref V05 arg5 u:1 (last use) $82 /--* t12 ref [000249] ------------ * PUTARG_STK [+0x30] void N010 ( 3, 2) [000013] ------------ t13 = LCL_VAR int V06 arg6 u:1 (last use) $101 /--* t13 int N011 ( 4, 4) [000213] ------------ t213 = * CAST int <- bool <- int $295 /--* t213 int [000250] ------------ * PUTARG_STK [+0x38] void N012 ( 3, 2) [000014] ------------ t14 = LCL_VAR int V07 arg7 u:1 (last use) $102 /--* t14 int N013 ( 4, 4) [000214] ------------ t214 = * CAST int <- bool <- int $29a /--* t214 int [000251] ------------ * PUTARG_STK [+0x40] void N014 ( 3, 2) [000015] ------------ t15 = LCL_VAR int V08 arg8 u:1 (last use) $103 /--* t15 int N015 ( 4, 4) [000215] ------------ t215 = * CAST int <- bool <- int $29f /--* t215 int [000252] ------------ * PUTARG_STK [+0x48] void N016 ( 3, 2) [000016] ------------ t16 = LCL_VAR int V09 arg9 u:1 (last use) $104 /--* t16 int N017 ( 4, 4) [000216] ------------ t216 = * CAST int <- bool <- int $2a4 /--* t216 int [000253] ------------ * PUTARG_STK [+0x50] void N018 ( 3, 2) [000017] ------------ t17 = LCL_VAR ref V10 arg10 u:1 (last use) $83 /--* t17 ref [000254] ------------ * PUTARG_STK [+0x58] void N019 ( 3, 2) [000018] ------------ t18 = LCL_VAR ref V11 arg11 u:1 (last use) $84 /--* t18 ref [000255] ------------ * PUTARG_STK [+0x60] void N020 ( 1, 1) [000019] ------------ t19 = LCL_VAR ref V00 this u:1 $80 /--* t19 ref N022 ( 2, 2) [000218] -c---------- t218 = * LEA(b+17) byref /--* t218 byref N023 ( 5, 5) [000145] nc--GO------ t145 = * IND ubyte N024 ( 1, 1) [000146] -c---------- t146 = CNS_INT ubyte 1 $41 /--* t145 ubyte +--* t146 ubyte N027 ( 12, 9) [000149] N---GO---U-- t149 = * TEST_NE int /--* t149 int [000256] ----GO------ * PUTARG_STK [+0x68] void N028 ( 2, 2) [000009] ------------ t9 = LCL_VAR int V02 arg2 u:1 (last use) $c0 /--* t9 int N029 ( 3, 4) [000210] ------------ t210 = * CAST int <- ubyte <- int $284 /--* t210 int [000257] ------------ t257 = * PUTARG_REG int REG r9 N030 ( 3, 2) [000031] ------------ t31 = LCL_VAR ref V14 tmp2 u:2 $21b /--* t31 ref [000258] ------------ t258 = * PUTARG_REG ref REG rcx N031 ( 3, 2) [000023] ------------ t23 = LCL_VAR ref V13 tmp1 u:2 (last use) /--* t23 ref [000259] ------------ t259 = * PUTARG_REG ref REG rdx N032 ( 1, 1) [000008] ------------ t8 = LCL_VAR ref V01 arg1 u:1 (last use) $81 /--* t8 ref [000260] ------------ t260 = * PUTARG_REG ref REG r8 N001 ( 1, 4) [000261] -c---------- t261 = CNS_INT(h) long 0xd1ffab1e ftn /--* t261 long N002 ( 3, 6) [000262] -c---------- t262 = * IND long REG NA /--* t257 int arg3 in r9 +--* t258 ref this in rcx +--* t259 ref arg1 in rdx +--* t260 ref arg2 in r8 +--* t262 long control expr N033 ( 98, 58) [000032] --CXGO------ * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor $VN.Void Addressing mode: Base N001 ( 1, 1) [000035] ------------ * LCL_VAR ref V00 this u:1 (last use) $80 + 17 Removing unused node: N002 ( 1, 1) [000223] -c---------- * CNS_INT long 17 field offset Fseq[_attributes] $14c New addressing mode node: N003 ( 2, 2) [000224] ------------ * LEA(b+17) byref lowering store lcl var/field (before): N001 ( 1, 1) [000035] ------------ t35 = LCL_VAR ref V00 this u:1 (last use) $80 /--* t35 ref N003 ( 2, 2) [000224] -c---------- t224 = * LEA(b+17) byref /--* t224 byref N004 ( 5, 5) [000151] nc--GO------ t151 = * IND ubyte N005 ( 1, 1) [000152] -c---------- t152 = CNS_INT ubyte 2 $42 /--* t151 ubyte +--* t152 ubyte N008 ( 12, 9) [000155] N---GO---U-- t155 = * TEST_NE int /--* t155 int N010 ( 16, 12) [000171] DA--GO------ * STORE_LCL_VAR int V15 tmp3 d:2 lowering store lcl var/field (after): N001 ( 1, 1) [000035] ------------ t35 = LCL_VAR ref V00 this u:1 (last use) $80 /--* t35 ref N003 ( 2, 2) [000224] -c---------- t224 = * LEA(b+17) byref /--* t224 byref N004 ( 5, 5) [000151] nc--GO------ t151 = * IND ubyte N005 ( 1, 1) [000152] -c---------- t152 = CNS_INT ubyte 2 $42 /--* t151 ubyte +--* t152 ubyte N008 ( 12, 9) [000155] N---GO---U-- t155 = * TEST_NE int /--* t155 int N010 ( 16, 12) [000171] DA--GO------ * STORE_LCL_VAR int V15 tmp3 d:2 Addressing mode: Base N001 ( 3, 2) [000162] ------------ * LCL_VAR ref V14 tmp2 u:2 $21b + 17 Removing unused node: N002 ( 1, 1) [000227] -c---------- * CNS_INT long 17 field offset Fseq[_attributes] $14c New addressing mode node: N003 ( 4, 3) [000228] ------------ * LEA(b+17) byref Addressing mode: Base N007 ( 3, 2) [000034] ------------ * LCL_VAR ref V14 tmp2 u:2 $21b + 17 Removing unused node: N008 ( 1, 1) [000225] -c---------- * CNS_INT long 17 field offset Fseq[_attributes] $14c New addressing mode node: N009 ( 4, 3) [000226] ------------ * LEA(b+17) byref Lower succesfully detected an assignment of the form: *addrMode BinOp= source N001 ( 3, 2) [000162] ------------ t162 = LCL_VAR ref V14 tmp2 u:2 $21b /--* t162 ref N003 ( 4, 3) [000228] -c---------- t228 = * LEA(b+17) byref /--* t228 byref N004 ( 7, 6) [000163] n---GO------ t163 = * IND ubyte N005 ( 1, 1) [000164] -c---------- t164 = CNS_INT int 2 $42 /--* t163 ubyte +--* t164 int N006 ( 9, 8) [000165] ----GO------ t165 = * OR int N007 ( 3, 2) [000034] ------------ t34 = LCL_VAR ref V14 tmp2 u:2 $21b /--* t34 ref N009 ( 4, 3) [000226] ------------ t226 = * LEA(b+17) byref /--* t226 byref +--* t165 int [000231] -A--GO------ * STOREIND ubyte lowering GT_RETURN N002 ( 4, 3) [000040] ------------ * RETURN ref $255 ============Lower has completed modifying nodes. ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB13 ( cond ) i label target IBC LIR BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB13 ( cond ) i IBC LIR BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB13 ( cond ) i IBC LIR BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB13 ( cond ) i IBC LIR BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB13 ( cond ) i hascall gcsafe IBC LIR BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB13 ( cond ) i gcsafe IBC LIR BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB13 ( cond ) i gcsafe IBC LIR BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB13 ( cond ) i gcsafe IBC LIR BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB13 ( cond ) i gcsafe IBC LIR BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB13 ( cond ) i hascall gcsafe IBC LIR BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB13 ( cond ) i hascall gcsafe IBC LIR BB12 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target gcsafe IBC LIR BB13 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB15 ( cond ) i label target hascall gcsafe newobj nullcheck IBC LIR BB14 [0027] 1 BB13 0.09 [000..000) i internal gcsafe LIR BB15 [0028] 2 BB13,BB14 0.17 14831 [000..000) (return) i internal label target gcsafe newobj nullcheck IBC LIR ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..009) -> BB13 (cond), preds={} succs={BB02,BB13} N001 ( 1, 1) [000000] ------------ t0 = LCL_VAR ref V01 arg1 u:1 $81 N002 ( 1, 1) [000001] ------------ t1 = LCL_VAR ref V00 this u:1 $80 /--* t1 ref N004 ( 2, 2) [000174] -c---------- t174 = * LEA(b+32) byref /--* t174 byref N005 ( 4, 4) [000121] -c-XG------- t121 = * IND ref /--* t0 ref +--* t121 ref N006 ( 6, 6) [000004] N--XG--N-U-- * NE void N007 ( 8, 8) [000005] ---XG------- * JTRUE void ------------ BB02 [009..012) -> BB13 (cond), preds={BB01} succs={BB03,BB13} N001 ( 2, 2) [000041] ------------ t41 = LCL_VAR int V02 arg2 u:1 $c0 /--* t41 int N002 ( 3, 4) [000175] ------------ t175 = * CAST int <- ubyte <- int $284 N003 ( 1, 1) [000042] ------------ t42 = LCL_VAR ref V00 this u:1 $80 /--* t42 ref N005 ( 2, 2) [000177] -c---------- t177 = * LEA(b+56) byref /--* t177 byref N006 ( 5, 5) [000123] n---GO------ t123 = * IND ubyte /--* t175 int +--* t123 ubyte N007 ( 9, 10) [000046] N---GO-N-U-- * NE void N008 ( 11, 12) [000047] ----GO------ * JTRUE void ------------ BB03 [012..01B) -> BB13 (cond), preds={BB02} succs={BB04,BB13} N001 ( 2, 2) [000048] ------------ t48 = LCL_VAR int V03 arg3 u:1 $c1 /--* t48 int N002 ( 3, 4) [000178] ------------ t178 = * CAST int <- ubyte <- int $289 N003 ( 1, 1) [000049] ------------ t49 = LCL_VAR ref V00 this u:1 $80 /--* t49 ref N005 ( 2, 2) [000180] -c---------- t180 = * LEA(b+57) byref /--* t180 byref N006 ( 5, 5) [000125] n---GO------ t125 = * IND ubyte /--* t178 int +--* t125 ubyte N007 ( 9, 10) [000053] N---GO-N-U-- * NE void N008 ( 11, 12) [000054] ----GO------ * JTRUE void ------------ BB04 [01B..025) -> BB13 (cond), preds={BB03} succs={BB05,BB13} N001 ( 3, 2) [000055] ------------ t55 = LCL_VAR int V04 arg4 u:1 $100 /--* t55 int N002 ( 4, 4) [000181] ------------ t181 = * CAST int <- bool <- int $28e N003 ( 1, 1) [000056] ------------ t56 = LCL_VAR ref V00 this u:1 $80 /--* t56 ref N005 ( 2, 2) [000183] -c---------- t183 = * LEA(b+58) byref /--* t183 byref N006 ( 5, 5) [000127] n---GO------ t127 = * IND bool /--* t181 int +--* t127 bool N007 ( 10, 10) [000060] N---GO-N-U-- * NE void N008 ( 12, 12) [000061] ----GO------ * JTRUE void ------------ BB05 [025..034) -> BB13 (cond), preds={BB04} succs={BB06,BB13} N003 ( 1, 1) [000063] ------------ t63 = LCL_VAR ref V00 this u:1 $80 /--* t63 ref N005 ( 2, 2) [000185] -c---------- t185 = * LEA(b+40) byref /--* t185 byref N006 ( 4, 4) [000129] n---GO------ t129 = * IND ref /--* t129 ref [000233] ----GO------ t233 = * PUTARG_REG ref REG rdx N007 ( 3, 2) [000062] ------------ t62 = LCL_VAR ref V05 arg5 u:1 $82 /--* t62 ref [000234] ------------ t234 = * PUTARG_REG ref REG rcx N001 ( 1, 4) [000235] -c---------- t235 = CNS_INT(h) long 0xd1ffab1e ftn /--* t235 long N002 ( 3, 6) [000236] -c---------- t236 = * IND long REG NA /--* t233 ref arg1 in rdx +--* t234 ref arg0 in rcx +--* t236 long control expr N008 ( 21, 13) [000066] --CXGO------ t66 = * CALL r2r_ind bool Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 N010 ( 1, 1) [000069] -c---------- t69 = CNS_INT bool 0 $40 /--* t66 bool +--* t69 bool N011 ( 24, 17) [000070] J--XGO-N-U-- * NE void $294 N012 ( 26, 19) [000071] ---XGO------ * JTRUE void ------------ BB06 [034..03E) -> BB13 (cond), preds={BB05} succs={BB07,BB13} N001 ( 3, 2) [000072] ------------ t72 = LCL_VAR int V06 arg6 u:1 $101 /--* t72 int N002 ( 4, 4) [000188] ------------ t188 = * CAST int <- bool <- int $295 N003 ( 1, 1) [000073] ------------ t73 = LCL_VAR ref V00 this u:1 $80 /--* t73 ref N005 ( 2, 2) [000190] -c---------- t190 = * LEA(b+59) byref /--* t190 byref N006 ( 5, 5) [000132] n---GO------ t132 = * IND bool /--* t188 int +--* t132 bool N007 ( 10, 10) [000077] N---GO-N-U-- * NE void N008 ( 12, 12) [000078] ----GO------ * JTRUE void ------------ BB07 [03E..048) -> BB13 (cond), preds={BB06} succs={BB08,BB13} N001 ( 3, 2) [000079] ------------ t79 = LCL_VAR int V07 arg7 u:1 $102 /--* t79 int N002 ( 4, 4) [000191] ------------ t191 = * CAST int <- bool <- int $29a N003 ( 1, 1) [000080] ------------ t80 = LCL_VAR ref V00 this u:1 $80 /--* t80 ref N005 ( 2, 2) [000193] -c---------- t193 = * LEA(b+60) byref /--* t193 byref N006 ( 5, 5) [000134] n---GO------ t134 = * IND bool /--* t191 int +--* t134 bool N007 ( 10, 10) [000084] N---GO-N-U-- * NE void N008 ( 12, 12) [000085] ----GO------ * JTRUE void ------------ BB08 [048..052) -> BB13 (cond), preds={BB07} succs={BB09,BB13} N001 ( 3, 2) [000086] ------------ t86 = LCL_VAR int V08 arg8 u:1 $103 /--* t86 int N002 ( 4, 4) [000194] ------------ t194 = * CAST int <- bool <- int $29f N003 ( 1, 1) [000087] ------------ t87 = LCL_VAR ref V00 this u:1 $80 /--* t87 ref N005 ( 2, 2) [000196] -c---------- t196 = * LEA(b+61) byref /--* t196 byref N006 ( 5, 5) [000136] n---GO------ t136 = * IND bool /--* t194 int +--* t136 bool N007 ( 10, 10) [000091] N---GO-N-U-- * NE void N008 ( 12, 12) [000092] ----GO------ * JTRUE void ------------ BB09 [052..05C) -> BB13 (cond), preds={BB08} succs={BB10,BB13} N001 ( 3, 2) [000093] ------------ t93 = LCL_VAR int V09 arg9 u:1 $104 /--* t93 int N002 ( 4, 4) [000197] ------------ t197 = * CAST int <- bool <- int $2a4 N003 ( 1, 1) [000094] ------------ t94 = LCL_VAR ref V00 this u:1 $80 /--* t94 ref N005 ( 2, 2) [000199] -c---------- t199 = * LEA(b+62) byref /--* t199 byref N006 ( 5, 5) [000138] n---GO------ t138 = * IND bool /--* t197 int +--* t138 bool N007 ( 10, 10) [000098] N---GO-N-U-- * NE void N008 ( 12, 12) [000099] ----GO------ * JTRUE void ------------ BB10 [05C..06B) -> BB13 (cond), preds={BB09} succs={BB11,BB13} N003 ( 1, 1) [000101] ------------ t101 = LCL_VAR ref V00 this u:1 $80 /--* t101 ref N005 ( 2, 2) [000201] -c---------- t201 = * LEA(b+48) byref /--* t201 byref N006 ( 4, 4) [000140] n---GO------ t140 = * IND ref /--* t140 ref [000237] ----GO------ t237 = * PUTARG_REG ref REG rdx N007 ( 3, 2) [000100] ------------ t100 = LCL_VAR ref V10 arg10 u:1 $83 /--* t100 ref [000238] ------------ t238 = * PUTARG_REG ref REG rcx N001 ( 1, 4) [000239] -c---------- t239 = CNS_INT(h) long 0xd1ffab1e ftn /--* t239 long N002 ( 3, 6) [000240] -c---------- t240 = * IND long REG NA /--* t237 ref arg1 in rdx +--* t238 ref arg0 in rcx +--* t240 long control expr N008 ( 21, 13) [000104] --CXGO------ t104 = * CALL r2r_ind bool Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 N010 ( 1, 1) [000106] -c---------- t106 = CNS_INT bool 0 $40 /--* t104 bool +--* t106 bool N011 ( 24, 17) [000107] J--XGO-N-U-- * NE void $2aa N012 ( 26, 19) [000108] ---XGO------ * JTRUE void ------------ BB11 [06B..07A) -> BB13 (cond), preds={BB10} succs={BB12,BB13} N003 ( 1, 1) [000110] ------------ t110 = LCL_VAR ref V00 this u:1 $80 /--* t110 ref N005 ( 2, 2) [000205] -c---------- t205 = * LEA(b+24) byref /--* t205 byref N006 ( 4, 4) [000142] n---GO------ t142 = * IND ref /--* t142 ref [000241] ----GO------ t241 = * PUTARG_REG ref REG rdx N007 ( 3, 2) [000109] ------------ t109 = LCL_VAR ref V11 arg11 u:1 $84 /--* t109 ref [000242] ------------ t242 = * PUTARG_REG ref REG rcx N001 ( 1, 4) [000243] -c---------- t243 = CNS_INT(h) long 0xd1ffab1e ftn /--* t243 long N002 ( 3, 6) [000244] -c---------- t244 = * IND long REG NA /--* t241 ref arg1 in rdx +--* t242 ref arg0 in rcx +--* t244 long control expr N008 ( 21, 13) [000113] --CXGO------ t113 = * CALL r2r_ind bool Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 N010 ( 1, 1) [000116] -c---------- t116 = CNS_INT bool 0 $40 /--* t113 bool +--* t116 bool N011 ( 24, 17) [000117] J--XGO-N-U-- * NE void $2ac N012 ( 26, 19) [000118] ---XGO------ * JTRUE void ------------ BB12 [0AB..0AD) (return), preds={BB11} succs={} [000229] ------------ IL_OFFSET void IL offset: 0xab N001 ( 1, 1) [000119] ------------ t119 = LCL_VAR ref V00 this u:1 (last use) $80 /--* t119 ref N002 ( 2, 2) [000120] ------------ * RETURN ref $256 ------------ BB13 [000..0AB) -> BB15 (cond), preds={BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11} succs={BB14,BB15} [000230] ------------ IL_OFFSET void IL offset: 0x7a N001 ( 1, 1) [000006] ------------ t6 = LCL_VAR ref V00 this u:1 $80 /--* t6 ref N003 ( 2, 2) [000209] -c---------- t209 = * LEA(b+8) byref /--* t209 byref N004 ( 4, 4) [000007] n---GO------ t7 = * IND ref /--* t7 ref N006 ( 8, 7) [000022] DA--GO------ * STORE_LCL_VAR ref V13 tmp1 d:2 N001 ( 1, 4) [000245] -c---------- t245 = CNS_INT(h) long 0xd1ffab1e ftn /--* t245 long N002 ( 3, 6) [000246] -c---------- t246 = * IND long REG NA /--* t246 long control expr N001 ( 14, 5) [000028] --C--------- t28 = * CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW $21b /--* t28 ref N003 ( 18, 8) [000030] DA---------- * STORE_LCL_VAR ref V14 tmp2 d:2 N005 ( 2, 2) [000010] ------------ t10 = LCL_VAR int V03 arg3 u:1 (last use) $c1 /--* t10 int N006 ( 3, 4) [000211] ------------ t211 = * CAST int <- ubyte <- int $289 /--* t211 int [000247] ------------ * PUTARG_STK [+0x20] void N007 ( 3, 2) [000011] ------------ t11 = LCL_VAR int V04 arg4 u:1 (last use) $100 /--* t11 int N008 ( 4, 4) [000212] ------------ t212 = * CAST int <- bool <- int $28e /--* t212 int [000248] ------------ * PUTARG_STK [+0x28] void N009 ( 3, 2) [000012] ------------ t12 = LCL_VAR ref V05 arg5 u:1 (last use) $82 /--* t12 ref [000249] ------------ * PUTARG_STK [+0x30] void N010 ( 3, 2) [000013] ------------ t13 = LCL_VAR int V06 arg6 u:1 (last use) $101 /--* t13 int N011 ( 4, 4) [000213] ------------ t213 = * CAST int <- bool <- int $295 /--* t213 int [000250] ------------ * PUTARG_STK [+0x38] void N012 ( 3, 2) [000014] ------------ t14 = LCL_VAR int V07 arg7 u:1 (last use) $102 /--* t14 int N013 ( 4, 4) [000214] ------------ t214 = * CAST int <- bool <- int $29a /--* t214 int [000251] ------------ * PUTARG_STK [+0x40] void N014 ( 3, 2) [000015] ------------ t15 = LCL_VAR int V08 arg8 u:1 (last use) $103 /--* t15 int N015 ( 4, 4) [000215] ------------ t215 = * CAST int <- bool <- int $29f /--* t215 int [000252] ------------ * PUTARG_STK [+0x48] void N016 ( 3, 2) [000016] ------------ t16 = LCL_VAR int V09 arg9 u:1 (last use) $104 /--* t16 int N017 ( 4, 4) [000216] ------------ t216 = * CAST int <- bool <- int $2a4 /--* t216 int [000253] ------------ * PUTARG_STK [+0x50] void N018 ( 3, 2) [000017] ------------ t17 = LCL_VAR ref V10 arg10 u:1 (last use) $83 /--* t17 ref [000254] ------------ * PUTARG_STK [+0x58] void N019 ( 3, 2) [000018] ------------ t18 = LCL_VAR ref V11 arg11 u:1 (last use) $84 /--* t18 ref [000255] ------------ * PUTARG_STK [+0x60] void N020 ( 1, 1) [000019] ------------ t19 = LCL_VAR ref V00 this u:1 $80 /--* t19 ref N022 ( 2, 2) [000218] -c---------- t218 = * LEA(b+17) byref /--* t218 byref N023 ( 5, 5) [000145] nc--GO------ t145 = * IND ubyte N024 ( 1, 1) [000146] -c---------- t146 = CNS_INT ubyte 1 $41 /--* t145 ubyte +--* t146 ubyte N027 ( 12, 9) [000149] N---GO---U-- t149 = * TEST_NE int /--* t149 int [000256] ----GO------ * PUTARG_STK [+0x68] void N028 ( 2, 2) [000009] ------------ t9 = LCL_VAR int V02 arg2 u:1 (last use) $c0 /--* t9 int N029 ( 3, 4) [000210] ------------ t210 = * CAST int <- ubyte <- int $284 /--* t210 int [000257] ------------ t257 = * PUTARG_REG int REG r9 N030 ( 3, 2) [000031] ------------ t31 = LCL_VAR ref V14 tmp2 u:2 $21b /--* t31 ref [000258] ------------ t258 = * PUTARG_REG ref REG rcx N031 ( 3, 2) [000023] ------------ t23 = LCL_VAR ref V13 tmp1 u:2 (last use) /--* t23 ref [000259] ------------ t259 = * PUTARG_REG ref REG rdx N032 ( 1, 1) [000008] ------------ t8 = LCL_VAR ref V01 arg1 u:1 (last use) $81 /--* t8 ref [000260] ------------ t260 = * PUTARG_REG ref REG r8 N001 ( 1, 4) [000261] -c---------- t261 = CNS_INT(h) long 0xd1ffab1e ftn /--* t261 long N002 ( 3, 6) [000262] -c---------- t262 = * IND long REG NA /--* t257 int arg3 in r9 +--* t258 ref this in rcx +--* t259 ref arg1 in rdx +--* t260 ref arg2 in r8 +--* t262 long control expr N033 ( 98, 58) [000032] --CXGO------ * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor $VN.Void N001 ( 1, 1) [000035] ------------ t35 = LCL_VAR ref V00 this u:1 (last use) $80 /--* t35 ref N003 ( 2, 2) [000224] -c---------- t224 = * LEA(b+17) byref /--* t224 byref N004 ( 5, 5) [000151] nc--GO------ t151 = * IND ubyte N005 ( 1, 1) [000152] -c---------- t152 = CNS_INT ubyte 2 $42 /--* t151 ubyte +--* t152 ubyte N008 ( 12, 9) [000155] N---GO---U-- t155 = * TEST_NE int /--* t155 int N010 ( 16, 12) [000171] DA--GO------ * STORE_LCL_VAR int V15 tmp3 d:2 N001 ( 3, 2) [000158] ------------ t158 = LCL_VAR int V15 tmp3 u:2 (last use) N002 ( 1, 1) [000159] -c---------- t159 = CNS_INT int 0 $40 /--* t158 int +--* t159 int N003 ( 5, 4) [000160] J------N---- * EQ void N004 ( 7, 6) [000161] ------------ * JTRUE void ------------ BB14 [000..000), preds={BB13} succs={BB15} N001 ( 3, 2) [000162] -c---------- t162 = LCL_VAR ref V14 tmp2 u:2 $21b /--* t162 ref N003 ( 4, 3) [000228] -c---------- t228 = * LEA(b+17) byref /--* t228 byref N004 ( 7, 6) [000163] nc--GO------ t163 = * IND ubyte N005 ( 1, 1) [000164] -c---------- t164 = CNS_INT int 2 $42 /--* t163 ubyte +--* t164 int N006 ( 9, 8) [000165] -c--GO------ t165 = * OR int N007 ( 3, 2) [000034] ------------ t34 = LCL_VAR ref V14 tmp2 u:2 $21b /--* t34 ref N009 ( 4, 3) [000226] -c---------- t226 = * LEA(b+17) byref /--* t226 byref +--* t165 int [000231] -A--GO------ * STOREIND ubyte ------------ BB15 [000..000) (return), preds={BB13,BB14} succs={} [000232] ------------ IL_OFFSET void IL offset: 0xaa N001 ( 3, 2) [000033] ------------ t33 = LCL_VAR ref V14 tmp2 u:2 (last use) $21b /--* t33 ref N002 ( 4, 3) [000040] ------------ * RETURN ref $255 ------------------------------------------------------------------------------------------------------------------- *** lvaComputeRefCounts *** *** lvaComputeRefCounts -- explicit counts *** New refCnts for V01: refCnt = 1, refCntWtd = 1 New refCnts for V00: refCnt = 1, refCntWtd = 1 New refCnts for V02: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 2, refCntWtd = 1.83 New refCnts for V03: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 3, refCntWtd = 2.66 New refCnts for V04: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 4, refCntWtd = 3.49 New refCnts for V00: refCnt = 5, refCntWtd = 4.32 New refCnts for V05: refCnt = 1, refCntWtd = 0.83 New refCnts for V06: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 6, refCntWtd = 5.15 New refCnts for V07: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 7, refCntWtd = 5.98 New refCnts for V08: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 8, refCntWtd = 6.81 New refCnts for V09: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 9, refCntWtd = 7.64 New refCnts for V00: refCnt = 10, refCntWtd = 8.47 New refCnts for V10: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 11, refCntWtd = 9.30 New refCnts for V11: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 12, refCntWtd = 10.13 New refCnts for V00: refCnt = 13, refCntWtd = 10.30 New refCnts for V13: refCnt = 1, refCntWtd = 0.34 New refCnts for V14: refCnt = 1, refCntWtd = 0.34 New refCnts for V03: refCnt = 2, refCntWtd = 1 New refCnts for V04: refCnt = 2, refCntWtd = 1 New refCnts for V05: refCnt = 2, refCntWtd = 1 New refCnts for V06: refCnt = 2, refCntWtd = 1 New refCnts for V07: refCnt = 2, refCntWtd = 1 New refCnts for V08: refCnt = 2, refCntWtd = 1 New refCnts for V09: refCnt = 2, refCntWtd = 1 New refCnts for V10: refCnt = 2, refCntWtd = 1 New refCnts for V11: refCnt = 2, refCntWtd = 1 New refCnts for V00: refCnt = 14, refCntWtd = 10.47 New refCnts for V02: refCnt = 2, refCntWtd = 1 New refCnts for V14: refCnt = 2, refCntWtd = 0.68 New refCnts for V13: refCnt = 2, refCntWtd = 0.68 New refCnts for V01: refCnt = 2, refCntWtd = 1.17 New refCnts for V00: refCnt = 15, refCntWtd = 10.64 New refCnts for V15: refCnt = 1, refCntWtd = 0.34 New refCnts for V15: refCnt = 2, refCntWtd = 0.68 New refCnts for V14: refCnt = 3, refCntWtd = 0.86 New refCnts for V14: refCnt = 4, refCntWtd = 1.04 New refCnts for V14: refCnt = 5, refCntWtd = 1.38 *** lvaComputeRefCounts -- implicit counts *** New refCnts for V00: refCnt = 16, refCntWtd = 11.64 New refCnts for V00: refCnt = 17, refCntWtd = 12.64 New refCnts for V01: refCnt = 3, refCntWtd = 2.17 New refCnts for V01: refCnt = 4, refCntWtd = 3.17 New refCnts for V02: refCnt = 3, refCntWtd = 2 New refCnts for V02: refCnt = 4, refCntWtd = 3 New refCnts for V03: refCnt = 3, refCntWtd = 2 New refCnts for V03: refCnt = 4, refCntWtd = 3 *************** In fgLocalVarLiveness() ; Initial local variable assignments ; ; V00 this ref this class-hnd ; V01 arg1 ref class-hnd ; V02 arg2 ubyte ; V03 arg3 ubyte ; V04 arg4 bool ; V05 arg5 ref class-hnd ; V06 arg6 bool ; V07 arg7 bool ; V08 arg8 bool ; V09 arg9 bool ; V10 arg10 ref class-hnd ; V11 arg11 ref class-hnd ; V12 OutArgs lclBlk <112> "OutgoingArgSpace" ; V13 tmp1 ref class-hnd "impAppendStmt" ; V14 tmp2 ref class-hnd exact "NewObj constructor temp" ; V15 tmp3 bool "Inlining Arg" In fgLocalVarLivenessInit Tracked variable (15 out of 16) table: V00 this [ ref]: refCnt = 17, refCntWtd = 12.64 V01 arg1 [ ref]: refCnt = 4, refCntWtd = 3.17 V02 arg2 [ ubyte]: refCnt = 4, refCntWtd = 3 V03 arg3 [ ubyte]: refCnt = 4, refCntWtd = 3 V14 tmp2 [ ref]: refCnt = 5, refCntWtd = 1.38 V05 arg5 [ ref]: refCnt = 2, refCntWtd = 1 V10 arg10 [ ref]: refCnt = 2, refCntWtd = 1 V11 arg11 [ ref]: refCnt = 2, refCntWtd = 1 V04 arg4 [ bool]: refCnt = 2, refCntWtd = 1 V06 arg6 [ bool]: refCnt = 2, refCntWtd = 1 V07 arg7 [ bool]: refCnt = 2, refCntWtd = 1 V08 arg8 [ bool]: refCnt = 2, refCntWtd = 1 V09 arg9 [ bool]: refCnt = 2, refCntWtd = 1 V13 tmp1 [ ref]: refCnt = 2, refCntWtd = 0.68 V15 tmp3 [ bool]: refCnt = 2, refCntWtd = 0.68 *************** In fgPerBlockLocalVarLiveness() BB01 USE(2)={V00 V01} + ByrefExposed + GcHeap DEF(0)={ } BB02 USE(2)={V00 V02} + ByrefExposed + GcHeap DEF(0)={ } BB03 USE(2)={V00 V03} + ByrefExposed + GcHeap DEF(0)={ } BB04 USE(2)={V00 V04} + ByrefExposed + GcHeap DEF(0)={ } BB05 USE(2)={V00 V05} + ByrefExposed + GcHeap DEF(0)={ } + ByrefExposed* + GcHeap* BB06 USE(2)={V00 V06} + ByrefExposed + GcHeap DEF(0)={ } BB07 USE(2)={V00 V07} + ByrefExposed + GcHeap DEF(0)={ } BB08 USE(2)={V00 V08} + ByrefExposed + GcHeap DEF(0)={ } BB09 USE(2)={V00 V09} + ByrefExposed + GcHeap DEF(0)={ } BB10 USE(2)={V00 V10} + ByrefExposed + GcHeap DEF(0)={ } + ByrefExposed* + GcHeap* BB11 USE(2)={V00 V11} + ByrefExposed + GcHeap DEF(0)={ } + ByrefExposed* + GcHeap* BB12 USE(1)={V00} DEF(0)={ } BB13 USE(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09 } + ByrefExposed + GcHeap DEF(3)={ V14 V13 V15} + ByrefExposed* + GcHeap* BB14 USE(1)={V14} + ByrefExposed + GcHeap DEF(0)={ } BB15 USE(1)={V14} DEF(0)={ } ** Memory liveness computed, GcHeap states and ByrefExposed states match *************** In fgInterBlockLocalVarLiveness() BB liveness after fgLiveVarAnalysis(): BB01 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB02 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB03 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB04 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB05 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB06 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB07 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB08 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB09 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB10 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB11 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap BB12 IN (1)={V00} OUT(0)={ } BB13 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(1)={ V14 } + ByrefExposed + GcHeap BB14 IN (1)={V14} + ByrefExposed + GcHeap OUT(1)={V14} BB15 IN (1)={V14} OUT(0)={ } *************** In fgUpdateFlowGraph() Before updating the flow graph: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB13 ( cond ) i label target IBC LIR BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB13 ( cond ) i IBC LIR BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB13 ( cond ) i IBC LIR BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB13 ( cond ) i IBC LIR BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB13 ( cond ) i hascall gcsafe IBC LIR BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB13 ( cond ) i gcsafe IBC LIR BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB13 ( cond ) i gcsafe IBC LIR BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB13 ( cond ) i gcsafe IBC LIR BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB13 ( cond ) i gcsafe IBC LIR BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB13 ( cond ) i hascall gcsafe IBC LIR BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB13 ( cond ) i hascall gcsafe IBC LIR BB12 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target gcsafe IBC LIR BB13 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB15 ( cond ) i label target hascall gcsafe newobj nullcheck IBC LIR BB14 [0027] 1 BB13 0.09 [000..000) i internal gcsafe LIR BB15 [0028] 2 BB13,BB14 0.17 14831 [000..000) (return) i internal label target gcsafe newobj nullcheck IBC LIR ----------------------------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *** lvaComputeRefCounts *** *** lvaComputeRefCounts -- explicit counts *** New refCnts for V01: refCnt = 1, refCntWtd = 1 New refCnts for V00: refCnt = 1, refCntWtd = 1 New refCnts for V02: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 2, refCntWtd = 1.83 New refCnts for V03: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 3, refCntWtd = 2.66 New refCnts for V04: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 4, refCntWtd = 3.49 New refCnts for V00: refCnt = 5, refCntWtd = 4.32 New refCnts for V05: refCnt = 1, refCntWtd = 0.83 New refCnts for V06: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 6, refCntWtd = 5.15 New refCnts for V07: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 7, refCntWtd = 5.98 New refCnts for V08: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 8, refCntWtd = 6.81 New refCnts for V09: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 9, refCntWtd = 7.64 New refCnts for V00: refCnt = 10, refCntWtd = 8.47 New refCnts for V10: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 11, refCntWtd = 9.30 New refCnts for V11: refCnt = 1, refCntWtd = 0.83 New refCnts for V00: refCnt = 12, refCntWtd = 10.13 New refCnts for V00: refCnt = 13, refCntWtd = 10.30 New refCnts for V13: refCnt = 1, refCntWtd = 0.34 New refCnts for V14: refCnt = 1, refCntWtd = 0.34 New refCnts for V03: refCnt = 2, refCntWtd = 1 New refCnts for V04: refCnt = 2, refCntWtd = 1 New refCnts for V05: refCnt = 2, refCntWtd = 1 New refCnts for V06: refCnt = 2, refCntWtd = 1 New refCnts for V07: refCnt = 2, refCntWtd = 1 New refCnts for V08: refCnt = 2, refCntWtd = 1 New refCnts for V09: refCnt = 2, refCntWtd = 1 New refCnts for V10: refCnt = 2, refCntWtd = 1 New refCnts for V11: refCnt = 2, refCntWtd = 1 New refCnts for V00: refCnt = 14, refCntWtd = 10.47 New refCnts for V02: refCnt = 2, refCntWtd = 1 New refCnts for V14: refCnt = 2, refCntWtd = 0.68 New refCnts for V13: refCnt = 2, refCntWtd = 0.68 New refCnts for V01: refCnt = 2, refCntWtd = 1.17 New refCnts for V00: refCnt = 15, refCntWtd = 10.64 New refCnts for V15: refCnt = 1, refCntWtd = 0.34 New refCnts for V15: refCnt = 2, refCntWtd = 0.68 New refCnts for V14: refCnt = 3, refCntWtd = 0.86 New refCnts for V14: refCnt = 4, refCntWtd = 1.04 New refCnts for V14: refCnt = 5, refCntWtd = 1.38 *** lvaComputeRefCounts -- implicit counts *** New refCnts for V00: refCnt = 16, refCntWtd = 11.64 New refCnts for V00: refCnt = 17, refCntWtd = 12.64 New refCnts for V01: refCnt = 3, refCntWtd = 2.17 New refCnts for V01: refCnt = 4, refCntWtd = 3.17 New refCnts for V02: refCnt = 3, refCntWtd = 2 New refCnts for V02: refCnt = 4, refCntWtd = 3 New refCnts for V03: refCnt = 3, refCntWtd = 2 New refCnts for V03: refCnt = 4, refCntWtd = 3 *************** Finishing PHASE Lowering nodeinfo Trees after Lowering nodeinfo ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB13 ( cond ) i label target IBC LIR BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB13 ( cond ) i IBC LIR BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB13 ( cond ) i IBC LIR BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB13 ( cond ) i IBC LIR BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB13 ( cond ) i hascall gcsafe IBC LIR BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB13 ( cond ) i gcsafe IBC LIR BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB13 ( cond ) i gcsafe IBC LIR BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB13 ( cond ) i gcsafe IBC LIR BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB13 ( cond ) i gcsafe IBC LIR BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB13 ( cond ) i hascall gcsafe IBC LIR BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB13 ( cond ) i hascall gcsafe IBC LIR BB12 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target gcsafe IBC LIR BB13 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB15 ( cond ) i label target hascall gcsafe newobj nullcheck IBC LIR BB14 [0027] 1 BB13 0.09 [000..000) i internal gcsafe LIR BB15 [0028] 2 BB13,BB14 0.17 14831 [000..000) (return) i internal label target gcsafe newobj nullcheck IBC LIR ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..009) -> BB13 (cond), preds={} succs={BB02,BB13} N001 ( 1, 1) [000000] ------------ t0 = LCL_VAR ref V01 arg1 u:1 $81 N002 ( 1, 1) [000001] ------------ t1 = LCL_VAR ref V00 this u:1 $80 /--* t1 ref N004 ( 2, 2) [000174] -c---------- t174 = * LEA(b+32) byref /--* t174 byref N005 ( 4, 4) [000121] -c-XG------- t121 = * IND ref /--* t0 ref +--* t121 ref N006 ( 6, 6) [000004] N--XG--N-U-- * NE void N007 ( 8, 8) [000005] ---XG------- * JTRUE void ------------ BB02 [009..012) -> BB13 (cond), preds={BB01} succs={BB03,BB13} N001 ( 2, 2) [000041] ------------ t41 = LCL_VAR int V02 arg2 u:1 $c0 /--* t41 int N002 ( 3, 4) [000175] ------------ t175 = * CAST int <- ubyte <- int $284 N003 ( 1, 1) [000042] ------------ t42 = LCL_VAR ref V00 this u:1 $80 /--* t42 ref N005 ( 2, 2) [000177] -c---------- t177 = * LEA(b+56) byref /--* t177 byref N006 ( 5, 5) [000123] n---GO------ t123 = * IND ubyte /--* t175 int +--* t123 ubyte N007 ( 9, 10) [000046] N---GO-N-U-- * NE void N008 ( 11, 12) [000047] ----GO------ * JTRUE void ------------ BB03 [012..01B) -> BB13 (cond), preds={BB02} succs={BB04,BB13} N001 ( 2, 2) [000048] ------------ t48 = LCL_VAR int V03 arg3 u:1 $c1 /--* t48 int N002 ( 3, 4) [000178] ------------ t178 = * CAST int <- ubyte <- int $289 N003 ( 1, 1) [000049] ------------ t49 = LCL_VAR ref V00 this u:1 $80 /--* t49 ref N005 ( 2, 2) [000180] -c---------- t180 = * LEA(b+57) byref /--* t180 byref N006 ( 5, 5) [000125] n---GO------ t125 = * IND ubyte /--* t178 int +--* t125 ubyte N007 ( 9, 10) [000053] N---GO-N-U-- * NE void N008 ( 11, 12) [000054] ----GO------ * JTRUE void ------------ BB04 [01B..025) -> BB13 (cond), preds={BB03} succs={BB05,BB13} N001 ( 3, 2) [000055] ------------ t55 = LCL_VAR int V04 arg4 u:1 $100 /--* t55 int N002 ( 4, 4) [000181] ------------ t181 = * CAST int <- bool <- int $28e N003 ( 1, 1) [000056] ------------ t56 = LCL_VAR ref V00 this u:1 $80 /--* t56 ref N005 ( 2, 2) [000183] -c---------- t183 = * LEA(b+58) byref /--* t183 byref N006 ( 5, 5) [000127] n---GO------ t127 = * IND bool /--* t181 int +--* t127 bool N007 ( 10, 10) [000060] N---GO-N-U-- * NE void N008 ( 12, 12) [000061] ----GO------ * JTRUE void ------------ BB05 [025..034) -> BB13 (cond), preds={BB04} succs={BB06,BB13} N003 ( 1, 1) [000063] ------------ t63 = LCL_VAR ref V00 this u:1 $80 /--* t63 ref N005 ( 2, 2) [000185] -c---------- t185 = * LEA(b+40) byref /--* t185 byref N006 ( 4, 4) [000129] n---GO------ t129 = * IND ref /--* t129 ref [000233] ----GO------ t233 = * PUTARG_REG ref REG rdx N007 ( 3, 2) [000062] ------------ t62 = LCL_VAR ref V05 arg5 u:1 $82 /--* t62 ref [000234] ------------ t234 = * PUTARG_REG ref REG rcx N001 ( 1, 4) [000235] -c---------- t235 = CNS_INT(h) long 0xd1ffab1e ftn /--* t235 long N002 ( 3, 6) [000236] -c---------- t236 = * IND long REG NA /--* t233 ref arg1 in rdx +--* t234 ref arg0 in rcx +--* t236 long control expr N008 ( 21, 13) [000066] --CXGO------ t66 = * CALL r2r_ind bool Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 N010 ( 1, 1) [000069] -c---------- t69 = CNS_INT bool 0 $40 /--* t66 bool +--* t69 bool N011 ( 24, 17) [000070] J--XGO-N-U-- * NE void $294 N012 ( 26, 19) [000071] ---XGO------ * JTRUE void ------------ BB06 [034..03E) -> BB13 (cond), preds={BB05} succs={BB07,BB13} N001 ( 3, 2) [000072] ------------ t72 = LCL_VAR int V06 arg6 u:1 $101 /--* t72 int N002 ( 4, 4) [000188] ------------ t188 = * CAST int <- bool <- int $295 N003 ( 1, 1) [000073] ------------ t73 = LCL_VAR ref V00 this u:1 $80 /--* t73 ref N005 ( 2, 2) [000190] -c---------- t190 = * LEA(b+59) byref /--* t190 byref N006 ( 5, 5) [000132] n---GO------ t132 = * IND bool /--* t188 int +--* t132 bool N007 ( 10, 10) [000077] N---GO-N-U-- * NE void N008 ( 12, 12) [000078] ----GO------ * JTRUE void ------------ BB07 [03E..048) -> BB13 (cond), preds={BB06} succs={BB08,BB13} N001 ( 3, 2) [000079] ------------ t79 = LCL_VAR int V07 arg7 u:1 $102 /--* t79 int N002 ( 4, 4) [000191] ------------ t191 = * CAST int <- bool <- int $29a N003 ( 1, 1) [000080] ------------ t80 = LCL_VAR ref V00 this u:1 $80 /--* t80 ref N005 ( 2, 2) [000193] -c---------- t193 = * LEA(b+60) byref /--* t193 byref N006 ( 5, 5) [000134] n---GO------ t134 = * IND bool /--* t191 int +--* t134 bool N007 ( 10, 10) [000084] N---GO-N-U-- * NE void N008 ( 12, 12) [000085] ----GO------ * JTRUE void ------------ BB08 [048..052) -> BB13 (cond), preds={BB07} succs={BB09,BB13} N001 ( 3, 2) [000086] ------------ t86 = LCL_VAR int V08 arg8 u:1 $103 /--* t86 int N002 ( 4, 4) [000194] ------------ t194 = * CAST int <- bool <- int $29f N003 ( 1, 1) [000087] ------------ t87 = LCL_VAR ref V00 this u:1 $80 /--* t87 ref N005 ( 2, 2) [000196] -c---------- t196 = * LEA(b+61) byref /--* t196 byref N006 ( 5, 5) [000136] n---GO------ t136 = * IND bool /--* t194 int +--* t136 bool N007 ( 10, 10) [000091] N---GO-N-U-- * NE void N008 ( 12, 12) [000092] ----GO------ * JTRUE void ------------ BB09 [052..05C) -> BB13 (cond), preds={BB08} succs={BB10,BB13} N001 ( 3, 2) [000093] ------------ t93 = LCL_VAR int V09 arg9 u:1 $104 /--* t93 int N002 ( 4, 4) [000197] ------------ t197 = * CAST int <- bool <- int $2a4 N003 ( 1, 1) [000094] ------------ t94 = LCL_VAR ref V00 this u:1 $80 /--* t94 ref N005 ( 2, 2) [000199] -c---------- t199 = * LEA(b+62) byref /--* t199 byref N006 ( 5, 5) [000138] n---GO------ t138 = * IND bool /--* t197 int +--* t138 bool N007 ( 10, 10) [000098] N---GO-N-U-- * NE void N008 ( 12, 12) [000099] ----GO------ * JTRUE void ------------ BB10 [05C..06B) -> BB13 (cond), preds={BB09} succs={BB11,BB13} N003 ( 1, 1) [000101] ------------ t101 = LCL_VAR ref V00 this u:1 $80 /--* t101 ref N005 ( 2, 2) [000201] -c---------- t201 = * LEA(b+48) byref /--* t201 byref N006 ( 4, 4) [000140] n---GO------ t140 = * IND ref /--* t140 ref [000237] ----GO------ t237 = * PUTARG_REG ref REG rdx N007 ( 3, 2) [000100] ------------ t100 = LCL_VAR ref V10 arg10 u:1 $83 /--* t100 ref [000238] ------------ t238 = * PUTARG_REG ref REG rcx N001 ( 1, 4) [000239] -c---------- t239 = CNS_INT(h) long 0xd1ffab1e ftn /--* t239 long N002 ( 3, 6) [000240] -c---------- t240 = * IND long REG NA /--* t237 ref arg1 in rdx +--* t238 ref arg0 in rcx +--* t240 long control expr N008 ( 21, 13) [000104] --CXGO------ t104 = * CALL r2r_ind bool Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 N010 ( 1, 1) [000106] -c---------- t106 = CNS_INT bool 0 $40 /--* t104 bool +--* t106 bool N011 ( 24, 17) [000107] J--XGO-N-U-- * NE void $2aa N012 ( 26, 19) [000108] ---XGO------ * JTRUE void ------------ BB11 [06B..07A) -> BB13 (cond), preds={BB10} succs={BB12,BB13} N003 ( 1, 1) [000110] ------------ t110 = LCL_VAR ref V00 this u:1 $80 /--* t110 ref N005 ( 2, 2) [000205] -c---------- t205 = * LEA(b+24) byref /--* t205 byref N006 ( 4, 4) [000142] n---GO------ t142 = * IND ref /--* t142 ref [000241] ----GO------ t241 = * PUTARG_REG ref REG rdx N007 ( 3, 2) [000109] ------------ t109 = LCL_VAR ref V11 arg11 u:1 $84 /--* t109 ref [000242] ------------ t242 = * PUTARG_REG ref REG rcx N001 ( 1, 4) [000243] -c---------- t243 = CNS_INT(h) long 0xd1ffab1e ftn /--* t243 long N002 ( 3, 6) [000244] -c---------- t244 = * IND long REG NA /--* t241 ref arg1 in rdx +--* t242 ref arg0 in rcx +--* t244 long control expr N008 ( 21, 13) [000113] --CXGO------ t113 = * CALL r2r_ind bool Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 N010 ( 1, 1) [000116] -c---------- t116 = CNS_INT bool 0 $40 /--* t113 bool +--* t116 bool N011 ( 24, 17) [000117] J--XGO-N-U-- * NE void $2ac N012 ( 26, 19) [000118] ---XGO------ * JTRUE void ------------ BB12 [0AB..0AD) (return), preds={BB11} succs={} [000229] ------------ IL_OFFSET void IL offset: 0xab N001 ( 1, 1) [000119] ------------ t119 = LCL_VAR ref V00 this u:1 (last use) $80 /--* t119 ref N002 ( 2, 2) [000120] ------------ * RETURN ref $256 ------------ BB13 [000..0AB) -> BB15 (cond), preds={BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11} succs={BB14,BB15} [000230] ------------ IL_OFFSET void IL offset: 0x7a N001 ( 1, 1) [000006] ------------ t6 = LCL_VAR ref V00 this u:1 $80 /--* t6 ref N003 ( 2, 2) [000209] -c---------- t209 = * LEA(b+8) byref /--* t209 byref N004 ( 4, 4) [000007] n---GO------ t7 = * IND ref /--* t7 ref N006 ( 8, 7) [000022] DA--GO------ * STORE_LCL_VAR ref V13 tmp1 d:2 N001 ( 1, 4) [000245] -c---------- t245 = CNS_INT(h) long 0xd1ffab1e ftn /--* t245 long N002 ( 3, 6) [000246] -c---------- t246 = * IND long REG NA /--* t246 long control expr N001 ( 14, 5) [000028] --C--------- t28 = * CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW $21b /--* t28 ref N003 ( 18, 8) [000030] DA---------- * STORE_LCL_VAR ref V14 tmp2 d:2 N005 ( 2, 2) [000010] ------------ t10 = LCL_VAR int V03 arg3 u:1 (last use) $c1 /--* t10 int N006 ( 3, 4) [000211] ------------ t211 = * CAST int <- ubyte <- int $289 /--* t211 int [000247] ------------ * PUTARG_STK [+0x20] void N007 ( 3, 2) [000011] ------------ t11 = LCL_VAR int V04 arg4 u:1 (last use) $100 /--* t11 int N008 ( 4, 4) [000212] ------------ t212 = * CAST int <- bool <- int $28e /--* t212 int [000248] ------------ * PUTARG_STK [+0x28] void N009 ( 3, 2) [000012] ------------ t12 = LCL_VAR ref V05 arg5 u:1 (last use) $82 /--* t12 ref [000249] ------------ * PUTARG_STK [+0x30] void N010 ( 3, 2) [000013] ------------ t13 = LCL_VAR int V06 arg6 u:1 (last use) $101 /--* t13 int N011 ( 4, 4) [000213] ------------ t213 = * CAST int <- bool <- int $295 /--* t213 int [000250] ------------ * PUTARG_STK [+0x38] void N012 ( 3, 2) [000014] ------------ t14 = LCL_VAR int V07 arg7 u:1 (last use) $102 /--* t14 int N013 ( 4, 4) [000214] ------------ t214 = * CAST int <- bool <- int $29a /--* t214 int [000251] ------------ * PUTARG_STK [+0x40] void N014 ( 3, 2) [000015] ------------ t15 = LCL_VAR int V08 arg8 u:1 (last use) $103 /--* t15 int N015 ( 4, 4) [000215] ------------ t215 = * CAST int <- bool <- int $29f /--* t215 int [000252] ------------ * PUTARG_STK [+0x48] void N016 ( 3, 2) [000016] ------------ t16 = LCL_VAR int V09 arg9 u:1 (last use) $104 /--* t16 int N017 ( 4, 4) [000216] ------------ t216 = * CAST int <- bool <- int $2a4 /--* t216 int [000253] ------------ * PUTARG_STK [+0x50] void N018 ( 3, 2) [000017] ------------ t17 = LCL_VAR ref V10 arg10 u:1 (last use) $83 /--* t17 ref [000254] ------------ * PUTARG_STK [+0x58] void N019 ( 3, 2) [000018] ------------ t18 = LCL_VAR ref V11 arg11 u:1 (last use) $84 /--* t18 ref [000255] ------------ * PUTARG_STK [+0x60] void N020 ( 1, 1) [000019] ------------ t19 = LCL_VAR ref V00 this u:1 $80 /--* t19 ref N022 ( 2, 2) [000218] -c---------- t218 = * LEA(b+17) byref /--* t218 byref N023 ( 5, 5) [000145] nc--GO------ t145 = * IND ubyte N024 ( 1, 1) [000146] -c---------- t146 = CNS_INT ubyte 1 $41 /--* t145 ubyte +--* t146 ubyte N027 ( 12, 9) [000149] N---GO---U-- t149 = * TEST_NE int /--* t149 int [000256] ----GO------ * PUTARG_STK [+0x68] void N028 ( 2, 2) [000009] ------------ t9 = LCL_VAR int V02 arg2 u:1 (last use) $c0 /--* t9 int N029 ( 3, 4) [000210] ------------ t210 = * CAST int <- ubyte <- int $284 /--* t210 int [000257] ------------ t257 = * PUTARG_REG int REG r9 N030 ( 3, 2) [000031] ------------ t31 = LCL_VAR ref V14 tmp2 u:2 $21b /--* t31 ref [000258] ------------ t258 = * PUTARG_REG ref REG rcx N031 ( 3, 2) [000023] ------------ t23 = LCL_VAR ref V13 tmp1 u:2 (last use) /--* t23 ref [000259] ------------ t259 = * PUTARG_REG ref REG rdx N032 ( 1, 1) [000008] ------------ t8 = LCL_VAR ref V01 arg1 u:1 (last use) $81 /--* t8 ref [000260] ------------ t260 = * PUTARG_REG ref REG r8 N001 ( 1, 4) [000261] -c---------- t261 = CNS_INT(h) long 0xd1ffab1e ftn /--* t261 long N002 ( 3, 6) [000262] -c---------- t262 = * IND long REG NA /--* t257 int arg3 in r9 +--* t258 ref this in rcx +--* t259 ref arg1 in rdx +--* t260 ref arg2 in r8 +--* t262 long control expr N033 ( 98, 58) [000032] --CXGO------ * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor $VN.Void N001 ( 1, 1) [000035] ------------ t35 = LCL_VAR ref V00 this u:1 (last use) $80 /--* t35 ref N003 ( 2, 2) [000224] -c---------- t224 = * LEA(b+17) byref /--* t224 byref N004 ( 5, 5) [000151] nc--GO------ t151 = * IND ubyte N005 ( 1, 1) [000152] -c---------- t152 = CNS_INT ubyte 2 $42 /--* t151 ubyte +--* t152 ubyte N008 ( 12, 9) [000155] N---GO---U-- t155 = * TEST_NE int /--* t155 int N010 ( 16, 12) [000171] DA--GO------ * STORE_LCL_VAR int V15 tmp3 d:2 N001 ( 3, 2) [000158] ------------ t158 = LCL_VAR int V15 tmp3 u:2 (last use) N002 ( 1, 1) [000159] -c---------- t159 = CNS_INT int 0 $40 /--* t158 int +--* t159 int N003 ( 5, 4) [000160] J------N---- * EQ void N004 ( 7, 6) [000161] ------------ * JTRUE void ------------ BB14 [000..000), preds={BB13} succs={BB15} N001 ( 3, 2) [000162] -c---------- t162 = LCL_VAR ref V14 tmp2 u:2 $21b /--* t162 ref N003 ( 4, 3) [000228] -c---------- t228 = * LEA(b+17) byref /--* t228 byref N004 ( 7, 6) [000163] nc--GO------ t163 = * IND ubyte N005 ( 1, 1) [000164] -c---------- t164 = CNS_INT int 2 $42 /--* t163 ubyte +--* t164 int N006 ( 9, 8) [000165] -c--GO------ t165 = * OR int N007 ( 3, 2) [000034] ------------ t34 = LCL_VAR ref V14 tmp2 u:2 $21b /--* t34 ref N009 ( 4, 3) [000226] -c---------- t226 = * LEA(b+17) byref /--* t226 byref +--* t165 int [000231] -A--GO------ * STOREIND ubyte ------------ BB15 [000..000) (return), preds={BB13,BB14} succs={} [000232] ------------ IL_OFFSET void IL offset: 0xaa N001 ( 3, 2) [000033] ------------ t33 = LCL_VAR ref V14 tmp2 u:2 (last use) $21b /--* t33 ref N002 ( 4, 3) [000040] ------------ * RETURN ref $255 ------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist Trees before Calculate stack level slots ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB13 ( cond ) i label target IBC LIR BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB13 ( cond ) i IBC LIR BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB13 ( cond ) i IBC LIR BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB13 ( cond ) i IBC LIR BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB13 ( cond ) i hascall gcsafe IBC LIR BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB13 ( cond ) i gcsafe IBC LIR BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB13 ( cond ) i gcsafe IBC LIR BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB13 ( cond ) i gcsafe IBC LIR BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB13 ( cond ) i gcsafe IBC LIR BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB13 ( cond ) i hascall gcsafe IBC LIR BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB13 ( cond ) i hascall gcsafe IBC LIR BB12 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target gcsafe IBC LIR BB13 [0011] 11 BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11 0.17 14831 [000..0AB)-> BB15 ( cond ) i label target hascall gcsafe newobj nullcheck IBC LIR BB14 [0027] 1 BB13 0.09 [000..000) i internal gcsafe LIR BB15 [0028] 2 BB13,BB14 0.17 14831 [000..000) (return) i internal label target gcsafe newobj nullcheck IBC LIR ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..009) -> BB13 (cond), preds={} succs={BB02,BB13} N001 ( 1, 1) [000000] ------------ t0 = LCL_VAR ref V01 arg1 u:1 $81 N002 ( 1, 1) [000001] ------------ t1 = LCL_VAR ref V00 this u:1 $80 /--* t1 ref N004 ( 2, 2) [000174] -c---------- t174 = * LEA(b+32) byref /--* t174 byref N005 ( 4, 4) [000121] -c-XG------- t121 = * IND ref /--* t0 ref +--* t121 ref N006 ( 6, 6) [000004] N--XG--N-U-- * NE void N007 ( 8, 8) [000005] ---XG------- * JTRUE void ------------ BB02 [009..012) -> BB13 (cond), preds={BB01} succs={BB03,BB13} N001 ( 2, 2) [000041] ------------ t41 = LCL_VAR int V02 arg2 u:1 $c0 /--* t41 int N002 ( 3, 4) [000175] ------------ t175 = * CAST int <- ubyte <- int $284 N003 ( 1, 1) [000042] ------------ t42 = LCL_VAR ref V00 this u:1 $80 /--* t42 ref N005 ( 2, 2) [000177] -c---------- t177 = * LEA(b+56) byref /--* t177 byref N006 ( 5, 5) [000123] n---GO------ t123 = * IND ubyte /--* t175 int +--* t123 ubyte N007 ( 9, 10) [000046] N---GO-N-U-- * NE void N008 ( 11, 12) [000047] ----GO------ * JTRUE void ------------ BB03 [012..01B) -> BB13 (cond), preds={BB02} succs={BB04,BB13} N001 ( 2, 2) [000048] ------------ t48 = LCL_VAR int V03 arg3 u:1 $c1 /--* t48 int N002 ( 3, 4) [000178] ------------ t178 = * CAST int <- ubyte <- int $289 N003 ( 1, 1) [000049] ------------ t49 = LCL_VAR ref V00 this u:1 $80 /--* t49 ref N005 ( 2, 2) [000180] -c---------- t180 = * LEA(b+57) byref /--* t180 byref N006 ( 5, 5) [000125] n---GO------ t125 = * IND ubyte /--* t178 int +--* t125 ubyte N007 ( 9, 10) [000053] N---GO-N-U-- * NE void N008 ( 11, 12) [000054] ----GO------ * JTRUE void ------------ BB04 [01B..025) -> BB13 (cond), preds={BB03} succs={BB05,BB13} N001 ( 3, 2) [000055] ------------ t55 = LCL_VAR int V04 arg4 u:1 $100 /--* t55 int N002 ( 4, 4) [000181] ------------ t181 = * CAST int <- bool <- int $28e N003 ( 1, 1) [000056] ------------ t56 = LCL_VAR ref V00 this u:1 $80 /--* t56 ref N005 ( 2, 2) [000183] -c---------- t183 = * LEA(b+58) byref /--* t183 byref N006 ( 5, 5) [000127] n---GO------ t127 = * IND bool /--* t181 int +--* t127 bool N007 ( 10, 10) [000060] N---GO-N-U-- * NE void N008 ( 12, 12) [000061] ----GO------ * JTRUE void ------------ BB05 [025..034) -> BB13 (cond), preds={BB04} succs={BB06,BB13} N003 ( 1, 1) [000063] ------------ t63 = LCL_VAR ref V00 this u:1 $80 /--* t63 ref N005 ( 2, 2) [000185] -c---------- t185 = * LEA(b+40) byref /--* t185 byref N006 ( 4, 4) [000129] n---GO------ t129 = * IND ref /--* t129 ref [000233] ----GO------ t233 = * PUTARG_REG ref REG rdx N007 ( 3, 2) [000062] ------------ t62 = LCL_VAR ref V05 arg5 u:1 $82 /--* t62 ref [000234] ------------ t234 = * PUTARG_REG ref REG rcx N001 ( 1, 4) [000235] -c---------- t235 = CNS_INT(h) long 0xd1ffab1e ftn /--* t235 long N002 ( 3, 6) [000236] -c---------- t236 = * IND long REG NA /--* t233 ref arg1 in rdx +--* t234 ref arg0 in rcx +--* t236 long control expr N008 ( 21, 13) [000066] --CXGO------ t66 = * CALL r2r_ind bool Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c0 N010 ( 1, 1) [000069] -c---------- t69 = CNS_INT bool 0 $40 /--* t66 bool +--* t69 bool N011 ( 24, 17) [000070] J--XGO-N-U-- * NE void $294 N012 ( 26, 19) [000071] ---XGO------ * JTRUE void ------------ BB06 [034..03E) -> BB13 (cond), preds={BB05} succs={BB07,BB13} N001 ( 3, 2) [000072] ------------ t72 = LCL_VAR int V06 arg6 u:1 $101 /--* t72 int N002 ( 4, 4) [000188] ------------ t188 = * CAST int <- bool <- int $295 N003 ( 1, 1) [000073] ------------ t73 = LCL_VAR ref V00 this u:1 $80 /--* t73 ref N005 ( 2, 2) [000190] -c---------- t190 = * LEA(b+59) byref /--* t190 byref N006 ( 5, 5) [000132] n---GO------ t132 = * IND bool /--* t188 int +--* t132 bool N007 ( 10, 10) [000077] N---GO-N-U-- * NE void N008 ( 12, 12) [000078] ----GO------ * JTRUE void ------------ BB07 [03E..048) -> BB13 (cond), preds={BB06} succs={BB08,BB13} N001 ( 3, 2) [000079] ------------ t79 = LCL_VAR int V07 arg7 u:1 $102 /--* t79 int N002 ( 4, 4) [000191] ------------ t191 = * CAST int <- bool <- int $29a N003 ( 1, 1) [000080] ------------ t80 = LCL_VAR ref V00 this u:1 $80 /--* t80 ref N005 ( 2, 2) [000193] -c---------- t193 = * LEA(b+60) byref /--* t193 byref N006 ( 5, 5) [000134] n---GO------ t134 = * IND bool /--* t191 int +--* t134 bool N007 ( 10, 10) [000084] N---GO-N-U-- * NE void N008 ( 12, 12) [000085] ----GO------ * JTRUE void ------------ BB08 [048..052) -> BB13 (cond), preds={BB07} succs={BB09,BB13} N001 ( 3, 2) [000086] ------------ t86 = LCL_VAR int V08 arg8 u:1 $103 /--* t86 int N002 ( 4, 4) [000194] ------------ t194 = * CAST int <- bool <- int $29f N003 ( 1, 1) [000087] ------------ t87 = LCL_VAR ref V00 this u:1 $80 /--* t87 ref N005 ( 2, 2) [000196] -c---------- t196 = * LEA(b+61) byref /--* t196 byref N006 ( 5, 5) [000136] n---GO------ t136 = * IND bool /--* t194 int +--* t136 bool N007 ( 10, 10) [000091] N---GO-N-U-- * NE void N008 ( 12, 12) [000092] ----GO------ * JTRUE void ------------ BB09 [052..05C) -> BB13 (cond), preds={BB08} succs={BB10,BB13} N001 ( 3, 2) [000093] ------------ t93 = LCL_VAR int V09 arg9 u:1 $104 /--* t93 int N002 ( 4, 4) [000197] ------------ t197 = * CAST int <- bool <- int $2a4 N003 ( 1, 1) [000094] ------------ t94 = LCL_VAR ref V00 this u:1 $80 /--* t94 ref N005 ( 2, 2) [000199] -c---------- t199 = * LEA(b+62) byref /--* t199 byref N006 ( 5, 5) [000138] n---GO------ t138 = * IND bool /--* t197 int +--* t138 bool N007 ( 10, 10) [000098] N---GO-N-U-- * NE void N008 ( 12, 12) [000099] ----GO------ * JTRUE void ------------ BB10 [05C..06B) -> BB13 (cond), preds={BB09} succs={BB11,BB13} N003 ( 1, 1) [000101] ------------ t101 = LCL_VAR ref V00 this u:1 $80 /--* t101 ref N005 ( 2, 2) [000201] -c---------- t201 = * LEA(b+48) byref /--* t201 byref N006 ( 4, 4) [000140] n---GO------ t140 = * IND ref /--* t140 ref [000237] ----GO------ t237 = * PUTARG_REG ref REG rdx N007 ( 3, 2) [000100] ------------ t100 = LCL_VAR ref V10 arg10 u:1 $83 /--* t100 ref [000238] ------------ t238 = * PUTARG_REG ref REG rcx N001 ( 1, 4) [000239] -c---------- t239 = CNS_INT(h) long 0xd1ffab1e ftn /--* t239 long N002 ( 3, 6) [000240] -c---------- t240 = * IND long REG NA /--* t237 ref arg1 in rdx +--* t238 ref arg0 in rcx +--* t240 long control expr N008 ( 21, 13) [000104] --CXGO------ t104 = * CALL r2r_ind bool Microsoft.CodeAnalysis.ConstantValue.op_Inequality $3c1 N010 ( 1, 1) [000106] -c---------- t106 = CNS_INT bool 0 $40 /--* t104 bool +--* t106 bool N011 ( 24, 17) [000107] J--XGO-N-U-- * NE void $2aa N012 ( 26, 19) [000108] ---XGO------ * JTRUE void ------------ BB11 [06B..07A) -> BB13 (cond), preds={BB10} succs={BB12,BB13} N003 ( 1, 1) [000110] ------------ t110 = LCL_VAR ref V00 this u:1 $80 /--* t110 ref N005 ( 2, 2) [000205] -c---------- t205 = * LEA(b+24) byref /--* t205 byref N006 ( 4, 4) [000142] n---GO------ t142 = * IND ref /--* t142 ref [000241] ----GO------ t241 = * PUTARG_REG ref REG rdx N007 ( 3, 2) [000109] ------------ t109 = LCL_VAR ref V11 arg11 u:1 $84 /--* t109 ref [000242] ------------ t242 = * PUTARG_REG ref REG rcx N001 ( 1, 4) [000243] -c---------- t243 = CNS_INT(h) long 0xd1ffab1e ftn /--* t243 long N002 ( 3, 6) [000244] -c---------- t244 = * IND long REG NA /--* t241 ref arg1 in rdx +--* t242 ref arg0 in rcx +--* t244 long control expr N008 ( 21, 13) [000113] --CXGO------ t113 = * CALL r2r_ind bool Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality $3c2 N010 ( 1, 1) [000116] -c---------- t116 = CNS_INT bool 0 $40 /--* t113 bool +--* t116 bool N011 ( 24, 17) [000117] J--XGO-N-U-- * NE void $2ac N012 ( 26, 19) [000118] ---XGO------ * JTRUE void ------------ BB12 [0AB..0AD) (return), preds={BB11} succs={} [000229] ------------ IL_OFFSET void IL offset: 0xab N001 ( 1, 1) [000119] ------------ t119 = LCL_VAR ref V00 this u:1 (last use) $80 /--* t119 ref N002 ( 2, 2) [000120] ------------ * RETURN ref $256 ------------ BB13 [000..0AB) -> BB15 (cond), preds={BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11} succs={BB14,BB15} [000230] ------------ IL_OFFSET void IL offset: 0x7a N001 ( 1, 1) [000006] ------------ t6 = LCL_VAR ref V00 this u:1 $80 /--* t6 ref N003 ( 2, 2) [000209] -c---------- t209 = * LEA(b+8) byref /--* t209 byref N004 ( 4, 4) [000007] n---GO------ t7 = * IND ref /--* t7 ref N006 ( 8, 7) [000022] DA--GO------ * STORE_LCL_VAR ref V13 tmp1 d:2 N001 ( 1, 4) [000245] -c---------- t245 = CNS_INT(h) long 0xd1ffab1e ftn /--* t245 long N002 ( 3, 6) [000246] -c---------- t246 = * IND long REG NA /--* t246 long control expr N001 ( 14, 5) [000028] --C--------- t28 = * CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW $21b /--* t28 ref N003 ( 18, 8) [000030] DA---------- * STORE_LCL_VAR ref V14 tmp2 d:2 N005 ( 2, 2) [000010] ------------ t10 = LCL_VAR int V03 arg3 u:1 (last use) $c1 /--* t10 int N006 ( 3, 4) [000211] ------------ t211 = * CAST int <- ubyte <- int $289 /--* t211 int [000247] ------------ * PUTARG_STK [+0x20] void N007 ( 3, 2) [000011] ------------ t11 = LCL_VAR int V04 arg4 u:1 (last use) $100 /--* t11 int N008 ( 4, 4) [000212] ------------ t212 = * CAST int <- bool <- int $28e /--* t212 int [000248] ------------ * PUTARG_STK [+0x28] void N009 ( 3, 2) [000012] ------------ t12 = LCL_VAR ref V05 arg5 u:1 (last use) $82 /--* t12 ref [000249] ------------ * PUTARG_STK [+0x30] void N010 ( 3, 2) [000013] ------------ t13 = LCL_VAR int V06 arg6 u:1 (last use) $101 /--* t13 int N011 ( 4, 4) [000213] ------------ t213 = * CAST int <- bool <- int $295 /--* t213 int [000250] ------------ * PUTARG_STK [+0x38] void N012 ( 3, 2) [000014] ------------ t14 = LCL_VAR int V07 arg7 u:1 (last use) $102 /--* t14 int N013 ( 4, 4) [000214] ------------ t214 = * CAST int <- bool <- int $29a /--* t214 int [000251] ------------ * PUTARG_STK [+0x40] void N014 ( 3, 2) [000015] ------------ t15 = LCL_VAR int V08 arg8 u:1 (last use) $103 /--* t15 int N015 ( 4, 4) [000215] ------------ t215 = * CAST int <- bool <- int $29f /--* t215 int [000252] ------------ * PUTARG_STK [+0x48] void N016 ( 3, 2) [000016] ------------ t16 = LCL_VAR int V09 arg9 u:1 (last use) $104 /--* t16 int N017 ( 4, 4) [000216] ------------ t216 = * CAST int <- bool <- int $2a4 /--* t216 int [000253] ------------ * PUTARG_STK [+0x50] void N018 ( 3, 2) [000017] ------------ t17 = LCL_VAR ref V10 arg10 u:1 (last use) $83 /--* t17 ref [000254] ------------ * PUTARG_STK [+0x58] void N019 ( 3, 2) [000018] ------------ t18 = LCL_VAR ref V11 arg11 u:1 (last use) $84 /--* t18 ref [000255] ------------ * PUTARG_STK [+0x60] void N020 ( 1, 1) [000019] ------------ t19 = LCL_VAR ref V00 this u:1 $80 /--* t19 ref N022 ( 2, 2) [000218] -c---------- t218 = * LEA(b+17) byref /--* t218 byref N023 ( 5, 5) [000145] nc--GO------ t145 = * IND ubyte N024 ( 1, 1) [000146] -c---------- t146 = CNS_INT ubyte 1 $41 /--* t145 ubyte +--* t146 ubyte N027 ( 12, 9) [000149] N---GO---U-- t149 = * TEST_NE int /--* t149 int [000256] ----GO------ * PUTARG_STK [+0x68] void N028 ( 2, 2) [000009] ------------ t9 = LCL_VAR int V02 arg2 u:1 (last use) $c0 /--* t9 int N029 ( 3, 4) [000210] ------------ t210 = * CAST int <- ubyte <- int $284 /--* t210 int [000257] ------------ t257 = * PUTARG_REG int REG r9 N030 ( 3, 2) [000031] ------------ t31 = LCL_VAR ref V14 tmp2 u:2 $21b /--* t31 ref [000258] ------------ t258 = * PUTARG_REG ref REG rcx N031 ( 3, 2) [000023] ------------ t23 = LCL_VAR ref V13 tmp1 u:2 (last use) /--* t23 ref [000259] ------------ t259 = * PUTARG_REG ref REG rdx N032 ( 1, 1) [000008] ------------ t8 = LCL_VAR ref V01 arg1 u:1 (last use) $81 /--* t8 ref [000260] ------------ t260 = * PUTARG_REG ref REG r8 N001 ( 1, 4) [000261] -c---------- t261 = CNS_INT(h) long 0xd1ffab1e ftn /--* t261 long N002 ( 3, 6) [000262] -c---------- t262 = * IND long REG NA /--* t257 int arg3 in r9 +--* t258 ref this in rcx +--* t259 ref arg1 in rdx +--* t260 ref arg2 in r8 +--* t262 long control expr N033 ( 98, 58) [000032] --CXGO------ * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor $VN.Void N001 ( 1, 1) [000035] ------------ t35 = LCL_VAR ref V00 this u:1 (last use) $80 /--* t35 ref N003 ( 2, 2) [000224] -c---------- t224 = * LEA(b+17) byref /--* t224 byref N004 ( 5, 5) [000151] nc--GO------ t151 = * IND ubyte N005 ( 1, 1) [000152] -c---------- t152 = CNS_INT ubyte 2 $42 /--* t151 ubyte +--* t152 ubyte N008 ( 12, 9) [000155] N---GO---U-- t155 = * TEST_NE int /--* t155 int N010 ( 16, 12) [000171] DA--GO------ * STORE_LCL_VAR int V15 tmp3 d:2 N001 ( 3, 2) [000158] ------------ t158 = LCL_VAR int V15 tmp3 u:2 (last use) N002 ( 1, 1) [000159] -c---------- t159 = CNS_INT int 0 $40 /--* t158 int +--* t159 int N003 ( 5, 4) [000160] J------N---- * EQ void N004 ( 7, 6) [000161] ------------ * JTRUE void ------------ BB14 [000..000), preds={BB13} succs={BB15} N001 ( 3, 2) [000162] -c---------- t162 = LCL_VAR ref V14 tmp2 u:2 $21b /--* t162 ref N003 ( 4, 3) [000228] -c---------- t228 = * LEA(b+17) byref /--* t228 byref N004 ( 7, 6) [000163] nc--GO------ t163 = * IND ubyte N005 ( 1, 1) [000164] -c---------- t164 = CNS_INT int 2 $42 /--* t163 ubyte +--* t164 int N006 ( 9, 8) [000165] -c--GO------ t165 = * OR int N007 ( 3, 2) [000034] ------------ t34 = LCL_VAR ref V14 tmp2 u:2 $21b /--* t34 ref N009 ( 4, 3) [000226] -c---------- t226 = * LEA(b+17) byref /--* t226 byref +--* t165 int [000231] -A--GO------ * STOREIND ubyte ------------ BB15 [000..000) (return), preds={BB13,BB14} succs={} [000232] ------------ IL_OFFSET void IL offset: 0xaa N001 ( 3, 2) [000033] ------------ t33 = LCL_VAR ref V14 tmp2 u:2 (last use) $21b /--* t33 ref N002 ( 4, 3) [000040] ------------ * RETURN ref $255 ------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Calculate stack level slots Too many pushed arguments for an ESP based encoding, forcing an EBP frame *************** Finishing PHASE Calculate stack level slots [no changes] *************** Starting PHASE Linear scan register alloc Clearing modified regs. buildIntervals ======== ----------------- LIVENESS: ----------------- BB01 use def in out {V00 V01} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} BB02 use def in out {V00 V02} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} BB03 use def in out {V00 V03} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} BB04 use def in out {V00 V04} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} BB05 use def in out {V00 V05} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} BB06 use def in out {V00 V06} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} BB07 use def in out {V00 V07} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} BB08 use def in out {V00 V08} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} BB09 use def in out {V00 V09} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} BB10 use def in out {V00 V10} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} BB11 use def in out {V00 V11} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} BB12 use def in out {V00} {} {V00} {} BB13 use def in out {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V13 V14 V15} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V14} BB14 use def in out {V14} {} {V14} {V14} BB15 use def in out {V14} {} {V14} {} Interval 0: ref RefPositions {} physReg:NA Preferences=[allInt] Interval 0: (V00) ref RefPositions {} physReg:NA Preferences=[allInt] Interval 1: ref RefPositions {} physReg:NA Preferences=[allInt] Interval 1: (V01) ref RefPositions {} physReg:NA Preferences=[allInt] Interval 2: int RefPositions {} physReg:NA Preferences=[allInt] Interval 2: (V02) int RefPositions {} physReg:NA Preferences=[allInt] Interval 3: int RefPositions {} physReg:NA Preferences=[allInt] Interval 3: (V03) int RefPositions {} physReg:NA Preferences=[allInt] Interval 4: int RefPositions {} physReg:NA Preferences=[allInt] Interval 4: (V04) int RefPositions {} physReg:NA Preferences=[allInt] Interval 5: ref RefPositions {} physReg:NA Preferences=[allInt] Interval 5: (V05) ref RefPositions {} physReg:NA Preferences=[allInt] Interval 6: int RefPositions {} physReg:NA Preferences=[allInt] Interval 6: (V06) int RefPositions {} physReg:NA Preferences=[allInt] Interval 7: int RefPositions {} physReg:NA Preferences=[allInt] Interval 7: (V07) int RefPositions {} physReg:NA Preferences=[allInt] Interval 8: int RefPositions {} physReg:NA Preferences=[allInt] Interval 8: (V08) int RefPositions {} physReg:NA Preferences=[allInt] Interval 9: int RefPositions {} physReg:NA Preferences=[allInt] Interval 9: (V09) int RefPositions {} physReg:NA Preferences=[allInt] Interval 10: ref RefPositions {} physReg:NA Preferences=[allInt] Interval 10: (V10) ref RefPositions {} physReg:NA Preferences=[allInt] Interval 11: ref RefPositions {} physReg:NA Preferences=[allInt] Interval 11: (V11) ref RefPositions {} physReg:NA Preferences=[allInt] Interval 12: ref RefPositions {} physReg:NA Preferences=[allInt] Interval 12: (V13) ref RefPositions {} physReg:NA Preferences=[allInt] Interval 13: ref RefPositions {} physReg:NA Preferences=[allInt] Interval 13: (V14) ref RefPositions {} physReg:NA Preferences=[allInt] Interval 14: int RefPositions {} physReg:NA Preferences=[allInt] Interval 14: (V15) int RefPositions {} physReg:NA Preferences=[allInt] FP callee save candidate vars: None floatVarCount = 0; hasLoops = 0, singleExit = 0 TUPLE STYLE DUMP BEFORE LSRA LSRA Block Sequence: BB01( 1 ) BB02( 0.83) BB03( 0.83) BB04( 0.83) BB05( 0.83) BB06( 0.83) BB07( 0.83) BB08( 0.83) BB09( 0.83) BB10( 0.83) BB11( 0.83) BB12( 0.83) BB13( 0.17) BB14( 0.09) BB15( 0.17) BB01 [000..009) -> BB13 (cond), preds={} succs={BB02,BB13} ===== N001. V01(t0) N002. V00(t1) N004. t174 = LEA(b+32); t1 N005. t121 = IND ; t174 N006. NE ; t0,t121 N007. JTRUE BB02 [009..012) -> BB13 (cond), preds={BB01} succs={BB03,BB13} ===== N001. V02(t41) N002. t175 = CAST ; t41 N003. V00(t42) N005. t177 = LEA(b+56); t42 N006. t123 = IND ; t177 N007. NE ; t175,t123 N008. JTRUE BB03 [012..01B) -> BB13 (cond), preds={BB02} succs={BB04,BB13} ===== N001. V03(t48) N002. t178 = CAST ; t48 N003. V00(t49) N005. t180 = LEA(b+57); t49 N006. t125 = IND ; t180 N007. NE ; t178,t125 N008. JTRUE BB04 [01B..025) -> BB13 (cond), preds={BB03} succs={BB05,BB13} ===== N001. V04(t55) N002. t181 = CAST ; t55 N003. V00(t56) N005. t183 = LEA(b+58); t56 N006. t127 = IND ; t183 N007. NE ; t181,t127 N008. JTRUE BB05 [025..034) -> BB13 (cond), preds={BB04} succs={BB06,BB13} ===== N003. V00(t63) N005. t185 = LEA(b+40); t63 N006. t129 = IND ; t185 N000. t233 = PUTARG_REG; t129 N007. V05(t62) N000. t234 = PUTARG_REG; t62 N001. CNS_INT(h) 0xd1ffab1e ftn N002. IND N008. t66 = CALL r2r_ind; t233,t234 N010. CNS_INT 0 N011. NE ; t66 N012. JTRUE BB06 [034..03E) -> BB13 (cond), preds={BB05} succs={BB07,BB13} ===== N001. V06(t72) N002. t188 = CAST ; t72 N003. V00(t73) N005. t190 = LEA(b+59); t73 N006. t132 = IND ; t190 N007. NE ; t188,t132 N008. JTRUE BB07 [03E..048) -> BB13 (cond), preds={BB06} succs={BB08,BB13} ===== N001. V07(t79) N002. t191 = CAST ; t79 N003. V00(t80) N005. t193 = LEA(b+60); t80 N006. t134 = IND ; t193 N007. NE ; t191,t134 N008. JTRUE BB08 [048..052) -> BB13 (cond), preds={BB07} succs={BB09,BB13} ===== N001. V08(t86) N002. t194 = CAST ; t86 N003. V00(t87) N005. t196 = LEA(b+61); t87 N006. t136 = IND ; t196 N007. NE ; t194,t136 N008. JTRUE BB09 [052..05C) -> BB13 (cond), preds={BB08} succs={BB10,BB13} ===== N001. V09(t93) N002. t197 = CAST ; t93 N003. V00(t94) N005. t199 = LEA(b+62); t94 N006. t138 = IND ; t199 N007. NE ; t197,t138 N008. JTRUE BB10 [05C..06B) -> BB13 (cond), preds={BB09} succs={BB11,BB13} ===== N003. V00(t101) N005. t201 = LEA(b+48); t101 N006. t140 = IND ; t201 N000. t237 = PUTARG_REG; t140 N007. V10(t100) N000. t238 = PUTARG_REG; t100 N001. CNS_INT(h) 0xd1ffab1e ftn N002. IND N008. t104 = CALL r2r_ind; t237,t238 N010. CNS_INT 0 N011. NE ; t104 N012. JTRUE BB11 [06B..07A) -> BB13 (cond), preds={BB10} succs={BB12,BB13} ===== N003. V00(t110) N005. t205 = LEA(b+24); t110 N006. t142 = IND ; t205 N000. t241 = PUTARG_REG; t142 N007. V11(t109) N000. t242 = PUTARG_REG; t109 N001. CNS_INT(h) 0xd1ffab1e ftn N002. IND N008. t113 = CALL r2r_ind; t241,t242 N010. CNS_INT 0 N011. NE ; t113 N012. JTRUE BB12 [0AB..0AD) (return), preds={BB11} succs={} ===== N000. IL_OFFSET IL offset: 0xab N001. V00(t119*) N002. RETURN ; t119* BB13 [000..0AB) -> BB15 (cond), preds={BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11} succs={BB14,BB15} ===== N000. IL_OFFSET IL offset: 0x7a N001. V00(t6) N003. t209 = LEA(b+8) ; t6 N004. t7 = IND ; t209 N006. V13(t22); t7 N001. CNS_INT(h) 0xd1ffab1e ftn N002. IND N001. t28 = CALL help r2r_ind N003. V14(t30); t28 N005. V03(t10*) N006. t211 = CAST ; t10* N000. PUTARG_STK [+0x20]; t211 N007. V04(t11*) N008. t212 = CAST ; t11* N000. PUTARG_STK [+0x28]; t212 N009. V05(t12*) N000. PUTARG_STK [+0x30]; t12* N010. V06(t13*) N011. t213 = CAST ; t13* N000. PUTARG_STK [+0x38]; t213 N012. V07(t14*) N013. t214 = CAST ; t14* N000. PUTARG_STK [+0x40]; t214 N014. V08(t15*) N015. t215 = CAST ; t15* N000. PUTARG_STK [+0x48]; t215 N016. V09(t16*) N017. t216 = CAST ; t16* N000. PUTARG_STK [+0x50]; t216 N018. V10(t17*) N000. PUTARG_STK [+0x58]; t17* N019. V11(t18*) N000. PUTARG_STK [+0x60]; t18* N020. V00(t19) N022. t218 = LEA(b+17); t19 N023. t145 = IND ; t218 N024. CNS_INT 1 N027. t149 = TEST_NE ; t145 N000. PUTARG_STK [+0x68]; t149 N028. V02(t9*) N029. t210 = CAST ; t9* N000. t257 = PUTARG_REG; t210 N030. V14(t31) N000. t258 = PUTARG_REG; t31 N031. V13(t23*) N000. t259 = PUTARG_REG; t23* N032. V01(t8*) N000. t260 = PUTARG_REG; t8* N001. CNS_INT(h) 0xd1ffab1e ftn N002. IND N033. CALL r2r_ind; t257,t258,t259,t260 N001. V00(t35*) N003. t224 = LEA(b+17); t35* N004. t151 = IND ; t224 N005. CNS_INT 2 N008. t155 = TEST_NE ; t151 N010. V15(t171); t155 N001. V15(t158*) N002. CNS_INT 0 N003. EQ ; t158* N004. JTRUE BB14 [000..000), preds={BB13} succs={BB15} ===== N001. V14(t162) N003. LEA(b+17) N004. IND N005. CNS_INT 2 N006. OR N007. V14(t34) N009. t226 = LEA(b+17); t34 N000. STOREIND ; t226 BB15 [000..000) (return), preds={BB13,BB14} succs={} ===== N000. IL_OFFSET IL offset: 0xaa N001. V14(t33*) N002. RETURN ; t33* buildIntervals second part ======== Int arg V00 in reg rcx BB00 regmask=[rcx] minReg=1 fixed> Int arg V01 in reg rdx BB00 regmask=[rdx] minReg=1 fixed> Int arg V02 in reg r8 BB00 regmask=[r8] minReg=1 fixed> Int arg V03 in reg r9 BB00 regmask=[r9] minReg=1 fixed> BB00 regmask=[allIntButFP] minReg=1> BB00 regmask=[allIntButFP] minReg=1> BB00 regmask=[allIntButFP] minReg=1> BB00 regmask=[allIntButFP] minReg=1> BB00 regmask=[allIntButFP] minReg=1> BB00 regmask=[allIntButFP] minReg=1> BB00 regmask=[allIntButFP] minReg=1> BB00 regmask=[allIntButFP] minReg=1> NEW BLOCK BB01 DefList: { } N003 ( 1, 1) [000000] ------------ * LCL_VAR ref V01 arg1 u:1 NA REG NA $81 DefList: { } N005 ( 1, 1) [000001] ------------ * LCL_VAR ref V00 this u:1 NA REG NA $80 DefList: { } N007 ( 2, 2) [000174] -c---------- * LEA(b+32) byref REG NA Contained DefList: { } N009 ( 4, 4) [000121] -c-XG------- * IND ref REG NA Contained DefList: { } N011 ( 6, 6) [000004] N--XG--N-U-- * NE void REG NA LCL_VAR BB01 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB01 regmask=[allIntButFP] minReg=1 last> DefList: { } N013 ( 8, 8) [000005] ---XG------- * JTRUE void REG NA CHECKING LAST USES for BB01, liveout={V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} ============================== use: {V00 V01} def: {} NEW BLOCK BB02 Setting BB01 as the predecessor for determining incoming variable registers of BB02 DefList: { } N017 ( 2, 2) [000041] ------------ * LCL_VAR int V02 arg2 u:1 NA REG NA $c0 DefList: { } N019 ( 3, 4) [000175] ------------ * CAST int <- ubyte <- int REG NA $284 LCL_VAR BB02 regmask=[allIntButFP] minReg=1 last> Interval 15: int RefPositions {} physReg:NA Preferences=[allIntButFP] CAST BB02 regmask=[allIntButFP] minReg=1> DefList: { N019.t175. CAST } N021 ( 1, 1) [000042] ------------ * LCL_VAR ref V00 this u:1 NA REG NA $80 DefList: { N019.t175. CAST } N023 ( 2, 2) [000177] -c---------- * LEA(b+56) byref REG NA Contained DefList: { N019.t175. CAST } N025 ( 5, 5) [000123] n---GO------ * IND ubyte REG NA LCL_VAR BB02 regmask=[allIntButFP] minReg=1 last> Interval 16: ubyte RefPositions {} physReg:NA Preferences=[allIntButFP] IND BB02 regmask=[allIntButFP] minReg=1> DefList: { N019.t175. CAST; N025.t123. IND } N027 ( 9, 10) [000046] N---GO-N-U-- * NE void REG NA BB02 regmask=[allIntButFP] minReg=1 last> BB02 regmask=[allIntButFP] minReg=1 last> DefList: { } N029 ( 11, 12) [000047] ----GO------ * JTRUE void REG NA CHECKING LAST USES for BB02, liveout={V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} ============================== use: {V00 V02} def: {} NEW BLOCK BB03 Setting BB02 as the predecessor for determining incoming variable registers of BB03 DefList: { } N033 ( 2, 2) [000048] ------------ * LCL_VAR int V03 arg3 u:1 NA REG NA $c1 DefList: { } N035 ( 3, 4) [000178] ------------ * CAST int <- ubyte <- int REG NA $289 LCL_VAR BB03 regmask=[allIntButFP] minReg=1 last> Interval 17: int RefPositions {} physReg:NA Preferences=[allIntButFP] CAST BB03 regmask=[allIntButFP] minReg=1> DefList: { N035.t178. CAST } N037 ( 1, 1) [000049] ------------ * LCL_VAR ref V00 this u:1 NA REG NA $80 DefList: { N035.t178. CAST } N039 ( 2, 2) [000180] -c---------- * LEA(b+57) byref REG NA Contained DefList: { N035.t178. CAST } N041 ( 5, 5) [000125] n---GO------ * IND ubyte REG NA LCL_VAR BB03 regmask=[allIntButFP] minReg=1 last> Interval 18: ubyte RefPositions {} physReg:NA Preferences=[allIntButFP] IND BB03 regmask=[allIntButFP] minReg=1> DefList: { N035.t178. CAST; N041.t125. IND } N043 ( 9, 10) [000053] N---GO-N-U-- * NE void REG NA BB03 regmask=[allIntButFP] minReg=1 last> BB03 regmask=[allIntButFP] minReg=1 last> DefList: { } N045 ( 11, 12) [000054] ----GO------ * JTRUE void REG NA CHECKING LAST USES for BB03, liveout={V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} ============================== use: {V00 V03} def: {} NEW BLOCK BB04 Setting BB03 as the predecessor for determining incoming variable registers of BB04 DefList: { } N049 ( 3, 2) [000055] ------------ * LCL_VAR int V04 arg4 u:1 NA REG NA $100 DefList: { } N051 ( 4, 4) [000181] ------------ * CAST int <- bool <- int REG NA $28e LCL_VAR BB04 regmask=[allIntButFP] minReg=1 last> Interval 19: int RefPositions {} physReg:NA Preferences=[allIntButFP] CAST BB04 regmask=[allIntButFP] minReg=1> DefList: { N051.t181. CAST } N053 ( 1, 1) [000056] ------------ * LCL_VAR ref V00 this u:1 NA REG NA $80 DefList: { N051.t181. CAST } N055 ( 2, 2) [000183] -c---------- * LEA(b+58) byref REG NA Contained DefList: { N051.t181. CAST } N057 ( 5, 5) [000127] n---GO------ * IND bool REG NA LCL_VAR BB04 regmask=[allIntButFP] minReg=1 last> Interval 20: bool RefPositions {} physReg:NA Preferences=[allIntButFP] IND BB04 regmask=[allIntButFP] minReg=1> DefList: { N051.t181. CAST; N057.t127. IND } N059 ( 10, 10) [000060] N---GO-N-U-- * NE void REG NA BB04 regmask=[allIntButFP] minReg=1 last> BB04 regmask=[allIntButFP] minReg=1 last> DefList: { } N061 ( 12, 12) [000061] ----GO------ * JTRUE void REG NA CHECKING LAST USES for BB04, liveout={V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} ============================== use: {V00 V04} def: {} NEW BLOCK BB05 Setting BB04 as the predecessor for determining incoming variable registers of BB05 DefList: { } N065 ( 1, 1) [000063] ------------ * LCL_VAR ref V00 this u:1 NA REG NA $80 DefList: { } N067 ( 2, 2) [000185] -c---------- * LEA(b+40) byref REG NA Contained DefList: { } N069 ( 4, 4) [000129] n---GO------ * IND ref REG NA LCL_VAR BB05 regmask=[allIntButFP] minReg=1 last> Interval 21: ref RefPositions {} physReg:NA Preferences=[allIntButFP] IND BB05 regmask=[allIntButFP] minReg=1> DefList: { N069.t129. IND } N071 (???,???) [000233] ----GO------ * PUTARG_REG ref REG rdx BB05 regmask=[rdx] minReg=1> BB05 regmask=[rdx] minReg=1 last fixed> Interval 22: ref RefPositions {} physReg:NA Preferences=[allIntButFP] BB05 regmask=[rdx] minReg=1> PUTARG_REG BB05 regmask=[rdx] minReg=1 fixed> DefList: { N071.t233. PUTARG_REG } N073 ( 3, 2) [000062] ------------ * LCL_VAR ref V05 arg5 u:1 NA REG NA $82 DefList: { N071.t233. PUTARG_REG } N075 (???,???) [000234] ------------ * PUTARG_REG ref REG rcx BB05 regmask=[rcx] minReg=1> LCL_VAR BB05 regmask=[rcx] minReg=1 last fixed> Setting putarg_reg as a pass-through of a non-last use lclVar Interval 23: ref RefPositions {} physReg:NA Preferences=[allIntButFP] BB05 regmask=[rcx] minReg=1> PUTARG_REG BB05 regmask=[rcx] minReg=1 fixed> Assigning related to DefList: { N071.t233. PUTARG_REG; N075.t234. PUTARG_REG } N077 ( 1, 4) [000235] -c---------- * CNS_INT(h) long 0xd1ffab1e ftn REG NA Contained DefList: { N071.t233. PUTARG_REG; N075.t234. PUTARG_REG } N079 ( 3, 6) [000236] -c---------- * IND long REG NA Contained DefList: { N071.t233. PUTARG_REG; N075.t234. PUTARG_REG } N081 ( 21, 13) [000066] --CXGO------ * CALL r2r_ind bool Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality REG NA $3c0 BB05 regmask=[rdx] minReg=1> BB05 regmask=[rdx] minReg=1 last fixed> BB05 regmask=[rcx] minReg=1> BB05 regmask=[rcx] minReg=1 last fixed> BB05 regmask=[rax] minReg=1> BB05 regmask=[rcx] minReg=1> BB05 regmask=[rdx] minReg=1> BB05 regmask=[r8] minReg=1> BB05 regmask=[r9] minReg=1> BB05 regmask=[r10] minReg=1> BB05 regmask=[r11] minReg=1> Interval 24: bool RefPositions {} physReg:NA Preferences=[allIntButFP] BB05 regmask=[rax] minReg=1> CALL BB05 regmask=[rax] minReg=1 fixed> DefList: { N081.t66. CALL } N083 ( 1, 1) [000069] -c---------- * CNS_INT bool 0 REG NA $40 Contained DefList: { N081.t66. CALL } N085 ( 24, 17) [000070] J--XGO-N-U-- * NE void REG NA $294 BB05 regmask=[allIntButFP] minReg=1 last> DefList: { } N087 ( 26, 19) [000071] ---XGO------ * JTRUE void REG NA CHECKING LAST USES for BB05, liveout={V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} ============================== use: {V00 V05} def: {} NEW BLOCK BB06 Setting BB05 as the predecessor for determining incoming variable registers of BB06 DefList: { } N091 ( 3, 2) [000072] ------------ * LCL_VAR int V06 arg6 u:1 NA REG NA $101 DefList: { } N093 ( 4, 4) [000188] ------------ * CAST int <- bool <- int REG NA $295 LCL_VAR BB06 regmask=[allIntButFP] minReg=1 last> Interval 25: int RefPositions {} physReg:NA Preferences=[allIntButFP] CAST BB06 regmask=[allIntButFP] minReg=1> DefList: { N093.t188. CAST } N095 ( 1, 1) [000073] ------------ * LCL_VAR ref V00 this u:1 NA REG NA $80 DefList: { N093.t188. CAST } N097 ( 2, 2) [000190] -c---------- * LEA(b+59) byref REG NA Contained DefList: { N093.t188. CAST } N099 ( 5, 5) [000132] n---GO------ * IND bool REG NA LCL_VAR BB06 regmask=[allIntButFP] minReg=1 last> Interval 26: bool RefPositions {} physReg:NA Preferences=[allIntButFP] IND BB06 regmask=[allIntButFP] minReg=1> DefList: { N093.t188. CAST; N099.t132. IND } N101 ( 10, 10) [000077] N---GO-N-U-- * NE void REG NA BB06 regmask=[allIntButFP] minReg=1 last> BB06 regmask=[allIntButFP] minReg=1 last> DefList: { } N103 ( 12, 12) [000078] ----GO------ * JTRUE void REG NA CHECKING LAST USES for BB06, liveout={V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} ============================== use: {V00 V06} def: {} NEW BLOCK BB07 Setting BB06 as the predecessor for determining incoming variable registers of BB07 DefList: { } N107 ( 3, 2) [000079] ------------ * LCL_VAR int V07 arg7 u:1 NA REG NA $102 DefList: { } N109 ( 4, 4) [000191] ------------ * CAST int <- bool <- int REG NA $29a LCL_VAR BB07 regmask=[allIntButFP] minReg=1 last> Interval 27: int RefPositions {} physReg:NA Preferences=[allIntButFP] CAST BB07 regmask=[allIntButFP] minReg=1> DefList: { N109.t191. CAST } N111 ( 1, 1) [000080] ------------ * LCL_VAR ref V00 this u:1 NA REG NA $80 DefList: { N109.t191. CAST } N113 ( 2, 2) [000193] -c---------- * LEA(b+60) byref REG NA Contained DefList: { N109.t191. CAST } N115 ( 5, 5) [000134] n---GO------ * IND bool REG NA LCL_VAR BB07 regmask=[allIntButFP] minReg=1 last> Interval 28: bool RefPositions {} physReg:NA Preferences=[allIntButFP] IND BB07 regmask=[allIntButFP] minReg=1> DefList: { N109.t191. CAST; N115.t134. IND } N117 ( 10, 10) [000084] N---GO-N-U-- * NE void REG NA BB07 regmask=[allIntButFP] minReg=1 last> BB07 regmask=[allIntButFP] minReg=1 last> DefList: { } N119 ( 12, 12) [000085] ----GO------ * JTRUE void REG NA CHECKING LAST USES for BB07, liveout={V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} ============================== use: {V00 V07} def: {} NEW BLOCK BB08 Setting BB07 as the predecessor for determining incoming variable registers of BB08 DefList: { } N123 ( 3, 2) [000086] ------------ * LCL_VAR int V08 arg8 u:1 NA REG NA $103 DefList: { } N125 ( 4, 4) [000194] ------------ * CAST int <- bool <- int REG NA $29f LCL_VAR BB08 regmask=[allIntButFP] minReg=1 last> Interval 29: int RefPositions {} physReg:NA Preferences=[allIntButFP] CAST BB08 regmask=[allIntButFP] minReg=1> DefList: { N125.t194. CAST } N127 ( 1, 1) [000087] ------------ * LCL_VAR ref V00 this u:1 NA REG NA $80 DefList: { N125.t194. CAST } N129 ( 2, 2) [000196] -c---------- * LEA(b+61) byref REG NA Contained DefList: { N125.t194. CAST } N131 ( 5, 5) [000136] n---GO------ * IND bool REG NA LCL_VAR BB08 regmask=[allIntButFP] minReg=1 last> Interval 30: bool RefPositions {} physReg:NA Preferences=[allIntButFP] IND BB08 regmask=[allIntButFP] minReg=1> DefList: { N125.t194. CAST; N131.t136. IND } N133 ( 10, 10) [000091] N---GO-N-U-- * NE void REG NA BB08 regmask=[allIntButFP] minReg=1 last> BB08 regmask=[allIntButFP] minReg=1 last> DefList: { } N135 ( 12, 12) [000092] ----GO------ * JTRUE void REG NA CHECKING LAST USES for BB08, liveout={V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} ============================== use: {V00 V08} def: {} NEW BLOCK BB09 Setting BB08 as the predecessor for determining incoming variable registers of BB09 DefList: { } N139 ( 3, 2) [000093] ------------ * LCL_VAR int V09 arg9 u:1 NA REG NA $104 DefList: { } N141 ( 4, 4) [000197] ------------ * CAST int <- bool <- int REG NA $2a4 LCL_VAR BB09 regmask=[allIntButFP] minReg=1 last> Interval 31: int RefPositions {} physReg:NA Preferences=[allIntButFP] CAST BB09 regmask=[allIntButFP] minReg=1> DefList: { N141.t197. CAST } N143 ( 1, 1) [000094] ------------ * LCL_VAR ref V00 this u:1 NA REG NA $80 DefList: { N141.t197. CAST } N145 ( 2, 2) [000199] -c---------- * LEA(b+62) byref REG NA Contained DefList: { N141.t197. CAST } N147 ( 5, 5) [000138] n---GO------ * IND bool REG NA LCL_VAR BB09 regmask=[allIntButFP] minReg=1 last> Interval 32: bool RefPositions {} physReg:NA Preferences=[allIntButFP] IND BB09 regmask=[allIntButFP] minReg=1> DefList: { N141.t197. CAST; N147.t138. IND } N149 ( 10, 10) [000098] N---GO-N-U-- * NE void REG NA BB09 regmask=[allIntButFP] minReg=1 last> BB09 regmask=[allIntButFP] minReg=1 last> DefList: { } N151 ( 12, 12) [000099] ----GO------ * JTRUE void REG NA CHECKING LAST USES for BB09, liveout={V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} ============================== use: {V00 V09} def: {} NEW BLOCK BB10 Setting BB09 as the predecessor for determining incoming variable registers of BB10 DefList: { } N155 ( 1, 1) [000101] ------------ * LCL_VAR ref V00 this u:1 NA REG NA $80 DefList: { } N157 ( 2, 2) [000201] -c---------- * LEA(b+48) byref REG NA Contained DefList: { } N159 ( 4, 4) [000140] n---GO------ * IND ref REG NA LCL_VAR BB10 regmask=[allIntButFP] minReg=1 last> Interval 33: ref RefPositions {} physReg:NA Preferences=[allIntButFP] IND BB10 regmask=[allIntButFP] minReg=1> DefList: { N159.t140. IND } N161 (???,???) [000237] ----GO------ * PUTARG_REG ref REG rdx BB10 regmask=[rdx] minReg=1> BB10 regmask=[rdx] minReg=1 last fixed> Interval 34: ref RefPositions {} physReg:NA Preferences=[allIntButFP] BB10 regmask=[rdx] minReg=1> PUTARG_REG BB10 regmask=[rdx] minReg=1 fixed> DefList: { N161.t237. PUTARG_REG } N163 ( 3, 2) [000100] ------------ * LCL_VAR ref V10 arg10 u:1 NA REG NA $83 DefList: { N161.t237. PUTARG_REG } N165 (???,???) [000238] ------------ * PUTARG_REG ref REG rcx BB10 regmask=[rcx] minReg=1> LCL_VAR BB10 regmask=[rcx] minReg=1 last fixed> Setting putarg_reg as a pass-through of a non-last use lclVar Interval 35: ref RefPositions {} physReg:NA Preferences=[allIntButFP] BB10 regmask=[rcx] minReg=1> PUTARG_REG BB10 regmask=[rcx] minReg=1 fixed> Assigning related to DefList: { N161.t237. PUTARG_REG; N165.t238. PUTARG_REG } N167 ( 1, 4) [000239] -c---------- * CNS_INT(h) long 0xd1ffab1e ftn REG NA Contained DefList: { N161.t237. PUTARG_REG; N165.t238. PUTARG_REG } N169 ( 3, 6) [000240] -c---------- * IND long REG NA Contained DefList: { N161.t237. PUTARG_REG; N165.t238. PUTARG_REG } N171 ( 21, 13) [000104] --CXGO------ * CALL r2r_ind bool Microsoft.CodeAnalysis.ConstantValue.op_Inequality REG NA $3c1 BB10 regmask=[rdx] minReg=1> BB10 regmask=[rdx] minReg=1 last fixed> BB10 regmask=[rcx] minReg=1> BB10 regmask=[rcx] minReg=1 last fixed> BB10 regmask=[rax] minReg=1> BB10 regmask=[rcx] minReg=1> BB10 regmask=[rdx] minReg=1> BB10 regmask=[r8] minReg=1> BB10 regmask=[r9] minReg=1> BB10 regmask=[r10] minReg=1> BB10 regmask=[r11] minReg=1> Interval 36: bool RefPositions {} physReg:NA Preferences=[allIntButFP] BB10 regmask=[rax] minReg=1> CALL BB10 regmask=[rax] minReg=1 fixed> DefList: { N171.t104. CALL } N173 ( 1, 1) [000106] -c---------- * CNS_INT bool 0 REG NA $40 Contained DefList: { N171.t104. CALL } N175 ( 24, 17) [000107] J--XGO-N-U-- * NE void REG NA $2aa BB10 regmask=[allIntButFP] minReg=1 last> DefList: { } N177 ( 26, 19) [000108] ---XGO------ * JTRUE void REG NA CHECKING LAST USES for BB10, liveout={V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} ============================== use: {V00 V10} def: {} NEW BLOCK BB11 Setting BB10 as the predecessor for determining incoming variable registers of BB11 DefList: { } N181 ( 1, 1) [000110] ------------ * LCL_VAR ref V00 this u:1 NA REG NA $80 DefList: { } N183 ( 2, 2) [000205] -c---------- * LEA(b+24) byref REG NA Contained DefList: { } N185 ( 4, 4) [000142] n---GO------ * IND ref REG NA LCL_VAR BB11 regmask=[allIntButFP] minReg=1 last> Interval 37: ref RefPositions {} physReg:NA Preferences=[allIntButFP] IND BB11 regmask=[allIntButFP] minReg=1> DefList: { N185.t142. IND } N187 (???,???) [000241] ----GO------ * PUTARG_REG ref REG rdx BB11 regmask=[rdx] minReg=1> BB11 regmask=[rdx] minReg=1 last fixed> Interval 38: ref RefPositions {} physReg:NA Preferences=[allIntButFP] BB11 regmask=[rdx] minReg=1> PUTARG_REG BB11 regmask=[rdx] minReg=1 fixed> DefList: { N187.t241. PUTARG_REG } N189 ( 3, 2) [000109] ------------ * LCL_VAR ref V11 arg11 u:1 NA REG NA $84 DefList: { N187.t241. PUTARG_REG } N191 (???,???) [000242] ------------ * PUTARG_REG ref REG rcx BB11 regmask=[rcx] minReg=1> LCL_VAR BB11 regmask=[rcx] minReg=1 last fixed> Setting putarg_reg as a pass-through of a non-last use lclVar Interval 39: ref RefPositions {} physReg:NA Preferences=[allIntButFP] BB11 regmask=[rcx] minReg=1> PUTARG_REG BB11 regmask=[rcx] minReg=1 fixed> Assigning related to DefList: { N187.t241. PUTARG_REG; N191.t242. PUTARG_REG } N193 ( 1, 4) [000243] -c---------- * CNS_INT(h) long 0xd1ffab1e ftn REG NA Contained DefList: { N187.t241. PUTARG_REG; N191.t242. PUTARG_REG } N195 ( 3, 6) [000244] -c---------- * IND long REG NA Contained DefList: { N187.t241. PUTARG_REG; N191.t242. PUTARG_REG } N197 ( 21, 13) [000113] --CXGO------ * CALL r2r_ind bool Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality REG NA $3c2 BB11 regmask=[rdx] minReg=1> BB11 regmask=[rdx] minReg=1 last fixed> BB11 regmask=[rcx] minReg=1> BB11 regmask=[rcx] minReg=1 last fixed> BB11 regmask=[rax] minReg=1> BB11 regmask=[rcx] minReg=1> BB11 regmask=[rdx] minReg=1> BB11 regmask=[r8] minReg=1> BB11 regmask=[r9] minReg=1> BB11 regmask=[r10] minReg=1> BB11 regmask=[r11] minReg=1> Interval 40: bool RefPositions {} physReg:NA Preferences=[allIntButFP] BB11 regmask=[rax] minReg=1> CALL BB11 regmask=[rax] minReg=1 fixed> DefList: { N197.t113. CALL } N199 ( 1, 1) [000116] -c---------- * CNS_INT bool 0 REG NA $40 Contained DefList: { N197.t113. CALL } N201 ( 24, 17) [000117] J--XGO-N-U-- * NE void REG NA $2ac BB11 regmask=[allIntButFP] minReg=1 last> DefList: { } N203 ( 26, 19) [000118] ---XGO------ * JTRUE void REG NA CHECKING LAST USES for BB11, liveout={V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} ============================== use: {V00 V11} def: {} NEW BLOCK BB12 Setting BB11 as the predecessor for determining incoming variable registers of BB12 DefList: { } N207 (???,???) [000229] ------------ * IL_OFFSET void IL offset: 0xab REG NA DefList: { } N209 ( 1, 1) [000119] ------------ * LCL_VAR ref V00 this u:1 NA (last use) REG NA $80 DefList: { } N211 ( 2, 2) [000120] ------------ * RETURN ref REG NA $256 BB12 regmask=[rax] minReg=1> LCL_VAR BB12 regmask=[rax] minReg=1 last fixed> CHECKING LAST USES for BB12, liveout={} ============================== use: {V00} def: {} NEW BLOCK BB13 Setting BB01 as the predecessor for determining incoming variable registers of BB13 DefList: { } N215 (???,???) [000230] ------------ * IL_OFFSET void IL offset: 0x7a REG NA DefList: { } N217 ( 1, 1) [000006] ------------ * LCL_VAR ref V00 this u:1 NA REG NA $80 DefList: { } N219 ( 2, 2) [000209] -c---------- * LEA(b+8) byref REG NA Contained DefList: { } N221 ( 4, 4) [000007] n---GO------ * IND ref REG NA LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> Interval 41: ref RefPositions {} physReg:NA Preferences=[allIntButFP] IND BB13 regmask=[allIntButFP] minReg=1> DefList: { N221.t7. IND } N223 ( 8, 7) [000022] DA--GO------ * STORE_LCL_VAR ref V13 tmp1 d:2 NA REG NA BB13 regmask=[allIntButFP] minReg=1 last> Assigning related to STORE_LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> DefList: { } N225 ( 1, 4) [000245] -c---------- * CNS_INT(h) long 0xd1ffab1e ftn REG NA Contained DefList: { } N227 ( 3, 6) [000246] -c---------- * IND long REG NA Contained DefList: { } N229 ( 14, 5) [000028] --C--------- * CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW REG NA $21b BB13 regmask=[rax] minReg=1> BB13 regmask=[rcx] minReg=1> BB13 regmask=[rdx] minReg=1> BB13 regmask=[r8] minReg=1> BB13 regmask=[r9] minReg=1> BB13 regmask=[r10] minReg=1> BB13 regmask=[r11] minReg=1> Interval 42: ref RefPositions {} physReg:NA Preferences=[allIntButFP] BB13 regmask=[rax] minReg=1> CALL BB13 regmask=[rax] minReg=1 fixed> DefList: { N229.t28. CALL } N231 ( 18, 8) [000030] DA---------- * STORE_LCL_VAR ref V14 tmp2 d:2 NA REG NA BB13 regmask=[allIntButFP] minReg=1 last> Assigning related to STORE_LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> DefList: { } N233 ( 2, 2) [000010] ------------ * LCL_VAR int V03 arg3 u:1 NA (last use) REG NA $c1 DefList: { } N235 ( 3, 4) [000211] ------------ * CAST int <- ubyte <- int REG NA $289 LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> Interval 43: int RefPositions {} physReg:NA Preferences=[allIntButFP] CAST BB13 regmask=[allIntButFP] minReg=1> DefList: { N235.t211. CAST } N237 (???,???) [000247] ------------ * PUTARG_STK [+0x20] void REG NA BB13 regmask=[allIntButFP] minReg=1 last> DefList: { } N239 ( 3, 2) [000011] ------------ * LCL_VAR int V04 arg4 u:1 NA (last use) REG NA $100 DefList: { } N241 ( 4, 4) [000212] ------------ * CAST int <- bool <- int REG NA $28e LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> Interval 44: int RefPositions {} physReg:NA Preferences=[allIntButFP] CAST BB13 regmask=[allIntButFP] minReg=1> DefList: { N241.t212. CAST } N243 (???,???) [000248] ------------ * PUTARG_STK [+0x28] void REG NA BB13 regmask=[allIntButFP] minReg=1 last> DefList: { } N245 ( 3, 2) [000012] ------------ * LCL_VAR ref V05 arg5 u:1 NA (last use) REG NA $82 DefList: { } N247 (???,???) [000249] ------------ * PUTARG_STK [+0x30] void REG NA LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> DefList: { } N249 ( 3, 2) [000013] ------------ * LCL_VAR int V06 arg6 u:1 NA (last use) REG NA $101 DefList: { } N251 ( 4, 4) [000213] ------------ * CAST int <- bool <- int REG NA $295 LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> Interval 45: int RefPositions {} physReg:NA Preferences=[allIntButFP] CAST BB13 regmask=[allIntButFP] minReg=1> DefList: { N251.t213. CAST } N253 (???,???) [000250] ------------ * PUTARG_STK [+0x38] void REG NA BB13 regmask=[allIntButFP] minReg=1 last> DefList: { } N255 ( 3, 2) [000014] ------------ * LCL_VAR int V07 arg7 u:1 NA (last use) REG NA $102 DefList: { } N257 ( 4, 4) [000214] ------------ * CAST int <- bool <- int REG NA $29a LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> Interval 46: int RefPositions {} physReg:NA Preferences=[allIntButFP] CAST BB13 regmask=[allIntButFP] minReg=1> DefList: { N257.t214. CAST } N259 (???,???) [000251] ------------ * PUTARG_STK [+0x40] void REG NA BB13 regmask=[allIntButFP] minReg=1 last> DefList: { } N261 ( 3, 2) [000015] ------------ * LCL_VAR int V08 arg8 u:1 NA (last use) REG NA $103 DefList: { } N263 ( 4, 4) [000215] ------------ * CAST int <- bool <- int REG NA $29f LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> Interval 47: int RefPositions {} physReg:NA Preferences=[allIntButFP] CAST BB13 regmask=[allIntButFP] minReg=1> DefList: { N263.t215. CAST } N265 (???,???) [000252] ------------ * PUTARG_STK [+0x48] void REG NA BB13 regmask=[allIntButFP] minReg=1 last> DefList: { } N267 ( 3, 2) [000016] ------------ * LCL_VAR int V09 arg9 u:1 NA (last use) REG NA $104 DefList: { } N269 ( 4, 4) [000216] ------------ * CAST int <- bool <- int REG NA $2a4 LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> Interval 48: int RefPositions {} physReg:NA Preferences=[allIntButFP] CAST BB13 regmask=[allIntButFP] minReg=1> DefList: { N269.t216. CAST } N271 (???,???) [000253] ------------ * PUTARG_STK [+0x50] void REG NA BB13 regmask=[allIntButFP] minReg=1 last> DefList: { } N273 ( 3, 2) [000017] ------------ * LCL_VAR ref V10 arg10 u:1 NA (last use) REG NA $83 DefList: { } N275 (???,???) [000254] ------------ * PUTARG_STK [+0x58] void REG NA LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> DefList: { } N277 ( 3, 2) [000018] ------------ * LCL_VAR ref V11 arg11 u:1 NA (last use) REG NA $84 DefList: { } N279 (???,???) [000255] ------------ * PUTARG_STK [+0x60] void REG NA LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> DefList: { } N281 ( 1, 1) [000019] ------------ * LCL_VAR ref V00 this u:1 NA REG NA $80 DefList: { } N283 ( 2, 2) [000218] -c---------- * LEA(b+17) byref REG NA Contained DefList: { } N285 ( 5, 5) [000145] nc--GO------ * IND ubyte REG NA Contained DefList: { } N287 ( 1, 1) [000146] -c---------- * CNS_INT ubyte 1 REG NA $41 Contained DefList: { } N289 ( 12, 9) [000149] N---GO---U-- * TEST_NE int REG NA LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> Interval 49: int RefPositions {} physReg:NA Preferences=[allIntButFP] TEST_NE BB13 regmask=[allIntButFP] minReg=1> DefList: { N289.t149. TEST_NE } N291 (???,???) [000256] ----GO------ * PUTARG_STK [+0x68] void REG NA BB13 regmask=[allIntButFP] minReg=1 last> DefList: { } N293 ( 2, 2) [000009] ------------ * LCL_VAR int V02 arg2 u:1 NA (last use) REG NA $c0 DefList: { } N295 ( 3, 4) [000210] ------------ * CAST int <- ubyte <- int REG NA $284 LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> Interval 50: int RefPositions {} physReg:NA Preferences=[allIntButFP] CAST BB13 regmask=[allIntButFP] minReg=1> DefList: { N295.t210. CAST } N297 (???,???) [000257] ------------ * PUTARG_REG int REG r9 BB13 regmask=[r9] minReg=1> BB13 regmask=[r9] minReg=1 last fixed> Interval 51: int RefPositions {} physReg:NA Preferences=[allIntButFP] BB13 regmask=[r9] minReg=1> PUTARG_REG BB13 regmask=[r9] minReg=1 fixed> DefList: { N297.t257. PUTARG_REG } N299 ( 3, 2) [000031] ------------ * LCL_VAR ref V14 tmp2 u:2 NA REG NA $21b DefList: { N297.t257. PUTARG_REG } N301 (???,???) [000258] ------------ * PUTARG_REG ref REG rcx BB13 regmask=[rcx] minReg=1> LCL_VAR BB13 regmask=[rcx] minReg=1 last fixed> Setting putarg_reg as a pass-through of a non-last use lclVar Interval 52: ref RefPositions {} physReg:NA Preferences=[allIntButFP] BB13 regmask=[rcx] minReg=1> PUTARG_REG BB13 regmask=[rcx] minReg=1 fixed> Assigning related to DefList: { N297.t257. PUTARG_REG; N301.t258. PUTARG_REG } N303 ( 3, 2) [000023] ------------ * LCL_VAR ref V13 tmp1 u:2 NA (last use) REG NA DefList: { N297.t257. PUTARG_REG; N301.t258. PUTARG_REG } N305 (???,???) [000259] ------------ * PUTARG_REG ref REG rdx BB13 regmask=[rdx] minReg=1> LCL_VAR BB13 regmask=[rdx] minReg=1 last fixed> Interval 53: ref RefPositions {} physReg:NA Preferences=[allIntButFP] BB13 regmask=[rdx] minReg=1> PUTARG_REG BB13 regmask=[rdx] minReg=1 fixed> DefList: { N297.t257. PUTARG_REG; N301.t258. PUTARG_REG; N305.t259. PUTARG_REG } N307 ( 1, 1) [000008] ------------ * LCL_VAR ref V01 arg1 u:1 NA (last use) REG NA $81 DefList: { N297.t257. PUTARG_REG; N301.t258. PUTARG_REG; N305.t259. PUTARG_REG } N309 (???,???) [000260] ------------ * PUTARG_REG ref REG r8 BB13 regmask=[r8] minReg=1> LCL_VAR BB13 regmask=[r8] minReg=1 last fixed> Interval 54: ref RefPositions {} physReg:NA Preferences=[allIntButFP] BB13 regmask=[r8] minReg=1> PUTARG_REG BB13 regmask=[r8] minReg=1 fixed> DefList: { N297.t257. PUTARG_REG; N301.t258. PUTARG_REG; N305.t259. PUTARG_REG; N309.t260. PUTARG_REG } N311 ( 1, 4) [000261] -c---------- * CNS_INT(h) long 0xd1ffab1e ftn REG NA Contained DefList: { N297.t257. PUTARG_REG; N301.t258. PUTARG_REG; N305.t259. PUTARG_REG; N309.t260. PUTARG_REG } N313 ( 3, 6) [000262] -c---------- * IND long REG NA Contained DefList: { N297.t257. PUTARG_REG; N301.t258. PUTARG_REG; N305.t259. PUTARG_REG; N309.t260. PUTARG_REG } N315 ( 98, 58) [000032] --CXGO------ * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor REG NA $VN.Void BB13 regmask=[r9] minReg=1> BB13 regmask=[r9] minReg=1 last fixed> BB13 regmask=[rcx] minReg=1> BB13 regmask=[rcx] minReg=1 last fixed> BB13 regmask=[rdx] minReg=1> BB13 regmask=[rdx] minReg=1 last fixed> BB13 regmask=[r8] minReg=1> BB13 regmask=[r8] minReg=1 last fixed> BB13 regmask=[rax] minReg=1> BB13 regmask=[rcx] minReg=1> BB13 regmask=[rdx] minReg=1> BB13 regmask=[r8] minReg=1> BB13 regmask=[r9] minReg=1> BB13 regmask=[r10] minReg=1> BB13 regmask=[r11] minReg=1> DefList: { } N317 ( 1, 1) [000035] ------------ * LCL_VAR ref V00 this u:1 NA (last use) REG NA $80 DefList: { } N319 ( 2, 2) [000224] -c---------- * LEA(b+17) byref REG NA Contained DefList: { } N321 ( 5, 5) [000151] nc--GO------ * IND ubyte REG NA Contained DefList: { } N323 ( 1, 1) [000152] -c---------- * CNS_INT ubyte 2 REG NA $42 Contained DefList: { } N325 ( 12, 9) [000155] N---GO---U-- * TEST_NE int REG NA LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> Interval 55: int RefPositions {} physReg:NA Preferences=[allIntButFP] TEST_NE BB13 regmask=[allIntButFP] minReg=1> DefList: { N325.t155. TEST_NE } N327 ( 16, 12) [000171] DA--GO------ * STORE_LCL_VAR int V15 tmp3 d:2 NA REG NA BB13 regmask=[allIntButFP] minReg=1 last> Assigning related to STORE_LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> DefList: { } N329 ( 3, 2) [000158] ------------ * LCL_VAR int V15 tmp3 u:2 NA (last use) REG NA DefList: { } N331 ( 1, 1) [000159] -c---------- * CNS_INT int 0 REG NA $40 Contained DefList: { } N333 ( 5, 4) [000160] J------N---- * EQ void REG NA LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> DefList: { } N335 ( 7, 6) [000161] ------------ * JTRUE void REG NA CHECKING LAST USES for BB13, liveout={V14} ============================== use: {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} def: {V13 V14 V15} NEW BLOCK BB14 Setting BB13 as the predecessor for determining incoming variable registers of BB14 DefList: { } N339 ( 3, 2) [000162] -c---------- * LCL_VAR ref V14 tmp2 u:2 NA REG NA $21b Contained DefList: { } N341 ( 4, 3) [000228] -c---------- * LEA(b+17) byref REG NA Contained DefList: { } N343 ( 7, 6) [000163] nc--GO------ * IND ubyte REG NA Contained DefList: { } N345 ( 1, 1) [000164] -c---------- * CNS_INT int 2 REG NA $42 Contained DefList: { } N347 ( 9, 8) [000165] -c--GO------ * OR int REG NA Contained DefList: { } N349 ( 3, 2) [000034] ------------ * LCL_VAR ref V14 tmp2 u:2 NA REG NA $21b DefList: { } N351 ( 4, 3) [000226] -c---------- * LEA(b+17) byref REG NA Contained DefList: { } N353 (???,???) [000231] -A--GO------ * STOREIND ubyte REG NA LCL_VAR BB14 regmask=[allIntButFP] minReg=1 last> CHECKING LAST USES for BB14, liveout={V14} ============================== use: {V14} def: {} NEW BLOCK BB15 Setting BB13 as the predecessor for determining incoming variable registers of BB15 DefList: { } N357 (???,???) [000232] ------------ * IL_OFFSET void IL offset: 0xaa REG NA DefList: { } N359 ( 3, 2) [000033] ------------ * LCL_VAR ref V14 tmp2 u:2 NA (last use) REG NA $21b DefList: { } N361 ( 4, 3) [000040] ------------ * RETURN ref REG NA $255 BB15 regmask=[rax] minReg=1> LCL_VAR BB15 regmask=[rax] minReg=1 last fixed> CHECKING LAST USES for BB15, liveout={} ============================== use: {V14} def: {} Linear scan intervals BEFORE VALIDATING INTERVALS: Interval 0: (V00) ref RefPositions {#0@0 #14@11 #18@25 #25@41 #32@57 #37@69 #64@99 #71@115 #78@131 #85@147 #90@159 #115@185 #141@211 #143@221 #179@289 #215@325} physReg:rcx Preferences=[rbx rsi rdi r12-r15] Interval 1: (V01) ref RefPositions {#1@0 #13@11 #197@309} physReg:rdx Preferences=[rbx rsi rdi r12-r15] Interval 2: (V02) int RefPositions {#2@0 #16@19 #182@295} physReg:r8 Preferences=[rbx rsi rdi r12-r15] Interval 3: (V03) int RefPositions {#3@0 #23@35 #158@235} physReg:r9 Preferences=[rbx rsi rdi r12-r15] Interval 4: (V04) int RefPositions {#7@0 #30@51 #161@241} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 5: (V05) ref RefPositions {#4@0 #44@75 #164@247} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 6: (V06) int RefPositions {#8@0 #62@93 #165@251} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 7: (V07) int RefPositions {#9@0 #69@109 #168@257} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 8: (V08) int RefPositions {#10@0 #76@125 #171@263} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 9: (V09) int RefPositions {#11@0 #83@141 #174@269} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 10: (V10) ref RefPositions {#5@0 #97@165 #177@275} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 11: (V11) ref RefPositions {#6@0 #122@191 #178@279} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 12: (V13) ref RefPositions {#146@224 #193@305} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 13: (V14) ref RefPositions {#157@232 #189@301 #221@353 #224@361} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 14: (V15) int RefPositions {#218@328 #219@333} physReg:NA Preferences=[allIntButFP] Interval 15: int RefPositions {#17@20 #20@27} physReg:NA Preferences=[allIntButFP] Interval 16: ubyte RefPositions {#19@26 #21@27} physReg:NA Preferences=[allIntButFP] Interval 17: int RefPositions {#24@36 #27@43} physReg:NA Preferences=[allIntButFP] Interval 18: ubyte RefPositions {#26@42 #28@43} physReg:NA Preferences=[allIntButFP] Interval 19: int RefPositions {#31@52 #34@59} physReg:NA Preferences=[allIntButFP] Interval 20: bool RefPositions {#33@58 #35@59} physReg:NA Preferences=[allIntButFP] Interval 21: ref RefPositions {#38@70 #40@71} physReg:NA Preferences=[rdx] Interval 22: ref RefPositions {#42@72 #48@81} physReg:NA Preferences=[rdx] Interval 23: ref (specialPutArg) RefPositions {#46@76 #50@81} physReg:NA Preferences=[rcx] RelatedInterval Interval 24: bool RefPositions {#59@82 #60@85} physReg:NA Preferences=[rax] Interval 25: int RefPositions {#63@94 #66@101} physReg:NA Preferences=[allIntButFP] Interval 26: bool RefPositions {#65@100 #67@101} physReg:NA Preferences=[allIntButFP] Interval 27: int RefPositions {#70@110 #73@117} physReg:NA Preferences=[allIntButFP] Interval 28: bool RefPositions {#72@116 #74@117} physReg:NA Preferences=[allIntButFP] Interval 29: int RefPositions {#77@126 #80@133} physReg:NA Preferences=[allIntButFP] Interval 30: bool RefPositions {#79@132 #81@133} physReg:NA Preferences=[allIntButFP] Interval 31: int RefPositions {#84@142 #87@149} physReg:NA Preferences=[allIntButFP] Interval 32: bool RefPositions {#86@148 #88@149} physReg:NA Preferences=[allIntButFP] Interval 33: ref RefPositions {#91@160 #93@161} physReg:NA Preferences=[rdx] Interval 34: ref RefPositions {#95@162 #101@171} physReg:NA Preferences=[rdx] Interval 35: ref (specialPutArg) RefPositions {#99@166 #103@171} physReg:NA Preferences=[rcx] RelatedInterval Interval 36: bool RefPositions {#112@172 #113@175} physReg:NA Preferences=[rax] Interval 37: ref RefPositions {#116@186 #118@187} physReg:NA Preferences=[rdx] Interval 38: ref RefPositions {#120@188 #126@197} physReg:NA Preferences=[rdx] Interval 39: ref (specialPutArg) RefPositions {#124@192 #128@197} physReg:NA Preferences=[rcx] RelatedInterval Interval 40: bool RefPositions {#137@198 #138@201} physReg:NA Preferences=[rax] Interval 41: ref RefPositions {#144@222 #145@223} physReg:NA Preferences=[allIntButFP] RelatedInterval Interval 42: ref RefPositions {#155@230 #156@231} physReg:NA Preferences=[rax] RelatedInterval Interval 43: int RefPositions {#159@236 #160@237} physReg:NA Preferences=[allIntButFP] Interval 44: int RefPositions {#162@242 #163@243} physReg:NA Preferences=[allIntButFP] Interval 45: int RefPositions {#166@252 #167@253} physReg:NA Preferences=[allIntButFP] Interval 46: int RefPositions {#169@258 #170@259} physReg:NA Preferences=[allIntButFP] Interval 47: int RefPositions {#172@264 #173@265} physReg:NA Preferences=[allIntButFP] Interval 48: int RefPositions {#175@270 #176@271} physReg:NA Preferences=[allIntButFP] Interval 49: int RefPositions {#180@290 #181@291} physReg:NA Preferences=[allIntButFP] Interval 50: int RefPositions {#183@296 #185@297} physReg:NA Preferences=[r9] Interval 51: int RefPositions {#187@298 #201@315} physReg:NA Preferences=[r9] Interval 52: ref (specialPutArg) RefPositions {#191@302 #203@315} physReg:NA Preferences=[rcx] RelatedInterval Interval 53: ref RefPositions {#195@306 #205@315} physReg:NA Preferences=[rdx] Interval 54: ref RefPositions {#199@310 #207@315} physReg:NA Preferences=[r8] Interval 55: int RefPositions {#216@326 #217@327} physReg:NA Preferences=[allIntButFP] RelatedInterval ------------ REFPOSITIONS BEFORE VALIDATING INTERVALS: ------------ BB00 regmask=[rcx] minReg=1 fixed regOptional> BB00 regmask=[rdx] minReg=1 fixed regOptional> BB00 regmask=[r8] minReg=1 fixed regOptional> BB00 regmask=[r9] minReg=1 fixed regOptional> BB00 regmask=[allIntButFP] minReg=1 regOptional> BB00 regmask=[allIntButFP] minReg=1 regOptional> BB00 regmask=[allIntButFP] minReg=1 regOptional> BB00 regmask=[allIntButFP] minReg=1 regOptional> BB00 regmask=[allIntButFP] minReg=1 regOptional> BB00 regmask=[allIntButFP] minReg=1 regOptional> BB00 regmask=[allIntButFP] minReg=1 regOptional> BB00 regmask=[allIntButFP] minReg=1 regOptional> LCL_VAR BB01 regmask=[allIntButFP] minReg=1> LCL_VAR BB01 regmask=[allIntButFP] minReg=1> LCL_VAR BB02 regmask=[allIntButFP] minReg=1> CAST BB02 regmask=[allIntButFP] minReg=1> LCL_VAR BB02 regmask=[allIntButFP] minReg=1> IND BB02 regmask=[allIntButFP] minReg=1> BB02 regmask=[allIntButFP] minReg=1 last> BB02 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB03 regmask=[allIntButFP] minReg=1> CAST BB03 regmask=[allIntButFP] minReg=1> LCL_VAR BB03 regmask=[allIntButFP] minReg=1> IND BB03 regmask=[allIntButFP] minReg=1> BB03 regmask=[allIntButFP] minReg=1 last> BB03 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB04 regmask=[allIntButFP] minReg=1> CAST BB04 regmask=[allIntButFP] minReg=1> LCL_VAR BB04 regmask=[allIntButFP] minReg=1> IND BB04 regmask=[allIntButFP] minReg=1> BB04 regmask=[allIntButFP] minReg=1 last> BB04 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB05 regmask=[allIntButFP] minReg=1> IND BB05 regmask=[rdx] minReg=1> BB05 regmask=[rdx] minReg=1> BB05 regmask=[rdx] minReg=1 last fixed> BB05 regmask=[rdx] minReg=1> PUTARG_REG BB05 regmask=[rdx] minReg=1 fixed> BB05 regmask=[rcx] minReg=1> LCL_VAR BB05 regmask=[rcx] minReg=1 fixed> BB05 regmask=[rcx] minReg=1> PUTARG_REG BB05 regmask=[rcx] minReg=1 fixed> BB05 regmask=[rdx] minReg=1> BB05 regmask=[rdx] minReg=1 last fixed> BB05 regmask=[rcx] minReg=1> BB05 regmask=[rcx] minReg=1 last fixed> BB05 regmask=[rax] minReg=1 last> BB05 regmask=[rcx] minReg=1 last> BB05 regmask=[rdx] minReg=1 last> BB05 regmask=[r8] minReg=1 last> BB05 regmask=[r9] minReg=1 last> BB05 regmask=[r10] minReg=1 last> BB05 regmask=[r11] minReg=1 last> BB05 regmask=[rax] minReg=1> CALL BB05 regmask=[rax] minReg=1 fixed> BB05 regmask=[allIntButFP] minReg=1 last regOptional> LCL_VAR BB06 regmask=[allIntButFP] minReg=1> CAST BB06 regmask=[allIntButFP] minReg=1> LCL_VAR BB06 regmask=[allIntButFP] minReg=1> IND BB06 regmask=[allIntButFP] minReg=1> BB06 regmask=[allIntButFP] minReg=1 last> BB06 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB07 regmask=[allIntButFP] minReg=1> CAST BB07 regmask=[allIntButFP] minReg=1> LCL_VAR BB07 regmask=[allIntButFP] minReg=1> IND BB07 regmask=[allIntButFP] minReg=1> BB07 regmask=[allIntButFP] minReg=1 last> BB07 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB08 regmask=[allIntButFP] minReg=1> CAST BB08 regmask=[allIntButFP] minReg=1> LCL_VAR BB08 regmask=[allIntButFP] minReg=1> IND BB08 regmask=[allIntButFP] minReg=1> BB08 regmask=[allIntButFP] minReg=1 last> BB08 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB09 regmask=[allIntButFP] minReg=1> CAST BB09 regmask=[allIntButFP] minReg=1> LCL_VAR BB09 regmask=[allIntButFP] minReg=1> IND BB09 regmask=[allIntButFP] minReg=1> BB09 regmask=[allIntButFP] minReg=1 last> BB09 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB10 regmask=[allIntButFP] minReg=1> IND BB10 regmask=[rdx] minReg=1> BB10 regmask=[rdx] minReg=1> BB10 regmask=[rdx] minReg=1 last fixed> BB10 regmask=[rdx] minReg=1> PUTARG_REG BB10 regmask=[rdx] minReg=1 fixed> BB10 regmask=[rcx] minReg=1> LCL_VAR BB10 regmask=[rcx] minReg=1 fixed> BB10 regmask=[rcx] minReg=1> PUTARG_REG BB10 regmask=[rcx] minReg=1 fixed> BB10 regmask=[rdx] minReg=1> BB10 regmask=[rdx] minReg=1 last fixed> BB10 regmask=[rcx] minReg=1> BB10 regmask=[rcx] minReg=1 last fixed> BB10 regmask=[rax] minReg=1 last> BB10 regmask=[rcx] minReg=1 last> BB10 regmask=[rdx] minReg=1 last> BB10 regmask=[r8] minReg=1 last> BB10 regmask=[r9] minReg=1 last> BB10 regmask=[r10] minReg=1 last> BB10 regmask=[r11] minReg=1 last> BB10 regmask=[rax] minReg=1> CALL BB10 regmask=[rax] minReg=1 fixed> BB10 regmask=[allIntButFP] minReg=1 last regOptional> LCL_VAR BB11 regmask=[allIntButFP] minReg=1> IND BB11 regmask=[rdx] minReg=1> BB11 regmask=[rdx] minReg=1> BB11 regmask=[rdx] minReg=1 last fixed> BB11 regmask=[rdx] minReg=1> PUTARG_REG BB11 regmask=[rdx] minReg=1 fixed> BB11 regmask=[rcx] minReg=1> LCL_VAR BB11 regmask=[rcx] minReg=1 fixed> BB11 regmask=[rcx] minReg=1> PUTARG_REG BB11 regmask=[rcx] minReg=1 fixed> BB11 regmask=[rdx] minReg=1> BB11 regmask=[rdx] minReg=1 last fixed> BB11 regmask=[rcx] minReg=1> BB11 regmask=[rcx] minReg=1 last fixed> BB11 regmask=[rax] minReg=1 last> BB11 regmask=[rcx] minReg=1 last> BB11 regmask=[rdx] minReg=1 last> BB11 regmask=[r8] minReg=1 last> BB11 regmask=[r9] minReg=1 last> BB11 regmask=[r10] minReg=1 last> BB11 regmask=[r11] minReg=1 last> BB11 regmask=[rax] minReg=1> CALL BB11 regmask=[rax] minReg=1 fixed> BB11 regmask=[allIntButFP] minReg=1 last regOptional> BB12 regmask=[rax] minReg=1> LCL_VAR BB12 regmask=[rax] minReg=1 last fixed> LCL_VAR BB13 regmask=[allIntButFP] minReg=1> IND BB13 regmask=[allIntButFP] minReg=1> BB13 regmask=[allIntButFP] minReg=1 last> STORE_LCL_VAR BB13 regmask=[allIntButFP] minReg=1> BB13 regmask=[rax] minReg=1 last> BB13 regmask=[rcx] minReg=1 last> BB13 regmask=[rdx] minReg=1 last> BB13 regmask=[r8] minReg=1 last> BB13 regmask=[r9] minReg=1 last> BB13 regmask=[r10] minReg=1 last> BB13 regmask=[r11] minReg=1 last> BB13 regmask=[rax] minReg=1> CALL BB13 regmask=[rax] minReg=1 fixed> BB13 regmask=[allIntButFP] minReg=1 last> STORE_LCL_VAR BB13 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> CAST BB13 regmask=[allIntButFP] minReg=1> BB13 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> CAST BB13 regmask=[allIntButFP] minReg=1> BB13 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> CAST BB13 regmask=[allIntButFP] minReg=1> BB13 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> CAST BB13 regmask=[allIntButFP] minReg=1> BB13 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> CAST BB13 regmask=[allIntButFP] minReg=1> BB13 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> CAST BB13 regmask=[allIntButFP] minReg=1> BB13 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1> TEST_NE BB13 regmask=[allIntButFP] minReg=1> BB13 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> CAST BB13 regmask=[r9] minReg=1> BB13 regmask=[r9] minReg=1> BB13 regmask=[r9] minReg=1 last fixed> BB13 regmask=[r9] minReg=1> PUTARG_REG BB13 regmask=[r9] minReg=1 fixed> BB13 regmask=[rcx] minReg=1> LCL_VAR BB13 regmask=[rcx] minReg=1 fixed> BB13 regmask=[rcx] minReg=1> PUTARG_REG BB13 regmask=[rcx] minReg=1 fixed> BB13 regmask=[rdx] minReg=1> LCL_VAR BB13 regmask=[rdx] minReg=1 last fixed> BB13 regmask=[rdx] minReg=1> PUTARG_REG BB13 regmask=[rdx] minReg=1 fixed> BB13 regmask=[r8] minReg=1> LCL_VAR BB13 regmask=[r8] minReg=1 last fixed> BB13 regmask=[r8] minReg=1> PUTARG_REG BB13 regmask=[r8] minReg=1 fixed> BB13 regmask=[r9] minReg=1> BB13 regmask=[r9] minReg=1 last fixed> BB13 regmask=[rcx] minReg=1> BB13 regmask=[rcx] minReg=1 last fixed> BB13 regmask=[rdx] minReg=1> BB13 regmask=[rdx] minReg=1 last fixed> BB13 regmask=[r8] minReg=1> BB13 regmask=[r8] minReg=1 last fixed> BB13 regmask=[rax] minReg=1 last> BB13 regmask=[rcx] minReg=1 last> BB13 regmask=[rdx] minReg=1 last> BB13 regmask=[r8] minReg=1 last> BB13 regmask=[r9] minReg=1 last> BB13 regmask=[r10] minReg=1 last> BB13 regmask=[r11] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> TEST_NE BB13 regmask=[allIntButFP] minReg=1> BB13 regmask=[allIntButFP] minReg=1 last> STORE_LCL_VAR BB13 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last regOptional> LCL_VAR BB14 regmask=[allIntButFP] minReg=1> BB15 regmask=[rax] minReg=1> LCL_VAR BB15 regmask=[rax] minReg=1 last fixed> ----------------- BB00 regmask=[rcx] minReg=1 fixed regOptional> LCL_VAR BB01 regmask=[allIntButFP] minReg=1> LCL_VAR BB02 regmask=[allIntButFP] minReg=1> LCL_VAR BB03 regmask=[allIntButFP] minReg=1> LCL_VAR BB04 regmask=[allIntButFP] minReg=1> LCL_VAR BB05 regmask=[allIntButFP] minReg=1> LCL_VAR BB06 regmask=[allIntButFP] minReg=1> LCL_VAR BB07 regmask=[allIntButFP] minReg=1> LCL_VAR BB08 regmask=[allIntButFP] minReg=1> LCL_VAR BB09 regmask=[allIntButFP] minReg=1> LCL_VAR BB10 regmask=[allIntButFP] minReg=1> LCL_VAR BB11 regmask=[allIntButFP] minReg=1> LCL_VAR BB12 regmask=[rax] minReg=1 last fixed> LCL_VAR BB13 regmask=[allIntButFP] minReg=1> Update: LocalVar V00: undefined use at 221 LCL_VAR BB13 regmask=[allIntButFP] minReg=1> Update: LocalVar V00: undefined use at 289 LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> Update: LocalVar V00: undefined use at 325 ----------------- BB00 regmask=[rdx] minReg=1 fixed regOptional> LCL_VAR BB01 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[r8] minReg=1 last fixed> ----------------- BB00 regmask=[r8] minReg=1 fixed regOptional> LCL_VAR BB02 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> ----------------- BB00 regmask=[r9] minReg=1 fixed regOptional> LCL_VAR BB03 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> ----------------- STORE_LCL_VAR BB13 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[rcx] minReg=1 fixed> LCL_VAR BB14 regmask=[allIntButFP] minReg=1> LCL_VAR BB15 regmask=[rax] minReg=1 last fixed> ----------------- BB00 regmask=[allIntButFP] minReg=1 regOptional> LCL_VAR BB05 regmask=[rcx] minReg=1 fixed> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> ----------------- BB00 regmask=[allIntButFP] minReg=1 regOptional> LCL_VAR BB10 regmask=[rcx] minReg=1 fixed> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> ----------------- BB00 regmask=[allIntButFP] minReg=1 regOptional> LCL_VAR BB11 regmask=[rcx] minReg=1 fixed> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> ----------------- BB00 regmask=[allIntButFP] minReg=1 regOptional> LCL_VAR BB04 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> ----------------- BB00 regmask=[allIntButFP] minReg=1 regOptional> LCL_VAR BB06 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> ----------------- BB00 regmask=[allIntButFP] minReg=1 regOptional> LCL_VAR BB07 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> ----------------- BB00 regmask=[allIntButFP] minReg=1 regOptional> LCL_VAR BB08 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> ----------------- BB00 regmask=[allIntButFP] minReg=1 regOptional> LCL_VAR BB09 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> ----------------- STORE_LCL_VAR BB13 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[rdx] minReg=1 last fixed> ----------------- STORE_LCL_VAR BB13 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last regOptional> TUPLE STYLE DUMP WITH REF POSITIONS Incoming Parameters: V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09 BB01 [000..009) -> BB13 (cond), preds={} succs={BB02,BB13} ===== N003. V01(L1) N005. V00(L0) N007. LEA(b+32) N009. IND N011. NE Use:(#13) Use:(#14) N013. JTRUE BB02 [009..012) -> BB13 (cond), preds={BB01} succs={BB03,BB13} ===== N017. V02(L2) N019. CAST Use:(#16) Def:(#17) N021. V00(L0) N023. LEA(b+56) N025. IND Use:(#18) Def:(#19) N027. NE Use:(#20) * Use:(#21) * N029. JTRUE BB03 [012..01B) -> BB13 (cond), preds={BB02} succs={BB04,BB13} ===== N033. V03(L3) N035. CAST Use:(#23) Def:(#24) N037. V00(L0) N039. LEA(b+57) N041. IND Use:(#25) Def:(#26) N043. NE Use:(#27) * Use:(#28) * N045. JTRUE BB04 [01B..025) -> BB13 (cond), preds={BB03} succs={BB05,BB13} ===== N049. V04(L4) N051. CAST Use:(#30) Def:(#31) N053. V00(L0) N055. LEA(b+58) N057. IND Use:(#32) Def:(#33) N059. NE Use:(#34) * Use:(#35) * N061. JTRUE BB05 [025..034) -> BB13 (cond), preds={BB04} succs={BB06,BB13} ===== N065. V00(L0) N067. LEA(b+40) N069. IND Use:(#37) Def:(#38) N071. PUTARG_REG Use:(#40) Fixed:rdx(#39) * Def:(#42) rdx N073. V05(L5) N075. PUTARG_REG Use:(#44) Fixed:rcx(#43) Def:(#46) rcx Pref: N077. CNS_INT(h) 0xd1ffab1e ftn N079. IND N081. CALL r2r_ind Use:(#48) Fixed:rdx(#47) * Use:(#50) Fixed:rcx(#49) * Kill: rax rcx rdx r8 r9 r10 r11 Def:(#59) rax N083. CNS_INT 0 N085. NE Use:(#60) * N087. JTRUE BB06 [034..03E) -> BB13 (cond), preds={BB05} succs={BB07,BB13} ===== N091. V06(L6) N093. CAST Use:(#62) Def:(#63) N095. V00(L0) N097. LEA(b+59) N099. IND Use:(#64) Def:(#65) N101. NE Use:(#66) * Use:(#67) * N103. JTRUE BB07 [03E..048) -> BB13 (cond), preds={BB06} succs={BB08,BB13} ===== N107. V07(L7) N109. CAST Use:(#69) Def:(#70) N111. V00(L0) N113. LEA(b+60) N115. IND Use:(#71) Def:(#72) N117. NE Use:(#73) * Use:(#74) * N119. JTRUE BB08 [048..052) -> BB13 (cond), preds={BB07} succs={BB09,BB13} ===== N123. V08(L8) N125. CAST Use:(#76) Def:(#77) N127. V00(L0) N129. LEA(b+61) N131. IND Use:(#78) Def:(#79) N133. NE Use:(#80) * Use:(#81) * N135. JTRUE BB09 [052..05C) -> BB13 (cond), preds={BB08} succs={BB10,BB13} ===== N139. V09(L9) N141. CAST Use:(#83) Def:(#84) N143. V00(L0) N145. LEA(b+62) N147. IND Use:(#85) Def:(#86) N149. NE Use:(#87) * Use:(#88) * N151. JTRUE BB10 [05C..06B) -> BB13 (cond), preds={BB09} succs={BB11,BB13} ===== N155. V00(L0) N157. LEA(b+48) N159. IND Use:(#90) Def:(#91) N161. PUTARG_REG Use:(#93) Fixed:rdx(#92) * Def:(#95) rdx N163. V10(L10) N165. PUTARG_REG Use:(#97) Fixed:rcx(#96) Def:(#99) rcx Pref: N167. CNS_INT(h) 0xd1ffab1e ftn N169. IND N171. CALL r2r_ind Use:(#101) Fixed:rdx(#100) * Use:(#103) Fixed:rcx(#102) * Kill: rax rcx rdx r8 r9 r10 r11 Def:(#112) rax N173. CNS_INT 0 N175. NE Use:(#113) * N177. JTRUE BB11 [06B..07A) -> BB13 (cond), preds={BB10} succs={BB12,BB13} ===== N181. V00(L0) N183. LEA(b+24) N185. IND Use:(#115) Def:(#116) N187. PUTARG_REG Use:(#118) Fixed:rdx(#117) * Def:(#120) rdx N189. V11(L11) N191. PUTARG_REG Use:(#122) Fixed:rcx(#121) Def:(#124) rcx Pref: N193. CNS_INT(h) 0xd1ffab1e ftn N195. IND N197. CALL r2r_ind Use:(#126) Fixed:rdx(#125) * Use:(#128) Fixed:rcx(#127) * Kill: rax rcx rdx r8 r9 r10 r11 Def:(#137) rax N199. CNS_INT 0 N201. NE Use:(#138) * N203. JTRUE BB12 [0AB..0AD) (return), preds={BB11} succs={} ===== N207. IL_OFFSET IL offset: 0xab N209. V00(L0) N211. RETURN Use:(#141) Fixed:rax(#140) * BB13 [000..0AB) -> BB15 (cond), preds={BB01,BB02,BB03,BB04,BB05,BB06,BB07,BB08,BB09,BB10,BB11} succs={BB14,BB15} ===== N215. IL_OFFSET IL offset: 0x7a N217. V00(L0) N219. LEA(b+8) N221. IND Use:(#143) Def:(#144) Pref: N223. V13(L12) Use:(#145) * Def:(#146) N225. CNS_INT(h) 0xd1ffab1e ftn N227. IND N229. CALL help r2r_ind Kill: rax rcx rdx r8 r9 r10 r11 Def:(#155) rax Pref: N231. V14(L13) Use:(#156) * Def:(#157) N233. V03(L3) N235. CAST Use:(#158) * Def:(#159) N237. PUTARG_STK [+0x20] Use:(#160) * N239. V04(L4) N241. CAST Use:(#161) * Def:(#162) N243. PUTARG_STK [+0x28] Use:(#163) * N245. V05(L5) N247. PUTARG_STK [+0x30] Use:(#164) * N249. V06(L6) N251. CAST Use:(#165) * Def:(#166) N253. PUTARG_STK [+0x38] Use:(#167) * N255. V07(L7) N257. CAST Use:(#168) * Def:(#169) N259. PUTARG_STK [+0x40] Use:(#170) * N261. V08(L8) N263. CAST Use:(#171) * Def:(#172) N265. PUTARG_STK [+0x48] Use:(#173) * N267. V09(L9) N269. CAST Use:(#174) * Def:(#175) N271. PUTARG_STK [+0x50] Use:(#176) * N273. V10(L10) N275. PUTARG_STK [+0x58] Use:(#177) * N277. V11(L11) N279. PUTARG_STK [+0x60] Use:(#178) * N281. V00(L0) N283. LEA(b+17) N285. IND N287. CNS_INT 1 N289. TEST_NE Use:(#179) Def:(#180) N291. PUTARG_STK [+0x68] Use:(#181) * N293. V02(L2) N295. CAST Use:(#182) * Def:(#183) N297. PUTARG_REG Use:(#185) Fixed:r9(#184) * Def:(#187) r9 N299. V14(L13) N301. PUTARG_REG Use:(#189) Fixed:rcx(#188) Def:(#191) rcx Pref: N303. V13(L12) N305. PUTARG_REG Use:(#193) Fixed:rdx(#192) * Def:(#195) rdx N307. V01(L1) N309. PUTARG_REG Use:(#197) Fixed:r8(#196) * Def:(#199) r8 N311. CNS_INT(h) 0xd1ffab1e ftn N313. IND N315. CALL r2r_ind Use:(#201) Fixed:r9(#200) * Use:(#203) Fixed:rcx(#202) * Use:(#205) Fixed:rdx(#204) * Use:(#207) Fixed:r8(#206) * Kill: rax rcx rdx r8 r9 r10 r11 N317. V00(L0) N319. LEA(b+17) N321. IND N323. CNS_INT 2 N325. TEST_NE Use:(#215) * Def:(#216) Pref: N327. V15(L14) Use:(#217) * Def:(#218) N329. V15(L14) N331. CNS_INT 0 N333. EQ Use:(#219) * N335. JTRUE BB14 [000..000), preds={BB13} succs={BB15} ===== N339. V14(L13) N341. LEA(b+17) N343. IND N345. CNS_INT 2 N347. OR N349. V14(L13) N351. LEA(b+17) N353. STOREIND Use:(#221) BB15 [000..000) (return), preds={BB13,BB14} succs={} ===== N357. IL_OFFSET IL offset: 0xaa N359. V14(L13) N361. RETURN Use:(#224) Fixed:rax(#223) * Linear scan intervals after buildIntervals: Interval 0: (V00) ref RefPositions {#0@0 #14@11 #18@25 #25@41 #32@57 #37@69 #64@99 #71@115 #78@131 #85@147 #90@159 #115@185 #141@211 #143@221 #179@289 #215@325} physReg:rcx Preferences=[rbx rsi rdi r12-r15] Interval 1: (V01) ref RefPositions {#1@0 #13@11 #197@309} physReg:rdx Preferences=[rbx rsi rdi r12-r15] Interval 2: (V02) int RefPositions {#2@0 #16@19 #182@295} physReg:r8 Preferences=[rbx rsi rdi r12-r15] Interval 3: (V03) int RefPositions {#3@0 #23@35 #158@235} physReg:r9 Preferences=[rbx rsi rdi r12-r15] Interval 4: (V04) int RefPositions {#7@0 #30@51 #161@241} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 5: (V05) ref RefPositions {#4@0 #44@75 #164@247} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 6: (V06) int RefPositions {#8@0 #62@93 #165@251} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 7: (V07) int RefPositions {#9@0 #69@109 #168@257} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 8: (V08) int RefPositions {#10@0 #76@125 #171@263} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 9: (V09) int RefPositions {#11@0 #83@141 #174@269} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 10: (V10) ref RefPositions {#5@0 #97@165 #177@275} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 11: (V11) ref RefPositions {#6@0 #122@191 #178@279} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 12: (V13) ref RefPositions {#146@224 #193@305} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 13: (V14) ref RefPositions {#157@232 #189@301 #221@353 #224@361} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 14: (V15) int RefPositions {#218@328 #219@333} physReg:NA Preferences=[allIntButFP] Interval 15: int RefPositions {#17@20 #20@27} physReg:NA Preferences=[allIntButFP] Interval 16: ubyte RefPositions {#19@26 #21@27} physReg:NA Preferences=[allIntButFP] Interval 17: int RefPositions {#24@36 #27@43} physReg:NA Preferences=[allIntButFP] Interval 18: ubyte RefPositions {#26@42 #28@43} physReg:NA Preferences=[allIntButFP] Interval 19: int RefPositions {#31@52 #34@59} physReg:NA Preferences=[allIntButFP] Interval 20: bool RefPositions {#33@58 #35@59} physReg:NA Preferences=[allIntButFP] Interval 21: ref RefPositions {#38@70 #40@71} physReg:NA Preferences=[rdx] Interval 22: ref RefPositions {#42@72 #48@81} physReg:NA Preferences=[rdx] Interval 23: ref (specialPutArg) RefPositions {#46@76 #50@81} physReg:NA Preferences=[rcx] RelatedInterval Interval 24: bool RefPositions {#59@82 #60@85} physReg:NA Preferences=[rax] Interval 25: int RefPositions {#63@94 #66@101} physReg:NA Preferences=[allIntButFP] Interval 26: bool RefPositions {#65@100 #67@101} physReg:NA Preferences=[allIntButFP] Interval 27: int RefPositions {#70@110 #73@117} physReg:NA Preferences=[allIntButFP] Interval 28: bool RefPositions {#72@116 #74@117} physReg:NA Preferences=[allIntButFP] Interval 29: int RefPositions {#77@126 #80@133} physReg:NA Preferences=[allIntButFP] Interval 30: bool RefPositions {#79@132 #81@133} physReg:NA Preferences=[allIntButFP] Interval 31: int RefPositions {#84@142 #87@149} physReg:NA Preferences=[allIntButFP] Interval 32: bool RefPositions {#86@148 #88@149} physReg:NA Preferences=[allIntButFP] Interval 33: ref RefPositions {#91@160 #93@161} physReg:NA Preferences=[rdx] Interval 34: ref RefPositions {#95@162 #101@171} physReg:NA Preferences=[rdx] Interval 35: ref (specialPutArg) RefPositions {#99@166 #103@171} physReg:NA Preferences=[rcx] RelatedInterval Interval 36: bool RefPositions {#112@172 #113@175} physReg:NA Preferences=[rax] Interval 37: ref RefPositions {#116@186 #118@187} physReg:NA Preferences=[rdx] Interval 38: ref RefPositions {#120@188 #126@197} physReg:NA Preferences=[rdx] Interval 39: ref (specialPutArg) RefPositions {#124@192 #128@197} physReg:NA Preferences=[rcx] RelatedInterval Interval 40: bool RefPositions {#137@198 #138@201} physReg:NA Preferences=[rax] Interval 41: ref RefPositions {#144@222 #145@223} physReg:NA Preferences=[allIntButFP] RelatedInterval Interval 42: ref RefPositions {#155@230 #156@231} physReg:NA Preferences=[rax] RelatedInterval Interval 43: int RefPositions {#159@236 #160@237} physReg:NA Preferences=[allIntButFP] Interval 44: int RefPositions {#162@242 #163@243} physReg:NA Preferences=[allIntButFP] Interval 45: int RefPositions {#166@252 #167@253} physReg:NA Preferences=[allIntButFP] Interval 46: int RefPositions {#169@258 #170@259} physReg:NA Preferences=[allIntButFP] Interval 47: int RefPositions {#172@264 #173@265} physReg:NA Preferences=[allIntButFP] Interval 48: int RefPositions {#175@270 #176@271} physReg:NA Preferences=[allIntButFP] Interval 49: int RefPositions {#180@290 #181@291} physReg:NA Preferences=[allIntButFP] Interval 50: int RefPositions {#183@296 #185@297} physReg:NA Preferences=[r9] Interval 51: int RefPositions {#187@298 #201@315} physReg:NA Preferences=[r9] Interval 52: ref (specialPutArg) RefPositions {#191@302 #203@315} physReg:NA Preferences=[rcx] RelatedInterval Interval 53: ref RefPositions {#195@306 #205@315} physReg:NA Preferences=[rdx] Interval 54: ref RefPositions {#199@310 #207@315} physReg:NA Preferences=[r8] Interval 55: int RefPositions {#216@326 #217@327} physReg:NA Preferences=[allIntButFP] RelatedInterval *************** In LinearScan::allocateRegisters() Linear scan intervals before allocateRegisters: Interval 0: (V00) ref RefPositions {#0@0 #14@11 #18@25 #25@41 #32@57 #37@69 #64@99 #71@115 #78@131 #85@147 #90@159 #115@185 #141@211 #143@221 #179@289 #215@325} physReg:rcx Preferences=[rbx rsi rdi r12-r15] Interval 1: (V01) ref RefPositions {#1@0 #13@11 #197@309} physReg:rdx Preferences=[rbx rsi rdi r12-r15] Interval 2: (V02) int RefPositions {#2@0 #16@19 #182@295} physReg:r8 Preferences=[rbx rsi rdi r12-r15] Interval 3: (V03) int RefPositions {#3@0 #23@35 #158@235} physReg:r9 Preferences=[rbx rsi rdi r12-r15] Interval 4: (V04) int RefPositions {#7@0 #30@51 #161@241} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 5: (V05) ref RefPositions {#4@0 #44@75 #164@247} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 6: (V06) int RefPositions {#8@0 #62@93 #165@251} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 7: (V07) int RefPositions {#9@0 #69@109 #168@257} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 8: (V08) int RefPositions {#10@0 #76@125 #171@263} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 9: (V09) int RefPositions {#11@0 #83@141 #174@269} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 10: (V10) ref RefPositions {#5@0 #97@165 #177@275} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 11: (V11) ref RefPositions {#6@0 #122@191 #178@279} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 12: (V13) ref RefPositions {#146@224 #193@305} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 13: (V14) ref RefPositions {#157@232 #189@301 #221@353 #224@361} physReg:NA Preferences=[rbx rsi rdi r12-r15] Interval 14: (V15) int RefPositions {#218@328 #219@333} physReg:NA Preferences=[allIntButFP] Interval 15: int RefPositions {#17@20 #20@27} physReg:NA Preferences=[allIntButFP] Interval 16: ubyte RefPositions {#19@26 #21@27} physReg:NA Preferences=[allIntButFP] Interval 17: int RefPositions {#24@36 #27@43} physReg:NA Preferences=[allIntButFP] Interval 18: ubyte RefPositions {#26@42 #28@43} physReg:NA Preferences=[allIntButFP] Interval 19: int RefPositions {#31@52 #34@59} physReg:NA Preferences=[allIntButFP] Interval 20: bool RefPositions {#33@58 #35@59} physReg:NA Preferences=[allIntButFP] Interval 21: ref RefPositions {#38@70 #40@71} physReg:NA Preferences=[rdx] Interval 22: ref RefPositions {#42@72 #48@81} physReg:NA Preferences=[rdx] Interval 23: ref (specialPutArg) RefPositions {#46@76 #50@81} physReg:NA Preferences=[rcx] RelatedInterval Interval 24: bool RefPositions {#59@82 #60@85} physReg:NA Preferences=[rax] Interval 25: int RefPositions {#63@94 #66@101} physReg:NA Preferences=[allIntButFP] Interval 26: bool RefPositions {#65@100 #67@101} physReg:NA Preferences=[allIntButFP] Interval 27: int RefPositions {#70@110 #73@117} physReg:NA Preferences=[allIntButFP] Interval 28: bool RefPositions {#72@116 #74@117} physReg:NA Preferences=[allIntButFP] Interval 29: int RefPositions {#77@126 #80@133} physReg:NA Preferences=[allIntButFP] Interval 30: bool RefPositions {#79@132 #81@133} physReg:NA Preferences=[allIntButFP] Interval 31: int RefPositions {#84@142 #87@149} physReg:NA Preferences=[allIntButFP] Interval 32: bool RefPositions {#86@148 #88@149} physReg:NA Preferences=[allIntButFP] Interval 33: ref RefPositions {#91@160 #93@161} physReg:NA Preferences=[rdx] Interval 34: ref RefPositions {#95@162 #101@171} physReg:NA Preferences=[rdx] Interval 35: ref (specialPutArg) RefPositions {#99@166 #103@171} physReg:NA Preferences=[rcx] RelatedInterval Interval 36: bool RefPositions {#112@172 #113@175} physReg:NA Preferences=[rax] Interval 37: ref RefPositions {#116@186 #118@187} physReg:NA Preferences=[rdx] Interval 38: ref RefPositions {#120@188 #126@197} physReg:NA Preferences=[rdx] Interval 39: ref (specialPutArg) RefPositions {#124@192 #128@197} physReg:NA Preferences=[rcx] RelatedInterval Interval 40: bool RefPositions {#137@198 #138@201} physReg:NA Preferences=[rax] Interval 41: ref RefPositions {#144@222 #145@223} physReg:NA Preferences=[allIntButFP] RelatedInterval Interval 42: ref RefPositions {#155@230 #156@231} physReg:NA Preferences=[rax] RelatedInterval Interval 43: int RefPositions {#159@236 #160@237} physReg:NA Preferences=[allIntButFP] Interval 44: int RefPositions {#162@242 #163@243} physReg:NA Preferences=[allIntButFP] Interval 45: int RefPositions {#166@252 #167@253} physReg:NA Preferences=[allIntButFP] Interval 46: int RefPositions {#169@258 #170@259} physReg:NA Preferences=[allIntButFP] Interval 47: int RefPositions {#172@264 #173@265} physReg:NA Preferences=[allIntButFP] Interval 48: int RefPositions {#175@270 #176@271} physReg:NA Preferences=[allIntButFP] Interval 49: int RefPositions {#180@290 #181@291} physReg:NA Preferences=[allIntButFP] Interval 50: int RefPositions {#183@296 #185@297} physReg:NA Preferences=[r9] Interval 51: int RefPositions {#187@298 #201@315} physReg:NA Preferences=[r9] Interval 52: ref (specialPutArg) RefPositions {#191@302 #203@315} physReg:NA Preferences=[rcx] RelatedInterval Interval 53: ref RefPositions {#195@306 #205@315} physReg:NA Preferences=[rdx] Interval 54: ref RefPositions {#199@310 #207@315} physReg:NA Preferences=[r8] Interval 55: int RefPositions {#216@326 #217@327} physReg:NA Preferences=[allIntButFP] RelatedInterval ------------ REFPOSITIONS BEFORE ALLOCATION: ------------ BB00 regmask=[rcx] minReg=1 fixed regOptional> BB00 regmask=[rdx] minReg=1 fixed regOptional> BB00 regmask=[r8] minReg=1 fixed regOptional> BB00 regmask=[r9] minReg=1 fixed regOptional> BB00 regmask=[allIntButFP] minReg=1 regOptional> BB00 regmask=[allIntButFP] minReg=1 regOptional> BB00 regmask=[allIntButFP] minReg=1 regOptional> BB00 regmask=[allIntButFP] minReg=1 regOptional> BB00 regmask=[allIntButFP] minReg=1 regOptional> BB00 regmask=[allIntButFP] minReg=1 regOptional> BB00 regmask=[allIntButFP] minReg=1 regOptional> BB00 regmask=[allIntButFP] minReg=1 regOptional> LCL_VAR BB01 regmask=[allIntButFP] minReg=1> LCL_VAR BB01 regmask=[allIntButFP] minReg=1> LCL_VAR BB02 regmask=[allIntButFP] minReg=1> CAST BB02 regmask=[allIntButFP] minReg=1> LCL_VAR BB02 regmask=[allIntButFP] minReg=1> IND BB02 regmask=[allIntButFP] minReg=1> BB02 regmask=[allIntButFP] minReg=1 last> BB02 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB03 regmask=[allIntButFP] minReg=1> CAST BB03 regmask=[allIntButFP] minReg=1> LCL_VAR BB03 regmask=[allIntButFP] minReg=1> IND BB03 regmask=[allIntButFP] minReg=1> BB03 regmask=[allIntButFP] minReg=1 last> BB03 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB04 regmask=[allIntButFP] minReg=1> CAST BB04 regmask=[allIntButFP] minReg=1> LCL_VAR BB04 regmask=[allIntButFP] minReg=1> IND BB04 regmask=[allIntButFP] minReg=1> BB04 regmask=[allIntButFP] minReg=1 last> BB04 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB05 regmask=[allIntButFP] minReg=1> IND BB05 regmask=[rdx] minReg=1> BB05 regmask=[rdx] minReg=1> BB05 regmask=[rdx] minReg=1 last fixed> BB05 regmask=[rdx] minReg=1> PUTARG_REG BB05 regmask=[rdx] minReg=1 fixed> BB05 regmask=[rcx] minReg=1> LCL_VAR BB05 regmask=[rcx] minReg=1 fixed> BB05 regmask=[rcx] minReg=1> PUTARG_REG BB05 regmask=[rcx] minReg=1 fixed> BB05 regmask=[rdx] minReg=1> BB05 regmask=[rdx] minReg=1 last fixed> BB05 regmask=[rcx] minReg=1> BB05 regmask=[rcx] minReg=1 last fixed> BB05 regmask=[rax] minReg=1 last> BB05 regmask=[rcx] minReg=1 last> BB05 regmask=[rdx] minReg=1 last> BB05 regmask=[r8] minReg=1 last> BB05 regmask=[r9] minReg=1 last> BB05 regmask=[r10] minReg=1 last> BB05 regmask=[r11] minReg=1 last> BB05 regmask=[rax] minReg=1> CALL BB05 regmask=[rax] minReg=1 fixed> BB05 regmask=[allIntButFP] minReg=1 last regOptional> LCL_VAR BB06 regmask=[allIntButFP] minReg=1> CAST BB06 regmask=[allIntButFP] minReg=1> LCL_VAR BB06 regmask=[allIntButFP] minReg=1> IND BB06 regmask=[allIntButFP] minReg=1> BB06 regmask=[allIntButFP] minReg=1 last> BB06 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB07 regmask=[allIntButFP] minReg=1> CAST BB07 regmask=[allIntButFP] minReg=1> LCL_VAR BB07 regmask=[allIntButFP] minReg=1> IND BB07 regmask=[allIntButFP] minReg=1> BB07 regmask=[allIntButFP] minReg=1 last> BB07 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB08 regmask=[allIntButFP] minReg=1> CAST BB08 regmask=[allIntButFP] minReg=1> LCL_VAR BB08 regmask=[allIntButFP] minReg=1> IND BB08 regmask=[allIntButFP] minReg=1> BB08 regmask=[allIntButFP] minReg=1 last> BB08 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB09 regmask=[allIntButFP] minReg=1> CAST BB09 regmask=[allIntButFP] minReg=1> LCL_VAR BB09 regmask=[allIntButFP] minReg=1> IND BB09 regmask=[allIntButFP] minReg=1> BB09 regmask=[allIntButFP] minReg=1 last> BB09 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB10 regmask=[allIntButFP] minReg=1> IND BB10 regmask=[rdx] minReg=1> BB10 regmask=[rdx] minReg=1> BB10 regmask=[rdx] minReg=1 last fixed> BB10 regmask=[rdx] minReg=1> PUTARG_REG BB10 regmask=[rdx] minReg=1 fixed> BB10 regmask=[rcx] minReg=1> LCL_VAR BB10 regmask=[rcx] minReg=1 fixed> BB10 regmask=[rcx] minReg=1> PUTARG_REG BB10 regmask=[rcx] minReg=1 fixed> BB10 regmask=[rdx] minReg=1> BB10 regmask=[rdx] minReg=1 last fixed> BB10 regmask=[rcx] minReg=1> BB10 regmask=[rcx] minReg=1 last fixed> BB10 regmask=[rax] minReg=1 last> BB10 regmask=[rcx] minReg=1 last> BB10 regmask=[rdx] minReg=1 last> BB10 regmask=[r8] minReg=1 last> BB10 regmask=[r9] minReg=1 last> BB10 regmask=[r10] minReg=1 last> BB10 regmask=[r11] minReg=1 last> BB10 regmask=[rax] minReg=1> CALL BB10 regmask=[rax] minReg=1 fixed> BB10 regmask=[allIntButFP] minReg=1 last regOptional> LCL_VAR BB11 regmask=[allIntButFP] minReg=1> IND BB11 regmask=[rdx] minReg=1> BB11 regmask=[rdx] minReg=1> BB11 regmask=[rdx] minReg=1 last fixed> BB11 regmask=[rdx] minReg=1> PUTARG_REG BB11 regmask=[rdx] minReg=1 fixed> BB11 regmask=[rcx] minReg=1> LCL_VAR BB11 regmask=[rcx] minReg=1 fixed> BB11 regmask=[rcx] minReg=1> PUTARG_REG BB11 regmask=[rcx] minReg=1 fixed> BB11 regmask=[rdx] minReg=1> BB11 regmask=[rdx] minReg=1 last fixed> BB11 regmask=[rcx] minReg=1> BB11 regmask=[rcx] minReg=1 last fixed> BB11 regmask=[rax] minReg=1 last> BB11 regmask=[rcx] minReg=1 last> BB11 regmask=[rdx] minReg=1 last> BB11 regmask=[r8] minReg=1 last> BB11 regmask=[r9] minReg=1 last> BB11 regmask=[r10] minReg=1 last> BB11 regmask=[r11] minReg=1 last> BB11 regmask=[rax] minReg=1> CALL BB11 regmask=[rax] minReg=1 fixed> BB11 regmask=[allIntButFP] minReg=1 last regOptional> BB12 regmask=[rax] minReg=1> LCL_VAR BB12 regmask=[rax] minReg=1 last fixed> LCL_VAR BB13 regmask=[allIntButFP] minReg=1> IND BB13 regmask=[allIntButFP] minReg=1> BB13 regmask=[allIntButFP] minReg=1 last> STORE_LCL_VAR BB13 regmask=[allIntButFP] minReg=1> BB13 regmask=[rax] minReg=1 last> BB13 regmask=[rcx] minReg=1 last> BB13 regmask=[rdx] minReg=1 last> BB13 regmask=[r8] minReg=1 last> BB13 regmask=[r9] minReg=1 last> BB13 regmask=[r10] minReg=1 last> BB13 regmask=[r11] minReg=1 last> BB13 regmask=[rax] minReg=1> CALL BB13 regmask=[rax] minReg=1 fixed> BB13 regmask=[allIntButFP] minReg=1 last> STORE_LCL_VAR BB13 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> CAST BB13 regmask=[allIntButFP] minReg=1> BB13 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> CAST BB13 regmask=[allIntButFP] minReg=1> BB13 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> CAST BB13 regmask=[allIntButFP] minReg=1> BB13 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> CAST BB13 regmask=[allIntButFP] minReg=1> BB13 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> CAST BB13 regmask=[allIntButFP] minReg=1> BB13 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> CAST BB13 regmask=[allIntButFP] minReg=1> BB13 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1> TEST_NE BB13 regmask=[allIntButFP] minReg=1> BB13 regmask=[allIntButFP] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> CAST BB13 regmask=[r9] minReg=1> BB13 regmask=[r9] minReg=1> BB13 regmask=[r9] minReg=1 last fixed> BB13 regmask=[r9] minReg=1> PUTARG_REG BB13 regmask=[r9] minReg=1 fixed> BB13 regmask=[rcx] minReg=1> LCL_VAR BB13 regmask=[rcx] minReg=1 fixed> BB13 regmask=[rcx] minReg=1> PUTARG_REG BB13 regmask=[rcx] minReg=1 fixed> BB13 regmask=[rdx] minReg=1> LCL_VAR BB13 regmask=[rdx] minReg=1 last fixed> BB13 regmask=[rdx] minReg=1> PUTARG_REG BB13 regmask=[rdx] minReg=1 fixed> BB13 regmask=[r8] minReg=1> LCL_VAR BB13 regmask=[r8] minReg=1 last fixed> BB13 regmask=[r8] minReg=1> PUTARG_REG BB13 regmask=[r8] minReg=1 fixed> BB13 regmask=[r9] minReg=1> BB13 regmask=[r9] minReg=1 last fixed> BB13 regmask=[rcx] minReg=1> BB13 regmask=[rcx] minReg=1 last fixed> BB13 regmask=[rdx] minReg=1> BB13 regmask=[rdx] minReg=1 last fixed> BB13 regmask=[r8] minReg=1> BB13 regmask=[r8] minReg=1 last fixed> BB13 regmask=[rax] minReg=1 last> BB13 regmask=[rcx] minReg=1 last> BB13 regmask=[rdx] minReg=1 last> BB13 regmask=[r8] minReg=1 last> BB13 regmask=[r9] minReg=1 last> BB13 regmask=[r10] minReg=1 last> BB13 regmask=[r11] minReg=1 last> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> TEST_NE BB13 regmask=[allIntButFP] minReg=1> BB13 regmask=[allIntButFP] minReg=1 last> STORE_LCL_VAR BB13 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last regOptional> LCL_VAR BB14 regmask=[allIntButFP] minReg=1> BB15 regmask=[rax] minReg=1> LCL_VAR BB15 regmask=[rax] minReg=1 last fixed> VAR REFPOSITIONS BEFORE ALLOCATION --- V00 (Interval 0) BB00 regmask=[rcx] minReg=1 fixed regOptional> LCL_VAR BB01 regmask=[allIntButFP] minReg=1> LCL_VAR BB02 regmask=[allIntButFP] minReg=1> LCL_VAR BB03 regmask=[allIntButFP] minReg=1> LCL_VAR BB04 regmask=[allIntButFP] minReg=1> LCL_VAR BB05 regmask=[allIntButFP] minReg=1> LCL_VAR BB06 regmask=[allIntButFP] minReg=1> LCL_VAR BB07 regmask=[allIntButFP] minReg=1> LCL_VAR BB08 regmask=[allIntButFP] minReg=1> LCL_VAR BB09 regmask=[allIntButFP] minReg=1> LCL_VAR BB10 regmask=[allIntButFP] minReg=1> LCL_VAR BB11 regmask=[allIntButFP] minReg=1> LCL_VAR BB12 regmask=[rax] minReg=1 last fixed> LCL_VAR BB13 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> --- V01 (Interval 1) BB00 regmask=[rdx] minReg=1 fixed regOptional> LCL_VAR BB01 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[r8] minReg=1 last fixed> --- V02 (Interval 2) BB00 regmask=[r8] minReg=1 fixed regOptional> LCL_VAR BB02 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> --- V03 (Interval 3) BB00 regmask=[r9] minReg=1 fixed regOptional> LCL_VAR BB03 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> --- V04 (Interval 4) BB00 regmask=[allIntButFP] minReg=1 regOptional> LCL_VAR BB04 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> --- V05 (Interval 5) BB00 regmask=[allIntButFP] minReg=1 regOptional> LCL_VAR BB05 regmask=[rcx] minReg=1 fixed> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> --- V06 (Interval 6) BB00 regmask=[allIntButFP] minReg=1 regOptional> LCL_VAR BB06 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> --- V07 (Interval 7) BB00 regmask=[allIntButFP] minReg=1 regOptional> LCL_VAR BB07 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> --- V08 (Interval 8) BB00 regmask=[allIntButFP] minReg=1 regOptional> LCL_VAR BB08 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> --- V09 (Interval 9) BB00 regmask=[allIntButFP] minReg=1 regOptional> LCL_VAR BB09 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> --- V10 (Interval 10) BB00 regmask=[allIntButFP] minReg=1 regOptional> LCL_VAR BB10 regmask=[rcx] minReg=1 fixed> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> --- V11 (Interval 11) BB00 regmask=[allIntButFP] minReg=1 regOptional> LCL_VAR BB11 regmask=[rcx] minReg=1 fixed> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last> --- V12 --- V13 (Interval 12) STORE_LCL_VAR BB13 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[rdx] minReg=1 last fixed> --- V14 (Interval 13) STORE_LCL_VAR BB13 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[rcx] minReg=1 fixed> LCL_VAR BB14 regmask=[allIntButFP] minReg=1> LCL_VAR BB15 regmask=[rax] minReg=1 last fixed> --- V15 (Interval 14) STORE_LCL_VAR BB13 regmask=[allIntButFP] minReg=1> LCL_VAR BB13 regmask=[allIntButFP] minReg=1 last regOptional> 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, a 'p' if it is a large vector that has been partially spilled, and 'i'if it is inactive. Columns are only printed up to the last 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 |rbp |rsi |rdi |r8 |r9 | --------------------------------+----+----+----+----+----+----+----+----+----+ | |V0 a|V1 a| | | | |V2 a|V3 a| 0.#0 V0 Parm Alloc rsi | | |V1 a| | |V0 a| |V2 a|V3 a| 0.#1 V1 Parm Alloc rdi | | | | | |V0 a|V1 a|V2 a|V3 a| 0.#2 V2 Parm Alloc rbx | | | |V2 a| |V0 a|V1 a| |V3 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r14 | --------------------------------+----+----+----+----+----+----+----+----+----+----+ 0.#3 V3 Parm Alloc r14 | | | |V2 a| |V0 a|V1 a| | |V3 a| 0.#4 V5 Parm LoRef | | | |V2 a| |V0 a|V1 a| | |V3 a| 0.#5 V10 Parm LoRef | | | |V2 a| |V0 a|V1 a| | |V3 a| 0.#6 V11 Parm LoRef | | | |V2 a| |V0 a|V1 a| | |V3 a| 0.#7 V4 Parm LoRef | | | |V2 a| |V0 a|V1 a| | |V3 a| 0.#8 V6 Parm LoRef | | | |V2 a| |V0 a|V1 a| | |V3 a| 0.#9 V7 Parm LoRef | | | |V2 a| |V0 a|V1 a| | |V3 a| 0.#10 V8 Parm LoRef | | | |V2 a| |V0 a|V1 a| | |V3 a| 0.#11 V9 Parm LoRef | | | |V2 a| |V0 a|V1 a| | |V3 a| 1.#12 BB1 PredBB0 | | | |V2 a| |V0 a|V1 a| | |V3 a| 11.#13 V1 Use Keep rdi | | | |V2 a| |V0 a|V1 a| | |V3 a| 11.#14 V0 Use Keep rsi | | | |V2 a| |V0 a|V1 a| | |V3 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r14 | --------------------------------+----+----+----+----+----+----+----+----+----+----+ 15.#15 BB2 PredBB1 | | | |V2 a| |V0 a|V1 a| | |V3 a| 19.#16 V2 Use Keep rbx | | | |V2 a| |V0 a|V1 a| | |V3 a| 20.#17 I15 Def Alloc rdx | | |I15a|V2 a| |V0 a|V1 a| | |V3 a| 25.#18 V0 Use Keep rsi | | |I15a|V2 a| |V0 a|V1 a| | |V3 a| 26.#19 I16 Def Alloc rcx | |I16a|I15a|V2 a| |V0 a|V1 a| | |V3 a| 27.#20 I15 Use * Keep rdx | |I16a|I15a|V2 a| |V0 a|V1 a| | |V3 a| 27.#21 I16 Use * Keep rcx | |I16a|I15a|V2 a| |V0 a|V1 a| | |V3 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r14 | --------------------------------+----+----+----+----+----+----+----+----+----+----+ 31.#22 BB3 PredBB2 | | | |V2 a| |V0 a|V1 a| | |V3 a| 35.#23 V3 Use Keep r14 | | | |V2 a| |V0 a|V1 a| | |V3 a| 36.#24 I17 Def Alloc rdx | | |I17a|V2 a| |V0 a|V1 a| | |V3 a| 41.#25 V0 Use Keep rsi | | |I17a|V2 a| |V0 a|V1 a| | |V3 a| 42.#26 I18 Def Alloc rcx | |I18a|I17a|V2 a| |V0 a|V1 a| | |V3 a| 43.#27 I17 Use * Keep rdx | |I18a|I17a|V2 a| |V0 a|V1 a| | |V3 a| 43.#28 I18 Use * Keep rcx | |I18a|I17a|V2 a| |V0 a|V1 a| | |V3 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r14 | --------------------------------+----+----+----+----+----+----+----+----+----+----+ 47.#29 BB4 PredBB3 | | | |V2 a| |V0 a|V1 a| | |V3 a| 51.#30 V4 Use ReLod NA | | | |V2 a| |V0 a|V1 a| | |V3 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+ Alloc r15 | | | |V2 a| |V0 a|V1 a| | |V3 a|V4 a| 52.#31 I19 Def Alloc rdx | | |I19a|V2 a| |V0 a|V1 a| | |V3 a|V4 a| 57.#32 V0 Use Keep rsi | | |I19a|V2 a| |V0 a|V1 a| | |V3 a|V4 a| 58.#33 I20 Def Alloc rcx | |I20a|I19a|V2 a| |V0 a|V1 a| | |V3 a|V4 a| 59.#34 I19 Use * Keep rdx | |I20a|I19a|V2 a| |V0 a|V1 a| | |V3 a|V4 a| 59.#35 I20 Use * Keep rcx | |I20a|I19a|V2 a| |V0 a|V1 a| | |V3 a|V4 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+ 63.#36 BB5 PredBB4 | | | |V2 a| |V0 a|V1 a| | |V3 a|V4 a| 69.#37 V0 Use Keep rsi | | | |V2 a| |V0 a|V1 a| | |V3 a|V4 a| 70.#38 I21 Def Alloc rdx | | |I21a|V2 a| |V0 a|V1 a| | |V3 a|V4 a| 71.#39 rdx Fixd Keep rdx | | |I21a|V2 a| |V0 a|V1 a| | |V3 a|V4 a| 71.#40 I21 Use * Keep rdx | | |I21a|V2 a| |V0 a|V1 a| | |V3 a|V4 a| 72.#41 rdx Fixd Keep rdx | | | |V2 a| |V0 a|V1 a| | |V3 a|V4 a| 72.#42 I22 Def Alloc rdx | | |I22a|V2 a| |V0 a|V1 a| | |V3 a|V4 a| 75.#43 rcx Fixd Keep rcx | | |I22a|V2 a| |V0 a|V1 a| | |V3 a|V4 a| 75.#44 V5 Use ReLod NA | | |I22a|V2 a| |V0 a|V1 a| | |V3 a|V4 a| Alloc rcx | |V5 a|I22a|V2 a| |V0 a|V1 a| | |V3 a|V4 a| 76.#45 rcx Fixd Keep rcx | |V5 a|I22a|V2 a| |V0 a|V1 a| | |V3 a|V4 a| 76.#46 I23 Def PtArg rcx | |V5 a|I22a|V2 a| |V0 a|V1 a| | |V3 a|V4 a| 81.#47 rdx Fixd Keep rdx | |V5 a|I22a|V2 a| |V0 a|V1 a| | |V3 a|V4 a| 81.#48 I22 Use * Keep rdx | |V5 a|I22a|V2 a| |V0 a|V1 a| | |V3 a|V4 a| 81.#49 rcx Fixd Keep rcx | |V5 a|I22a|V2 a| |V0 a|V1 a| | |V3 a|V4 a| 81.#50 I23 Use * PtArg rcx | |V5 a|I22a|V2 a| |V0 a|V1 a| | |V3 a|V4 a| 82.#51 rax Kill Keep rax | |V5 a| |V2 a| |V0 a|V1 a| | |V3 a|V4 a| 82.#52 rcx Kill Spill rcx | |Busy| |V2 a| |V0 a|V1 a| | |V3 a|V4 a| Keep rcx | | | |V2 a| |V0 a|V1 a| | |V3 a|V4 a| 82.#53 rdx Kill Keep rdx | | | |V2 a| |V0 a|V1 a| | |V3 a|V4 a| 82.#54 r8 Kill Keep r8 | | | |V2 a| |V0 a|V1 a| | |V3 a|V4 a| 82.#55 r9 Kill Keep r9 | | | |V2 a| |V0 a|V1 a| | |V3 a|V4 a| 82.#56 r10 Kill Keep r10 | | | |V2 a| |V0 a|V1 a| | |V3 a|V4 a| 82.#57 r11 Kill Keep r11 | | | |V2 a| |V0 a|V1 a| | |V3 a|V4 a| 82.#58 rax Fixd Keep rax | | | |V2 a| |V0 a|V1 a| | |V3 a|V4 a| 82.#59 I24 Def Alloc rax |I24a| | |V2 a| |V0 a|V1 a| | |V3 a|V4 a| 85.#60 I24 Use * Keep rax |I24a| | |V2 a| |V0 a|V1 a| | |V3 a|V4 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+ 89.#61 BB6 PredBB5 | | | |V2 a| |V0 a|V1 a| | |V3 a|V4 a| 93.#62 V6 Use ReLod NA | | | |V2 a| |V0 a|V1 a| | |V3 a|V4 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+ Alloc r12 | | | |V2 a| |V0 a|V1 a| | |V6 a|V3 a|V4 a| 94.#63 I25 Def Alloc rdx | | |I25a|V2 a| |V0 a|V1 a| | |V6 a|V3 a|V4 a| 99.#64 V0 Use Keep rsi | | |I25a|V2 a| |V0 a|V1 a| | |V6 a|V3 a|V4 a| 100.#65 I26 Def Alloc rcx | |I26a|I25a|V2 a| |V0 a|V1 a| | |V6 a|V3 a|V4 a| 101.#66 I25 Use * Keep rdx | |I26a|I25a|V2 a| |V0 a|V1 a| | |V6 a|V3 a|V4 a| 101.#67 I26 Use * Keep rcx | |I26a|I25a|V2 a| |V0 a|V1 a| | |V6 a|V3 a|V4 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+ 105.#68 BB7 PredBB6 | | | |V2 a| |V0 a|V1 a| | |V6 a|V3 a|V4 a| 109.#69 V7 Use ReLod NA | | | |V2 a| |V0 a|V1 a| | |V6 a|V3 a|V4 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Alloc r13 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 110.#70 I27 Def Alloc rdx | | |I27a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 115.#71 V0 Use Keep rsi | | |I27a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 116.#72 I28 Def Alloc rcx | |I28a|I27a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 117.#73 I27 Use * Keep rdx | |I28a|I27a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 117.#74 I28 Use * Keep rcx | |I28a|I27a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 121.#75 BB8 PredBB7 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 125.#76 V8 Use ReLod NA | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| Alloc rax |V8 a| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 126.#77 I29 Def Alloc rdx |V8 a| |I29a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 131.#78 V0 Use Keep rsi |V8 a| |I29a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 132.#79 I30 Def Alloc rcx |V8 a|I30a|I29a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 133.#80 I29 Use * Keep rdx |V8 a|I30a|I29a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 133.#81 I30 Use * Keep rcx |V8 a|I30a|I29a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 137.#82 BB9 PredBB8 |V8 a| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 141.#83 V9 Use ReLod NA |V8 a| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| Alloc r8 |V8 a| | |V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 142.#84 I31 Def Alloc rdx |V8 a| |I31a|V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 147.#85 V0 Use Keep rsi |V8 a| |I31a|V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 148.#86 I32 Def Alloc rcx |V8 a|I32a|I31a|V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 149.#87 I31 Use * Keep rdx |V8 a|I32a|I31a|V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 149.#88 I32 Use * Keep rcx |V8 a|I32a|I31a|V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 153.#89 BB10 PredBB9 |V8 a| | |V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 159.#90 V0 Use Keep rsi |V8 a| | |V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 160.#91 I33 Def Alloc rdx |V8 a| |I33a|V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 161.#92 rdx Fixd Keep rdx |V8 a| |I33a|V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 161.#93 I33 Use * Keep rdx |V8 a| |I33a|V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 162.#94 rdx Fixd Keep rdx |V8 a| | |V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 162.#95 I34 Def Alloc rdx |V8 a| |I34a|V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 165.#96 rcx Fixd Keep rcx |V8 a| |I34a|V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 165.#97 V10 Use ReLod NA |V8 a| |I34a|V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| Alloc rcx |V8 a|V10a|I34a|V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 166.#98 rcx Fixd Keep rcx |V8 a|V10a|I34a|V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 166.#99 I35 Def PtArg rcx |V8 a|V10a|I34a|V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 171.#100 rdx Fixd Keep rdx |V8 a|V10a|I34a|V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 171.#101 I34 Use * Keep rdx |V8 a|V10a|I34a|V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 171.#102 rcx Fixd Keep rcx |V8 a|V10a|I34a|V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 171.#103 I35 Use * PtArg rcx |V8 a|V10a|I34a|V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 172.#104 rax Kill Spill rax | |V10a| |V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| Keep rax | |V10a| |V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 172.#105 rcx Kill Spill rcx | |Busy| |V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| Keep rcx | | | |V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 172.#106 rdx Kill Keep rdx | | | |V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| 172.#107 r8 Kill Spill r8 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| Keep r8 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 172.#108 r9 Kill Keep r9 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 172.#109 r10 Kill Keep r10 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 172.#110 r11 Kill Keep r11 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 172.#111 rax Fixd Keep rax | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 172.#112 I36 Def Alloc rax |I36a| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 175.#113 I36 Use * Keep rax |I36a| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 179.#114 BB11 PredBB10 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 185.#115 V0 Use Keep rsi | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 186.#116 I37 Def Alloc rdx | | |I37a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 187.#117 rdx Fixd Keep rdx | | |I37a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 187.#118 I37 Use * Keep rdx | | |I37a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 188.#119 rdx Fixd Keep rdx | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 188.#120 I38 Def Alloc rdx | | |I38a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 191.#121 rcx Fixd Keep rcx | | |I38a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 191.#122 V11 Use ReLod NA | | |I38a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| Alloc rcx | |V11a|I38a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 192.#123 rcx Fixd Keep rcx | |V11a|I38a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 192.#124 I39 Def PtArg rcx | |V11a|I38a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 197.#125 rdx Fixd Keep rdx | |V11a|I38a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 197.#126 I38 Use * Keep rdx | |V11a|I38a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 197.#127 rcx Fixd Keep rcx | |V11a|I38a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 197.#128 I39 Use * PtArg rcx | |V11a|I38a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 198.#129 rax Kill Keep rax | |V11a| |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 198.#130 rcx Kill Spill rcx | |Busy| |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| Keep rcx | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 198.#131 rdx Kill Keep rdx | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 198.#132 r8 Kill Keep r8 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 198.#133 r9 Kill Keep r9 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 198.#134 r10 Kill Keep r10 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 198.#135 r11 Kill Keep r11 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 198.#136 rax Fixd Keep rax | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 198.#137 I40 Def Alloc rax |I40a| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 201.#138 I40 Use * Keep rax |I40a| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 205.#139 BB12 PredBB11 | | | |V2 i| |V0 a|V1 i| | |V6 i|V7 i|V3 i|V4 i| 211.#140 rax Fixd Keep rax | | | |V2 i| |V0 a|V1 i| | |V6 i|V7 i|V3 i|V4 i| 211.#141 V0 Use * Copy rax |V0 a| | |V2 i| |V0 a|V1 i| | |V6 i|V7 i|V3 i|V4 i| --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 213.#142 BB13 PredBB1 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 221.#143 V0 Use Keep rsi | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 222.#144 I41 Def Alloc rax |I41a| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 223.#145 I41 Use * Keep rax |I41a| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 224.#146 V13 Def Alloc rax |V13a| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 230.#147 rax Kill Spill rax | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| Keep rax | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 230.#148 rcx Kill Keep rcx | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 230.#149 rdx Kill Keep rdx | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 230.#150 r8 Kill Keep r8 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 230.#151 r9 Kill Keep r9 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 230.#152 r10 Kill Keep r10 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 230.#153 r11 Kill Keep r11 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 230.#154 rax Fixd Keep rax | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 230.#155 I42 Def Alloc rax |I42a| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 231.#156 I42 Use * Keep rax |I42a| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 232.#157 V14 Def Alloc rax |V14a| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 235.#158 V3 Use * Keep r14 |V14a| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 236.#159 I43 Def Alloc r9 |V14a| | |V2 a| |V0 a|V1 a| |I43a|V6 a|V7 a| |V4 a| 237.#160 I43 Use * Keep r9 |V14a| | |V2 a| |V0 a|V1 a| |I43a|V6 a|V7 a| |V4 a| 241.#161 V4 Use * Keep r15 |V14a| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a| |V4 a| 242.#162 I44 Def Alloc r9 |V14a| | |V2 a| |V0 a|V1 a| |I44a|V6 a|V7 a| | | 243.#163 I44 Use * Keep r9 |V14a| | |V2 a| |V0 a|V1 a| |I44a|V6 a|V7 a| | | 247.#164 V5 Use * ReLod NA |V14a| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a| | | Alloc r14 |V14a| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V5 a| | 251.#165 V6 Use * Keep r12 |V14a| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a| | | 252.#166 I45 Def Alloc r9 |V14a| | |V2 a| |V0 a|V1 a| |I45a| |V7 a| | | 253.#167 I45 Use * Keep r9 |V14a| | |V2 a| |V0 a|V1 a| |I45a| |V7 a| | | 257.#168 V7 Use * Keep r13 |V14a| | |V2 a| |V0 a|V1 a| | | |V7 a| | | 258.#169 I46 Def Alloc r9 |V14a| | |V2 a| |V0 a|V1 a| |I46a| | | | | 259.#170 I46 Use * Keep r9 |V14a| | |V2 a| |V0 a|V1 a| |I46a| | | | | 263.#171 V8 Use * ReLod NA |V14a| | |V2 a| |V0 a|V1 a| | | | | | | Alloc r14 |V14a| | |V2 a| |V0 a|V1 a| | | | |V8 a| | 264.#172 I47 Def Alloc r9 |V14a| | |V2 a| |V0 a|V1 a| |I47a| | | | | 265.#173 I47 Use * Keep r9 |V14a| | |V2 a| |V0 a|V1 a| |I47a| | | | | 269.#174 V9 Use * ReLod NA |V14a| | |V2 a| |V0 a|V1 a| | | | | | | Alloc r14 |V14a| | |V2 a| |V0 a|V1 a| | | | |V9 a| | 270.#175 I48 Def Alloc r9 |V14a| | |V2 a| |V0 a|V1 a| |I48a| | | | | 271.#176 I48 Use * Keep r9 |V14a| | |V2 a| |V0 a|V1 a| |I48a| | | | | 275.#177 V10 Use * ReLod NA |V14a| | |V2 a| |V0 a|V1 a| | | | | | | Alloc r14 |V14a| | |V2 a| |V0 a|V1 a| | | | |V10a| | 279.#178 V11 Use * ReLod NA |V14a| | |V2 a| |V0 a|V1 a| | | | | | | Alloc r14 |V14a| | |V2 a| |V0 a|V1 a| | | | |V11a| | 289.#179 V0 Use Keep rsi |V14a| | |V2 a| |V0 a|V1 a| | | | | | | 290.#180 I49 Def Alloc r9 |V14a| | |V2 a| |V0 a|V1 a| |I49a| | | | | 291.#181 I49 Use * Keep r9 |V14a| | |V2 a| |V0 a|V1 a| |I49a| | | | | 295.#182 V2 Use * Keep rbx |V14a| | |V2 a| |V0 a|V1 a| | | | | | | 296.#183 I50 Def Alloc r9 |V14a| | | | |V0 a|V1 a| |I50a| | | | | 297.#184 r9 Fixd Keep r9 |V14a| | | | |V0 a|V1 a| |I50a| | | | | 297.#185 I50 Use * Keep r9 |V14a| | | | |V0 a|V1 a| |I50a| | | | | 298.#186 r9 Fixd Keep r9 |V14a| | | | |V0 a|V1 a| | | | | | | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 298.#187 I51 Def Alloc r9 |V14a| | | | |V0 a|V1 a| |I51a| | | | | 301.#188 rcx Fixd Keep rcx |V14a| | | | |V0 a|V1 a| |I51a| | | | | 301.#189 V14 Use Copy rcx |V14a|V14a| | | |V0 a|V1 a| |I51a| | | | | 302.#190 rcx Fixd Keep rcx |V14a|V14a| | | |V0 a|V1 a| |I51a| | | | | 302.#191 I52 Def Alloc rcx |V14a|I52a| | | |V0 a|V1 a| |I51a| | | | | 305.#192 rdx Fixd Keep rdx |V14a|I52a| | | |V0 a|V1 a| |I51a| | | | | 305.#193 V13 Use * ReLod NA |V14a|I52a| | | |V0 a|V1 a| |I51a| | | | | Alloc rdx |V14a|I52a|V13a| | |V0 a|V1 a| |I51a| | | | | 306.#194 rdx Fixd Keep rdx |V14a|I52a| | | |V0 a|V1 a| |I51a| | | | | 306.#195 I53 Def Alloc rdx |V14a|I52a|I53a| | |V0 a|V1 a| |I51a| | | | | 309.#196 r8 Fixd Keep r8 |V14a|I52a|I53a| | |V0 a|V1 a| |I51a| | | | | 309.#197 V1 Use * Copy r8 |V14a|I52a|I53a| | |V0 a|V1 a|V1 a|I51a| | | | | 310.#198 r8 Fixd Keep r8 |V14a|I52a|I53a| | |V0 a| | |I51a| | | | | 310.#199 I54 Def Alloc r8 |V14a|I52a|I53a| | |V0 a| |I54a|I51a| | | | | 315.#200 r9 Fixd Keep r9 |V14a|I52a|I53a| | |V0 a| |I54a|I51a| | | | | 315.#201 I51 Use * Keep r9 |V14a|I52a|I53a| | |V0 a| |I54a|I51a| | | | | 315.#202 rcx Fixd Keep rcx |V14a|I52a|I53a| | |V0 a| |I54a|I51a| | | | | 315.#203 I52 Use * Keep rcx |V14a|I52a|I53a| | |V0 a| |I54a|I51a| | | | | 315.#204 rdx Fixd Keep rdx |V14a|I52a|I53a| | |V0 a| |I54a|I51a| | | | | 315.#205 I53 Use * Keep rdx |V14a|I52a|I53a| | |V0 a| |I54a|I51a| | | | | 315.#206 r8 Fixd Keep r8 |V14a|I52a|I53a| | |V0 a| |I54a|I51a| | | | | 315.#207 I54 Use * Keep r8 |V14a|I52a|I53a| | |V0 a| |I54a|I51a| | | | | 316.#208 rax Kill Spill rax | | | | | |V0 a| | | | | | | | Keep rax | | | | | |V0 a| | | | | | | | 316.#209 rcx Kill Keep rcx | | | | | |V0 a| | | | | | | | 316.#210 rdx Kill Keep rdx | | | | | |V0 a| | | | | | | | 316.#211 r8 Kill Keep r8 | | | | | |V0 a| | | | | | | | 316.#212 r9 Kill Keep r9 | | | | | |V0 a| | | | | | | | 316.#213 r10 Kill Keep r10 | | | | | |V0 a| | | | | | | | 316.#214 r11 Kill Keep r11 | | | | | |V0 a| | | | | | | | 325.#215 V0 Use * Keep rsi | | | | | |V0 a| | | | | | | | 326.#216 I55 Def Alloc rax |I55a| | | | | | | | | | | | | 327.#217 I55 Use * Keep rax |I55a| | | | | | | | | | | | | 328.#218 V15 Def Alloc rax |V15a| | | | | | | | | | | | | 333.#219 V15 Use * Keep rax |V15a| | | | | | | | | | | | | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 337.#220 BB14 PredBB13 | | | | | | | | | | | | | | 353.#221 V14 Use ReLod NA | | | | | | | | | | | | | | Alloc rsi | | | | | |V14a| | | | | | | | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 355.#222 BB15 PredBB13 | | | | | |V14a| | | | | | | | 361.#223 rax Fixd Keep rax | | | | | |V14a| | | | | | | | 361.#224 V14 Use * Copy rax | | | | | | | | | | | | | | ------------ REFPOSITIONS AFTER ALLOCATION: ------------ BB00 regmask=[rsi] minReg=1 fixed regOptional> BB00 regmask=[rdi] minReg=1 fixed regOptional> BB00 regmask=[rbx] minReg=1 fixed regOptional> BB00 regmask=[r14] minReg=1 fixed regOptional> BB00 regmask=[] minReg=1 regOptional> BB00 regmask=[] minReg=1 regOptional> BB00 regmask=[] minReg=1 regOptional> BB00 regmask=[] minReg=1 regOptional> BB00 regmask=[] minReg=1 regOptional> BB00 regmask=[] minReg=1 regOptional> BB00 regmask=[] minReg=1 regOptional> BB00 regmask=[] minReg=1 regOptional> LCL_VAR BB01 regmask=[rdi] minReg=1> LCL_VAR BB01 regmask=[rsi] minReg=1> LCL_VAR BB02 regmask=[rbx] minReg=1> CAST BB02 regmask=[rdx] minReg=1> LCL_VAR BB02 regmask=[rsi] minReg=1> IND BB02 regmask=[rcx] minReg=1> BB02 regmask=[rdx] minReg=1 last> BB02 regmask=[rcx] minReg=1 last> LCL_VAR BB03 regmask=[r14] minReg=1> CAST BB03 regmask=[rdx] minReg=1> LCL_VAR BB03 regmask=[rsi] minReg=1> IND BB03 regmask=[rcx] minReg=1> BB03 regmask=[rdx] minReg=1 last> BB03 regmask=[rcx] minReg=1 last> LCL_VAR BB04 regmask=[r15] minReg=1 reload> CAST BB04 regmask=[rdx] minReg=1> LCL_VAR BB04 regmask=[rsi] minReg=1> IND BB04 regmask=[rcx] minReg=1> BB04 regmask=[rdx] minReg=1 last> BB04 regmask=[rcx] minReg=1 last> LCL_VAR BB05 regmask=[rsi] minReg=1> IND BB05 regmask=[rdx] minReg=1> BB05 regmask=[rdx] minReg=1> BB05 regmask=[rdx] minReg=1 last fixed> BB05 regmask=[rdx] minReg=1> PUTARG_REG BB05 regmask=[rdx] minReg=1 fixed> BB05 regmask=[rcx] minReg=1> LCL_VAR BB05 regmask=[rcx] minReg=1 reload spillAfter fixed> BB05 regmask=[rcx] minReg=1> PUTARG_REG BB05 regmask=[rcx] minReg=1 fixed> BB05 regmask=[rdx] minReg=1> BB05 regmask=[rdx] minReg=1 last fixed> BB05 regmask=[rcx] minReg=1> BB05 regmask=[rcx] minReg=1 last fixed> BB05 regmask=[rax] minReg=1 last> BB05 regmask=[rcx] minReg=1 last> BB05 regmask=[rdx] minReg=1 last> BB05 regmask=[r8] minReg=1 last> BB05 regmask=[r9] minReg=1 last> BB05 regmask=[r10] minReg=1 last> BB05 regmask=[r11] minReg=1 last> BB05 regmask=[rax] minReg=1> CALL BB05 regmask=[rax] minReg=1 fixed> BB05 regmask=[rax] minReg=1 last regOptional> LCL_VAR BB06 regmask=[r12] minReg=1 reload> CAST BB06 regmask=[rdx] minReg=1> LCL_VAR BB06 regmask=[rsi] minReg=1> IND BB06 regmask=[rcx] minReg=1> BB06 regmask=[rdx] minReg=1 last> BB06 regmask=[rcx] minReg=1 last> LCL_VAR BB07 regmask=[r13] minReg=1 reload> CAST BB07 regmask=[rdx] minReg=1> LCL_VAR BB07 regmask=[rsi] minReg=1> IND BB07 regmask=[rcx] minReg=1> BB07 regmask=[rdx] minReg=1 last> BB07 regmask=[rcx] minReg=1 last> LCL_VAR BB08 regmask=[rax] minReg=1 reload spillAfter> CAST BB08 regmask=[rdx] minReg=1> LCL_VAR BB08 regmask=[rsi] minReg=1> IND BB08 regmask=[rcx] minReg=1> BB08 regmask=[rdx] minReg=1 last> BB08 regmask=[rcx] minReg=1 last> LCL_VAR BB09 regmask=[r8] minReg=1 reload spillAfter> CAST BB09 regmask=[rdx] minReg=1> LCL_VAR BB09 regmask=[rsi] minReg=1> IND BB09 regmask=[rcx] minReg=1> BB09 regmask=[rdx] minReg=1 last> BB09 regmask=[rcx] minReg=1 last> LCL_VAR BB10 regmask=[rsi] minReg=1> IND BB10 regmask=[rdx] minReg=1> BB10 regmask=[rdx] minReg=1> BB10 regmask=[rdx] minReg=1 last fixed> BB10 regmask=[rdx] minReg=1> PUTARG_REG BB10 regmask=[rdx] minReg=1 fixed> BB10 regmask=[rcx] minReg=1> LCL_VAR BB10 regmask=[rcx] minReg=1 reload spillAfter fixed> BB10 regmask=[rcx] minReg=1> PUTARG_REG BB10 regmask=[rcx] minReg=1 fixed> BB10 regmask=[rdx] minReg=1> BB10 regmask=[rdx] minReg=1 last fixed> BB10 regmask=[rcx] minReg=1> BB10 regmask=[rcx] minReg=1 last fixed> BB10 regmask=[rax] minReg=1 last> BB10 regmask=[rcx] minReg=1 last> BB10 regmask=[rdx] minReg=1 last> BB10 regmask=[r8] minReg=1 last> BB10 regmask=[r9] minReg=1 last> BB10 regmask=[r10] minReg=1 last> BB10 regmask=[r11] minReg=1 last> BB10 regmask=[rax] minReg=1> CALL BB10 regmask=[rax] minReg=1 fixed> BB10 regmask=[rax] minReg=1 last regOptional> LCL_VAR BB11 regmask=[rsi] minReg=1> IND BB11 regmask=[rdx] minReg=1> BB11 regmask=[rdx] minReg=1> BB11 regmask=[rdx] minReg=1 last fixed> BB11 regmask=[rdx] minReg=1> PUTARG_REG BB11 regmask=[rdx] minReg=1 fixed> BB11 regmask=[rcx] minReg=1> LCL_VAR BB11 regmask=[rcx] minReg=1 reload spillAfter fixed> BB11 regmask=[rcx] minReg=1> PUTARG_REG BB11 regmask=[rcx] minReg=1 fixed> BB11 regmask=[rdx] minReg=1> BB11 regmask=[rdx] minReg=1 last fixed> BB11 regmask=[rcx] minReg=1> BB11 regmask=[rcx] minReg=1 last fixed> BB11 regmask=[rax] minReg=1 last> BB11 regmask=[rcx] minReg=1 last> BB11 regmask=[rdx] minReg=1 last> BB11 regmask=[r8] minReg=1 last> BB11 regmask=[r9] minReg=1 last> BB11 regmask=[r10] minReg=1 last> BB11 regmask=[r11] minReg=1 last> BB11 regmask=[rax] minReg=1> CALL BB11 regmask=[rax] minReg=1 fixed> BB11 regmask=[rax] minReg=1 last regOptional> BB12 regmask=[rax] minReg=1> LCL_VAR BB12 regmask=[rax] minReg=1 last copy fixed> LCL_VAR BB13 regmask=[rsi] minReg=1> IND BB13 regmask=[rax] minReg=1> BB13 regmask=[rax] minReg=1 last> STORE_LCL_VAR BB13 regmask=[rax] minReg=1 spillAfter> BB13 regmask=[rax] minReg=1 last> BB13 regmask=[rcx] minReg=1 last> BB13 regmask=[rdx] minReg=1 last> BB13 regmask=[r8] minReg=1 last> BB13 regmask=[r9] minReg=1 last> BB13 regmask=[r10] minReg=1 last> BB13 regmask=[r11] minReg=1 last> BB13 regmask=[rax] minReg=1> CALL BB13 regmask=[rax] minReg=1 fixed> BB13 regmask=[rax] minReg=1 last> STORE_LCL_VAR BB13 regmask=[rax] minReg=1> LCL_VAR BB13 regmask=[r14] minReg=1 last> CAST BB13 regmask=[r9] minReg=1> BB13 regmask=[r9] minReg=1 last> LCL_VAR BB13 regmask=[r15] minReg=1 last> CAST BB13 regmask=[r9] minReg=1> BB13 regmask=[r9] minReg=1 last> LCL_VAR BB13 regmask=[r14] minReg=1 last reload> LCL_VAR BB13 regmask=[r12] minReg=1 last> CAST BB13 regmask=[r9] minReg=1> BB13 regmask=[r9] minReg=1 last> LCL_VAR BB13 regmask=[r13] minReg=1 last> CAST BB13 regmask=[r9] minReg=1> BB13 regmask=[r9] minReg=1 last> LCL_VAR BB13 regmask=[r14] minReg=1 last reload> CAST BB13 regmask=[r9] minReg=1> BB13 regmask=[r9] minReg=1 last> LCL_VAR BB13 regmask=[r14] minReg=1 last reload> CAST BB13 regmask=[r9] minReg=1> BB13 regmask=[r9] minReg=1 last> LCL_VAR BB13 regmask=[r14] minReg=1 last reload> LCL_VAR BB13 regmask=[r14] minReg=1 last reload> LCL_VAR BB13 regmask=[rsi] minReg=1> TEST_NE BB13 regmask=[r9] minReg=1> BB13 regmask=[r9] minReg=1 last> LCL_VAR BB13 regmask=[rbx] minReg=1 last> CAST BB13 regmask=[r9] minReg=1> BB13 regmask=[r9] minReg=1> BB13 regmask=[r9] minReg=1 last fixed> BB13 regmask=[r9] minReg=1> PUTARG_REG BB13 regmask=[r9] minReg=1 fixed> BB13 regmask=[rcx] minReg=1> LCL_VAR BB13 regmask=[rcx] minReg=1 spillAfter copy fixed> BB13 regmask=[rcx] minReg=1> PUTARG_REG BB13 regmask=[rcx] minReg=1 fixed> BB13 regmask=[rdx] minReg=1> LCL_VAR BB13 regmask=[rdx] minReg=1 last reload fixed> BB13 regmask=[rdx] minReg=1> PUTARG_REG BB13 regmask=[rdx] minReg=1 fixed> BB13 regmask=[r8] minReg=1> LCL_VAR BB13 regmask=[r8] minReg=1 last copy fixed> BB13 regmask=[r8] minReg=1> PUTARG_REG BB13 regmask=[r8] minReg=1 fixed> BB13 regmask=[r9] minReg=1> BB13 regmask=[r9] minReg=1 last fixed> BB13 regmask=[rcx] minReg=1> BB13 regmask=[rcx] minReg=1 last fixed> BB13 regmask=[rdx] minReg=1> BB13 regmask=[rdx] minReg=1 last fixed> BB13 regmask=[r8] minReg=1> BB13 regmask=[r8] minReg=1 last fixed> BB13 regmask=[rax] minReg=1 last> BB13 regmask=[rcx] minReg=1 last> BB13 regmask=[rdx] minReg=1 last> BB13 regmask=[r8] minReg=1 last> BB13 regmask=[r9] minReg=1 last> BB13 regmask=[r10] minReg=1 last> BB13 regmask=[r11] minReg=1 last> LCL_VAR BB13 regmask=[rsi] minReg=1 last> TEST_NE BB13 regmask=[rax] minReg=1> BB13 regmask=[rax] minReg=1 last> STORE_LCL_VAR BB13 regmask=[rax] minReg=1> LCL_VAR BB13 regmask=[rax] minReg=1 last regOptional> LCL_VAR BB14 regmask=[rsi] minReg=1 reload> BB15 regmask=[rax] minReg=1> LCL_VAR BB15 regmask=[rax] minReg=1 last copy fixed> VAR REFPOSITIONS AFTER ALLOCATION --- V00 (Interval 0) BB00 regmask=[rsi] minReg=1 fixed regOptional> LCL_VAR BB01 regmask=[rsi] minReg=1> LCL_VAR BB02 regmask=[rsi] minReg=1> LCL_VAR BB03 regmask=[rsi] minReg=1> LCL_VAR BB04 regmask=[rsi] minReg=1> LCL_VAR BB05 regmask=[rsi] minReg=1> LCL_VAR BB06 regmask=[rsi] minReg=1> LCL_VAR BB07 regmask=[rsi] minReg=1> LCL_VAR BB08 regmask=[rsi] minReg=1> LCL_VAR BB09 regmask=[rsi] minReg=1> LCL_VAR BB10 regmask=[rsi] minReg=1> LCL_VAR BB11 regmask=[rsi] minReg=1> LCL_VAR BB12 regmask=[rax] minReg=1 last copy fixed> LCL_VAR BB13 regmask=[rsi] minReg=1> LCL_VAR BB13 regmask=[rsi] minReg=1> LCL_VAR BB13 regmask=[rsi] minReg=1 last> --- V01 (Interval 1) BB00 regmask=[rdi] minReg=1 fixed regOptional> LCL_VAR BB01 regmask=[rdi] minReg=1> LCL_VAR BB13 regmask=[r8] minReg=1 last copy fixed> --- V02 (Interval 2) BB00 regmask=[rbx] minReg=1 fixed regOptional> LCL_VAR BB02 regmask=[rbx] minReg=1> LCL_VAR BB13 regmask=[rbx] minReg=1 last> --- V03 (Interval 3) BB00 regmask=[r14] minReg=1 fixed regOptional> LCL_VAR BB03 regmask=[r14] minReg=1> LCL_VAR BB13 regmask=[r14] minReg=1 last> --- V04 (Interval 4) BB00 regmask=[] minReg=1 regOptional> LCL_VAR BB04 regmask=[r15] minReg=1 reload> LCL_VAR BB13 regmask=[r15] minReg=1 last> --- V05 (Interval 5) BB00 regmask=[] minReg=1 regOptional> LCL_VAR BB05 regmask=[rcx] minReg=1 reload spillAfter fixed> LCL_VAR BB13 regmask=[r14] minReg=1 last reload> --- V06 (Interval 6) BB00 regmask=[] minReg=1 regOptional> LCL_VAR BB06 regmask=[r12] minReg=1 reload> LCL_VAR BB13 regmask=[r12] minReg=1 last> --- V07 (Interval 7) BB00 regmask=[] minReg=1 regOptional> LCL_VAR BB07 regmask=[r13] minReg=1 reload> LCL_VAR BB13 regmask=[r13] minReg=1 last> --- V08 (Interval 8) BB00 regmask=[] minReg=1 regOptional> LCL_VAR BB08 regmask=[rax] minReg=1 reload spillAfter> LCL_VAR BB13 regmask=[r14] minReg=1 last reload> --- V09 (Interval 9) BB00 regmask=[] minReg=1 regOptional> LCL_VAR BB09 regmask=[r8] minReg=1 reload spillAfter> LCL_VAR BB13 regmask=[r14] minReg=1 last reload> --- V10 (Interval 10) BB00 regmask=[] minReg=1 regOptional> LCL_VAR BB10 regmask=[rcx] minReg=1 reload spillAfter fixed> LCL_VAR BB13 regmask=[r14] minReg=1 last reload> --- V11 (Interval 11) BB00 regmask=[] minReg=1 regOptional> LCL_VAR BB11 regmask=[rcx] minReg=1 reload spillAfter fixed> LCL_VAR BB13 regmask=[r14] minReg=1 last reload> --- V12 --- V13 (Interval 12) STORE_LCL_VAR BB13 regmask=[rax] minReg=1 spillAfter> LCL_VAR BB13 regmask=[rdx] minReg=1 last reload fixed> --- V14 (Interval 13) STORE_LCL_VAR BB13 regmask=[rax] minReg=1> LCL_VAR BB13 regmask=[rcx] minReg=1 spillAfter copy fixed> LCL_VAR BB14 regmask=[rsi] minReg=1 reload> LCL_VAR BB15 regmask=[rax] minReg=1 last copy fixed> --- V15 (Interval 14) STORE_LCL_VAR BB13 regmask=[rax] minReg=1> LCL_VAR BB13 regmask=[rax] minReg=1 last regOptional> Active intervals at end of allocation: ----------------------- RESOLVING BB BOUNDARIES ----------------------- Resolution Candidates: {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11 V14} Has Critical Edges Prior to Resolution BB01 use def in out {V00 V01} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Var=Reg beg of BB01: V00=rsi V01=rdi V02=rbx V03=r14 Var=Reg end of BB01: V00=rsi V01=rdi V02=rbx V03=r14 BB02 use def in out {V00 V02} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Var=Reg beg of BB02: V00=rsi V01=rdi V02=rbx V03=r14 Var=Reg end of BB02: V00=rsi V01=rdi V02=rbx V03=r14 BB03 use def in out {V00 V03} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Var=Reg beg of BB03: V00=rsi V01=rdi V02=rbx V03=r14 Var=Reg end of BB03: V00=rsi V01=rdi V02=rbx V03=r14 BB04 use def in out {V00 V04} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Var=Reg beg of BB04: V00=rsi V01=rdi V02=rbx V03=r14 Var=Reg end of BB04: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 BB05 use def in out {V00 V05} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Var=Reg beg of BB05: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 Var=Reg end of BB05: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 BB06 use def in out {V00 V06} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Var=Reg beg of BB06: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 Var=Reg end of BB06: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 V06=r12 BB07 use def in out {V00 V07} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Var=Reg beg of BB07: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 V06=r12 Var=Reg end of BB07: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 V06=r12 V07=r13 BB08 use def in out {V00 V08} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Var=Reg beg of BB08: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 V06=r12 V07=r13 Var=Reg end of BB08: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 V06=r12 V07=r13 BB09 use def in out {V00 V09} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Var=Reg beg of BB09: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 V06=r12 V07=r13 Var=Reg end of BB09: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 V06=r12 V07=r13 BB10 use def in out {V00 V10} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Var=Reg beg of BB10: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 V06=r12 V07=r13 Var=Reg end of BB10: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 V06=r12 V07=r13 BB11 use def in out {V00 V11} {} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Var=Reg beg of BB11: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 V06=r12 V07=r13 Var=Reg end of BB11: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 V06=r12 V07=r13 BB12 use def in out {V00} {} {V00} {} Var=Reg beg of BB12: V00=rsi Var=Reg end of BB12: none BB13 use def in out {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V13 V14 V15} {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} {V14} Var=Reg beg of BB13: V00=rsi V01=rdi V02=rbx V03=r14 Var=Reg end of BB13: none BB14 use def in out {V14} {} {V14} {V14} Var=Reg beg of BB14: none Var=Reg end of BB14: V14=rsi BB15 use def in out {V14} {} {V14} {} Var=Reg beg of BB15: V14=rsi Var=Reg end of BB15: none RESOLVING EDGES fgFindInsertPoint(regionIndex=0, putInTryRegion=true, startBlk=BB01, endBlk=BB00, nearBlk=BB04, jumpBlk=BB00, runRarely=false) fgNewBBinRegion(jumpKind=6, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=false): inserting after BB12 New Basic Block BB16 [0030] created. Splitting edge from BB04 to BB13; adding BB16 BB16 bottom: move V04 from r15 to STK (Critical) fgFindInsertPoint(regionIndex=0, putInTryRegion=true, startBlk=BB01, endBlk=BB00, nearBlk=BB05, jumpBlk=BB00, runRarely=false) fgNewBBinRegion(jumpKind=6, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=false): inserting after BB12 New Basic Block BB17 [0031] created. Splitting edge from BB05 to BB13; adding BB17 BB17 bottom: move V04 from r15 to STK (Critical) fgFindInsertPoint(regionIndex=0, putInTryRegion=true, startBlk=BB01, endBlk=BB00, nearBlk=BB06, jumpBlk=BB00, runRarely=false) fgNewBBinRegion(jumpKind=6, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=false): inserting after BB12 New Basic Block BB18 [0032] created. Splitting edge from BB06 to BB13; adding BB18 BB18 bottom: move V04 from r15 to STK (Critical) BB18 bottom: move V06 from r12 to STK (Critical) fgFindInsertPoint(regionIndex=0, putInTryRegion=true, startBlk=BB01, endBlk=BB00, nearBlk=BB07, jumpBlk=BB00, runRarely=false) fgNewBBinRegion(jumpKind=6, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=false): inserting after BB12 New Basic Block BB19 [0033] created. Splitting edge from BB07 to BB13; adding BB19 BB19 bottom: move V04 from r15 to STK (Critical) BB19 bottom: move V06 from r12 to STK (Critical) BB19 bottom: move V07 from r13 to STK (Critical) fgFindInsertPoint(regionIndex=0, putInTryRegion=true, startBlk=BB01, endBlk=BB00, nearBlk=BB08, jumpBlk=BB00, runRarely=false) fgNewBBinRegion(jumpKind=6, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=false): inserting after BB12 New Basic Block BB20 [0034] created. Splitting edge from BB08 to BB13; adding BB20 BB20 bottom: move V04 from r15 to STK (Critical) BB20 bottom: move V06 from r12 to STK (Critical) BB20 bottom: move V07 from r13 to STK (Critical) fgFindInsertPoint(regionIndex=0, putInTryRegion=true, startBlk=BB01, endBlk=BB00, nearBlk=BB09, jumpBlk=BB00, runRarely=false) fgNewBBinRegion(jumpKind=6, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=false): inserting after BB12 New Basic Block BB21 [0035] created. Splitting edge from BB09 to BB13; adding BB21 BB21 bottom: move V04 from r15 to STK (Critical) BB21 bottom: move V06 from r12 to STK (Critical) BB21 bottom: move V07 from r13 to STK (Critical) fgFindInsertPoint(regionIndex=0, putInTryRegion=true, startBlk=BB01, endBlk=BB00, nearBlk=BB10, jumpBlk=BB00, runRarely=false) fgNewBBinRegion(jumpKind=6, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=false): inserting after BB12 New Basic Block BB22 [0036] created. Splitting edge from BB10 to BB13; adding BB22 BB22 bottom: move V04 from r15 to STK (Critical) BB22 bottom: move V06 from r12 to STK (Critical) BB22 bottom: move V07 from r13 to STK (Critical) BB11 bottom: move V04 from r15 to STK (SharedCritical) BB11 bottom: move V06 from r12 to STK (SharedCritical) BB11 bottom: move V07 from r13 to STK (SharedCritical) fgFindInsertPoint(regionIndex=0, putInTryRegion=true, startBlk=BB01, endBlk=BB00, nearBlk=BB13, jumpBlk=BB00, runRarely=false) fgNewBBinRegion(jumpKind=6, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=false): inserting after BB15 New Basic Block BB23 [0037] created. Splitting edge from BB13 to BB15; adding BB23 BB23 bottom: move V14 from STK to rsi (Critical) Set V00 argument initial register to rsi Set V01 argument initial register to rdi Set V02 argument initial register to rbx Set V03 argument initial register to r14 Set V04 argument initial register to STK Set V05 argument initial register to STK Set V06 argument initial register to STK Set V07 argument initial register to STK Set V08 argument initial register to STK Set V09 argument initial register to STK Set V10 argument initial register to STK Set V11 argument initial register to STK Trees after linear scan register allocator (LSRA) ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB13 ( cond ) i label target IBC LIR BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB13 ( cond ) i IBC LIR BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB13 ( cond ) i IBC LIR BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB16 ( cond ) i IBC LIR BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB17 ( cond ) i hascall gcsafe IBC LIR BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB18 ( cond ) i gcsafe IBC LIR BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB19 ( cond ) i gcsafe IBC LIR BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB20 ( cond ) i gcsafe IBC LIR BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB21 ( cond ) i gcsafe IBC LIR BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB22 ( cond ) i hascall gcsafe IBC LIR BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB13 ( cond ) i hascall gcsafe IBC LIR BB12 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target gcsafe IBC LIR BB22 [0036] 1 BB10 0.41 [???..???)-> BB13 (always) internal target LIR BB21 [0035] 1 BB09 0.41 [???..???)-> BB13 (always) internal target LIR BB20 [0034] 1 BB08 0.41 [???..???)-> BB13 (always) internal target LIR BB19 [0033] 1 BB07 0.41 [???..???)-> BB13 (always) internal target LIR BB18 [0032] 1 BB06 0.41 [???..???)-> BB13 (always) internal target LIR BB17 [0031] 1 BB05 0.41 [???..???)-> BB13 (always) internal target LIR BB16 [0030] 1 BB04 0.41 [???..???)-> BB13 (always) internal target LIR BB13 [0011] 11 BB01,BB02,BB03,BB16,BB17,BB18,BB19,BB20,BB21,BB22,BB11 0.17 14831 [000..0AB)-> BB23 ( cond ) i label target hascall gcsafe newobj nullcheck IBC LIR BB14 [0027] 1 BB13 0.09 [000..000) i internal gcsafe LIR BB15 [0028] 2 BB23,BB14 0.17 14831 [000..000) (return) i internal label target gcsafe newobj nullcheck IBC LIR BB23 [0037] 1 BB13 0.09 [???..???)-> BB15 (always) internal target LIR ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..009) -> BB13 (cond), preds={} succs={BB02,BB13} N003 ( 1, 1) [000000] ------------ t0 = LCL_VAR ref V01 arg1 u:1 rdi REG rdi $81 N005 ( 1, 1) [000001] ------------ t1 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t1 ref N007 ( 2, 2) [000174] -c---------- t174 = * LEA(b+32) byref REG NA /--* t174 byref N009 ( 4, 4) [000121] -c-XG------- t121 = * IND ref REG NA /--* t0 ref +--* t121 ref N011 ( 6, 6) [000004] N--XG--N-U-- * NE void REG NA N013 ( 8, 8) [000005] ---XG------- * JTRUE void REG NA ------------ BB02 [009..012) -> BB13 (cond), preds={BB01} succs={BB03,BB13} N017 ( 2, 2) [000041] ------------ t41 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $c0 /--* t41 int N019 ( 3, 4) [000175] ------------ t175 = * CAST int <- ubyte <- int REG rdx $284 N021 ( 1, 1) [000042] ------------ t42 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t42 ref N023 ( 2, 2) [000177] -c---------- t177 = * LEA(b+56) byref REG NA /--* t177 byref N025 ( 5, 5) [000123] n---GO------ t123 = * IND ubyte REG rcx /--* t175 int +--* t123 ubyte N027 ( 9, 10) [000046] N---GO-N-U-- * NE void REG NA N029 ( 11, 12) [000047] ----GO------ * JTRUE void REG NA ------------ BB03 [012..01B) -> BB13 (cond), preds={BB02} succs={BB04,BB13} N033 ( 2, 2) [000048] ------------ t48 = LCL_VAR int V03 arg3 u:1 r14 REG r14 $c1 /--* t48 int N035 ( 3, 4) [000178] ------------ t178 = * CAST int <- ubyte <- int REG rdx $289 N037 ( 1, 1) [000049] ------------ t49 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t49 ref N039 ( 2, 2) [000180] -c---------- t180 = * LEA(b+57) byref REG NA /--* t180 byref N041 ( 5, 5) [000125] n---GO------ t125 = * IND ubyte REG rcx /--* t178 int +--* t125 ubyte N043 ( 9, 10) [000053] N---GO-N-U-- * NE void REG NA N045 ( 11, 12) [000054] ----GO------ * JTRUE void REG NA ------------ BB04 [01B..025) -> BB16 (cond), preds={BB03} succs={BB05,BB16} N049 ( 3, 2) [000055] -----------z t55 = LCL_VAR int V04 arg4 u:1 r15 REG r15 $100 /--* t55 int N051 ( 4, 4) [000181] ------------ t181 = * CAST int <- bool <- int REG rdx $28e N053 ( 1, 1) [000056] ------------ t56 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t56 ref N055 ( 2, 2) [000183] -c---------- t183 = * LEA(b+58) byref REG NA /--* t183 byref N057 ( 5, 5) [000127] n---GO------ t127 = * IND bool REG rcx /--* t181 int +--* t127 bool N059 ( 10, 10) [000060] N---GO-N-U-- * NE void REG NA N061 ( 12, 12) [000061] ----GO------ * JTRUE void REG NA ------------ BB05 [025..034) -> BB17 (cond), preds={BB04} succs={BB06,BB17} N065 ( 1, 1) [000063] ------------ t63 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t63 ref N067 ( 2, 2) [000185] -c---------- t185 = * LEA(b+40) byref REG NA /--* t185 byref N069 ( 4, 4) [000129] n---GO------ t129 = * IND ref REG rdx /--* t129 ref N071 (???,???) [000233] ----GO------ t233 = * PUTARG_REG ref REG rdx N073 ( 3, 2) [000062] -----------z t62 = LCL_VAR ref V05 arg5 u:1 rcx REG rcx $82 /--* t62 ref N075 (???,???) [000234] ------------ t234 = * PUTARG_REG ref REG rcx N077 ( 1, 4) [000235] -c---------- t235 = CNS_INT(h) long 0xd1ffab1e ftn REG NA /--* t235 long N079 ( 3, 6) [000236] -c---------- t236 = * IND long REG NA /--* t233 ref arg1 in rdx +--* t234 ref arg0 in rcx +--* t236 long control expr N081 ( 21, 13) [000066] --CXGO------ t66 = * CALL r2r_ind bool Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality REG rax $3c0 N083 ( 1, 1) [000069] -c---------- t69 = CNS_INT bool 0 REG NA $40 /--* t66 bool +--* t69 bool N085 ( 24, 17) [000070] J--XGO-N-U-- * NE void REG NA $294 N087 ( 26, 19) [000071] ---XGO------ * JTRUE void REG NA ------------ BB06 [034..03E) -> BB18 (cond), preds={BB05} succs={BB07,BB18} N091 ( 3, 2) [000072] -----------z t72 = LCL_VAR int V06 arg6 u:1 r12 REG r12 $101 /--* t72 int N093 ( 4, 4) [000188] ------------ t188 = * CAST int <- bool <- int REG rdx $295 N095 ( 1, 1) [000073] ------------ t73 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t73 ref N097 ( 2, 2) [000190] -c---------- t190 = * LEA(b+59) byref REG NA /--* t190 byref N099 ( 5, 5) [000132] n---GO------ t132 = * IND bool REG rcx /--* t188 int +--* t132 bool N101 ( 10, 10) [000077] N---GO-N-U-- * NE void REG NA N103 ( 12, 12) [000078] ----GO------ * JTRUE void REG NA ------------ BB07 [03E..048) -> BB19 (cond), preds={BB06} succs={BB08,BB19} N107 ( 3, 2) [000079] -----------z t79 = LCL_VAR int V07 arg7 u:1 r13 REG r13 $102 /--* t79 int N109 ( 4, 4) [000191] ------------ t191 = * CAST int <- bool <- int REG rdx $29a N111 ( 1, 1) [000080] ------------ t80 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t80 ref N113 ( 2, 2) [000193] -c---------- t193 = * LEA(b+60) byref REG NA /--* t193 byref N115 ( 5, 5) [000134] n---GO------ t134 = * IND bool REG rcx /--* t191 int +--* t134 bool N117 ( 10, 10) [000084] N---GO-N-U-- * NE void REG NA N119 ( 12, 12) [000085] ----GO------ * JTRUE void REG NA ------------ BB08 [048..052) -> BB20 (cond), preds={BB07} succs={BB09,BB20} N123 ( 3, 2) [000086] -----------z t86 = LCL_VAR int V08 arg8 u:1 rax REG rax $103 /--* t86 int N125 ( 4, 4) [000194] ------------ t194 = * CAST int <- bool <- int REG rdx $29f N127 ( 1, 1) [000087] ------------ t87 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t87 ref N129 ( 2, 2) [000196] -c---------- t196 = * LEA(b+61) byref REG NA /--* t196 byref N131 ( 5, 5) [000136] n---GO------ t136 = * IND bool REG rcx /--* t194 int +--* t136 bool N133 ( 10, 10) [000091] N---GO-N-U-- * NE void REG NA N135 ( 12, 12) [000092] ----GO------ * JTRUE void REG NA ------------ BB09 [052..05C) -> BB21 (cond), preds={BB08} succs={BB10,BB21} N139 ( 3, 2) [000093] -----------z t93 = LCL_VAR int V09 arg9 u:1 r8 REG r8 $104 /--* t93 int N141 ( 4, 4) [000197] ------------ t197 = * CAST int <- bool <- int REG rdx $2a4 N143 ( 1, 1) [000094] ------------ t94 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t94 ref N145 ( 2, 2) [000199] -c---------- t199 = * LEA(b+62) byref REG NA /--* t199 byref N147 ( 5, 5) [000138] n---GO------ t138 = * IND bool REG rcx /--* t197 int +--* t138 bool N149 ( 10, 10) [000098] N---GO-N-U-- * NE void REG NA N151 ( 12, 12) [000099] ----GO------ * JTRUE void REG NA ------------ BB10 [05C..06B) -> BB22 (cond), preds={BB09} succs={BB11,BB22} N155 ( 1, 1) [000101] ------------ t101 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t101 ref N157 ( 2, 2) [000201] -c---------- t201 = * LEA(b+48) byref REG NA /--* t201 byref N159 ( 4, 4) [000140] n---GO------ t140 = * IND ref REG rdx /--* t140 ref N161 (???,???) [000237] ----GO------ t237 = * PUTARG_REG ref REG rdx N163 ( 3, 2) [000100] -----------z t100 = LCL_VAR ref V10 arg10 u:1 rcx REG rcx $83 /--* t100 ref N165 (???,???) [000238] ------------ t238 = * PUTARG_REG ref REG rcx N167 ( 1, 4) [000239] -c---------- t239 = CNS_INT(h) long 0xd1ffab1e ftn REG NA /--* t239 long N169 ( 3, 6) [000240] -c---------- t240 = * IND long REG NA /--* t237 ref arg1 in rdx +--* t238 ref arg0 in rcx +--* t240 long control expr N171 ( 21, 13) [000104] --CXGO------ t104 = * CALL r2r_ind bool Microsoft.CodeAnalysis.ConstantValue.op_Inequality REG rax $3c1 N173 ( 1, 1) [000106] -c---------- t106 = CNS_INT bool 0 REG NA $40 /--* t104 bool +--* t106 bool N175 ( 24, 17) [000107] J--XGO-N-U-- * NE void REG NA $2aa N177 ( 26, 19) [000108] ---XGO------ * JTRUE void REG NA ------------ BB11 [06B..07A) -> BB13 (cond), preds={BB10} succs={BB12,BB13} N181 ( 1, 1) [000110] ------------ t110 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t110 ref N183 ( 2, 2) [000205] -c---------- t205 = * LEA(b+24) byref REG NA /--* t205 byref N185 ( 4, 4) [000142] n---GO------ t142 = * IND ref REG rdx /--* t142 ref N187 (???,???) [000241] ----GO------ t241 = * PUTARG_REG ref REG rdx N189 ( 3, 2) [000109] -----------z t109 = LCL_VAR ref V11 arg11 u:1 rcx REG rcx $84 /--* t109 ref N191 (???,???) [000242] ------------ t242 = * PUTARG_REG ref REG rcx N193 ( 1, 4) [000243] -c---------- t243 = CNS_INT(h) long 0xd1ffab1e ftn REG NA /--* t243 long N195 ( 3, 6) [000244] -c---------- t244 = * IND long REG NA /--* t241 ref arg1 in rdx +--* t242 ref arg0 in rcx +--* t244 long control expr N197 ( 21, 13) [000113] --CXGO------ t113 = * CALL r2r_ind bool Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality REG rax $3c2 N199 ( 1, 1) [000116] -c---------- t116 = CNS_INT bool 0 REG NA $40 /--* t113 bool +--* t116 bool N201 ( 24, 17) [000117] J--XGO-N-U-- * NE void REG NA $2ac N001 ( 4, 3) [000279] -----------Z t279 = LCL_VAR bool V04 arg4 r15 REG r15 N001 ( 4, 3) [000280] -----------Z t280 = LCL_VAR bool V06 arg6 r12 REG r12 N001 ( 4, 3) [000281] -----------Z t281 = LCL_VAR bool V07 arg7 r13 REG r13 N203 ( 26, 19) [000118] ---XGO------ * JTRUE void REG NA ------------ BB12 [0AB..0AD) (return), preds={BB11} succs={} N207 (???,???) [000229] ------------ IL_OFFSET void IL offset: 0xab REG NA N209 ( 1, 1) [000119] ------------ t119 = LCL_VAR ref V00 this u:1 rsi (last use) REG rsi $80 /--* t119 ref N211 ( 2, 2) [000120] ------------ * RETURN ref REG NA $256 ------------ BB22 [???..???) -> BB13 (always), preds={BB10} succs={BB13} N001 ( 4, 3) [000276] -----------Z t276 = LCL_VAR bool V04 arg4 r15 REG r15 N001 ( 4, 3) [000277] -----------Z t277 = LCL_VAR bool V06 arg6 r12 REG r12 N001 ( 4, 3) [000278] -----------Z t278 = LCL_VAR bool V07 arg7 r13 REG r13 ------------ BB21 [???..???) -> BB13 (always), preds={BB09} succs={BB13} N001 ( 4, 3) [000273] -----------Z t273 = LCL_VAR bool V04 arg4 r15 REG r15 N001 ( 4, 3) [000274] -----------Z t274 = LCL_VAR bool V06 arg6 r12 REG r12 N001 ( 4, 3) [000275] -----------Z t275 = LCL_VAR bool V07 arg7 r13 REG r13 ------------ BB20 [???..???) -> BB13 (always), preds={BB08} succs={BB13} N001 ( 4, 3) [000270] -----------Z t270 = LCL_VAR bool V04 arg4 r15 REG r15 N001 ( 4, 3) [000271] -----------Z t271 = LCL_VAR bool V06 arg6 r12 REG r12 N001 ( 4, 3) [000272] -----------Z t272 = LCL_VAR bool V07 arg7 r13 REG r13 ------------ BB19 [???..???) -> BB13 (always), preds={BB07} succs={BB13} N001 ( 4, 3) [000267] -----------Z t267 = LCL_VAR bool V04 arg4 r15 REG r15 N001 ( 4, 3) [000268] -----------Z t268 = LCL_VAR bool V06 arg6 r12 REG r12 N001 ( 4, 3) [000269] -----------Z t269 = LCL_VAR bool V07 arg7 r13 REG r13 ------------ BB18 [???..???) -> BB13 (always), preds={BB06} succs={BB13} N001 ( 4, 3) [000265] -----------Z t265 = LCL_VAR bool V04 arg4 r15 REG r15 N001 ( 4, 3) [000266] -----------Z t266 = LCL_VAR bool V06 arg6 r12 REG r12 ------------ BB17 [???..???) -> BB13 (always), preds={BB05} succs={BB13} N001 ( 4, 3) [000264] -----------Z t264 = LCL_VAR bool V04 arg4 r15 REG r15 ------------ BB16 [???..???) -> BB13 (always), preds={BB04} succs={BB13} N001 ( 4, 3) [000263] -----------Z t263 = LCL_VAR bool V04 arg4 r15 REG r15 ------------ BB13 [000..0AB) -> BB23 (cond), preds={BB01,BB02,BB03,BB16,BB17,BB18,BB19,BB20,BB21,BB22,BB11} succs={BB14,BB23} N215 (???,???) [000230] ------------ IL_OFFSET void IL offset: 0x7a REG NA N217 ( 1, 1) [000006] ------------ t6 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t6 ref N219 ( 2, 2) [000209] -c---------- t209 = * LEA(b+8) byref REG NA /--* t209 byref N221 ( 4, 4) [000007] n---GO------ t7 = * IND ref REG rax /--* t7 ref N223 ( 8, 7) [000022] DA--GO------ * STORE_LCL_VAR ref V13 tmp1 d:2 NA REG NA N225 ( 1, 4) [000245] -c---------- t245 = CNS_INT(h) long 0xd1ffab1e ftn REG NA /--* t245 long N227 ( 3, 6) [000246] -c---------- t246 = * IND long REG NA /--* t246 long control expr N229 ( 14, 5) [000028] --C--------- t28 = * CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW REG rax $21b /--* t28 ref N231 ( 18, 8) [000030] DA---------- * STORE_LCL_VAR ref V14 tmp2 d:2 rax REG rax N233 ( 2, 2) [000010] ------------ t10 = LCL_VAR int V03 arg3 u:1 r14 (last use) REG r14 $c1 /--* t10 int N235 ( 3, 4) [000211] ------------ t211 = * CAST int <- ubyte <- int REG r9 $289 /--* t211 int N237 (???,???) [000247] ------------ * PUTARG_STK [+0x20] void REG NA N239 ( 3, 2) [000011] -----------z t11 = LCL_VAR int V04 arg4 u:1 r15 (last use) REG r15 $100 /--* t11 int N241 ( 4, 4) [000212] ------------ t212 = * CAST int <- bool <- int REG r9 $28e /--* t212 int N243 (???,???) [000248] ------------ * PUTARG_STK [+0x28] void REG NA N245 ( 3, 2) [000012] -----------z t12 = LCL_VAR ref V05 arg5 u:1 r14 (last use) REG r14 $82 /--* t12 ref N247 (???,???) [000249] ------------ * PUTARG_STK [+0x30] void REG NA N249 ( 3, 2) [000013] -----------z t13 = LCL_VAR int V06 arg6 u:1 r12 (last use) REG r12 $101 /--* t13 int N251 ( 4, 4) [000213] ------------ t213 = * CAST int <- bool <- int REG r9 $295 /--* t213 int N253 (???,???) [000250] ------------ * PUTARG_STK [+0x38] void REG NA N255 ( 3, 2) [000014] -----------z t14 = LCL_VAR int V07 arg7 u:1 r13 (last use) REG r13 $102 /--* t14 int N257 ( 4, 4) [000214] ------------ t214 = * CAST int <- bool <- int REG r9 $29a /--* t214 int N259 (???,???) [000251] ------------ * PUTARG_STK [+0x40] void REG NA N261 ( 3, 2) [000015] -----------z t15 = LCL_VAR int V08 arg8 u:1 r14 (last use) REG r14 $103 /--* t15 int N263 ( 4, 4) [000215] ------------ t215 = * CAST int <- bool <- int REG r9 $29f /--* t215 int N265 (???,???) [000252] ------------ * PUTARG_STK [+0x48] void REG NA N267 ( 3, 2) [000016] -----------z t16 = LCL_VAR int V09 arg9 u:1 r14 (last use) REG r14 $104 /--* t16 int N269 ( 4, 4) [000216] ------------ t216 = * CAST int <- bool <- int REG r9 $2a4 /--* t216 int N271 (???,???) [000253] ------------ * PUTARG_STK [+0x50] void REG NA N273 ( 3, 2) [000017] -----------z t17 = LCL_VAR ref V10 arg10 u:1 r14 (last use) REG r14 $83 /--* t17 ref N275 (???,???) [000254] ------------ * PUTARG_STK [+0x58] void REG NA N277 ( 3, 2) [000018] -----------z t18 = LCL_VAR ref V11 arg11 u:1 r14 (last use) REG r14 $84 /--* t18 ref N279 (???,???) [000255] ------------ * PUTARG_STK [+0x60] void REG NA N281 ( 1, 1) [000019] ------------ t19 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t19 ref N283 ( 2, 2) [000218] -c---------- t218 = * LEA(b+17) byref REG NA /--* t218 byref N285 ( 5, 5) [000145] nc--GO------ t145 = * IND ubyte REG NA N287 ( 1, 1) [000146] -c---------- t146 = CNS_INT ubyte 1 REG NA $41 /--* t145 ubyte +--* t146 ubyte N289 ( 12, 9) [000149] N---GO---U-- t149 = * TEST_NE int REG r9 /--* t149 int N291 (???,???) [000256] ----GO------ * PUTARG_STK [+0x68] void REG NA N293 ( 2, 2) [000009] ------------ t9 = LCL_VAR int V02 arg2 u:1 rbx (last use) REG rbx $c0 /--* t9 int N295 ( 3, 4) [000210] ------------ t210 = * CAST int <- ubyte <- int REG r9 $284 /--* t210 int N297 (???,???) [000257] ------------ t257 = * PUTARG_REG int REG r9 N299 ( 3, 2) [000031] -----------Z t31 = LCL_VAR ref V14 tmp2 u:2 rax REG rax $21b /--* t31 ref N301 (???,???) [000258] ------------ t258 = * PUTARG_REG ref REG rcx N303 ( 3, 2) [000023] -----------z t23 = LCL_VAR ref V13 tmp1 u:2 rdx (last use) REG rdx /--* t23 ref N305 (???,???) [000259] ------------ t259 = * PUTARG_REG ref REG rdx N307 ( 1, 1) [000008] ------------ t8 = LCL_VAR ref V01 arg1 u:1 rdi (last use) REG rdi $81 /--* t8 ref N309 (???,???) [000260] ------------ t260 = * PUTARG_REG ref REG r8 N311 ( 1, 4) [000261] -c---------- t261 = CNS_INT(h) long 0xd1ffab1e ftn REG NA /--* t261 long N313 ( 3, 6) [000262] -c---------- t262 = * IND long REG NA /--* t257 int arg3 in r9 +--* t258 ref this in rcx +--* t259 ref arg1 in rdx +--* t260 ref arg2 in r8 +--* t262 long control expr N315 ( 98, 58) [000032] --CXGO------ * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor REG NA $VN.Void N317 ( 1, 1) [000035] ------------ t35 = LCL_VAR ref V00 this u:1 rsi (last use) REG rsi $80 /--* t35 ref N319 ( 2, 2) [000224] -c---------- t224 = * LEA(b+17) byref REG NA /--* t224 byref N321 ( 5, 5) [000151] nc--GO------ t151 = * IND ubyte REG NA N323 ( 1, 1) [000152] -c---------- t152 = CNS_INT ubyte 2 REG NA $42 /--* t151 ubyte +--* t152 ubyte N325 ( 12, 9) [000155] N---GO---U-- t155 = * TEST_NE int REG rax /--* t155 int N327 ( 16, 12) [000171] DA--GO------ * STORE_LCL_VAR int V15 tmp3 d:2 rax REG rax N329 ( 3, 2) [000158] ------------ t158 = LCL_VAR int V15 tmp3 u:2 rax (last use) REG rax N331 ( 1, 1) [000159] -c---------- t159 = CNS_INT int 0 REG NA $40 /--* t158 int +--* t159 int N333 ( 5, 4) [000160] J------N---- * EQ void REG NA N335 ( 7, 6) [000161] ------------ * JTRUE void REG NA ------------ BB14 [000..000), preds={BB13} succs={BB15} N339 ( 3, 2) [000162] -c---------- t162 = LCL_VAR ref V14 tmp2 u:2 NA REG NA $21b /--* t162 ref N341 ( 4, 3) [000228] -c---------- t228 = * LEA(b+17) byref REG NA /--* t228 byref N343 ( 7, 6) [000163] nc--GO------ t163 = * IND ubyte REG NA N345 ( 1, 1) [000164] -c---------- t164 = CNS_INT int 2 REG NA $42 /--* t163 ubyte +--* t164 int N347 ( 9, 8) [000165] -c--GO------ t165 = * OR int REG NA N349 ( 3, 2) [000034] -----------z t34 = LCL_VAR ref V14 tmp2 u:2 rsi REG rsi $21b /--* t34 ref N351 ( 4, 3) [000226] -c---------- t226 = * LEA(b+17) byref REG NA /--* t226 byref +--* t165 int N353 (???,???) [000231] -A--GO------ * STOREIND ubyte REG NA ------------ BB15 [000..000) (return), preds={BB23,BB14} succs={} N357 (???,???) [000232] ------------ IL_OFFSET void IL offset: 0xaa REG NA N359 ( 3, 2) [000033] ------------ t33 = LCL_VAR ref V14 tmp2 u:2 rsi (last use) REG rsi $21b /--* t33 ref N361 ( 4, 3) [000040] ------------ * RETURN ref REG NA $255 ------------ BB23 [???..???) -> BB15 (always), preds={BB13} succs={BB15} N001 ( 3, 2) [000282] -----------z t282 = LCL_VAR ref V14 tmp2 rsi REG rsi ------------------------------------------------------------------------------------------------------------------- Final allocation --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 0.#0 V0 Parm Alloc rsi | | | | | |V0 a| | | | | | | | 0.#1 V1 Parm Alloc rdi | | | | | |V0 a|V1 a| | | | | | | 0.#2 V2 Parm Alloc rbx | | | |V2 a| |V0 a|V1 a| | | | | | | 0.#3 V3 Parm Alloc r14 | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 0.#4 V5 Parm NoReg | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 0.#5 V10 Parm NoReg | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 0.#6 V11 Parm NoReg | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 0.#7 V4 Parm NoReg | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 0.#8 V6 Parm NoReg | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 0.#9 V7 Parm NoReg | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 0.#10 V8 Parm NoReg | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 0.#11 V9 Parm NoReg | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 1.#12 BB1 PredBB0 | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 11.#13 V1 Use Keep rdi | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 11.#14 V0 Use Keep rsi | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 15.#15 BB2 PredBB1 | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 19.#16 V2 Use Keep rbx | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 20.#17 I15 Def Alloc rdx | | |I15a|V2 a| |V0 a|V1 a| | | | |V3 a| | 25.#18 V0 Use Keep rsi | | |I15a|V2 a| |V0 a|V1 a| | | | |V3 a| | 26.#19 I16 Def Alloc rcx | |I16a|I15a|V2 a| |V0 a|V1 a| | | | |V3 a| | 27.#20 I15 Use * Keep rdx | |I16a|I15i|V2 a| |V0 a|V1 a| | | | |V3 a| | 27.#21 I16 Use * Keep rcx | |I16i| |V2 a| |V0 a|V1 a| | | | |V3 a| | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 31.#22 BB3 PredBB2 | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 35.#23 V3 Use Keep r14 | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 36.#24 I17 Def Alloc rdx | | |I17a|V2 a| |V0 a|V1 a| | | | |V3 a| | 41.#25 V0 Use Keep rsi | | |I17a|V2 a| |V0 a|V1 a| | | | |V3 a| | 42.#26 I18 Def Alloc rcx | |I18a|I17a|V2 a| |V0 a|V1 a| | | | |V3 a| | 43.#27 I17 Use * Keep rdx | |I18a|I17i|V2 a| |V0 a|V1 a| | | | |V3 a| | 43.#28 I18 Use * Keep rcx | |I18i| |V2 a| |V0 a|V1 a| | | | |V3 a| | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 47.#29 BB4 PredBB3 | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 51.#30 V4 Use ReLod r15 | | | |V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| Keep r15 | | | |V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 52.#31 I19 Def Alloc rdx | | |I19a|V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 57.#32 V0 Use Keep rsi | | |I19a|V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 58.#33 I20 Def Alloc rcx | |I20a|I19a|V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 59.#34 I19 Use * Keep rdx | |I20a|I19i|V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 59.#35 I20 Use * Keep rcx | |I20i| |V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 63.#36 BB5 PredBB4 | | | |V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 69.#37 V0 Use Keep rsi | | | |V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 70.#38 I21 Def Alloc rdx | | |I21a|V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 71.#39 rdx Fixd Keep rdx | | |I21a|V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 71.#40 I21 Use * Keep rdx | | |I21i|V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 72.#41 rdx Fixd Keep rdx | | | |V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 72.#42 I22 Def Alloc rdx | | |I22a|V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 75.#43 rcx Fixd Keep rcx | | |I22a|V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 75.#44 V5 Use ReLod rcx | |V5 a|I22a|V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| Keep rcx | |V5 i|I22a|V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| Spill rcx | |V5 i|I22a|V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 76.#45 rcx Fixd Keep rcx | | |I22a|V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 76.#46 I23 Def PtArg rcx | | |I22a|V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 81.#47 rdx Fixd Keep rdx | | |I22a|V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 81.#48 I22 Use * Keep rdx | | |I22i|V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 81.#49 rcx Fixd Keep rcx | | | |V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 81.#50 I23 Use * PtArg rcx | | | |V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 82.#51 rax Kill Keep rax | | | |V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 82.#52 rcx Kill Keep rcx | | | |V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 82.#53 rdx Kill Keep rdx | | | |V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 82.#54 r8 Kill Keep r8 | | | |V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 82.#55 r9 Kill Keep r9 | | | |V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 82.#56 r10 Kill Keep r10 | | | |V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 82.#57 r11 Kill Keep r11 | | | |V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 82.#58 rax Fixd Keep rax | | | |V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 82.#59 I24 Def Alloc rax |I24a| | |V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 85.#60 I24 Use * Keep rax |I24i| | |V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 89.#61 BB6 PredBB5 | | | |V2 a| |V0 a|V1 a| | | | |V3 a|V4 a| 93.#62 V6 Use ReLod r12 | | | |V2 a| |V0 a|V1 a| | |V6 a| |V3 a|V4 a| Keep r12 | | | |V2 a| |V0 a|V1 a| | |V6 a| |V3 a|V4 a| 94.#63 I25 Def Alloc rdx | | |I25a|V2 a| |V0 a|V1 a| | |V6 a| |V3 a|V4 a| 99.#64 V0 Use Keep rsi | | |I25a|V2 a| |V0 a|V1 a| | |V6 a| |V3 a|V4 a| 100.#65 I26 Def Alloc rcx | |I26a|I25a|V2 a| |V0 a|V1 a| | |V6 a| |V3 a|V4 a| 101.#66 I25 Use * Keep rdx | |I26a|I25i|V2 a| |V0 a|V1 a| | |V6 a| |V3 a|V4 a| 101.#67 I26 Use * Keep rcx | |I26i| |V2 a| |V0 a|V1 a| | |V6 a| |V3 a|V4 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 105.#68 BB7 PredBB6 | | | |V2 a| |V0 a|V1 a| | |V6 a| |V3 a|V4 a| 109.#69 V7 Use ReLod r13 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| Keep r13 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 110.#70 I27 Def Alloc rdx | | |I27a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 115.#71 V0 Use Keep rsi | | |I27a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 116.#72 I28 Def Alloc rcx | |I28a|I27a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 117.#73 I27 Use * Keep rdx | |I28a|I27i|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 117.#74 I28 Use * Keep rcx | |I28i| |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 121.#75 BB8 PredBB7 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 125.#76 V8 Use ReLod rax |V8 a| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| Keep rax |V8 i| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| Spill rax |V8 i| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 126.#77 I29 Def Alloc rdx | | |I29a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 131.#78 V0 Use Keep rsi | | |I29a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 132.#79 I30 Def Alloc rcx | |I30a|I29a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 133.#80 I29 Use * Keep rdx | |I30a|I29i|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 133.#81 I30 Use * Keep rcx | |I30i| |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 137.#82 BB9 PredBB8 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 141.#83 V9 Use ReLod r8 | | | |V2 a| |V0 a|V1 a|V9 a| |V6 a|V7 a|V3 a|V4 a| Keep r8 | | | |V2 a| |V0 a|V1 a|V9 i| |V6 a|V7 a|V3 a|V4 a| Spill r8 | | | |V2 a| |V0 a|V1 a|V9 i| |V6 a|V7 a|V3 a|V4 a| 142.#84 I31 Def Alloc rdx | | |I31a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 147.#85 V0 Use Keep rsi | | |I31a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 148.#86 I32 Def Alloc rcx | |I32a|I31a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 149.#87 I31 Use * Keep rdx | |I32a|I31i|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 149.#88 I32 Use * Keep rcx | |I32i| |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 153.#89 BB10 PredBB9 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 159.#90 V0 Use Keep rsi | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 160.#91 I33 Def Alloc rdx | | |I33a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 161.#92 rdx Fixd Keep rdx | | |I33a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 161.#93 I33 Use * Keep rdx | | |I33i|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 162.#94 rdx Fixd Keep rdx | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 162.#95 I34 Def Alloc rdx | | |I34a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 165.#96 rcx Fixd Keep rcx | | |I34a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 165.#97 V10 Use ReLod rcx | |V10a|I34a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| Keep rcx | |V10i|I34a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| Spill rcx | |V10i|I34a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 166.#98 rcx Fixd Keep rcx | | |I34a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 166.#99 I35 Def PtArg rcx | | |I34a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 171.#100 rdx Fixd Keep rdx | | |I34a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 171.#101 I34 Use * Keep rdx | | |I34i|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 171.#102 rcx Fixd Keep rcx | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 171.#103 I35 Use * PtArg rcx | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 172.#104 rax Kill Keep rax | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 172.#105 rcx Kill Keep rcx | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 172.#106 rdx Kill Keep rdx | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 172.#107 r8 Kill Keep r8 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 172.#108 r9 Kill Keep r9 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 172.#109 r10 Kill Keep r10 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 172.#110 r11 Kill Keep r11 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 172.#111 rax Fixd Keep rax | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 172.#112 I36 Def Alloc rax |I36a| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 175.#113 I36 Use * Keep rax |I36i| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 179.#114 BB11 PredBB10 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 185.#115 V0 Use Keep rsi | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 186.#116 I37 Def Alloc rdx | | |I37a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 187.#117 rdx Fixd Keep rdx | | |I37a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 187.#118 I37 Use * Keep rdx | | |I37i|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 188.#119 rdx Fixd Keep rdx | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 188.#120 I38 Def Alloc rdx | | |I38a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 191.#121 rcx Fixd Keep rcx | | |I38a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 191.#122 V11 Use ReLod rcx | |V11a|I38a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| Keep rcx | |V11i|I38a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| Spill rcx | |V11i|I38a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 192.#123 rcx Fixd Keep rcx | | |I38a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 192.#124 I39 Def PtArg rcx | | |I38a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 197.#125 rdx Fixd Keep rdx | | |I38a|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 197.#126 I38 Use * Keep rdx | | |I38i|V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 197.#127 rcx Fixd Keep rcx | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 197.#128 I39 Use * PtArg rcx | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 198.#129 rax Kill Keep rax | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 198.#130 rcx Kill Keep rcx | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 198.#131 rdx Kill Keep rdx | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 198.#132 r8 Kill Keep r8 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 198.#133 r9 Kill Keep r9 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 198.#134 r10 Kill Keep r10 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 198.#135 r11 Kill Keep r11 | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 198.#136 rax Fixd Keep rax | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 198.#137 I40 Def Alloc rax |I40a| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 201.#138 I40 Use * Keep rax |I40i| | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a|V4 a| 205.#0 V4 Move STK | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a| | 205.#0 V6 Move STK | | | |V2 a| |V0 a|V1 a| | | |V7 a|V3 a| | 205.#0 V7 Move STK | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 205.#139 BB12 PredBB11 | | | | | |V0 a| | | | | | | | 211.#140 rax Fixd Keep rax | | | | | |V0 a| | | | | | | | 211.#141 V0 Use * Copy rax |V0 i| | | | |V0 i| | | | | | | | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 213.#142 BB13 PredBB1 | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 221.#143 V0 Use Keep rsi | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 222.#144 I41 Def Alloc rax |I41a| | |V2 a| |V0 a|V1 a| | | | |V3 a| | 223.#145 I41 Use * Keep rax |I41i| | |V2 a| |V0 a|V1 a| | | | |V3 a| | 224.#146 V13 Def Alloc rax | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | Spill rax | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 230.#147 rax Kill Keep rax | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 230.#148 rcx Kill Keep rcx | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 230.#149 rdx Kill Keep rdx | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 230.#150 r8 Kill Keep r8 | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 230.#151 r9 Kill Keep r9 | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 230.#152 r10 Kill Keep r10 | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 230.#153 r11 Kill Keep r11 | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 230.#154 rax Fixd Keep rax | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | 230.#155 I42 Def Alloc rax |I42a| | |V2 a| |V0 a|V1 a| | | | |V3 a| | 231.#156 I42 Use * Keep rax |I42i| | |V2 a| |V0 a|V1 a| | | | |V3 a| | 232.#157 V14 Def Alloc rax |V14a| | |V2 a| |V0 a|V1 a| | | | |V3 a| | 235.#158 V3 Use * Keep r14 |V14a| | |V2 a| |V0 a|V1 a| | | | |V3 i| | 236.#159 I43 Def Alloc r9 |V14a| | |V2 a| |V0 a|V1 a| |I43a| | | | | 237.#160 I43 Use * Keep r9 |V14a| | |V2 a| |V0 a|V1 a| |I43i| | | | | 241.#161 V4 Use * ReLod r15 |V14a| | |V2 a| |V0 a|V1 a| | | | | |V4 a| Keep r15 |V14a| | |V2 a| |V0 a|V1 a| | | | | |V4 i| 242.#162 I44 Def Alloc r9 |V14a| | |V2 a| |V0 a|V1 a| |I44a| | | | | 243.#163 I44 Use * Keep r9 |V14a| | |V2 a| |V0 a|V1 a| |I44i| | | | | 247.#164 V5 Use * ReLod r14 |V14a| | |V2 a| |V0 a|V1 a| | | | |V5 a| | Keep r14 |V14a| | |V2 a| |V0 a|V1 a| | | | |V5 i| | 251.#165 V6 Use * ReLod r12 |V14a| | |V2 a| |V0 a|V1 a| | |V6 a| | | | Keep r12 |V14a| | |V2 a| |V0 a|V1 a| | |V6 i| | | | 252.#166 I45 Def Alloc r9 |V14a| | |V2 a| |V0 a|V1 a| |I45a| | | | | 253.#167 I45 Use * Keep r9 |V14a| | |V2 a| |V0 a|V1 a| |I45i| | | | | 257.#168 V7 Use * ReLod r13 |V14a| | |V2 a| |V0 a|V1 a| | | |V7 a| | | Keep r13 |V14a| | |V2 a| |V0 a|V1 a| | | |V7 i| | | 258.#169 I46 Def Alloc r9 |V14a| | |V2 a| |V0 a|V1 a| |I46a| | | | | 259.#170 I46 Use * Keep r9 |V14a| | |V2 a| |V0 a|V1 a| |I46i| | | | | 263.#171 V8 Use * ReLod r14 |V14a| | |V2 a| |V0 a|V1 a| | | | |V8 a| | Keep r14 |V14a| | |V2 a| |V0 a|V1 a| | | | |V8 i| | 264.#172 I47 Def Alloc r9 |V14a| | |V2 a| |V0 a|V1 a| |I47a| | | | | 265.#173 I47 Use * Keep r9 |V14a| | |V2 a| |V0 a|V1 a| |I47i| | | | | 269.#174 V9 Use * ReLod r14 |V14a| | |V2 a| |V0 a|V1 a| | | | |V9 a| | Keep r14 |V14a| | |V2 a| |V0 a|V1 a| | | | |V9 i| | 270.#175 I48 Def Alloc r9 |V14a| | |V2 a| |V0 a|V1 a| |I48a| | | | | 271.#176 I48 Use * Keep r9 |V14a| | |V2 a| |V0 a|V1 a| |I48i| | | | | 275.#177 V10 Use * ReLod r14 |V14a| | |V2 a| |V0 a|V1 a| | | | |V10a| | Keep r14 |V14a| | |V2 a| |V0 a|V1 a| | | | |V10i| | 279.#178 V11 Use * ReLod r14 |V14a| | |V2 a| |V0 a|V1 a| | | | |V11a| | Keep r14 |V14a| | |V2 a| |V0 a|V1 a| | | | |V11i| | 289.#179 V0 Use Keep rsi |V14a| | |V2 a| |V0 a|V1 a| | | | | | | 290.#180 I49 Def Alloc r9 |V14a| | |V2 a| |V0 a|V1 a| |I49a| | | | | 291.#181 I49 Use * Keep r9 |V14a| | |V2 a| |V0 a|V1 a| |I49i| | | | | 295.#182 V2 Use * Keep rbx |V14a| | |V2 i| |V0 a|V1 a| | | | | | | 296.#183 I50 Def Alloc r9 |V14a| | | | |V0 a|V1 a| |I50a| | | | | 297.#184 r9 Fixd Keep r9 |V14a| | | | |V0 a|V1 a| |I50a| | | | | 297.#185 I50 Use * Keep r9 |V14a| | | | |V0 a|V1 a| |I50i| | | | | 298.#186 r9 Fixd Keep r9 |V14a| | | | |V0 a|V1 a| | | | | | | 298.#187 I51 Def Alloc r9 |V14a| | | | |V0 a|V1 a| |I51a| | | | | 301.#188 rcx Fixd Keep rcx |V14a| | | | |V0 a|V1 a| |I51a| | | | | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 301.#189 V14 Use Copy rcx |V14i| | | | |V0 a|V1 a| |I51a| | | | | Spill rax |V14i| | | | |V0 a|V1 a| |I51a| | | | | 302.#190 rcx Fixd Keep rcx | | | | | |V0 a|V1 a| |I51a| | | | | 302.#191 I52 Def Alloc rcx | |I52a| | | |V0 a|V1 a| |I51a| | | | | 305.#192 rdx Fixd Keep rdx | |I52a| | | |V0 a|V1 a| |I51a| | | | | 305.#193 V13 Use * ReLod rdx | |I52a|V13a| | |V0 a|V1 a| |I51a| | | | | Keep rdx | |I52a|V13i| | |V0 a|V1 a| |I51a| | | | | 306.#194 rdx Fixd Keep rdx | |I52a| | | |V0 a|V1 a| |I51a| | | | | 306.#195 I53 Def Alloc rdx | |I52a|I53a| | |V0 a|V1 a| |I51a| | | | | 309.#196 r8 Fixd Keep r8 | |I52a|I53a| | |V0 a|V1 a| |I51a| | | | | 309.#197 V1 Use * Copy r8 | |I52a|I53a| | |V0 a|V1 i|V1 i|I51a| | | | | 310.#198 r8 Fixd Keep r8 | |I52a|I53a| | |V0 a| | |I51a| | | | | 310.#199 I54 Def Alloc r8 | |I52a|I53a| | |V0 a| |I54a|I51a| | | | | 315.#200 r9 Fixd Keep r9 | |I52a|I53a| | |V0 a| |I54a|I51a| | | | | 315.#201 I51 Use * Keep r9 | |I52a|I53a| | |V0 a| |I54a|I51i| | | | | 315.#202 rcx Fixd Keep rcx | |I52a|I53a| | |V0 a| |I54a| | | | | | 315.#203 I52 Use * Keep rcx | |I52i|I53a| | |V0 a| |I54a| | | | | | 315.#204 rdx Fixd Keep rdx | | |I53a| | |V0 a| |I54a| | | | | | 315.#205 I53 Use * Keep rdx | | |I53i| | |V0 a| |I54a| | | | | | 315.#206 r8 Fixd Keep r8 | | | | | |V0 a| |I54a| | | | | | 315.#207 I54 Use * Keep r8 | | | | | |V0 a| |I54i| | | | | | 316.#208 rax Kill Keep rax | | | | | |V0 a| | | | | | | | 316.#209 rcx Kill Keep rcx | | | | | |V0 a| | | | | | | | 316.#210 rdx Kill Keep rdx | | | | | |V0 a| | | | | | | | 316.#211 r8 Kill Keep r8 | | | | | |V0 a| | | | | | | | 316.#212 r9 Kill Keep r9 | | | | | |V0 a| | | | | | | | 316.#213 r10 Kill Keep r10 | | | | | |V0 a| | | | | | | | 316.#214 r11 Kill Keep r11 | | | | | |V0 a| | | | | | | | 325.#215 V0 Use * Keep rsi | | | | | |V0 i| | | | | | | | 326.#216 I55 Def Alloc rax |I55a| | | | | | | | | | | | | 327.#217 I55 Use * Keep rax |I55i| | | | | | | | | | | | | 328.#218 V15 Def Alloc rax |V15a| | | | | | | | | | | | | 333.#219 V15 Use * Keep rax |V15i| | | | | | | | | | | | | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 337.#220 BB14 PredBB13 | | | | | | | | | | | | | | 353.#221 V14 Use ReLod rsi | | | | | |V14a| | | | | | | | Keep rsi | | | | | |V14a| | | | | | | | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 355.#222 BB15 PredBB13 | | | | | |V14a| | | | | | | | 361.#223 rax Fixd Keep rax | | | | | |V14a| | | | | | | | 361.#224 V14 Use * Copy rax |V14i| | | | |V14i| | | | | | | | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 0.#0 BB22 PredBB10 | | | | | | | | | | | | | | 361.#0 V4 Move STK | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a| | 361.#0 V6 Move STK | | | |V2 a| |V0 a|V1 a| | | |V7 a|V3 a| | 361.#0 V7 Move STK | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 0.#0 BB21 PredBB9 | | | |V2 i| |V0 i|V1 i| | | | |V3 i| | 361.#0 V4 Move STK | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a| | 361.#0 V6 Move STK | | | |V2 a| |V0 a|V1 a| | | |V7 a|V3 a| | 361.#0 V7 Move STK | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 0.#0 BB20 PredBB8 | | | |V2 i| |V0 i|V1 i| | | | |V3 i| | 361.#0 V4 Move STK | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a| | 361.#0 V6 Move STK | | | |V2 a| |V0 a|V1 a| | | |V7 a|V3 a| | 361.#0 V7 Move STK | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 0.#0 BB19 PredBB7 | | | |V2 i| |V0 i|V1 i| | | | |V3 i| | 361.#0 V4 Move STK | | | |V2 a| |V0 a|V1 a| | |V6 a|V7 a|V3 a| | 361.#0 V6 Move STK | | | |V2 a| |V0 a|V1 a| | | |V7 a|V3 a| | 361.#0 V7 Move STK | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 0.#0 BB18 PredBB6 | | | |V2 i| |V0 i|V1 i| | | | |V3 i| | 361.#0 V4 Move STK | | | |V2 a| |V0 a|V1 a| | |V6 a| |V3 a| | 361.#0 V6 Move STK | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 0.#0 BB17 PredBB5 | | | |V2 i| |V0 i|V1 i| | | | |V3 i| | 361.#0 V4 Move STK | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 0.#0 BB16 PredBB4 | | | |V2 i| |V0 i|V1 i| | | | |V3 i| | 361.#0 V4 Move STK | | | |V2 a| |V0 a|V1 a| | | | |V3 a| | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ Loc RP# Name Type Action Reg |rax |rcx |rdx |rbx |rbp |rsi |rdi |r8 |r9 |r12 |r13 |r14 |r15 | --------------------------------+----+----+----+----+----+----+----+----+----+----+----+----+----+ 0.#0 BB23 PredBB13 | | | |V2 i| |V0 i|V1 i| | | | |V3 i| | 361.#0 V14 Move rsi | | | | | |V14a| | | | | | | | Recording the maximum number of concurrent spills: ---------- LSRA Stats ---------- BB04 [ 70274]: SpillCount = 0, ResolutionMovs = 0, SplitEdges = 1, CopyReg = 0 BB05 [ 70274]: SpillCount = 1, ResolutionMovs = 0, SplitEdges = 1, CopyReg = 0 BB06 [ 70274]: SpillCount = 0, ResolutionMovs = 0, SplitEdges = 1, CopyReg = 0 BB07 [ 70274]: SpillCount = 0, ResolutionMovs = 0, SplitEdges = 1, CopyReg = 0 BB08 [ 70274]: SpillCount = 1, ResolutionMovs = 0, SplitEdges = 1, CopyReg = 0 BB09 [ 70275]: SpillCount = 1, ResolutionMovs = 0, SplitEdges = 1, CopyReg = 0 BB10 [ 70275]: SpillCount = 1, ResolutionMovs = 0, SplitEdges = 1, CopyReg = 0 BB11 [ 70275]: SpillCount = 1, ResolutionMovs = 3, SplitEdges = 0, CopyReg = 0 BB13 [ 14831]: SpillCount = 2, ResolutionMovs = 0, SplitEdges = 1, CopyReg = 0 Total Tracked Vars: 15 Total Reg Cand Vars: 15 Total number of Intervals: 55 Total number of RefPositions: 224 Total Spill Count: 7 Weighted: 381035 Total CopyReg Count: 0 Weighted: 0 Total ResolutionMov Count: 3 Weighted: 210825 Total number of split edges: 8 Total Number of spill temps created: 0 TUPLE STYLE DUMP WITH REGISTER ASSIGNMENTS Incoming Parameters: V00(rcx=>rsi) V01(rdx=>rdi) V02(r8=>rbx) V03(r9=>r14) V05(STK) V10(STK) V11(STK) V04(STK) V06(STK) V07(STK) V08(STK) V09(STK) BB01 [000..009) -> BB13 (cond), preds={} succs={BB02,BB13} ===== N003. V01(rdi) N005. V00(rsi) N007. STK = LEA(b+32); rsi N009. STK = IND ; STK N011. NE ; rdi,STK N013. JTRUE Var=Reg end of BB01: V00=rsi V01=rdi V02=rbx V03=r14 BB02 [009..012) -> BB13 (cond), preds={BB01} succs={BB03,BB13} ===== Predecessor for variable locations: BB01 Var=Reg beg of BB02: V00=rsi V01=rdi V02=rbx V03=r14 N017. V02(rbx) N019. rdx = CAST ; rbx N021. V00(rsi) N023. STK = LEA(b+56); rsi N025. rcx = IND ; STK N027. NE ; rdx,rcx N029. JTRUE Var=Reg end of BB02: V00=rsi V01=rdi V02=rbx V03=r14 BB03 [012..01B) -> BB13 (cond), preds={BB02} succs={BB04,BB13} ===== Predecessor for variable locations: BB02 Var=Reg beg of BB03: V00=rsi V01=rdi V02=rbx V03=r14 N033. V03(r14) N035. rdx = CAST ; r14 N037. V00(rsi) N039. STK = LEA(b+57); rsi N041. rcx = IND ; STK N043. NE ; rdx,rcx N045. JTRUE Var=Reg end of BB03: V00=rsi V01=rdi V02=rbx V03=r14 BB04 [01B..025) -> BB16 (cond), preds={BB03} succs={BB05,BB16} ===== Predecessor for variable locations: BB03 Var=Reg beg of BB04: V00=rsi V01=rdi V02=rbx V03=r14 N049. V04(r15)R N051. rdx = CAST ; r15 N053. V00(rsi) N055. STK = LEA(b+58); rsi N057. rcx = IND ; STK N059. NE ; rdx,rcx N061. JTRUE Var=Reg end of BB04: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 BB05 [025..034) -> BB17 (cond), preds={BB04} succs={BB06,BB17} ===== Predecessor for variable locations: BB04 Var=Reg beg of BB05: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 N065. V00(rsi) N067. STK = LEA(b+40); rsi N069. rdx = IND ; STK N071. rdx = PUTARG_REG; rdx S N073. V05(rcx)R N075. rcx = PUTARG_REG; rcx N077. CNS_INT(h) 0xd1ffab1e ftn N079. IND N081. rax = CALL r2r_ind; rdx,rcx N083. CNS_INT 0 N085. NE ; rax N087. JTRUE Var=Reg end of BB05: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 BB06 [034..03E) -> BB18 (cond), preds={BB05} succs={BB07,BB18} ===== Predecessor for variable locations: BB05 Var=Reg beg of BB06: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 N091. V06(r12)R N093. rdx = CAST ; r12 N095. V00(rsi) N097. STK = LEA(b+59); rsi N099. rcx = IND ; STK N101. NE ; rdx,rcx N103. JTRUE Var=Reg end of BB06: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 V06=r12 BB07 [03E..048) -> BB19 (cond), preds={BB06} succs={BB08,BB19} ===== Predecessor for variable locations: BB06 Var=Reg beg of BB07: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 V06=r12 N107. V07(r13)R N109. rdx = CAST ; r13 N111. V00(rsi) N113. STK = LEA(b+60); rsi N115. rcx = IND ; STK N117. NE ; rdx,rcx N119. JTRUE Var=Reg end of BB07: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 V06=r12 V07=r13 BB08 [048..052) -> BB20 (cond), preds={BB07} succs={BB09,BB20} ===== Predecessor for variable locations: BB07 Var=Reg beg of BB08: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 V06=r12 V07=r13 S N123. V08(rax)R N125. rdx = CAST ; rax N127. V00(rsi) N129. STK = LEA(b+61); rsi N131. rcx = IND ; STK N133. NE ; rdx,rcx N135. JTRUE Var=Reg end of BB08: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 V06=r12 V07=r13 BB09 [052..05C) -> BB21 (cond), preds={BB08} succs={BB10,BB21} ===== Predecessor for variable locations: BB08 Var=Reg beg of BB09: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 V06=r12 V07=r13 S N139. V09(r8)R N141. rdx = CAST ; r8 N143. V00(rsi) N145. STK = LEA(b+62); rsi N147. rcx = IND ; STK N149. NE ; rdx,rcx N151. JTRUE Var=Reg end of BB09: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 V06=r12 V07=r13 BB10 [05C..06B) -> BB22 (cond), preds={BB09} succs={BB11,BB22} ===== Predecessor for variable locations: BB09 Var=Reg beg of BB10: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 V06=r12 V07=r13 N155. V00(rsi) N157. STK = LEA(b+48); rsi N159. rdx = IND ; STK N161. rdx = PUTARG_REG; rdx S N163. V10(rcx)R N165. rcx = PUTARG_REG; rcx N167. CNS_INT(h) 0xd1ffab1e ftn N169. IND N171. rax = CALL r2r_ind; rdx,rcx N173. CNS_INT 0 N175. NE ; rax N177. JTRUE Var=Reg end of BB10: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 V06=r12 V07=r13 BB11 [06B..07A) -> BB13 (cond), preds={BB10} succs={BB12,BB13} ===== Predecessor for variable locations: BB10 Var=Reg beg of BB11: V00=rsi V01=rdi V02=rbx V03=r14 V04=r15 V06=r12 V07=r13 N181. V00(rsi) N183. STK = LEA(b+24); rsi N185. rdx = IND ; STK N187. rdx = PUTARG_REG; rdx S N189. V11(rcx)R N191. rcx = PUTARG_REG; rcx N193. CNS_INT(h) 0xd1ffab1e ftn N195. IND N197. rax = CALL r2r_ind; rdx,rcx N199. CNS_INT 0 N201. NE ; rax $ N001. V04(r15) $ N001. V06(r12) $ N001. V07(r13) N203. JTRUE Var=Reg end of BB11: V00=rsi V01=rdi V02=rbx V03=r14 BB12 [0AB..0AD) (return), preds={BB11} succs={} ===== Predecessor for variable locations: BB11 Var=Reg beg of BB12: V00=rsi N207. IL_OFFSET IL offset: 0xab N209. V00(rsi*) N211. RETURN ; rsi* Var=Reg end of BB12: none BB13 [000..0AB) -> BB23 (cond), preds={BB01,BB02,BB03,BB16,BB17,BB18,BB19,BB20,BB21,BB22,BB11} succs={BB14,BB23} ===== Predecessor for variable locations: BB01 Var=Reg beg of BB13: V00=rsi V01=rdi V02=rbx V03=r14 N215. IL_OFFSET IL offset: 0x7a N217. V00(rsi) N219. STK = LEA(b+8) ; rsi N221. rax = IND ; STK N223. V13(STK); rax N225. CNS_INT(h) 0xd1ffab1e ftn N227. IND N229. rax = CALL help r2r_ind * N231. V14(rax); rax N233. V03(r14*) N235. r9 = CAST ; r14* N237. PUTARG_STK [+0x20]; r9 N239. V04(r15*)R N241. r9 = CAST ; r15* N243. PUTARG_STK [+0x28]; r9 N245. V05(r14*)R N247. PUTARG_STK [+0x30]; r14* N249. V06(r12*)R N251. r9 = CAST ; r12* N253. PUTARG_STK [+0x38]; r9 N255. V07(r13*)R N257. r9 = CAST ; r13* N259. PUTARG_STK [+0x40]; r9 N261. V08(r14*)R N263. r9 = CAST ; r14* N265. PUTARG_STK [+0x48]; r9 N267. V09(r14*)R N269. r9 = CAST ; r14* N271. PUTARG_STK [+0x50]; r9 N273. V10(r14*)R N275. PUTARG_STK [+0x58]; r14* N277. V11(r14*)R N279. PUTARG_STK [+0x60]; r14* N281. V00(rsi) N283. STK = LEA(b+17); rsi N285. STK = IND ; STK N287. CNS_INT 1 N289. r9 = TEST_NE ; STK N291. PUTARG_STK [+0x68]; r9 N293. V02(rbx*) N295. r9 = CAST ; rbx* N297. r9 = PUTARG_REG; r9 S N299. V14(rax) N301. rcx = PUTARG_REG; rax N303. V13(rdx*)R N305. rdx = PUTARG_REG; rdx* N307. V01(rdi*) N309. r8 = PUTARG_REG; rdi* N311. CNS_INT(h) 0xd1ffab1e ftn N313. IND N315. CALL r2r_ind; r9,rcx,rdx,r8 N317. V00(rsi*) N319. STK = LEA(b+17); rsi* N321. STK = IND ; STK N323. CNS_INT 2 N325. rax = TEST_NE ; STK * N327. V15(rax); rax N329. V15(rax*) N331. CNS_INT 0 N333. EQ ; rax* N335. JTRUE Var=Reg end of BB13: none BB14 [000..000), preds={BB13} succs={BB15} ===== Predecessor for variable locations: BB13 Var=Reg beg of BB14: none N339. V14(STK) N341. LEA(b+17) N343. IND N345. CNS_INT 2 N347. OR N349. V14(rsi)R N351. STK = LEA(b+17); rsi N353. STOREIND ; STK Var=Reg end of BB14: V14=rsi BB15 [000..000) (return), preds={BB23,BB14} succs={} ===== Predecessor for variable locations: BB13 Var=Reg beg of BB15: V14=rsi N357. IL_OFFSET IL offset: 0xaa N359. V14(rsi*) N361. RETURN ; rsi* Var=Reg end of BB15: none *************** Finishing PHASE Linear scan register alloc *************** In genGenerateCode() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight IBC lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 85106 [000..009)-> BB13 ( cond ) i label target IBC LIR BB02 [0001] 1 BB01 0.83 70274 [009..012)-> BB13 ( cond ) i IBC LIR BB03 [0002] 1 BB02 0.83 70274 [012..01B)-> BB13 ( cond ) i IBC LIR BB04 [0003] 1 BB03 0.83 70274 [01B..025)-> BB16 ( cond ) i IBC LIR BB05 [0004] 1 BB04 0.83 70274 [025..034)-> BB17 ( cond ) i hascall gcsafe IBC LIR BB06 [0005] 1 BB05 0.83 70274 [034..03E)-> BB18 ( cond ) i gcsafe IBC LIR BB07 [0006] 1 BB06 0.83 70274 [03E..048)-> BB19 ( cond ) i gcsafe IBC LIR BB08 [0007] 1 BB07 0.83 70274 [048..052)-> BB20 ( cond ) i gcsafe IBC LIR BB09 [0008] 1 BB08 0.83 70275 [052..05C)-> BB21 ( cond ) i gcsafe IBC LIR BB10 [0009] 1 BB09 0.83 70275 [05C..06B)-> BB22 ( cond ) i hascall gcsafe IBC LIR BB11 [0010] 1 BB10 0.83 70275 [06B..07A)-> BB13 ( cond ) i hascall gcsafe IBC LIR BB12 [0012] 1 BB11 0.83 70275 [0AB..0AD) (return) i label target gcsafe IBC LIR BB22 [0036] 1 BB10 0.41 [???..???)-> BB13 (always) internal target LIR BB21 [0035] 1 BB09 0.41 [???..???)-> BB13 (always) internal target LIR BB20 [0034] 1 BB08 0.41 [???..???)-> BB13 (always) internal target LIR BB19 [0033] 1 BB07 0.41 [???..???)-> BB13 (always) internal target LIR BB18 [0032] 1 BB06 0.41 [???..???)-> BB13 (always) internal target LIR BB17 [0031] 1 BB05 0.41 [???..???)-> BB13 (always) internal target LIR BB16 [0030] 1 BB04 0.41 [???..???)-> BB13 (always) internal target LIR BB13 [0011] 11 BB01,BB02,BB03,BB16,BB17,BB18,BB19,BB20,BB21,BB22,BB11 0.17 14831 [000..0AB)-> BB23 ( cond ) i label target hascall gcsafe newobj nullcheck IBC LIR BB14 [0027] 1 BB13 0.09 [000..000) i internal gcsafe LIR BB15 [0028] 2 BB23,BB14 0.17 14831 [000..000) (return) i internal label target gcsafe newobj nullcheck IBC LIR BB23 [0037] 1 BB13 0.09 [???..???)-> BB15 (always) internal target LIR ----------------------------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Generate code *************** In fgDebugCheckBBlist Finalizing stack frame Recording Var Locations at start of BB01 V00(rsi) V01(rdi) V02(rbx) V03(r14) Modified regs: [rax rcx rdx rbx rsi rdi r8-r15] Callee-saved registers pushed: 7 [rbx rsi rdi r12-r15] *************** In lvaAssignFrameOffsets(FINAL_FRAME_LAYOUT) Assign V13 tmp1, size=8, stkOffs=-0x50 Assign V14 tmp2, size=8, stkOffs=-0x58 Assign V12 OutArgs, size=112, stkOffs=-0xc8 --- delta bump 8 for RA --- delta bump 8 for FP --- delta bump 0 for RBP frame --- virtual stack offset to actual stack offset delta is 16 -- V00 was 0, now 16 -- V01 was 8, now 24 -- V02 was 16, now 32 -- V03 was 24, now 40 -- V04 was 32, now 48 -- V05 was 40, now 56 -- V06 was 48, now 64 -- V07 was 56, now 72 -- V08 was 64, now 80 -- V09 was 72, now 88 -- V10 was 80, now 96 -- V11 was 88, now 104 -- V12 was -200, now -184 -- V13 was -80, now -64 -- V14 was -88, now -72 ; Final local variable assignments ; ; V00 this [V00,T00] ( 17, 12.64) ref -> rsi this class-hnd ; V01 arg1 [V01,T01] ( 4, 3.17) ref -> rdi class-hnd ; V02 arg2 [V02,T02] ( 4, 3 ) ubyte -> rbx ; V03 arg3 [V03,T03] ( 4, 3 ) ubyte -> r14 ; V04 arg4 [V04,T08] ( 2, 1 ) bool -> [rbp+0x30] ; V05 arg5 [V05,T05] ( 2, 1 ) ref -> [rbp+0x38] class-hnd ; V06 arg6 [V06,T09] ( 2, 1 ) bool -> [rbp+0x40] ; V07 arg7 [V07,T10] ( 2, 1 ) bool -> [rbp+0x48] ; V08 arg8 [V08,T11] ( 2, 1 ) bool -> [rbp+0x50] ; V09 arg9 [V09,T12] ( 2, 1 ) bool -> [rbp+0x58] ; V10 arg10 [V10,T06] ( 2, 1 ) ref -> [rbp+0x60] class-hnd ; V11 arg11 [V11,T07] ( 2, 1 ) ref -> [rbp+0x68] class-hnd ; V12 OutArgs [V12 ] ( 1, 1 ) lclBlk (112) [rsp+0x00] "OutgoingArgSpace" ; V13 tmp1 [V13,T13] ( 2, 0.68) ref -> [rbp-0x40] class-hnd "impAppendStmt" ; V14 tmp2 [V14,T04] ( 5, 1.38) ref -> [rbp-0x48] class-hnd exact "NewObj constructor temp" ; V15 tmp3 [V15,T14] ( 2, 0.68) bool -> rax "Inlining Arg" ; ; Lcl frame size = 136 Setting stack level from -572662307 to 0 =============== Generating BB01 [000..009) -> BB13 (cond), preds={} succs={BB02,BB13} flags=0x00000000.60030020: i label target IBC LIR BB01 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap Recording Var Locations at start of BB01 V00(rsi) V01(rdi) V02(rbx) V03(r14) Change life 0000000000000000 {} -> 0000000000001FEF {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} V00 in reg rsi is becoming live [------] Live regs: 00000000 {} => 00000040 {rsi} V01 in reg rdi is becoming live [------] Live regs: 00000040 {rsi} => 000000C0 {rsi rdi} V02 in reg rbx is becoming live [------] Live regs: 000000C0 {rsi rdi} => 000000C8 {rbx rsi rdi} V03 in reg r14 is becoming live [------] Live regs: 000000C8 {rbx rsi rdi} => 000040C8 {rbx rsi rdi r14} Live regs: (unchanged) 000040C8 {rbx rsi rdi r14} GC regs: (unchanged) 000000C0 {rsi rdi} Byref regs: (unchanged) 00000000 {} L_M39391_BB01: Label: IG02, GCvars=0000000000000000 {}, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {} Scope info: begin block BB01, IL range [000..009) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) Generating: N003 ( 1, 1) [000000] ------------ t0 = LCL_VAR ref V01 arg1 u:1 rdi REG rdi $81 Generating: N005 ( 1, 1) [000001] ------------ t1 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t1 ref Generating: N007 ( 2, 2) [000174] -c---------- t174 = * LEA(b+32) byref REG NA /--* t174 byref Generating: N009 ( 4, 4) [000121] -c-XG------- t121 = * IND ref REG NA /--* t0 ref +--* t121 ref Generating: N011 ( 6, 6) [000004] N--XG--N-U-- * NE void REG NA IN0001: cmp rdi, gword ptr [rsi+32] Generating: N013 ( 8, 8) [000005] ---XG------- * JTRUE void REG NA IN0002: jne L_M39391_BB13 Scope info: end block BB01, IL range [000..009) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) =============== Generating BB02 [009..012) -> BB13 (cond), preds={BB01} succs={BB03,BB13} flags=0x00000000.60000020: i IBC LIR BB02 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap Recording Var Locations at start of BB02 V00(rsi) V01(rdi) V02(rbx) V03(r14) Liveness not changing: 0000000000001FEF {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Live regs: 00000000 {} => 000040C8 {rbx rsi rdi r14} GC regs: 00000000 {} => 000000C0 {rsi rdi} Byref regs: (unchanged) 00000000 {} L_M39391_BB02: G_M39391_IG02: ; offs=000000H, funclet=00, bbWeight=1 Label: IG03, GCvars=0000000000000000 {}, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {} Scope info: begin block BB02, IL range [009..012) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) Generating: N017 ( 2, 2) [000041] ------------ t41 = LCL_VAR int V02 arg2 u:1 rbx REG rbx $c0 /--* t41 int Generating: N019 ( 3, 4) [000175] ------------ t175 = * CAST int <- ubyte <- int REG rdx $284 IN0003: movzx rdx, bl Generating: N021 ( 1, 1) [000042] ------------ t42 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t42 ref Generating: N023 ( 2, 2) [000177] -c---------- t177 = * LEA(b+56) byref REG NA /--* t177 byref Generating: N025 ( 5, 5) [000123] n---GO------ t123 = * IND ubyte REG rcx IN0004: movzx rcx, byte ptr [rsi+56] /--* t175 int +--* t123 ubyte Generating: N027 ( 9, 10) [000046] N---GO-N-U-- * NE void REG NA IN0005: cmp edx, ecx Generating: N029 ( 11, 12) [000047] ----GO------ * JTRUE void REG NA IN0006: jne L_M39391_BB13 Scope info: end block BB02, IL range [009..012) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) =============== Generating BB03 [012..01B) -> BB13 (cond), preds={BB02} succs={BB04,BB13} flags=0x00000000.60000020: i IBC LIR BB03 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap Recording Var Locations at start of BB03 V00(rsi) V01(rdi) V02(rbx) V03(r14) Liveness not changing: 0000000000001FEF {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Live regs: 00000000 {} => 000040C8 {rbx rsi rdi r14} GC regs: 00000000 {} => 000000C0 {rsi rdi} Byref regs: (unchanged) 00000000 {} L_M39391_BB03: Scope info: begin block BB03, IL range [012..01B) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) Generating: N033 ( 2, 2) [000048] ------------ t48 = LCL_VAR int V03 arg3 u:1 r14 REG r14 $c1 /--* t48 int Generating: N035 ( 3, 4) [000178] ------------ t178 = * CAST int <- ubyte <- int REG rdx $289 IN0007: movzx rdx, r14b Generating: N037 ( 1, 1) [000049] ------------ t49 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t49 ref Generating: N039 ( 2, 2) [000180] -c---------- t180 = * LEA(b+57) byref REG NA /--* t180 byref Generating: N041 ( 5, 5) [000125] n---GO------ t125 = * IND ubyte REG rcx IN0008: movzx rcx, byte ptr [rsi+57] /--* t178 int +--* t125 ubyte Generating: N043 ( 9, 10) [000053] N---GO-N-U-- * NE void REG NA IN0009: cmp edx, ecx Generating: N045 ( 11, 12) [000054] ----GO------ * JTRUE void REG NA IN000a: jne L_M39391_BB13 Scope info: end block BB03, IL range [012..01B) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) =============== Generating BB04 [01B..025) -> BB16 (cond), preds={BB03} succs={BB05,BB16} flags=0x00000000.60000020: i IBC LIR BB04 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap Recording Var Locations at start of BB04 V00(rsi) V01(rdi) V02(rbx) V03(r14) Liveness not changing: 0000000000001FEF {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Live regs: 00000000 {} => 000040C8 {rbx rsi rdi r14} GC regs: 00000000 {} => 000000C0 {rsi rdi} Byref regs: (unchanged) 00000000 {} L_M39391_BB04: Scope info: begin block BB04, IL range [01B..025) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) Generating: N049 ( 3, 2) [000055] -----------z t55 = LCL_VAR int V04 arg4 u:1 r15 REG r15 $100 /--* t55 int Generating: N051 ( 4, 4) [000181] ------------ t181 = * CAST int <- bool <- int REG rdx $28e IN000b: mov r15d, dword ptr [V04 rbp+30H] V04 in reg r15 is becoming live [000055] Live regs: 000040C8 {rbx rsi rdi r14} => 0000C0C8 {rbx rsi rdi r14 r15} IN000c: movzx rdx, r15b Generating: N053 ( 1, 1) [000056] ------------ t56 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t56 ref Generating: N055 ( 2, 2) [000183] -c---------- t183 = * LEA(b+58) byref REG NA /--* t183 byref Generating: N057 ( 5, 5) [000127] n---GO------ t127 = * IND bool REG rcx IN000d: movzx rcx, byte ptr [rsi+58] /--* t181 int +--* t127 bool Generating: N059 ( 10, 10) [000060] N---GO-N-U-- * NE void REG NA IN000e: cmp edx, ecx Generating: N061 ( 12, 12) [000061] ----GO------ * JTRUE void REG NA IN000f: jne L_M39391_BB16 Scope info: end block BB04, IL range [01B..025) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) =============== Generating BB05 [025..034) -> BB17 (cond), preds={BB04} succs={BB06,BB17} flags=0x00000004.60080020: i hascall gcsafe IBC LIR BB05 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap Recording Var Locations at start of BB05 V00(rsi) V01(rdi) V02(rbx) V03(r14) V04(r15) Liveness not changing: 0000000000001FEF {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Live regs: 00000000 {} => 0000C0C8 {rbx rsi rdi r14 r15} GC regs: 00000000 {} => 000000C0 {rsi rdi} Byref regs: (unchanged) 00000000 {} L_M39391_BB05: Scope info: begin block BB05, IL range [025..034) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) Generating: N065 ( 1, 1) [000063] ------------ t63 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t63 ref Generating: N067 ( 2, 2) [000185] -c---------- t185 = * LEA(b+40) byref REG NA /--* t185 byref Generating: N069 ( 4, 4) [000129] n---GO------ t129 = * IND ref REG rdx IN0010: mov rdx, gword ptr [rsi+40] GC regs: 000000C0 {rsi rdi} => 000000C4 {rdx rsi rdi} /--* t129 ref Generating: N071 (???,???) [000233] ----GO------ t233 = * PUTARG_REG ref REG rdx GC regs: 000000C4 {rdx rsi rdi} => 000000C0 {rsi rdi} GC regs: 000000C0 {rsi rdi} => 000000C4 {rdx rsi rdi} Generating: N073 ( 3, 2) [000062] -----------z t62 = LCL_VAR ref V05 arg5 u:1 rcx REG rcx $82 /--* t62 ref Generating: N075 (???,???) [000234] ------------ t234 = * PUTARG_REG ref REG rcx IN0011: mov rcx, gword ptr [V05 rbp+38H] GC regs: 000000C4 {rdx rsi rdi} => 000000C6 {rcx rdx rsi rdi} GC regs: 000000C6 {rcx rdx rsi rdi} => 000000C4 {rdx rsi rdi} GC regs: 000000C4 {rdx rsi rdi} => 000000C6 {rcx rdx rsi rdi} Generating: N077 ( 1, 4) [000235] -c---------- t235 = CNS_INT(h) long 0xd1ffab1e ftn REG NA /--* t235 long Generating: N079 ( 3, 6) [000236] -c---------- t236 = * IND long REG NA /--* t233 ref arg1 in rdx +--* t234 ref arg0 in rcx +--* t236 long control expr Generating: N081 ( 21, 13) [000066] --CXGO------ t66 = * CALL r2r_ind bool Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality REG rax $3c0 GC regs: 000000C6 {rcx rdx rsi rdi} => 000000C2 {rcx rsi rdi} GC regs: 000000C2 {rcx rsi rdi} => 000000C0 {rsi rdi} Call: GCvars=0000000000000000 {}, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {} IN0012: call [Microsoft.CodeAnalysis.CSharp.Symbol:op_Inequality(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):bool] Generating: N083 ( 1, 1) [000069] -c---------- t69 = CNS_INT bool 0 REG NA $40 /--* t66 bool +--* t69 bool Generating: N085 ( 24, 17) [000070] J--XGO-N-U-- * NE void REG NA $294 IN0013: test al, al Generating: N087 ( 26, 19) [000071] ---XGO------ * JTRUE void REG NA IN0014: jne L_M39391_BB17 Scope info: end block BB05, IL range [025..034) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) =============== Generating BB06 [034..03E) -> BB18 (cond), preds={BB05} succs={BB07,BB18} flags=0x00000000.60080020: i gcsafe IBC LIR BB06 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap Recording Var Locations at start of BB06 V00(rsi) V01(rdi) V02(rbx) V03(r14) V04(r15) Liveness not changing: 0000000000001FEF {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Live regs: 00000000 {} => 0000C0C8 {rbx rsi rdi r14 r15} GC regs: 00000000 {} => 000000C0 {rsi rdi} Byref regs: (unchanged) 00000000 {} L_M39391_BB06: Scope info: begin block BB06, IL range [034..03E) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) Generating: N091 ( 3, 2) [000072] -----------z t72 = LCL_VAR int V06 arg6 u:1 r12 REG r12 $101 /--* t72 int Generating: N093 ( 4, 4) [000188] ------------ t188 = * CAST int <- bool <- int REG rdx $295 IN0015: mov r12d, dword ptr [V06 rbp+40H] V06 in reg r12 is becoming live [000072] Live regs: 0000C0C8 {rbx rsi rdi r14 r15} => 0000D0C8 {rbx rsi rdi r12 r14 r15} IN0016: movzx rdx, r12b Generating: N095 ( 1, 1) [000073] ------------ t73 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t73 ref Generating: N097 ( 2, 2) [000190] -c---------- t190 = * LEA(b+59) byref REG NA /--* t190 byref Generating: N099 ( 5, 5) [000132] n---GO------ t132 = * IND bool REG rcx IN0017: movzx rcx, byte ptr [rsi+59] /--* t188 int +--* t132 bool Generating: N101 ( 10, 10) [000077] N---GO-N-U-- * NE void REG NA IN0018: cmp edx, ecx Generating: N103 ( 12, 12) [000078] ----GO------ * JTRUE void REG NA IN0019: jne L_M39391_BB18 Scope info: end block BB06, IL range [034..03E) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) =============== Generating BB07 [03E..048) -> BB19 (cond), preds={BB06} succs={BB08,BB19} flags=0x00000000.60080020: i gcsafe IBC LIR BB07 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap Recording Var Locations at start of BB07 V00(rsi) V01(rdi) V02(rbx) V03(r14) V04(r15) V06(r12) Liveness not changing: 0000000000001FEF {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Live regs: 00000000 {} => 0000D0C8 {rbx rsi rdi r12 r14 r15} GC regs: 00000000 {} => 000000C0 {rsi rdi} Byref regs: (unchanged) 00000000 {} L_M39391_BB07: Scope info: begin block BB07, IL range [03E..048) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) Generating: N107 ( 3, 2) [000079] -----------z t79 = LCL_VAR int V07 arg7 u:1 r13 REG r13 $102 /--* t79 int Generating: N109 ( 4, 4) [000191] ------------ t191 = * CAST int <- bool <- int REG rdx $29a IN001a: mov r13d, dword ptr [V07 rbp+48H] V07 in reg r13 is becoming live [000079] Live regs: 0000D0C8 {rbx rsi rdi r12 r14 r15} => 0000F0C8 {rbx rsi rdi r12 r13 r14 r15} IN001b: movzx rdx, r13b Generating: N111 ( 1, 1) [000080] ------------ t80 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t80 ref Generating: N113 ( 2, 2) [000193] -c---------- t193 = * LEA(b+60) byref REG NA /--* t193 byref Generating: N115 ( 5, 5) [000134] n---GO------ t134 = * IND bool REG rcx IN001c: movzx rcx, byte ptr [rsi+60] /--* t191 int +--* t134 bool Generating: N117 ( 10, 10) [000084] N---GO-N-U-- * NE void REG NA IN001d: cmp edx, ecx Generating: N119 ( 12, 12) [000085] ----GO------ * JTRUE void REG NA IN001e: jne L_M39391_BB19 Scope info: end block BB07, IL range [03E..048) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) =============== Generating BB08 [048..052) -> BB20 (cond), preds={BB07} succs={BB09,BB20} flags=0x00000000.60080020: i gcsafe IBC LIR BB08 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap Recording Var Locations at start of BB08 V00(rsi) V01(rdi) V02(rbx) V03(r14) V04(r15) V06(r12) V07(r13) Liveness not changing: 0000000000001FEF {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Live regs: 00000000 {} => 0000F0C8 {rbx rsi rdi r12 r13 r14 r15} GC regs: 00000000 {} => 000000C0 {rsi rdi} Byref regs: (unchanged) 00000000 {} L_M39391_BB08: Scope info: begin block BB08, IL range [048..052) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) Generating: N123 ( 3, 2) [000086] -----------z t86 = LCL_VAR int V08 arg8 u:1 rax REG rax $103 /--* t86 int Generating: N125 ( 4, 4) [000194] ------------ t194 = * CAST int <- bool <- int REG rdx $29f IN001f: mov eax, dword ptr [V08 rbp+50H] IN0020: movzx rdx, al Generating: N127 ( 1, 1) [000087] ------------ t87 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t87 ref Generating: N129 ( 2, 2) [000196] -c---------- t196 = * LEA(b+61) byref REG NA /--* t196 byref Generating: N131 ( 5, 5) [000136] n---GO------ t136 = * IND bool REG rcx IN0021: movzx rcx, byte ptr [rsi+61] /--* t194 int +--* t136 bool Generating: N133 ( 10, 10) [000091] N---GO-N-U-- * NE void REG NA IN0022: cmp edx, ecx Generating: N135 ( 12, 12) [000092] ----GO------ * JTRUE void REG NA IN0023: jne L_M39391_BB20 Scope info: end block BB08, IL range [048..052) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) =============== Generating BB09 [052..05C) -> BB21 (cond), preds={BB08} succs={BB10,BB21} flags=0x00000000.60080020: i gcsafe IBC LIR BB09 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap Recording Var Locations at start of BB09 V00(rsi) V01(rdi) V02(rbx) V03(r14) V04(r15) V06(r12) V07(r13) Liveness not changing: 0000000000001FEF {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Live regs: 00000000 {} => 0000F0C8 {rbx rsi rdi r12 r13 r14 r15} GC regs: 00000000 {} => 000000C0 {rsi rdi} Byref regs: (unchanged) 00000000 {} L_M39391_BB09: G_M39391_IG03: ; offs=00000AH, funclet=00, bbWeight=0.83 Label: IG04, GCvars=0000000000000000 {}, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {} Scope info: begin block BB09, IL range [052..05C) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) Generating: N139 ( 3, 2) [000093] -----------z t93 = LCL_VAR int V09 arg9 u:1 r8 REG r8 $104 /--* t93 int Generating: N141 ( 4, 4) [000197] ------------ t197 = * CAST int <- bool <- int REG rdx $2a4 IN0024: mov r8d, dword ptr [V09 rbp+58H] IN0025: movzx rdx, r8b Generating: N143 ( 1, 1) [000094] ------------ t94 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t94 ref Generating: N145 ( 2, 2) [000199] -c---------- t199 = * LEA(b+62) byref REG NA /--* t199 byref Generating: N147 ( 5, 5) [000138] n---GO------ t138 = * IND bool REG rcx IN0026: movzx rcx, byte ptr [rsi+62] /--* t197 int +--* t138 bool Generating: N149 ( 10, 10) [000098] N---GO-N-U-- * NE void REG NA IN0027: cmp edx, ecx Generating: N151 ( 12, 12) [000099] ----GO------ * JTRUE void REG NA IN0028: jne L_M39391_BB21 Scope info: end block BB09, IL range [052..05C) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) =============== Generating BB10 [05C..06B) -> BB22 (cond), preds={BB09} succs={BB11,BB22} flags=0x00000004.60080020: i hascall gcsafe IBC LIR BB10 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap Recording Var Locations at start of BB10 V00(rsi) V01(rdi) V02(rbx) V03(r14) V04(r15) V06(r12) V07(r13) Liveness not changing: 0000000000001FEF {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Live regs: 00000000 {} => 0000F0C8 {rbx rsi rdi r12 r13 r14 r15} GC regs: 00000000 {} => 000000C0 {rsi rdi} Byref regs: (unchanged) 00000000 {} L_M39391_BB10: Scope info: begin block BB10, IL range [05C..06B) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) Generating: N155 ( 1, 1) [000101] ------------ t101 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t101 ref Generating: N157 ( 2, 2) [000201] -c---------- t201 = * LEA(b+48) byref REG NA /--* t201 byref Generating: N159 ( 4, 4) [000140] n---GO------ t140 = * IND ref REG rdx IN0029: mov rdx, gword ptr [rsi+48] GC regs: 000000C0 {rsi rdi} => 000000C4 {rdx rsi rdi} /--* t140 ref Generating: N161 (???,???) [000237] ----GO------ t237 = * PUTARG_REG ref REG rdx GC regs: 000000C4 {rdx rsi rdi} => 000000C0 {rsi rdi} GC regs: 000000C0 {rsi rdi} => 000000C4 {rdx rsi rdi} Generating: N163 ( 3, 2) [000100] -----------z t100 = LCL_VAR ref V10 arg10 u:1 rcx REG rcx $83 /--* t100 ref Generating: N165 (???,???) [000238] ------------ t238 = * PUTARG_REG ref REG rcx IN002a: mov rcx, gword ptr [V10 rbp+60H] GC regs: 000000C4 {rdx rsi rdi} => 000000C6 {rcx rdx rsi rdi} GC regs: 000000C6 {rcx rdx rsi rdi} => 000000C4 {rdx rsi rdi} GC regs: 000000C4 {rdx rsi rdi} => 000000C6 {rcx rdx rsi rdi} Generating: N167 ( 1, 4) [000239] -c---------- t239 = CNS_INT(h) long 0xd1ffab1e ftn REG NA /--* t239 long Generating: N169 ( 3, 6) [000240] -c---------- t240 = * IND long REG NA /--* t237 ref arg1 in rdx +--* t238 ref arg0 in rcx +--* t240 long control expr Generating: N171 ( 21, 13) [000104] --CXGO------ t104 = * CALL r2r_ind bool Microsoft.CodeAnalysis.ConstantValue.op_Inequality REG rax $3c1 GC regs: 000000C6 {rcx rdx rsi rdi} => 000000C2 {rcx rsi rdi} GC regs: 000000C2 {rcx rsi rdi} => 000000C0 {rsi rdi} Call: GCvars=0000000000000000 {}, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {} IN002b: call [Microsoft.CodeAnalysis.ConstantValue:op_Inequality(Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.ConstantValue):bool] Generating: N173 ( 1, 1) [000106] -c---------- t106 = CNS_INT bool 0 REG NA $40 /--* t104 bool +--* t106 bool Generating: N175 ( 24, 17) [000107] J--XGO-N-U-- * NE void REG NA $2aa IN002c: test al, al Generating: N177 ( 26, 19) [000108] ---XGO------ * JTRUE void REG NA IN002d: jne L_M39391_BB22 Scope info: end block BB10, IL range [05C..06B) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) =============== Generating BB11 [06B..07A) -> BB13 (cond), preds={BB10} succs={BB12,BB13} flags=0x00000004.60080020: i hascall gcsafe IBC LIR BB11 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap Recording Var Locations at start of BB11 V00(rsi) V01(rdi) V02(rbx) V03(r14) V04(r15) V06(r12) V07(r13) Liveness not changing: 0000000000001FEF {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Live regs: 00000000 {} => 0000F0C8 {rbx rsi rdi r12 r13 r14 r15} GC regs: 00000000 {} => 000000C0 {rsi rdi} Byref regs: (unchanged) 00000000 {} L_M39391_BB11: Scope info: begin block BB11, IL range [06B..07A) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) Generating: N181 ( 1, 1) [000110] ------------ t110 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t110 ref Generating: N183 ( 2, 2) [000205] -c---------- t205 = * LEA(b+24) byref REG NA /--* t205 byref Generating: N185 ( 4, 4) [000142] n---GO------ t142 = * IND ref REG rdx IN002e: mov rdx, gword ptr [rsi+24] GC regs: 000000C0 {rsi rdi} => 000000C4 {rdx rsi rdi} /--* t142 ref Generating: N187 (???,???) [000241] ----GO------ t241 = * PUTARG_REG ref REG rdx GC regs: 000000C4 {rdx rsi rdi} => 000000C0 {rsi rdi} GC regs: 000000C0 {rsi rdi} => 000000C4 {rdx rsi rdi} Generating: N189 ( 3, 2) [000109] -----------z t109 = LCL_VAR ref V11 arg11 u:1 rcx REG rcx $84 /--* t109 ref Generating: N191 (???,???) [000242] ------------ t242 = * PUTARG_REG ref REG rcx IN002f: mov rcx, gword ptr [V11 rbp+68H] GC regs: 000000C4 {rdx rsi rdi} => 000000C6 {rcx rdx rsi rdi} GC regs: 000000C6 {rcx rdx rsi rdi} => 000000C4 {rdx rsi rdi} GC regs: 000000C4 {rdx rsi rdi} => 000000C6 {rcx rdx rsi rdi} Generating: N193 ( 1, 4) [000243] -c---------- t243 = CNS_INT(h) long 0xd1ffab1e ftn REG NA /--* t243 long Generating: N195 ( 3, 6) [000244] -c---------- t244 = * IND long REG NA /--* t241 ref arg1 in rdx +--* t242 ref arg0 in rcx +--* t244 long control expr Generating: N197 ( 21, 13) [000113] --CXGO------ t113 = * CALL r2r_ind bool Microsoft.CodeAnalysis.CSharp.Symbol.op_Inequality REG rax $3c2 GC regs: 000000C6 {rcx rdx rsi rdi} => 000000C2 {rcx rsi rdi} GC regs: 000000C2 {rcx rsi rdi} => 000000C0 {rsi rdi} Call: GCvars=0000000000000000 {}, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {} IN0030: call [Microsoft.CodeAnalysis.CSharp.Symbol:op_Inequality(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):bool] Generating: N199 ( 1, 1) [000116] -c---------- t116 = CNS_INT bool 0 REG NA $40 /--* t113 bool +--* t116 bool Generating: N201 ( 24, 17) [000117] J--XGO-N-U-- * NE void REG NA $2ac IN0031: test al, al Generating: N001 ( 4, 3) [000279] -----------Z t279 = LCL_VAR bool V04 arg4 r15 REG r15 IN0032: mov dword ptr [V04 rbp+30H], r15d V04 in reg r15 is becoming dead [000279] Live regs: 0000F0C8 {rbx rsi rdi r12 r13 r14 r15} => 000070C8 {rbx rsi rdi r12 r13 r14} Generating: N001 ( 4, 3) [000280] -----------Z t280 = LCL_VAR bool V06 arg6 r12 REG r12 IN0033: mov dword ptr [V06 rbp+40H], r12d V06 in reg r12 is becoming dead [000280] Live regs: 000070C8 {rbx rsi rdi r12 r13 r14} => 000060C8 {rbx rsi rdi r13 r14} Generating: N001 ( 4, 3) [000281] -----------Z t281 = LCL_VAR bool V07 arg7 r13 REG r13 IN0034: mov dword ptr [V07 rbp+48H], r13d V07 in reg r13 is becoming dead [000281] Live regs: 000060C8 {rbx rsi rdi r13 r14} => 000040C8 {rbx rsi rdi r14} Generating: N203 ( 26, 19) [000118] ---XGO------ * JTRUE void REG NA IN0035: jne L_M39391_BB13 Scope info: end block BB11, IL range [06B..07A) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) =============== Generating BB12 [0AB..0AD) (return), preds={BB11} succs={} flags=0x00000000.600b0020: i label target gcsafe IBC LIR BB12 IN (1)={V00} OUT(0)={ } Recording Var Locations at start of BB12 V00(rsi) Change life 0000000000001FEF {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} -> 0000000000000001 {V00} V01 in reg rdi is becoming dead [------] Live regs: (unchanged) 00000000 {} V02 in reg rbx is becoming dead [------] Live regs: (unchanged) 00000000 {} V03 in reg r14 is becoming dead [------] Live regs: (unchanged) 00000000 {} V05 becoming dead V10 becoming dead V11 becoming dead Live regs: 00000000 {} => 00000040 {rsi} GC regs: 00000000 {} => 00000040 {rsi} Byref regs: (unchanged) 00000000 {} L_M39391_BB12: G_M39391_IG04: ; offs=00008DH, funclet=00, bbWeight=0.83 Label: IG05, GCvars=0000000000000000 {}, gcrefRegs=00000040 {rsi}, byrefRegs=00000000 {} Scope info: begin block BB12, IL range [0AB..0AD) Scope info: open scopes = 0 (V00 this) [000..0AD) Added IP mapping: 0x00AB STACK_EMPTY (G_M39391_IG05,ins#0,ofs#0) label Generating: N207 (???,???) [000229] ------------ IL_OFFSET void IL offset: 0xab REG NA Generating: N209 ( 1, 1) [000119] ------------ t119 = LCL_VAR ref V00 this u:1 rsi (last use) REG rsi $80 /--* t119 ref Generating: N211 ( 2, 2) [000120] ------------ * RETURN ref REG NA $256 V00 in reg rsi is becoming dead [000119] Live regs: 00000040 {rsi} => 00000000 {} Live vars: {V00} => {} GC regs: 00000040 {rsi} => 00000000 {} IN0036: mov rax, rsi Scope info: end block BB12, IL range [0AB..0AD) Scope info: ending scope, LVnum=0 [000..0AD) Scope info: ending scope, LVnum=1 [000..0AD) Scope info: ending scope, LVnum=2 [000..0AD) Scope info: ending scope, LVnum=3 [000..0AD) Scope info: ending scope, LVnum=4 [000..0AD) Scope info: ending scope, LVnum=5 [000..0AD) Scope info: ending scope, LVnum=6 [000..0AD) Scope info: ending scope, LVnum=7 [000..0AD) Scope info: ending scope, LVnum=8 [000..0AD) Scope info: ending scope, LVnum=9 [000..0AD) Scope info: ending scope, LVnum=10 [000..0AD) Scope info: ending scope, LVnum=11 [000..0AD) Scope info: open scopes = Added IP mapping: EPILOG STACK_EMPTY (G_M39391_IG05,ins#1,ofs#3) label Reserving epilog IG for block BB12 G_M39391_IG05: ; offs=0000D9H, funclet=00, bbWeight=0.83 *************** After placeholder IG creation G_M39391_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=00000000 {} <-- Prolog IG G_M39391_IG02: ; offs=000000H, size=000AH, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG03: ; offs=00000AH, size=0083H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG04: ; offs=00008DH, size=004CH, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG05: ; offs=0000D9H, size=0003H, gcrefRegs=00000040 {rsi}, byrefRegs=00000000 {}, byref G_M39391_IG06: ; epilog placeholder, next placeholder=, BB12 [0012], epilog, extend <-- First placeholder <-- Last placeholder ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=000000C0 {rsi rdi}, PrevByrefRegs=00000000 {} ; InitGCVars=0000000000000000 {}, InitGCrefRegs=00000040 {rsi}, InitByrefRegs=00000000 {} G_M39391_IG07: ; offs=0001DCH, size=0000H, gcrefRegs=00000000 {} <-- Current IG =============== Generating BB22 [???..???) -> BB13 (always), preds={BB10} succs={BB13} flags=0x00000000.40020040: internal target LIR BB22 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} Recording Var Locations at start of BB22 V00(rsi) V01(rdi) V02(rbx) V03(r14) V04(STK->r15) V06(STK->r12) V07(STK->r13) Change life 0000000000000000 {} -> 0000000000001FEF {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} V00 in reg rsi is becoming live [------] Live regs: 00000000 {} => 00000040 {rsi} V01 in reg rdi is becoming live [------] Live regs: 00000040 {rsi} => 000000C0 {rsi rdi} V02 in reg rbx is becoming live [------] Live regs: 000000C0 {rsi rdi} => 000000C8 {rbx rsi rdi} V03 in reg r14 is becoming live [------] Live regs: 000000C8 {rbx rsi rdi} => 000040C8 {rbx rsi rdi r14} V04 in reg r15 is becoming live [------] Live regs: 000040C8 {rbx rsi rdi r14} => 0000C0C8 {rbx rsi rdi r14 r15} V06 in reg r12 is becoming live [------] Live regs: 0000C0C8 {rbx rsi rdi r14 r15} => 0000D0C8 {rbx rsi rdi r12 r14 r15} V07 in reg r13 is becoming live [------] Live regs: 0000D0C8 {rbx rsi rdi r12 r14 r15} => 0000F0C8 {rbx rsi rdi r12 r13 r14 r15} Live regs: (unchanged) 0000F0C8 {rbx rsi rdi r12 r13 r14 r15} GC regs: (unchanged) 000000C0 {rsi rdi} Byref regs: (unchanged) 00000000 {} L_M39391_BB22: Label: IG07, GCvars=0000000000000000 {}, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {} Scope info: begin block BB22, IL range [???..???) Scope info: ignoring block beginning Added IP mapping: NO_MAP STACK_EMPTY (G_M39391_IG07,ins#0,ofs#0) label Generating: N001 ( 4, 3) [000276] -----------Z t276 = LCL_VAR bool V04 arg4 r15 REG r15 IN0037: mov dword ptr [V04 rbp+30H], r15d V04 in reg r15 is becoming dead [000276] Live regs: 0000F0C8 {rbx rsi rdi r12 r13 r14 r15} => 000070C8 {rbx rsi rdi r12 r13 r14} Generating: N001 ( 4, 3) [000277] -----------Z t277 = LCL_VAR bool V06 arg6 r12 REG r12 IN0038: mov dword ptr [V06 rbp+40H], r12d V06 in reg r12 is becoming dead [000277] Live regs: 000070C8 {rbx rsi rdi r12 r13 r14} => 000060C8 {rbx rsi rdi r13 r14} Generating: N001 ( 4, 3) [000278] -----------Z t278 = LCL_VAR bool V07 arg7 r13 REG r13 IN0039: mov dword ptr [V07 rbp+48H], r13d V07 in reg r13 is becoming dead [000278] Live regs: 000060C8 {rbx rsi rdi r13 r14} => 000040C8 {rbx rsi rdi r14} Scope info: end block BB22, IL range [???..???) Scope info: ignoring block end IN003a: jmp L_M39391_BB13 =============== Generating BB21 [???..???) -> BB13 (always), preds={BB09} succs={BB13} flags=0x00000000.40020040: internal target LIR BB21 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} Recording Var Locations at start of BB21 V00(rsi) V01(rdi) V02(rbx) V03(r14) V04(STK->r15) V06(STK->r12) V07(STK->r13) Liveness not changing: 0000000000001FEF {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Live regs: 00000000 {} => 0000F0C8 {rbx rsi rdi r12 r13 r14 r15} GC regs: 00000000 {} => 000000C0 {rsi rdi} Byref regs: (unchanged) 00000000 {} L_M39391_BB21: G_M39391_IG07: ; offs=0001DCH, funclet=00, bbWeight=0.41 Label: IG08, GCvars=0000000000000000 {}, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {} Scope info: begin block BB21, IL range [???..???) Scope info: ignoring block beginning genIPmappingAdd: ignoring duplicate IL offset 0xffffffff Generating: N001 ( 4, 3) [000273] -----------Z t273 = LCL_VAR bool V04 arg4 r15 REG r15 IN003b: mov dword ptr [V04 rbp+30H], r15d V04 in reg r15 is becoming dead [000273] Live regs: 0000F0C8 {rbx rsi rdi r12 r13 r14 r15} => 000070C8 {rbx rsi rdi r12 r13 r14} Generating: N001 ( 4, 3) [000274] -----------Z t274 = LCL_VAR bool V06 arg6 r12 REG r12 IN003c: mov dword ptr [V06 rbp+40H], r12d V06 in reg r12 is becoming dead [000274] Live regs: 000070C8 {rbx rsi rdi r12 r13 r14} => 000060C8 {rbx rsi rdi r13 r14} Generating: N001 ( 4, 3) [000275] -----------Z t275 = LCL_VAR bool V07 arg7 r13 REG r13 IN003d: mov dword ptr [V07 rbp+48H], r13d V07 in reg r13 is becoming dead [000275] Live regs: 000060C8 {rbx rsi rdi r13 r14} => 000040C8 {rbx rsi rdi r14} Scope info: end block BB21, IL range [???..???) Scope info: ignoring block end IN003e: jmp L_M39391_BB13 =============== Generating BB20 [???..???) -> BB13 (always), preds={BB08} succs={BB13} flags=0x00000000.40020040: internal target LIR BB20 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} Recording Var Locations at start of BB20 V00(rsi) V01(rdi) V02(rbx) V03(r14) V04(STK->r15) V06(STK->r12) V07(STK->r13) Liveness not changing: 0000000000001FEF {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Live regs: 00000000 {} => 0000F0C8 {rbx rsi rdi r12 r13 r14 r15} GC regs: 00000000 {} => 000000C0 {rsi rdi} Byref regs: (unchanged) 00000000 {} L_M39391_BB20: G_M39391_IG08: ; offs=0001EDH, funclet=00, bbWeight=0.41 Label: IG09, GCvars=0000000000000000 {}, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {} Scope info: begin block BB20, IL range [???..???) Scope info: ignoring block beginning genIPmappingAdd: ignoring duplicate IL offset 0xffffffff Generating: N001 ( 4, 3) [000270] -----------Z t270 = LCL_VAR bool V04 arg4 r15 REG r15 IN003f: mov dword ptr [V04 rbp+30H], r15d V04 in reg r15 is becoming dead [000270] Live regs: 0000F0C8 {rbx rsi rdi r12 r13 r14 r15} => 000070C8 {rbx rsi rdi r12 r13 r14} Generating: N001 ( 4, 3) [000271] -----------Z t271 = LCL_VAR bool V06 arg6 r12 REG r12 IN0040: mov dword ptr [V06 rbp+40H], r12d V06 in reg r12 is becoming dead [000271] Live regs: 000070C8 {rbx rsi rdi r12 r13 r14} => 000060C8 {rbx rsi rdi r13 r14} Generating: N001 ( 4, 3) [000272] -----------Z t272 = LCL_VAR bool V07 arg7 r13 REG r13 IN0041: mov dword ptr [V07 rbp+48H], r13d V07 in reg r13 is becoming dead [000272] Live regs: 000060C8 {rbx rsi rdi r13 r14} => 000040C8 {rbx rsi rdi r14} Scope info: end block BB20, IL range [???..???) Scope info: ignoring block end IN0042: jmp L_M39391_BB13 =============== Generating BB19 [???..???) -> BB13 (always), preds={BB07} succs={BB13} flags=0x00000000.40020040: internal target LIR BB19 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} Recording Var Locations at start of BB19 V00(rsi) V01(rdi) V02(rbx) V03(r14) V04(STK->r15) V06(STK->r12) V07(STK->r13) Liveness not changing: 0000000000001FEF {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Live regs: 00000000 {} => 0000F0C8 {rbx rsi rdi r12 r13 r14 r15} GC regs: 00000000 {} => 000000C0 {rsi rdi} Byref regs: (unchanged) 00000000 {} L_M39391_BB19: G_M39391_IG09: ; offs=0001FEH, funclet=00, bbWeight=0.41 Label: IG10, GCvars=0000000000000000 {}, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {} Scope info: begin block BB19, IL range [???..???) Scope info: ignoring block beginning genIPmappingAdd: ignoring duplicate IL offset 0xffffffff Generating: N001 ( 4, 3) [000267] -----------Z t267 = LCL_VAR bool V04 arg4 r15 REG r15 IN0043: mov dword ptr [V04 rbp+30H], r15d V04 in reg r15 is becoming dead [000267] Live regs: 0000F0C8 {rbx rsi rdi r12 r13 r14 r15} => 000070C8 {rbx rsi rdi r12 r13 r14} Generating: N001 ( 4, 3) [000268] -----------Z t268 = LCL_VAR bool V06 arg6 r12 REG r12 IN0044: mov dword ptr [V06 rbp+40H], r12d V06 in reg r12 is becoming dead [000268] Live regs: 000070C8 {rbx rsi rdi r12 r13 r14} => 000060C8 {rbx rsi rdi r13 r14} Generating: N001 ( 4, 3) [000269] -----------Z t269 = LCL_VAR bool V07 arg7 r13 REG r13 IN0045: mov dword ptr [V07 rbp+48H], r13d V07 in reg r13 is becoming dead [000269] Live regs: 000060C8 {rbx rsi rdi r13 r14} => 000040C8 {rbx rsi rdi r14} Scope info: end block BB19, IL range [???..???) Scope info: ignoring block end IN0046: jmp L_M39391_BB13 =============== Generating BB18 [???..???) -> BB13 (always), preds={BB06} succs={BB13} flags=0x00000000.40020040: internal target LIR BB18 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} Recording Var Locations at start of BB18 V00(rsi) V01(rdi) V02(rbx) V03(r14) V04(STK->r15) V06(STK->r12) Liveness not changing: 0000000000001FEF {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Live regs: 00000000 {} => 0000D0C8 {rbx rsi rdi r12 r14 r15} GC regs: 00000000 {} => 000000C0 {rsi rdi} Byref regs: (unchanged) 00000000 {} L_M39391_BB18: G_M39391_IG10: ; offs=00020FH, funclet=00, bbWeight=0.41 Label: IG11, GCvars=0000000000000000 {}, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {} Scope info: begin block BB18, IL range [???..???) Scope info: ignoring block beginning genIPmappingAdd: ignoring duplicate IL offset 0xffffffff Generating: N001 ( 4, 3) [000265] -----------Z t265 = LCL_VAR bool V04 arg4 r15 REG r15 IN0047: mov dword ptr [V04 rbp+30H], r15d V04 in reg r15 is becoming dead [000265] Live regs: 0000D0C8 {rbx rsi rdi r12 r14 r15} => 000050C8 {rbx rsi rdi r12 r14} Generating: N001 ( 4, 3) [000266] -----------Z t266 = LCL_VAR bool V06 arg6 r12 REG r12 IN0048: mov dword ptr [V06 rbp+40H], r12d V06 in reg r12 is becoming dead [000266] Live regs: 000050C8 {rbx rsi rdi r12 r14} => 000040C8 {rbx rsi rdi r14} Scope info: end block BB18, IL range [???..???) Scope info: ignoring block end IN0049: jmp L_M39391_BB13 =============== Generating BB17 [???..???) -> BB13 (always), preds={BB05} succs={BB13} flags=0x00000000.40020040: internal target LIR BB17 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} Recording Var Locations at start of BB17 V00(rsi) V01(rdi) V02(rbx) V03(r14) V04(STK->r15) Liveness not changing: 0000000000001FEF {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Live regs: 00000000 {} => 0000C0C8 {rbx rsi rdi r14 r15} GC regs: 00000000 {} => 000000C0 {rsi rdi} Byref regs: (unchanged) 00000000 {} L_M39391_BB17: G_M39391_IG11: ; offs=000220H, funclet=00, bbWeight=0.41 Label: IG12, GCvars=0000000000000000 {}, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {} Scope info: begin block BB17, IL range [???..???) Scope info: ignoring block beginning genIPmappingAdd: ignoring duplicate IL offset 0xffffffff Generating: N001 ( 4, 3) [000264] -----------Z t264 = LCL_VAR bool V04 arg4 r15 REG r15 IN004a: mov dword ptr [V04 rbp+30H], r15d V04 in reg r15 is becoming dead [000264] Live regs: 0000C0C8 {rbx rsi rdi r14 r15} => 000040C8 {rbx rsi rdi r14} Scope info: end block BB17, IL range [???..???) Scope info: ignoring block end IN004b: jmp L_M39391_BB13 =============== Generating BB16 [???..???) -> BB13 (always), preds={BB04} succs={BB13} flags=0x00000000.40020040: internal target LIR BB16 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} OUT(12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} Recording Var Locations at start of BB16 V00(rsi) V01(rdi) V02(rbx) V03(r14) V04(STK->r15) Liveness not changing: 0000000000001FEF {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Live regs: 00000000 {} => 0000C0C8 {rbx rsi rdi r14 r15} GC regs: 00000000 {} => 000000C0 {rsi rdi} Byref regs: (unchanged) 00000000 {} L_M39391_BB16: G_M39391_IG12: ; offs=00022DH, funclet=00, bbWeight=0.41 Label: IG13, GCvars=0000000000000000 {}, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {} Scope info: begin block BB16, IL range [???..???) Scope info: ignoring block beginning genIPmappingAdd: ignoring duplicate IL offset 0xffffffff Generating: N001 ( 4, 3) [000263] -----------Z t263 = LCL_VAR bool V04 arg4 r15 REG r15 IN004c: mov dword ptr [V04 rbp+30H], r15d V04 in reg r15 is becoming dead [000263] Live regs: 0000C0C8 {rbx rsi rdi r14 r15} => 000040C8 {rbx rsi rdi r14} Scope info: end block BB16, IL range [???..???) Scope info: ignoring block end IN004d: jmp L_M39391_BB13 =============== Generating BB13 [000..0AB) -> BB23 (cond), preds={BB01,BB02,BB03,BB16,BB17,BB18,BB19,BB20,BB21,BB22,BB11} succs={BB14,BB23} flags=0x00000004.608b0420: i label target hascall gcsafe newobj nullcheck IBC LIR BB13 IN (12)={V00 V01 V02 V03 V05 V10 V11 V04 V06 V07 V08 V09} + ByrefExposed + GcHeap OUT(1)={ V14 } + ByrefExposed + GcHeap Recording Var Locations at start of BB13 V00(rsi) V01(rdi) V02(rbx) V03(r14) Liveness not changing: 0000000000001FEF {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} Live regs: 00000000 {} => 000040C8 {rbx rsi rdi r14} GC regs: 00000000 {} => 000000C0 {rsi rdi} Byref regs: (unchanged) 00000000 {} L_M39391_BB13: G_M39391_IG13: ; offs=000236H, funclet=00, bbWeight=0.41 Label: IG14, GCvars=0000000000000000 {}, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {} Scope info: begin block BB13, IL range [000..0AB) Scope info: open scopes = 0 (V00 this) [000..0AD) 1 (V01 arg1) [000..0AD) 2 (V02 arg2) [000..0AD) 3 (V03 arg3) [000..0AD) 5 (V05 arg5) [000..0AD) 10 (V10 arg10) [000..0AD) 11 (V11 arg11) [000..0AD) 4 (V04 arg4) [000..0AD) 6 (V06 arg6) [000..0AD) 7 (V07 arg7) [000..0AD) 8 (V08 arg8) [000..0AD) 9 (V09 arg9) [000..0AD) Added IP mapping: 0x007A STACK_EMPTY (G_M39391_IG14,ins#0,ofs#0) label Generating: N215 (???,???) [000230] ------------ IL_OFFSET void IL offset: 0x7a REG NA Generating: N217 ( 1, 1) [000006] ------------ t6 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t6 ref Generating: N219 ( 2, 2) [000209] -c---------- t209 = * LEA(b+8) byref REG NA /--* t209 byref Generating: N221 ( 4, 4) [000007] n---GO------ t7 = * IND ref REG rax IN004e: mov rax, gword ptr [rsi+8] GC regs: 000000C0 {rsi rdi} => 000000C1 {rax rsi rdi} /--* t7 ref Generating: N223 ( 8, 7) [000022] DA--GO------ * STORE_LCL_VAR ref V13 tmp1 d:2 NA REG NA GC regs: 000000C1 {rax rsi rdi} => 000000C0 {rsi rdi} IN004f: mov gword ptr [V13 rbp-40H], rax Live vars: {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11} => {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11 V13} GCvars: {} => {V13} Generating: N225 ( 1, 4) [000245] -c---------- t245 = CNS_INT(h) long 0xd1ffab1e ftn REG NA /--* t245 long Generating: N227 ( 3, 6) [000246] -c---------- t246 = * IND long REG NA /--* t246 long control expr Generating: N229 ( 14, 5) [000028] --C--------- t28 = * CALL help r2r_ind ref HELPER.CORINFO_HELP_READYTORUN_NEW REG rax $21b Call: GCvars=0000000000002000 {V13}, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {} IN0050: call [CORINFO_HELP_READYTORUN_NEW] GC regs: 000000C0 {rsi rdi} => 000000C1 {rax rsi rdi} /--* t28 ref Generating: N231 ( 18, 8) [000030] DA---------- * STORE_LCL_VAR ref V14 tmp2 d:2 rax REG rax GC regs: 000000C1 {rax rsi rdi} => 000000C0 {rsi rdi} V14 in reg rax is becoming live [000030] Live regs: 000040C8 {rbx rsi rdi r14} => 000040C9 {rax rbx rsi rdi r14} Live vars: {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11 V13} => {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11 V13 V14} GC regs: 000000C0 {rsi rdi} => 000000C1 {rax rsi rdi} Generating: N233 ( 2, 2) [000010] ------------ t10 = LCL_VAR int V03 arg3 u:1 r14 (last use) REG r14 $c1 /--* t10 int Generating: N235 ( 3, 4) [000211] ------------ t211 = * CAST int <- ubyte <- int REG r9 $289 V03 in reg r14 is becoming dead [000010] Live regs: 000040C9 {rax rbx rsi rdi r14} => 000000C9 {rax rbx rsi rdi} Live vars: {V00 V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11 V13 V14} => {V00 V01 V02 V04 V05 V06 V07 V08 V09 V10 V11 V13 V14} IN0051: movzx r9, r14b /--* t211 int Generating: N237 (???,???) [000247] ------------ * PUTARG_STK [+0x20] void REG NA IN0052: mov dword ptr [V12+0x20 rsp+20H], r9d Generating: N239 ( 3, 2) [000011] -----------z t11 = LCL_VAR int V04 arg4 u:1 r15 (last use) REG r15 $100 /--* t11 int Generating: N241 ( 4, 4) [000212] ------------ t212 = * CAST int <- bool <- int REG r9 $28e IN0053: mov r15d, dword ptr [V04 rbp+30H] V04 in reg r15 is becoming live [000011] Live regs: 000000C9 {rax rbx rsi rdi} => 000080C9 {rax rbx rsi rdi r15} V04 in reg r15 is becoming dead [000011] Live regs: 000080C9 {rax rbx rsi rdi r15} => 000000C9 {rax rbx rsi rdi} Live vars: {V00 V01 V02 V04 V05 V06 V07 V08 V09 V10 V11 V13 V14} => {V00 V01 V02 V05 V06 V07 V08 V09 V10 V11 V13 V14} IN0054: movzx r9, r15b /--* t212 int Generating: N243 (???,???) [000248] ------------ * PUTARG_STK [+0x28] void REG NA IN0055: mov dword ptr [V12+0x28 rsp+28H], r9d Generating: N245 ( 3, 2) [000012] -----------z t12 = LCL_VAR ref V05 arg5 u:1 r14 (last use) REG r14 $82 /--* t12 ref Generating: N247 (???,???) [000249] ------------ * PUTARG_STK [+0x30] void REG NA IN0056: mov r14, gword ptr [V05 rbp+38H] V05 in reg r14 is becoming live [000012] Live regs: 000000C9 {rax rbx rsi rdi} => 000040C9 {rax rbx rsi rdi r14} GC regs: 000000C1 {rax rsi rdi} => 000040C1 {rax rsi rdi r14} V05 in reg r14 is becoming dead [000012] Live regs: 000040C9 {rax rbx rsi rdi r14} => 000000C9 {rax rbx rsi rdi} Live vars: {V00 V01 V02 V05 V06 V07 V08 V09 V10 V11 V13 V14} => {V00 V01 V02 V06 V07 V08 V09 V10 V11 V13 V14} GC regs: 000040C1 {rax rsi rdi r14} => 000000C1 {rax rsi rdi} IN0057: mov gword ptr [V12+0x30 rsp+30H], r14 Generating: N249 ( 3, 2) [000013] -----------z t13 = LCL_VAR int V06 arg6 u:1 r12 (last use) REG r12 $101 /--* t13 int Generating: N251 ( 4, 4) [000213] ------------ t213 = * CAST int <- bool <- int REG r9 $295 IN0058: mov r12d, dword ptr [V06 rbp+40H] V06 in reg r12 is becoming live [000013] Live regs: 000000C9 {rax rbx rsi rdi} => 000010C9 {rax rbx rsi rdi r12} V06 in reg r12 is becoming dead [000013] Live regs: 000010C9 {rax rbx rsi rdi r12} => 000000C9 {rax rbx rsi rdi} Live vars: {V00 V01 V02 V06 V07 V08 V09 V10 V11 V13 V14} => {V00 V01 V02 V07 V08 V09 V10 V11 V13 V14} IN0059: movzx r9, r12b /--* t213 int Generating: N253 (???,???) [000250] ------------ * PUTARG_STK [+0x38] void REG NA IN005a: mov dword ptr [V12+0x38 rsp+38H], r9d Generating: N255 ( 3, 2) [000014] -----------z t14 = LCL_VAR int V07 arg7 u:1 r13 (last use) REG r13 $102 /--* t14 int Generating: N257 ( 4, 4) [000214] ------------ t214 = * CAST int <- bool <- int REG r9 $29a IN005b: mov r13d, dword ptr [V07 rbp+48H] V07 in reg r13 is becoming live [000014] Live regs: 000000C9 {rax rbx rsi rdi} => 000020C9 {rax rbx rsi rdi r13} V07 in reg r13 is becoming dead [000014] Live regs: 000020C9 {rax rbx rsi rdi r13} => 000000C9 {rax rbx rsi rdi} Live vars: {V00 V01 V02 V07 V08 V09 V10 V11 V13 V14} => {V00 V01 V02 V08 V09 V10 V11 V13 V14} IN005c: movzx r9, r13b /--* t214 int Generating: N259 (???,???) [000251] ------------ * PUTARG_STK [+0x40] void REG NA IN005d: mov dword ptr [V12+0x40 rsp+40H], r9d Generating: N261 ( 3, 2) [000015] -----------z t15 = LCL_VAR int V08 arg8 u:1 r14 (last use) REG r14 $103 /--* t15 int Generating: N263 ( 4, 4) [000215] ------------ t215 = * CAST int <- bool <- int REG r9 $29f IN005e: mov r14d, dword ptr [V08 rbp+50H] V08 in reg r14 is becoming live [000015] Live regs: 000000C9 {rax rbx rsi rdi} => 000040C9 {rax rbx rsi rdi r14} V08 in reg r14 is becoming dead [000015] Live regs: 000040C9 {rax rbx rsi rdi r14} => 000000C9 {rax rbx rsi rdi} Live vars: {V00 V01 V02 V08 V09 V10 V11 V13 V14} => {V00 V01 V02 V09 V10 V11 V13 V14} IN005f: movzx r9, r14b /--* t215 int Generating: N265 (???,???) [000252] ------------ * PUTARG_STK [+0x48] void REG NA IN0060: mov dword ptr [V12+0x48 rsp+48H], r9d Generating: N267 ( 3, 2) [000016] -----------z t16 = LCL_VAR int V09 arg9 u:1 r14 (last use) REG r14 $104 /--* t16 int Generating: N269 ( 4, 4) [000216] ------------ t216 = * CAST int <- bool <- int REG r9 $2a4 IN0061: mov r14d, dword ptr [V09 rbp+58H] V09 in reg r14 is becoming live [000016] Live regs: 000000C9 {rax rbx rsi rdi} => 000040C9 {rax rbx rsi rdi r14} V09 in reg r14 is becoming dead [000016] Live regs: 000040C9 {rax rbx rsi rdi r14} => 000000C9 {rax rbx rsi rdi} Live vars: {V00 V01 V02 V09 V10 V11 V13 V14} => {V00 V01 V02 V10 V11 V13 V14} IN0062: movzx r9, r14b /--* t216 int Generating: N271 (???,???) [000253] ------------ * PUTARG_STK [+0x50] void REG NA IN0063: mov dword ptr [V12+0x50 rsp+50H], r9d Generating: N273 ( 3, 2) [000017] -----------z t17 = LCL_VAR ref V10 arg10 u:1 r14 (last use) REG r14 $83 /--* t17 ref Generating: N275 (???,???) [000254] ------------ * PUTARG_STK [+0x58] void REG NA IN0064: mov r14, gword ptr [V10 rbp+60H] V10 in reg r14 is becoming live [000017] Live regs: 000000C9 {rax rbx rsi rdi} => 000040C9 {rax rbx rsi rdi r14} GC regs: 000000C1 {rax rsi rdi} => 000040C1 {rax rsi rdi r14} V10 in reg r14 is becoming dead [000017] Live regs: 000040C9 {rax rbx rsi rdi r14} => 000000C9 {rax rbx rsi rdi} Live vars: {V00 V01 V02 V10 V11 V13 V14} => {V00 V01 V02 V11 V13 V14} GC regs: 000040C1 {rax rsi rdi r14} => 000000C1 {rax rsi rdi} IN0065: mov gword ptr [V12+0x58 rsp+58H], r14 Generating: N277 ( 3, 2) [000018] -----------z t18 = LCL_VAR ref V11 arg11 u:1 r14 (last use) REG r14 $84 /--* t18 ref Generating: N279 (???,???) [000255] ------------ * PUTARG_STK [+0x60] void REG NA IN0066: mov r14, gword ptr [V11 rbp+68H] V11 in reg r14 is becoming live [000018] Live regs: 000000C9 {rax rbx rsi rdi} => 000040C9 {rax rbx rsi rdi r14} GC regs: 000000C1 {rax rsi rdi} => 000040C1 {rax rsi rdi r14} V11 in reg r14 is becoming dead [000018] Live regs: 000040C9 {rax rbx rsi rdi r14} => 000000C9 {rax rbx rsi rdi} Live vars: {V00 V01 V02 V11 V13 V14} => {V00 V01 V02 V13 V14} GC regs: 000040C1 {rax rsi rdi r14} => 000000C1 {rax rsi rdi} IN0067: mov gword ptr [V12+0x60 rsp+60H], r14 Generating: N281 ( 1, 1) [000019] ------------ t19 = LCL_VAR ref V00 this u:1 rsi REG rsi $80 /--* t19 ref Generating: N283 ( 2, 2) [000218] -c---------- t218 = * LEA(b+17) byref REG NA /--* t218 byref Generating: N285 ( 5, 5) [000145] nc--GO------ t145 = * IND ubyte REG NA Generating: N287 ( 1, 1) [000146] -c---------- t146 = CNS_INT ubyte 1 REG NA $41 /--* t145 ubyte +--* t146 ubyte Generating: N289 ( 12, 9) [000149] N---GO---U-- t149 = * TEST_NE int REG r9 IN0068: test byte ptr [rsi+17], 1 IN0069: setne r9b IN006a: movzx r9, r9b /--* t149 int Generating: N291 (???,???) [000256] ----GO------ * PUTARG_STK [+0x68] void REG NA IN006b: mov dword ptr [V12+0x68 rsp+68H], r9d Generating: N293 ( 2, 2) [000009] ------------ t9 = LCL_VAR int V02 arg2 u:1 rbx (last use) REG rbx $c0 /--* t9 int Generating: N295 ( 3, 4) [000210] ------------ t210 = * CAST int <- ubyte <- int REG r9 $284 V02 in reg rbx is becoming dead [000009] Live regs: 000000C9 {rax rbx rsi rdi} => 000000C1 {rax rsi rdi} Live vars: {V00 V01 V02 V13 V14} => {V00 V01 V13 V14} IN006c: movzx r9, bl /--* t210 int Generating: N297 (???,???) [000257] ------------ t257 = * PUTARG_REG int REG r9 Generating: N299 ( 3, 2) [000031] -----------Z t31 = LCL_VAR ref V14 tmp2 u:2 rax REG rax $21b /--* t31 ref Generating: N301 (???,???) [000258] ------------ t258 = * PUTARG_REG ref REG rcx IN006d: mov gword ptr [V14 rbp-48H], rax V14 in reg rax is becoming dead [000031] Live regs: 000000C1 {rax rsi rdi} => 000000C0 {rsi rdi} GC regs: 000000C1 {rax rsi rdi} => 000000C0 {rsi rdi} Var V14 becoming live IN006e: mov rcx, rax GC regs: 000000C0 {rsi rdi} => 000000C2 {rcx rsi rdi} Generating: N303 ( 3, 2) [000023] -----------z t23 = LCL_VAR ref V13 tmp1 u:2 rdx (last use) REG rdx /--* t23 ref Generating: N305 (???,???) [000259] ------------ t259 = * PUTARG_REG ref REG rdx IN006f: mov rdx, gword ptr [V13 rbp-40H] Removing V13 from gcVarPtrSetCur V13 in reg rdx is becoming live [000023] Live regs: 000000C0 {rsi rdi} => 000000C4 {rdx rsi rdi} GC regs: 000000C2 {rcx rsi rdi} => 000000C6 {rcx rdx rsi rdi} V13 in reg rdx is becoming dead [000023] Live regs: 000000C4 {rdx rsi rdi} => 000000C0 {rsi rdi} Live vars: {V00 V01 V13 V14} => {V00 V01 V14} GC regs: 000000C6 {rcx rdx rsi rdi} => 000000C2 {rcx rsi rdi} GC regs: 000000C2 {rcx rsi rdi} => 000000C6 {rcx rdx rsi rdi} Generating: N307 ( 1, 1) [000008] ------------ t8 = LCL_VAR ref V01 arg1 u:1 rdi (last use) REG rdi $81 /--* t8 ref Generating: N309 (???,???) [000260] ------------ t260 = * PUTARG_REG ref REG r8 V01 in reg rdi is becoming dead [000008] Live regs: 000000C0 {rsi rdi} => 00000040 {rsi} Live vars: {V00 V01 V14} => {V00 V14} GC regs: 000000C6 {rcx rdx rsi rdi} => 00000046 {rcx rdx rsi} IN0070: mov r8, rdi GC regs: 00000046 {rcx rdx rsi} => 00000146 {rcx rdx rsi r8} Generating: N311 ( 1, 4) [000261] -c---------- t261 = CNS_INT(h) long 0xd1ffab1e ftn REG NA /--* t261 long Generating: N313 ( 3, 6) [000262] -c---------- t262 = * IND long REG NA /--* t257 int arg3 in r9 +--* t258 ref this in rcx +--* t259 ref arg1 in rdx +--* t260 ref arg2 in r8 +--* t262 long control expr Generating: N315 ( 98, 58) [000032] --CXGO------ * CALL r2r_ind void Microsoft.CodeAnalysis.CSharp.BoundConversion..ctor REG NA $VN.Void GC regs: 00000146 {rcx rdx rsi r8} => 00000144 {rdx rsi r8} GC regs: 00000144 {rdx rsi r8} => 00000140 {rsi r8} GC regs: 00000140 {rsi r8} => 00000040 {rsi} Call: GCvars=0000000000000010 {V14}, gcrefRegs=00000040 {rsi}, byrefRegs=00000000 {} IN0071: call [Microsoft.CodeAnalysis.CSharp.BoundConversion:.ctor(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,bool):this] Generating: N317 ( 1, 1) [000035] ------------ t35 = LCL_VAR ref V00 this u:1 rsi (last use) REG rsi $80 /--* t35 ref Generating: N319 ( 2, 2) [000224] -c---------- t224 = * LEA(b+17) byref REG NA /--* t224 byref Generating: N321 ( 5, 5) [000151] nc--GO------ t151 = * IND ubyte REG NA Generating: N323 ( 1, 1) [000152] -c---------- t152 = CNS_INT ubyte 2 REG NA $42 /--* t151 ubyte +--* t152 ubyte Generating: N325 ( 12, 9) [000155] N---GO---U-- t155 = * TEST_NE int REG rax V00 in reg rsi is becoming dead [000035] Live regs: 00000040 {rsi} => 00000000 {} Live vars: {V00 V14} => {V14} GC regs: 00000040 {rsi} => 00000000 {} IN0072: test byte ptr [rsi+17], 2 IN0073: setne al IN0074: movzx rax, al /--* t155 int Generating: N327 ( 16, 12) [000171] DA--GO------ * STORE_LCL_VAR int V15 tmp3 d:2 rax REG rax V15 in reg rax is becoming live [000171] Live regs: 00000000 {} => 00000001 {rax} Live vars: {V14} => {V14 V15} Generating: N329 ( 3, 2) [000158] ------------ t158 = LCL_VAR int V15 tmp3 u:2 rax (last use) REG rax Generating: N331 ( 1, 1) [000159] -c---------- t159 = CNS_INT int 0 REG NA $40 /--* t158 int +--* t159 int Generating: N333 ( 5, 4) [000160] J------N---- * EQ void REG NA V15 in reg rax is becoming dead [000158] Live regs: 00000001 {rax} => 00000000 {} Live vars: {V14 V15} => {V14} IN0075: test eax, eax Generating: N335 ( 7, 6) [000161] ------------ * JTRUE void REG NA IN0076: je L_M39391_BB23 Scope info: end block BB13, IL range [000..0AB) Scope info: open scopes = =============== Generating BB14 [000..000), preds={BB13} succs={BB15} flags=0x00000000.40080060: i internal gcsafe LIR BB14 IN (1)={V14} + ByrefExposed + GcHeap OUT(1)={V14} Recording Var Locations at start of BB14 Liveness not changing: 0000000000000010 {V14} Live regs: (unchanged) 00000000 {} GC regs: (unchanged) 00000000 {} Byref regs: (unchanged) 00000000 {} L_M39391_BB14: G_M39391_IG14: ; offs=00023FH, funclet=00, bbWeight=0.17 Label: IG15, GCvars=0000000000000010 {V14}, gcrefRegs=00000000 {}, byrefRegs=00000000 {} Scope info: begin block BB14, IL range [000..000) Scope info: open scopes = Added IP mapping: NO_MAP STACK_EMPTY (G_M39391_IG15,ins#0,ofs#0) label Generating: N339 ( 3, 2) [000162] -c---------- t162 = LCL_VAR ref V14 tmp2 u:2 NA REG NA $21b /--* t162 ref Generating: N341 ( 4, 3) [000228] -c---------- t228 = * LEA(b+17) byref REG NA /--* t228 byref Generating: N343 ( 7, 6) [000163] nc--GO------ t163 = * IND ubyte REG NA Generating: N345 ( 1, 1) [000164] -c---------- t164 = CNS_INT int 2 REG NA $42 /--* t163 ubyte +--* t164 int Generating: N347 ( 9, 8) [000165] -c--GO------ t165 = * OR int REG NA Generating: N349 ( 3, 2) [000034] -----------z t34 = LCL_VAR ref V14 tmp2 u:2 rsi REG rsi $21b /--* t34 ref Generating: N351 ( 4, 3) [000226] -c---------- t226 = * LEA(b+17) byref REG NA /--* t226 byref +--* t165 int Generating: N353 (???,???) [000231] -A--GO------ * STOREIND ubyte REG NA IN0077: mov rsi, gword ptr [V14 rbp-48H] Removing V14 from gcVarPtrSetCur V14 in reg rsi is becoming live [000034] Live regs: 00000000 {} => 00000040 {rsi} GC regs: 00000000 {} => 00000040 {rsi} IN0078: or byte ptr [rsi+17], 2 Scope info: end block BB14, IL range [000..000) Scope info: open scopes = =============== Generating BB15 [000..000) (return), preds={BB23,BB14} succs={} flags=0x00000000.608b0460: i internal label target gcsafe newobj nullcheck IBC LIR BB15 IN (1)={V14} OUT(0)={ } Recording Var Locations at start of BB15 V14(rsi) Liveness not changing: 0000000000000010 {V14} Live regs: 00000000 {} => 00000040 {rsi} GC regs: 00000000 {} => 00000040 {rsi} Byref regs: (unchanged) 00000000 {} L_M39391_BB15: G_M39391_IG15: ; offs=0002EDH, funclet=00, bbWeight=0.09 Label: IG16, GCvars=0000000000000000 {}, gcrefRegs=00000040 {rsi}, byrefRegs=00000000 {} Scope info: begin block BB15, IL range [000..000) Scope info: open scopes = genIPmappingAdd: ignoring duplicate IL offset 0xffffffff Added IP mapping: 0x00AA (G_M39391_IG16,ins#0,ofs#0) label Generating: N357 (???,???) [000232] ------------ IL_OFFSET void IL offset: 0xaa REG NA Generating: N359 ( 3, 2) [000033] ------------ t33 = LCL_VAR ref V14 tmp2 u:2 rsi (last use) REG rsi $21b /--* t33 ref Generating: N361 ( 4, 3) [000040] ------------ * RETURN ref REG NA $255 V14 in reg rsi is becoming dead [000033] Live regs: 00000040 {rsi} => 00000000 {} Live vars: {V14} => {} GC regs: 00000040 {rsi} => 00000000 {} IN0079: mov rax, rsi Scope info: end block BB15, IL range [000..000) Scope info: open scopes = Added IP mapping: EPILOG STACK_EMPTY (G_M39391_IG16,ins#1,ofs#3) label Reserving epilog IG for block BB15 G_M39391_IG16: ; offs=0002F5H, funclet=00, bbWeight=0.17 *************** After placeholder IG creation G_M39391_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=00000000 {} <-- Prolog IG G_M39391_IG02: ; offs=000000H, size=000AH, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG03: ; offs=00000AH, size=0083H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG04: ; offs=00008DH, size=004CH, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG05: ; offs=0000D9H, size=0003H, gcrefRegs=00000040 {rsi}, byrefRegs=00000000 {}, byref G_M39391_IG06: ; epilog placeholder, next placeholder=IG17 , BB12 [0012], epilog, extend <-- First placeholder ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=000000C0 {rsi rdi}, PrevByrefRegs=00000000 {} ; InitGCVars=0000000000000000 {}, InitGCrefRegs=00000040 {rsi}, InitByrefRegs=00000000 {} G_M39391_IG07: ; offs=0001DCH, size=0011H, gcVars=0000000000000000 {}, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, gcvars, byref G_M39391_IG08: ; offs=0001EDH, size=0011H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG09: ; offs=0001FEH, size=0011H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG10: ; offs=00020FH, size=0011H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG11: ; offs=000220H, size=000DH, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG12: ; offs=00022DH, size=0009H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG13: ; offs=000236H, size=0009H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG14: ; offs=00023FH, size=00AEH, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG15: ; offs=0002EDH, size=0008H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref G_M39391_IG16: ; offs=0002F5H, size=0003H, gcVars=0000000000000000 {}, gcrefRegs=00000040 {rsi}, byrefRegs=00000000 {}, gcvars, byref G_M39391_IG17: ; epilog placeholder, next placeholder=, BB15 [0028], epilog, extend <-- Last placeholder ; PrevGCVars=0000000000000010 {V14}, PrevGCrefRegs=00000000 {}, PrevByrefRegs=00000000 {} ; InitGCVars=0000000000000000 {}, InitGCrefRegs=00000040 {rsi}, InitByrefRegs=00000000 {} G_M39391_IG18: ; offs=0003F8H, size=0000H, gcrefRegs=00000000 {} <-- Current IG =============== Generating BB23 [???..???) -> BB15 (always), preds={BB13} succs={BB15} flags=0x00000000.40020040: internal target LIR BB23 IN (1)={V14} OUT(1)={V14} Recording Var Locations at start of BB23 V14(rsi->STK) Change life 0000000000000000 {} -> 0000000000000010 {V14} V14 becoming live Live regs: (unchanged) 00000000 {} GC regs: (unchanged) 00000000 {} Byref regs: (unchanged) 00000000 {} L_M39391_BB23: Label: IG18, GCvars=0000000000000010 {V14}, gcrefRegs=00000000 {}, byrefRegs=00000000 {} Scope info: begin block BB23, IL range [???..???) Scope info: ignoring block beginning Added IP mapping: NO_MAP STACK_EMPTY (G_M39391_IG18,ins#0,ofs#0) label Generating: N001 ( 3, 2) [000282] -----------z t282 = LCL_VAR ref V14 tmp2 rsi REG rsi IN007a: mov rsi, gword ptr [V14 rbp-48H] Removing V14 from gcVarPtrSetCur V14 in reg rsi is becoming live [000282] Live regs: 00000000 {} => 00000040 {rsi} GC regs: 00000000 {} => 00000040 {rsi} Scope info: end block BB23, IL range [???..???) Scope info: ignoring block end IN007b: jmp L_M39391_BB15 Change life 0000000000000010 {V14} -> 0000000000000000 {} V14 in reg rsi is becoming dead [------] Live regs: 00000040 {rsi} => 00000000 {} # compCycleEstimate = 338, compSizeEstimate = 260 Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this ; Final local variable assignments ; ; V00 this [V00,T00] ( 17, 12.64) ref -> rsi this class-hnd ; V01 arg1 [V01,T01] ( 4, 3.17) ref -> rdi class-hnd ; V02 arg2 [V02,T02] ( 4, 3 ) ubyte -> rbx ; V03 arg3 [V03,T03] ( 4, 3 ) ubyte -> r14 ; V04 arg4 [V04,T08] ( 2, 1 ) bool -> [rbp+0x30] ; V05 arg5 [V05,T05] ( 2, 1 ) ref -> [rbp+0x38] class-hnd ; V06 arg6 [V06,T09] ( 2, 1 ) bool -> [rbp+0x40] ; V07 arg7 [V07,T10] ( 2, 1 ) bool -> [rbp+0x48] ; V08 arg8 [V08,T11] ( 2, 1 ) bool -> [rbp+0x50] ; V09 arg9 [V09,T12] ( 2, 1 ) bool -> [rbp+0x58] ; V10 arg10 [V10,T06] ( 2, 1 ) ref -> [rbp+0x60] class-hnd ; V11 arg11 [V11,T07] ( 2, 1 ) ref -> [rbp+0x68] class-hnd ; V12 OutArgs [V12 ] ( 1, 1 ) lclBlk (112) [rsp+0x00] "OutgoingArgSpace" ; V13 tmp1 [V13,T13] ( 2, 0.68) ref -> [rbp-0x40] class-hnd "impAppendStmt" ; V14 tmp2 [V14,T04] ( 5, 1.38) ref -> [rbp-0x48] class-hnd exact "NewObj constructor temp" ; V15 tmp3 [V15,T14] ( 2, 0.68) bool -> rax "Inlining Arg" ; ; Lcl frame size = 136 *************** Before prolog / epilog generation G_M39391_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=00000000 {} <-- Prolog IG G_M39391_IG02: ; offs=000000H, size=000AH, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG03: ; offs=00000AH, size=0083H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG04: ; offs=00008DH, size=004CH, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG05: ; offs=0000D9H, size=0003H, gcrefRegs=00000040 {rsi}, byrefRegs=00000000 {}, byref G_M39391_IG06: ; epilog placeholder, next placeholder=IG17 , BB12 [0012], epilog, extend <-- First placeholder ; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=000000C0 {rsi rdi}, PrevByrefRegs=00000000 {} ; InitGCVars=0000000000000000 {}, InitGCrefRegs=00000040 {rsi}, InitByrefRegs=00000000 {} G_M39391_IG07: ; offs=0001DCH, size=0011H, gcVars=0000000000000000 {}, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, gcvars, byref G_M39391_IG08: ; offs=0001EDH, size=0011H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG09: ; offs=0001FEH, size=0011H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG10: ; offs=00020FH, size=0011H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG11: ; offs=000220H, size=000DH, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG12: ; offs=00022DH, size=0009H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG13: ; offs=000236H, size=0009H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG14: ; offs=00023FH, size=00AEH, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG15: ; offs=0002EDH, size=0008H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref G_M39391_IG16: ; offs=0002F5H, size=0003H, gcVars=0000000000000000 {}, gcrefRegs=00000040 {rsi}, byrefRegs=00000000 {}, gcvars, byref G_M39391_IG17: ; epilog placeholder, next placeholder=, BB15 [0028], epilog, extend <-- Last placeholder ; PrevGCVars=0000000000000010 {V14}, PrevGCrefRegs=00000000 {}, PrevByrefRegs=00000000 {} ; InitGCVars=0000000000000000 {}, InitGCrefRegs=00000040 {rsi}, InitByrefRegs=00000000 {} G_M39391_IG18: ; offs=0003F8H, size=0000H, gcrefRegs=00000000 {} <-- Current IG Recording Var Locations at start of BB01 V00(rsi) V01(rdi) V02(rbx) V03(r14) V05(r14->STK) V10(r14->STK) V11(r14->STK) V04(r15->STK) V06(r12->STK) V07(r13->STK) V08(r14->STK) V09(r14->STK) G_M39391_IG18: ; offs=0003F8H, funclet=00, bbWeight=0.09 *************** In genFnProlog() Added IP mapping to front: PROLOG STACK_EMPTY (G_M39391_IG01,ins#0,ofs#0) label __prolog: IN007c: push rbp IN007d: push r15 IN007e: push r14 IN007f: push r13 IN0080: push r12 IN0081: push rdi IN0082: push rsi IN0083: push rbx IN0084: sub rsp, 136 IN0085: lea rbp, [rsp+C0H] *************** In genFnPrologCalleeRegArgs() for int regs IN0086: mov rsi, rcx IN0087: mov rdi, rdx IN0088: mov ebx, r8d IN0089: mov r14d, r9d *************** In genEnregisterIncomingStackArgs() 2 tracked GC refs are at stack offsets -0048 ... FFFFFFC8 G_M39391_IG01: ; offs=000000H, funclet=00, bbWeight=1 *************** In genFnEpilog() __epilog: gcVarPtrSetCur=0000000000000000 {}, gcRegGCrefSetCur=00000040 {rsi}, gcRegByrefSetCur=00000000 {} IN008a: lea rsp, [rbp-38H] IN008b: pop rbx IN008c: pop rsi IN008d: pop rdi IN008e: pop r12 IN008f: pop r13 IN0090: pop r14 IN0091: pop r15 IN0092: pop rbp IN0093: ret G_M39391_IG06: ; offs=0000DCH, funclet=00, bbWeight=0.83 *************** In genFnEpilog() __epilog: gcVarPtrSetCur=0000000000000000 {}, gcRegGCrefSetCur=00000040 {rsi}, gcRegByrefSetCur=00000000 {} IN0094: lea rsp, [rbp-38H] IN0095: pop rbx IN0096: pop rsi IN0097: pop rdi IN0098: pop r12 IN0099: pop r13 IN009a: pop r14 IN009b: pop r15 IN009c: pop rbp IN009d: ret G_M39391_IG17: ; offs=0002F8H, funclet=00, bbWeight=0.17 0 prologs, 2 epilogs, 0 funclet prologs, 0 funclet epilogs *************** After prolog / epilog generation G_M39391_IG01: ; func=00, offs=000000H, size=0027H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG G_M39391_IG02: ; offs=000027H, size=000AH, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG03: ; offs=000031H, size=0083H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG04: ; offs=0000B4H, size=004CH, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG05: ; offs=000100H, size=0003H, gcrefRegs=00000040 {rsi}, byrefRegs=00000000 {}, byref G_M39391_IG06: ; offs=000103H, size=0011H, epilog, nogc, extend G_M39391_IG07: ; offs=000114H, size=0011H, gcVars=0000000000000000 {}, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, gcvars, byref G_M39391_IG08: ; offs=000125H, size=0011H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG09: ; offs=000136H, size=0011H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG10: ; offs=000147H, size=0011H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG11: ; offs=000158H, size=000DH, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG12: ; offs=000165H, size=0009H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG13: ; offs=00016EH, size=0009H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG14: ; offs=000177H, size=00AEH, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref G_M39391_IG15: ; offs=000225H, size=0008H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref G_M39391_IG16: ; offs=00022DH, size=0003H, gcVars=0000000000000000 {}, gcrefRegs=00000040 {rsi}, byrefRegs=00000000 {}, gcvars, byref G_M39391_IG17: ; offs=000230H, size=0011H, epilog, nogc, extend G_M39391_IG18: ; offs=000241H, size=0009H, gcVars=0000000000000010 {V14}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref *************** In emitJumpDistBind() Binding: IN0002: 000000 jne L_M39391_BB13 Binding L_M39391_BB13 to G_M39391_IG14 Estimate of fwd jump [D1FFAB1E/002]: 002B -> 0177 = 014A Adjusted offset of BB03 from 0031 to 0031 Binding: IN0006: 000000 jne L_M39391_BB13 Binding L_M39391_BB13 to G_M39391_IG14 Estimate of fwd jump [D1FFAB1E/006]: 003A -> 0177 = 013B Binding: IN000a: 000000 jne L_M39391_BB13 Binding L_M39391_BB13 to G_M39391_IG14 Estimate of fwd jump [D1FFAB1E/010]: 004A -> 0177 = 012B Binding: IN000f: 000000 jne L_M39391_BB16 Binding L_M39391_BB16 to G_M39391_IG13 Estimate of fwd jump [D1FFAB1E/015]: 005E -> 016E = 010E Binding: IN0014: 000000 jne L_M39391_BB17 Binding L_M39391_BB17 to G_M39391_IG12 Estimate of fwd jump [D1FFAB1E/020]: 0074 -> 0165 = 00EF Binding: IN0019: 000000 jne L_M39391_BB18 Binding L_M39391_BB18 to G_M39391_IG11 Estimate of fwd jump [D1FFAB1E/025]: 0088 -> 0158 = 00CE Binding: IN001e: 000000 jne L_M39391_BB19 Binding L_M39391_BB19 to G_M39391_IG10 Estimate of fwd jump [D1FFAB1E/030]: 009C -> 0147 = 00A9 Binding: IN0023: 000000 jne L_M39391_BB20 Binding L_M39391_BB20 to G_M39391_IG09 Estimate of fwd jump [D1FFAB1E/035]: 00AE -> 0136 = 0086 Adjusted offset of BB04 from 00B4 to 00B4 Binding: IN0028: 000000 jne L_M39391_BB21 Binding L_M39391_BB21 to G_M39391_IG08 Estimate of fwd jump [D1FFAB1E/040]: 00C2 -> 0125 = 0061 Shrinking jump [D1FFAB1E/040] Binding: IN002d: 000000 jne L_M39391_BB22 Binding L_M39391_BB22 to G_M39391_IG07 Estimate of fwd jump [D1FFAB1E/045]: 00D4 -> 0110 = 003A Shrinking jump [D1FFAB1E/045] Binding: IN0035: 000000 jne L_M39391_BB13 Binding L_M39391_BB13 to G_M39391_IG14 Estimate of fwd jump [D1FFAB1E/053]: 00F2 -> 016F = 007B Shrinking jump [D1FFAB1E/053] Adjusted offset of BB05 from 0100 to 00F4 Adjusted offset of BB06 from 0103 to 00F7 Adjusted offset of BB07 from 0114 to 0108 Binding: IN003a: 000000 jmp L_M39391_BB13 Binding L_M39391_BB13 to G_M39391_IG14 Estimate of fwd jump [D1FFAB1E/058]: 0114 -> 016B = 0055 Shrinking jump [D1FFAB1E/058] Adjusted offset of BB08 from 0125 to 0116 Binding: IN003e: 000000 jmp L_M39391_BB13 Binding L_M39391_BB13 to G_M39391_IG14 Estimate of fwd jump [D1FFAB1E/062]: 0122 -> 0168 = 0044 Shrinking jump [D1FFAB1E/062] Adjusted offset of BB09 from 0136 to 0124 Binding: IN0042: 000000 jmp L_M39391_BB13 Binding L_M39391_BB13 to G_M39391_IG14 Estimate of fwd jump [D1FFAB1E/066]: 0130 -> 0165 = 0033 Shrinking jump [D1FFAB1E/066] Adjusted offset of BB10 from 0147 to 0132 Binding: IN0046: 000000 jmp L_M39391_BB13 Binding L_M39391_BB13 to G_M39391_IG14 Estimate of fwd jump [D1FFAB1E/070]: 013E -> 0162 = 0022 Shrinking jump [D1FFAB1E/070] Adjusted offset of BB11 from 0158 to 0140 Binding: IN0049: 000000 jmp L_M39391_BB13 Binding L_M39391_BB13 to G_M39391_IG14 Estimate of fwd jump [D1FFAB1E/073]: 0148 -> 015F = 0015 Shrinking jump [D1FFAB1E/073] Adjusted offset of BB12 from 0165 to 014A Binding: IN004b: 000000 jmp L_M39391_BB13 Binding L_M39391_BB13 to G_M39391_IG14 Estimate of fwd jump [D1FFAB1E/075]: 014E -> 015C = 000C Shrinking jump [D1FFAB1E/075] Adjusted offset of BB13 from 016E to 0150 Binding: IN004d: 000000 jmp L_M39391_BB13 Binding L_M39391_BB13 to G_M39391_IG14 Estimate of fwd jump [D1FFAB1E/077]: 0154 -> 0159 = 0003 Shrinking jump [D1FFAB1E/077] Adjusted offset of BB14 from 0177 to 0156 Binding: IN0076: 000000 je L_M39391_BB23 Binding L_M39391_BB23 to G_M39391_IG18 Estimate of fwd jump [D1FFAB1E/118]: 01FE -> 0220 = 0020 Shrinking jump [D1FFAB1E/118] Adjusted offset of BB15 from 0225 to 0200 Adjusted offset of BB16 from 022D to 0208 Adjusted offset of BB17 from 0230 to 020B Adjusted offset of BB18 from 0241 to 021C Binding: IN007b: 000000 jmp L_M39391_BB15 Binding L_M39391_BB15 to G_M39391_IG16 Estimate of bwd jump [D1FFAB1E/123]: 0220 -> 0208 = 001A Shrinking jump [D1FFAB1E/123] Total shrinkage = 40, min extra jump size = 7 Iterating branch shortening. Iteration = 2 Estimate of fwd jump [D1FFAB1E/002]: 002B -> 0156 = 0129 Adjusted offset of BB03 from 0031 to 0031 Estimate of fwd jump [D1FFAB1E/006]: 003A -> 0156 = 011A Estimate of fwd jump [D1FFAB1E/010]: 004A -> 0156 = 010A Estimate of fwd jump [D1FFAB1E/015]: 005E -> 0150 = 00F0 Estimate of fwd jump [D1FFAB1E/020]: 0074 -> 014A = 00D4 Estimate of fwd jump [D1FFAB1E/025]: 0088 -> 0140 = 00B6 Estimate of fwd jump [D1FFAB1E/030]: 009C -> 0132 = 0094 Estimate of fwd jump [D1FFAB1E/035]: 00AE -> 0124 = 0074 Shrinking jump [D1FFAB1E/035] Adjusted offset of BB04 from 00B4 to 00B0 Adjusted offset of BB05 from 00F4 to 00F0 Adjusted offset of BB06 from 00F7 to 00F3 Adjusted offset of BB07 from 0108 to 0104 Adjusted offset of BB08 from 0116 to 0112 Adjusted offset of BB09 from 0124 to 0120 Adjusted offset of BB10 from 0132 to 012E Adjusted offset of BB11 from 0140 to 013C Adjusted offset of BB12 from 014A to 0146 Adjusted offset of BB13 from 0150 to 014C Adjusted offset of BB14 from 0156 to 0152 Adjusted offset of BB15 from 0200 to 01FC Adjusted offset of BB16 from 0208 to 0204 Adjusted offset of BB17 from 020B to 0207 Adjusted offset of BB18 from 021C to 0218 Total shrinkage = 4, min extra jump size = 21 *************** Finishing PHASE Generate code *************** Starting PHASE Emit code Hot code size = 0x21E bytes Cold code size = 0x0 bytes reserveUnwindInfo(isFunclet=FALSE, isColdCode=FALSE, unwindSize=0x18) *************** In emitEndCodeGen() Converting emitMaxStackDepth from bytes (0) to elements (0) *************************************************************************** Instructions as they come out of the scheduler G_M39391_IG01: ; func=00, offs=000000H, size=0027H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG IN007c: 000000 push rbp IN007d: 000001 push r15 IN007e: 000003 push r14 IN007f: 000005 push r13 IN0080: 000007 push r12 IN0081: 000009 push rdi IN0082: 00000A push rsi IN0083: 00000B push rbx IN0084: 00000C sub rsp, 136 IN0085: 000013 lea rbp, [rsp+C0H] gcrReg +[rsi] IN0086: 00001B mov rsi, rcx gcrReg +[rdi] IN0087: 00001E mov rdi, rdx IN0088: 000021 mov ebx, r8d IN0089: 000024 mov r14d, r9d ;; bbWeight=1 PerfScore 9.75 G_M39391_IG02: ; func=00, offs=000027H, size=000AH, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref IN0001: 000027 cmp rdi, gword ptr [rsi+32] IN0002: 00002B jne G_M39391_IG14 ;; bbWeight=1 PerfScore 3.00 G_M39391_IG03: ; func=00, offs=000031H, size=007FH, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref, isz IN0003: 000031 movzx rdx, bl IN0004: 000034 movzx rcx, byte ptr [rsi+56] IN0005: 000038 cmp edx, ecx IN0006: 00003A jne G_M39391_IG14 IN0007: 000040 movzx rdx, r14b IN0008: 000044 movzx rcx, byte ptr [rsi+57] IN0009: 000048 cmp edx, ecx IN000a: 00004A jne G_M39391_IG14 IN000b: 000050 mov r15d, dword ptr [rbp+30H] IN000c: 000054 movzx rdx, r15b IN000d: 000058 movzx rcx, byte ptr [rsi+58] IN000e: 00005C cmp edx, ecx IN000f: 00005E jne G_M39391_IG13 gcrReg +[rdx] IN0010: 000064 mov rdx, gword ptr [rsi+40] gcrReg +[rcx] IN0011: 000068 mov rcx, gword ptr [rbp+38H] New gcrReg live regs=000000C0 {rsi rdi} ; Call at 006C [stk=0], GCvars=none, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {} IN0012: 00006C call [Microsoft.CodeAnalysis.CSharp.Symbol:op_Inequality(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):bool] IN0013: 000072 test al, al IN0014: 000074 jne G_M39391_IG12 IN0015: 00007A mov r12d, dword ptr [rbp+40H] IN0016: 00007E movzx rdx, r12b IN0017: 000082 movzx rcx, byte ptr [rsi+59] IN0018: 000086 cmp edx, ecx IN0019: 000088 jne G_M39391_IG11 IN001a: 00008E mov r13d, dword ptr [rbp+48H] IN001b: 000092 movzx rdx, r13b IN001c: 000096 movzx rcx, byte ptr [rsi+60] IN001d: 00009A cmp edx, ecx IN001e: 00009C jne G_M39391_IG10 IN001f: 0000A2 mov eax, dword ptr [rbp+50H] IN0020: 0000A5 movzx rdx, al IN0021: 0000A8 movzx rcx, byte ptr [rsi+61] IN0022: 0000AC cmp edx, ecx IN0023: 0000AE jne SHORT G_M39391_IG09 ;; bbWeight=0.83 PerfScore 26.77 G_M39391_IG04: ; func=00, offs=0000B0H, size=0040H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref, isz IN0024: 0000B0 mov r8d, dword ptr [rbp+58H] IN0025: 0000B4 movzx rdx, r8b IN0026: 0000B8 movzx rcx, byte ptr [rsi+62] IN0027: 0000BC cmp edx, ecx IN0028: 0000BE jne SHORT G_M39391_IG08 gcrReg +[rdx] IN0029: 0000C0 mov rdx, gword ptr [rsi+48] gcrReg +[rcx] IN002a: 0000C4 mov rcx, gword ptr [rbp+60H] New gcrReg live regs=000000C0 {rsi rdi} ; Call at 00C8 [stk=0], GCvars=none, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {} IN002b: 0000C8 call [Microsoft.CodeAnalysis.ConstantValue:op_Inequality(Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.ConstantValue):bool] IN002c: 0000CE test al, al IN002d: 0000D0 jne SHORT G_M39391_IG07 gcrReg +[rdx] IN002e: 0000D2 mov rdx, gword ptr [rsi+24] gcrReg +[rcx] IN002f: 0000D6 mov rcx, gword ptr [rbp+68H] New gcrReg live regs=000000C0 {rsi rdi} ; Call at 00DA [stk=0], GCvars=none, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {} IN0030: 0000DA call [Microsoft.CodeAnalysis.CSharp.Symbol:op_Inequality(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):bool] IN0031: 0000E0 test al, al IN0032: 0000E2 mov dword ptr [rbp+30H], r15d IN0033: 0000E6 mov dword ptr [rbp+40H], r12d IN0034: 0000EA mov dword ptr [rbp+48H], r13d IN0035: 0000EE jne SHORT G_M39391_IG14 ;; bbWeight=0.83 PerfScore 18.26 G_M39391_IG05: ; func=00, offs=0000F0H, size=0003H, gcrefRegs=00000040 {rsi}, byrefRegs=00000000 {}, byref New gcrReg live regs=00000040 {rsi} gcrReg +[rax] IN0036: 0000F0 mov rax, rsi ;; bbWeight=0.83 PerfScore 0.21 G_M39391_IG06: ; func=00, offs=0000F3H, size=0011H, epilog, nogc, extend IN008a: 0000F3 lea rsp, [rbp-38H] IN008b: 0000F7 pop rbx IN008c: 0000F8 pop rsi IN008d: 0000F9 pop rdi IN008e: 0000FA pop r12 IN008f: 0000FC pop r13 IN0090: 0000FE pop r14 IN0091: 000100 pop r15 IN0092: 000102 pop rbp IN0093: 000103 ret ;; bbWeight=0.83 PerfScore 4.56 G_M39391_IG07: ; func=00, offs=000104H, size=000EH, gcVars=0000000000000000 {}, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, gcvars, byref, isz New gcrReg live regs=000000C0 {rsi rdi} IN0037: 000104 mov dword ptr [rbp+30H], r15d IN0038: 000108 mov dword ptr [rbp+40H], r12d IN0039: 00010C mov dword ptr [rbp+48H], r13d IN003a: 000110 jmp SHORT G_M39391_IG14 ;; bbWeight=0.41 PerfScore 2.05 G_M39391_IG08: ; func=00, offs=000112H, size=000EH, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref, isz IN003b: 000112 mov dword ptr [rbp+30H], r15d IN003c: 000116 mov dword ptr [rbp+40H], r12d IN003d: 00011A mov dword ptr [rbp+48H], r13d IN003e: 00011E jmp SHORT G_M39391_IG14 ;; bbWeight=0.41 PerfScore 2.05 G_M39391_IG09: ; func=00, offs=000120H, size=000EH, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref, isz IN003f: 000120 mov dword ptr [rbp+30H], r15d IN0040: 000124 mov dword ptr [rbp+40H], r12d IN0041: 000128 mov dword ptr [rbp+48H], r13d IN0042: 00012C jmp SHORT G_M39391_IG14 ;; bbWeight=0.41 PerfScore 2.05 G_M39391_IG10: ; func=00, offs=00012EH, size=000EH, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref, isz IN0043: 00012E mov dword ptr [rbp+30H], r15d IN0044: 000132 mov dword ptr [rbp+40H], r12d IN0045: 000136 mov dword ptr [rbp+48H], r13d IN0046: 00013A jmp SHORT G_M39391_IG14 ;; bbWeight=0.41 PerfScore 2.05 G_M39391_IG11: ; func=00, offs=00013CH, size=000AH, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref, isz IN0047: 00013C mov dword ptr [rbp+30H], r15d IN0048: 000140 mov dword ptr [rbp+40H], r12d IN0049: 000144 jmp SHORT G_M39391_IG14 ;; bbWeight=0.41 PerfScore 1.64 G_M39391_IG12: ; func=00, offs=000146H, size=0006H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref, isz IN004a: 000146 mov dword ptr [rbp+30H], r15d IN004b: 00014A jmp SHORT G_M39391_IG14 ;; bbWeight=0.41 PerfScore 1.23 G_M39391_IG13: ; func=00, offs=00014CH, size=0006H, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref, isz IN004c: 00014C mov dword ptr [rbp+30H], r15d IN004d: 000150 jmp SHORT G_M39391_IG14 ;; bbWeight=0.41 PerfScore 1.23 G_M39391_IG14: ; func=00, offs=000152H, size=00AAH, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref, isz gcrReg +[rax] IN004e: 000152 mov rax, gword ptr [rsi+8] [D1FFAB1E] gcr var born at [rbp-40H] IN004f: 000156 mov gword ptr [rbp-40H], rax New GC ref live vars=0000000000002000 {V13} ; Call at 015A [stk=0], GCvars=[rbp-40H], gcrefRegs=000000C1 {rax rsi rdi}, byrefRegs=00000000 {} IN0050: 00015A call [CORINFO_HELP_READYTORUN_NEW] IN0051: 000160 movzx r9, r14b IN0052: 000164 mov dword ptr [rsp+20H], r9d IN0053: 000169 mov r15d, dword ptr [rbp+30H] IN0054: 00016D movzx r9, r15b IN0055: 000171 mov dword ptr [rsp+28H], r9d gcrReg +[r14] IN0056: 000176 mov r14, gword ptr [rbp+38H] IN0057: 00017A mov gword ptr [rsp+30H], r14 IN0058: 00017F mov r12d, dword ptr [rbp+40H] IN0059: 000183 movzx r9, r12b IN005a: 000187 mov dword ptr [rsp+38H], r9d IN005b: 00018C mov r13d, dword ptr [rbp+48H] IN005c: 000190 movzx r9, r13b IN005d: 000194 mov dword ptr [rsp+40H], r9d gcrReg -[r14] IN005e: 000199 mov r14d, dword ptr [rbp+50H] IN005f: 00019D movzx r9, r14b IN0060: 0001A1 mov dword ptr [rsp+48H], r9d IN0061: 0001A6 mov r14d, dword ptr [rbp+58H] IN0062: 0001AA movzx r9, r14b IN0063: 0001AE mov dword ptr [rsp+50H], r9d gcrReg +[r14] IN0064: 0001B3 mov r14, gword ptr [rbp+60H] IN0065: 0001B7 mov gword ptr [rsp+58H], r14 IN0066: 0001BC mov r14, gword ptr [rbp+68H] IN0067: 0001C0 mov gword ptr [rsp+60H], r14 IN0068: 0001C5 test byte ptr [rsi+17], 1 IN0069: 0001C9 setne r9b IN006a: 0001CD movzx r9, r9b IN006b: 0001D1 mov dword ptr [rsp+68H], r9d IN006c: 0001D6 movzx r9, bl [D1FFAB1E] gcr var born at [rbp-48H] IN006d: 0001DA mov gword ptr [rbp-48H], rax gcrReg +[rcx] IN006e: 0001DE mov rcx, rax gcrReg +[rdx] IN006f: 0001E1 mov rdx, gword ptr [rbp-40H] gcrReg +[r8] IN0070: 0001E5 mov r8, rdi New GC ref live vars=0000000000000010 {V14} [D1FFAB1E] gcr var died at [rbp-40H] New gcrReg live regs=00000040 {rsi} ; Call at 01E8 [stk=0], GCvars=[rbp-48H], gcrefRegs=00000040 {rsi}, byrefRegs=00000000 {} IN0071: 0001E8 call [Microsoft.CodeAnalysis.CSharp.BoundConversion:.ctor(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,bool):this] IN0072: 0001EE test byte ptr [rsi+17], 2 IN0073: 0001F2 setne al IN0074: 0001F5 movzx rax, al IN0075: 0001F8 test eax, eax IN0076: 0001FA je SHORT G_M39391_IG18 ;; bbWeight=0.17 PerfScore 6.63 G_M39391_IG15: ; func=00, offs=0001FCH, size=0008H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref New gcrReg live regs=00000000 {} gcrReg +[rsi] IN0077: 0001FC mov rsi, gword ptr [rbp-48H] IN0078: 000200 or byte ptr [rsi+17], 2 ;; bbWeight=0.09 PerfScore 0.54 G_M39391_IG16: ; func=00, offs=000204H, size=0003H, gcVars=0000000000000000 {}, gcrefRegs=00000040 {rsi}, byrefRegs=00000000 {}, gcvars, byref New GC ref live vars=0000000000000000 {} [D1FFAB1E] gcr var died at [rbp-48H] gcrReg +[rax] IN0079: 000204 mov rax, rsi ;; bbWeight=0.17 PerfScore 0.04 G_M39391_IG17: ; func=00, offs=000207H, size=0011H, epilog, nogc, extend IN0094: 000207 lea rsp, [rbp-38H] IN0095: 00020B pop rbx IN0096: 00020C pop rsi IN0097: 00020D pop rdi IN0098: 00020E pop r12 IN0099: 000210 pop r13 IN009a: 000212 pop r14 IN009b: 000214 pop r15 IN009c: 000216 pop rbp IN009d: 000217 ret ;; bbWeight=0.17 PerfScore 0.93 G_M39391_IG18: ; func=00, offs=000218H, size=0006H, gcVars=0000000000000010 {V14}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz New GC ref live vars=0000000000000010 {V14} [D1FFAB1E] gcr var born at [rbp-48H] New gcrReg live regs=00000000 {} gcrReg +[rsi] IN007a: 000218 mov rsi, gword ptr [rbp-48H] IN007b: 00021C jmp SHORT G_M39391_IG16 ;; bbWeight=0.09 PerfScore 0.27[D1FFAB1E] gcr var died at [rbp-48H] New gcrReg live regs=00000000 {} Allocated method code size = 542 , actual size = 542 ; Total bytes of code 542, prolog size 27, PerfScore 137.47, instruction count 157 (MethodHash=727b6620) for method Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this ; ============================================================ *************** After end code gen, before unwindEmit() G_M39391_IG01: ; func=00, offs=000000H, size=0027H, bbWeight=1 PerfScore 9.75, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG IN007c: 000000 push rbp IN007d: 000001 push r15 IN007e: 000003 push r14 IN007f: 000005 push r13 IN0080: 000007 push r12 IN0081: 000009 push rdi IN0082: 00000A push rsi IN0083: 00000B push rbx IN0084: 00000C sub rsp, 136 IN0085: 000013 lea rbp, [rsp+C0H] IN0086: 00001B mov rsi, rcx IN0087: 00001E mov rdi, rdx IN0088: 000021 mov ebx, r8d IN0089: 000024 mov r14d, r9d G_M39391_IG02: ; offs=000027H, size=000AH, bbWeight=1 PerfScore 3.00, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref IN0001: 000027 cmp rdi, gword ptr [rsi+32] IN0002: 00002B jne G_M39391_IG14 G_M39391_IG03: ; offs=000031H, size=007FH, bbWeight=0.83 PerfScore 26.77, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref, isz IN0003: 000031 movzx rdx, bl IN0004: 000034 movzx rcx, byte ptr [rsi+56] IN0005: 000038 cmp edx, ecx IN0006: 00003A jne G_M39391_IG14 IN0007: 000040 movzx rdx, r14b IN0008: 000044 movzx rcx, byte ptr [rsi+57] IN0009: 000048 cmp edx, ecx IN000a: 00004A jne G_M39391_IG14 IN000b: 000050 mov r15d, dword ptr [V04 rbp+30H] IN000c: 000054 movzx rdx, r15b IN000d: 000058 movzx rcx, byte ptr [rsi+58] IN000e: 00005C cmp edx, ecx IN000f: 00005E jne G_M39391_IG13 IN0010: 000064 mov rdx, gword ptr [rsi+40] IN0011: 000068 mov rcx, gword ptr [V05 rbp+38H] IN0012: 00006C call [Microsoft.CodeAnalysis.CSharp.Symbol:op_Inequality(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):bool] IN0013: 000072 test al, al IN0014: 000074 jne G_M39391_IG12 IN0015: 00007A mov r12d, dword ptr [V06 rbp+40H] IN0016: 00007E movzx rdx, r12b IN0017: 000082 movzx rcx, byte ptr [rsi+59] IN0018: 000086 cmp edx, ecx IN0019: 000088 jne G_M39391_IG11 IN001a: 00008E mov r13d, dword ptr [V07 rbp+48H] IN001b: 000092 movzx rdx, r13b IN001c: 000096 movzx rcx, byte ptr [rsi+60] IN001d: 00009A cmp edx, ecx IN001e: 00009C jne G_M39391_IG10 IN001f: 0000A2 mov eax, dword ptr [V08 rbp+50H] IN0020: 0000A5 movzx rdx, al IN0021: 0000A8 movzx rcx, byte ptr [rsi+61] IN0022: 0000AC cmp edx, ecx IN0023: 0000AE jne SHORT G_M39391_IG09 G_M39391_IG04: ; offs=0000B0H, size=0040H, bbWeight=0.83 PerfScore 18.26, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref, isz IN0024: 0000B0 mov r8d, dword ptr [V09 rbp+58H] IN0025: 0000B4 movzx rdx, r8b IN0026: 0000B8 movzx rcx, byte ptr [rsi+62] IN0027: 0000BC cmp edx, ecx IN0028: 0000BE jne SHORT G_M39391_IG08 IN0029: 0000C0 mov rdx, gword ptr [rsi+48] IN002a: 0000C4 mov rcx, gword ptr [V10 rbp+60H] IN002b: 0000C8 call [Microsoft.CodeAnalysis.ConstantValue:op_Inequality(Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.ConstantValue):bool] IN002c: 0000CE test al, al IN002d: 0000D0 jne SHORT G_M39391_IG07 IN002e: 0000D2 mov rdx, gword ptr [rsi+24] IN002f: 0000D6 mov rcx, gword ptr [V11 rbp+68H] IN0030: 0000DA call [Microsoft.CodeAnalysis.CSharp.Symbol:op_Inequality(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbol):bool] IN0031: 0000E0 test al, al IN0032: 0000E2 mov dword ptr [V04 rbp+30H], r15d IN0033: 0000E6 mov dword ptr [V06 rbp+40H], r12d IN0034: 0000EA mov dword ptr [V07 rbp+48H], r13d IN0035: 0000EE jne SHORT G_M39391_IG14 G_M39391_IG05: ; offs=0000F0H, size=0003H, bbWeight=0.83 PerfScore 0.21, gcrefRegs=00000040 {rsi}, byrefRegs=00000000 {}, byref IN0036: 0000F0 mov rax, rsi G_M39391_IG06: ; offs=0000F3H, size=0011H, bbWeight=0.83 PerfScore 4.56, epilog, nogc, extend IN008a: 0000F3 lea rsp, [rbp-38H] IN008b: 0000F7 pop rbx IN008c: 0000F8 pop rsi IN008d: 0000F9 pop rdi IN008e: 0000FA pop r12 IN008f: 0000FC pop r13 IN0090: 0000FE pop r14 IN0091: 000100 pop r15 IN0092: 000102 pop rbp IN0093: 000103 ret G_M39391_IG07: ; offs=000104H, size=000EH, bbWeight=0.41 PerfScore 2.05, gcVars=0000000000000000 {}, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, gcvars, byref, isz IN0037: 000104 mov dword ptr [V04 rbp+30H], r15d IN0038: 000108 mov dword ptr [V06 rbp+40H], r12d IN0039: 00010C mov dword ptr [V07 rbp+48H], r13d IN003a: 000110 jmp SHORT G_M39391_IG14 G_M39391_IG08: ; offs=000112H, size=000EH, bbWeight=0.41 PerfScore 2.05, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref, isz IN003b: 000112 mov dword ptr [V04 rbp+30H], r15d IN003c: 000116 mov dword ptr [V06 rbp+40H], r12d IN003d: 00011A mov dword ptr [V07 rbp+48H], r13d IN003e: 00011E jmp SHORT G_M39391_IG14 G_M39391_IG09: ; offs=000120H, size=000EH, bbWeight=0.41 PerfScore 2.05, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref, isz IN003f: 000120 mov dword ptr [V04 rbp+30H], r15d IN0040: 000124 mov dword ptr [V06 rbp+40H], r12d IN0041: 000128 mov dword ptr [V07 rbp+48H], r13d IN0042: 00012C jmp SHORT G_M39391_IG14 G_M39391_IG10: ; offs=00012EH, size=000EH, bbWeight=0.41 PerfScore 2.05, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref, isz IN0043: 00012E mov dword ptr [V04 rbp+30H], r15d IN0044: 000132 mov dword ptr [V06 rbp+40H], r12d IN0045: 000136 mov dword ptr [V07 rbp+48H], r13d IN0046: 00013A jmp SHORT G_M39391_IG14 G_M39391_IG11: ; offs=00013CH, size=000AH, bbWeight=0.41 PerfScore 1.64, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref, isz IN0047: 00013C mov dword ptr [V04 rbp+30H], r15d IN0048: 000140 mov dword ptr [V06 rbp+40H], r12d IN0049: 000144 jmp SHORT G_M39391_IG14 G_M39391_IG12: ; offs=000146H, size=0006H, bbWeight=0.41 PerfScore 1.23, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref, isz IN004a: 000146 mov dword ptr [V04 rbp+30H], r15d IN004b: 00014A jmp SHORT G_M39391_IG14 G_M39391_IG13: ; offs=00014CH, size=0006H, bbWeight=0.41 PerfScore 1.23, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref, isz IN004c: 00014C mov dword ptr [V04 rbp+30H], r15d IN004d: 000150 jmp SHORT G_M39391_IG14 G_M39391_IG14: ; offs=000152H, size=00AAH, bbWeight=0.17 PerfScore 6.63, gcrefRegs=000000C0 {rsi rdi}, byrefRegs=00000000 {}, byref, isz IN004e: 000152 mov rax, gword ptr [rsi+8] IN004f: 000156 mov gword ptr [V13 rbp-40H], rax IN0050: 00015A call [CORINFO_HELP_READYTORUN_NEW] IN0051: 000160 movzx r9, r14b IN0052: 000164 mov dword ptr [V12+0x20 rsp+20H], r9d IN0053: 000169 mov r15d, dword ptr [V04 rbp+30H] IN0054: 00016D movzx r9, r15b IN0055: 000171 mov dword ptr [V12+0x28 rsp+28H], r9d IN0056: 000176 mov r14, gword ptr [V05 rbp+38H] IN0057: 00017A mov gword ptr [V12+0x30 rsp+30H], r14 IN0058: 00017F mov r12d, dword ptr [V06 rbp+40H] IN0059: 000183 movzx r9, r12b IN005a: 000187 mov dword ptr [V12+0x38 rsp+38H], r9d IN005b: 00018C mov r13d, dword ptr [V07 rbp+48H] IN005c: 000190 movzx r9, r13b IN005d: 000194 mov dword ptr [V12+0x40 rsp+40H], r9d IN005e: 000199 mov r14d, dword ptr [V08 rbp+50H] IN005f: 00019D movzx r9, r14b IN0060: 0001A1 mov dword ptr [V12+0x48 rsp+48H], r9d IN0061: 0001A6 mov r14d, dword ptr [V09 rbp+58H] IN0062: 0001AA movzx r9, r14b IN0063: 0001AE mov dword ptr [V12+0x50 rsp+50H], r9d IN0064: 0001B3 mov r14, gword ptr [V10 rbp+60H] IN0065: 0001B7 mov gword ptr [V12+0x58 rsp+58H], r14 IN0066: 0001BC mov r14, gword ptr [V11 rbp+68H] IN0067: 0001C0 mov gword ptr [V12+0x60 rsp+60H], r14 IN0068: 0001C5 test byte ptr [rsi+17], 1 IN0069: 0001C9 setne r9b IN006a: 0001CD movzx r9, r9b IN006b: 0001D1 mov dword ptr [V12+0x68 rsp+68H], r9d IN006c: 0001D6 movzx r9, bl IN006d: 0001DA mov gword ptr [V14 rbp-48H], rax IN006e: 0001DE mov rcx, rax IN006f: 0001E1 mov rdx, gword ptr [V13 rbp-40H] IN0070: 0001E5 mov r8, rdi IN0071: 0001E8 call [Microsoft.CodeAnalysis.CSharp.BoundConversion:.ctor(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,bool):this] IN0072: 0001EE test byte ptr [rsi+17], 2 IN0073: 0001F2 setne al IN0074: 0001F5 movzx rax, al IN0075: 0001F8 test eax, eax IN0076: 0001FA je SHORT G_M39391_IG18 G_M39391_IG15: ; offs=0001FCH, size=0008H, bbWeight=0.09 PerfScore 0.54, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref IN0077: 0001FC mov rsi, gword ptr [V14 rbp-48H] IN0078: 000200 or byte ptr [rsi+17], 2 G_M39391_IG16: ; offs=000204H, size=0003H, bbWeight=0.17 PerfScore 0.04, gcVars=0000000000000000 {}, gcrefRegs=00000040 {rsi}, byrefRegs=00000000 {}, gcvars, byref IN0079: 000204 mov rax, rsi G_M39391_IG17: ; offs=000207H, size=0011H, bbWeight=0.17 PerfScore 0.93, epilog, nogc, extend IN0094: 000207 lea rsp, [rbp-38H] IN0095: 00020B pop rbx IN0096: 00020C pop rsi IN0097: 00020D pop rdi IN0098: 00020E pop r12 IN0099: 000210 pop r13 IN009a: 000212 pop r14 IN009b: 000214 pop r15 IN009c: 000216 pop rbp IN009d: 000217 ret G_M39391_IG18: ; offs=000218H, size=0006H, bbWeight=0.09 PerfScore 0.27, gcVars=0000000000000010 {V14}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz IN007a: 000218 mov rsi, gword ptr [V14 rbp-48H] IN007b: 00021C jmp SHORT G_M39391_IG16 *************** Finishing PHASE Emit code *************** Starting PHASE Emit GC+EH tables Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x13 CountOfUnwindCodes: 10 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes : CodeOffset: 0x13 UnwindOp: UWOP_ALLOC_LARGE (1) OpInfo: 0 - Scaled small Size: 17 * 8 = 136 = 0x00088 CodeOffset: 0x0C UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) CodeOffset: 0x0B UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6) CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7) CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r12 (12) CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r13 (13) CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r15 (15) CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5) allocUnwindInfo(pHotCode=0x00000000D1FFAB1E, pColdCode=0x0000000000000000, startOffset=0x0, endOffset=0x21e, unwindSize=0x18, pUnwindBlock=0x00000000D1FFAB1E, funKind=0 (main function)) *************** In genIPmappingGen() IP mapping count : 9 IL offs PROLOG : 0x00000000 ( STACK_EMPTY ) IL offs 0x00AB : 0x000000F0 ( STACK_EMPTY ) IL offs EPILOG : 0x000000F3 ( STACK_EMPTY ) IL offs NO_MAP : 0x00000104 ( STACK_EMPTY ) IL offs 0x007A : 0x00000152 ( STACK_EMPTY ) IL offs NO_MAP : 0x000001FC ( STACK_EMPTY ) IL offs 0x00AA : 0x00000204 IL offs EPILOG : 0x00000207 ( STACK_EMPTY ) IL offs NO_MAP : 0x00000218 ( STACK_EMPTY ) *************** In genSetScopeInfo() VarLocInfo count is 36 ; Variable debug info: 36 live range(s), 12 var(s) for method Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this 0( UNKNOWN) : From 00000000h to 00000027h, in rcx 1( UNKNOWN) : From 00000000h to 00000027h, in rdx 2( UNKNOWN) : From 00000000h to 00000027h, in r8 3( UNKNOWN) : From 00000000h to 00000027h, in r9 4( UNKNOWN) : From 00000000h to 00000027h, in rsp[40] (1 slot) 5( UNKNOWN) : From 00000000h to 00000027h, in rsp[48] (1 slot) 6( UNKNOWN) : From 00000000h to 00000027h, in rsp[56] (1 slot) 7( UNKNOWN) : From 00000000h to 00000027h, in rsp[64] (1 slot) 8( UNKNOWN) : From 00000000h to 00000027h, in rsp[72] (1 slot) 9( UNKNOWN) : From 00000000h to 00000027h, in rsp[80] (1 slot) 10( UNKNOWN) : From 00000000h to 00000027h, in rsp[88] (1 slot) 11( UNKNOWN) : From 00000000h to 00000027h, in rsp[96] (1 slot) 1( UNKNOWN) : From 00000027h to 000000F0h, in rdi 2( UNKNOWN) : From 00000027h to 000000F0h, in rbx 3( UNKNOWN) : From 00000027h to 000000F0h, in r14 5( UNKNOWN) : From 00000027h to 000000F0h, in rbp[56] (1 slot) 10( UNKNOWN) : From 00000027h to 000000F0h, in rbp[96] (1 slot) 11( UNKNOWN) : From 00000027h to 000000F0h, in rbp[104] (1 slot) 4( UNKNOWN) : From 00000027h to 000000F0h, in rbp[48] (1 slot) 6( UNKNOWN) : From 00000027h to 000000F0h, in rbp[64] (1 slot) 7( UNKNOWN) : From 00000027h to 000000F0h, in rbp[72] (1 slot) 8( UNKNOWN) : From 00000027h to 000000F0h, in rbp[80] (1 slot) 9( UNKNOWN) : From 00000027h to 000000F0h, in rbp[88] (1 slot) 0( UNKNOWN) : From 00000027h to 000000F0h, in rsi 3( UNKNOWN) : From 00000152h to 00000160h, in r14 4( UNKNOWN) : From 00000152h to 0000016Dh, in rbp[48] (1 slot) 5( UNKNOWN) : From 00000152h to 0000017Ah, in rbp[56] (1 slot) 6( UNKNOWN) : From 00000152h to 00000183h, in rbp[64] (1 slot) 7( UNKNOWN) : From 00000152h to 00000190h, in rbp[72] (1 slot) 8( UNKNOWN) : From 00000152h to 0000019Dh, in rbp[80] (1 slot) 9( UNKNOWN) : From 00000152h to 000001AAh, in rbp[88] (1 slot) 10( UNKNOWN) : From 00000152h to 000001B7h, in rbp[96] (1 slot) 11( UNKNOWN) : From 00000152h to 000001C0h, in rbp[104] (1 slot) 2( UNKNOWN) : From 00000152h to 000001D6h, in rbx 1( UNKNOWN) : From 00000152h to 000001E5h, in rdi 0( UNKNOWN) : From 00000152h to 000001EEh, in rsi *************** In gcInfoBlockHdrSave() Set code length to 542. Set ReturnKind to Object. Set stack base register to rbp. Set Outgoing stack arg area size to 112. Stack slot id for offset 56 (0x38) (frame) (untracked) = 0. Stack slot id for offset 96 (0x60) (frame) (untracked) = 1. Stack slot id for offset 104 (0x68) (frame) (untracked) = 2. Stack slot id for offset -64 (0xffffffc0) (frame) = 3. Stack slot id for offset -72 (0xffffffb8) (frame) = 4. Register slot id for reg rsi = 5. Register slot id for reg rdi = 6. Set state of slot 3 at instr offset 0x15a to Live. Set state of slot 3 at instr offset 0x1e8 to Dead. Set state of slot 4 at instr offset 0x1de to Live. Set state of slot 4 at instr offset 0x204 to Dead. Set state of slot 4 at instr offset 0x218 to Live. Set state of slot 4 at instr offset 0x21e to Dead. Set state of slot 5 at instr offset 0x6c to Live. Set state of slot 6 at instr offset 0x6c to Live. Set state of slot 5 at instr offset 0x72 to Dead. Set state of slot 6 at instr offset 0x72 to Dead. Set state of slot 5 at instr offset 0xc8 to Live. Set state of slot 6 at instr offset 0xc8 to Live. Set state of slot 5 at instr offset 0xce to Dead. Set state of slot 6 at instr offset 0xce to Dead. Set state of slot 5 at instr offset 0xda to Live. Set state of slot 6 at instr offset 0xda to Live. Set state of slot 5 at instr offset 0xe0 to Dead. Set state of slot 6 at instr offset 0xe0 to Dead. Set state of slot 5 at instr offset 0x15a to Live. Set state of slot 6 at instr offset 0x15a to Live. Set state of slot 5 at instr offset 0x160 to Dead. Set state of slot 6 at instr offset 0x160 to Dead. Set state of slot 5 at instr offset 0x1e8 to Live. Set state of slot 5 at instr offset 0x1ee to Dead. Defining 5 call sites: Offset 0x6c, size 6. Offset 0xc8, size 6. Offset 0xda, size 6. Offset 0x15a, size 6. Offset 0x1e8, size 6. *************** Finishing PHASE Emit GC+EH tables Method code size: 542 Allocations for Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this (MethodHash=727b6620) count: 5077, size: 323108, max = 3072 allocateMemory: 393216, nraUsed: 333872 Alloc'd bytes by kind: kind | size | pct ---------------------+------------+-------- AssertionProp | 6460 | 2.00% ASTNode | 40592 | 12.56% InstDesc | 14508 | 4.49% ImpStack | 384 | 0.12% BasicBlock | 11136 | 3.45% fgArgInfo | 1120 | 0.35% fgArgInfoPtrArr | 656 | 0.20% FlowList | 1120 | 0.35% TreeStatementList | 448 | 0.14% SiScope | 2520 | 0.78% DominatorMemory | 768 | 0.24% LSRA | 4864 | 1.51% LSRA_Interval | 4480 | 1.39% LSRA_RefPosition | 14400 | 4.46% Reachability | 32 | 0.01% SSA | 3152 | 0.98% ValueNumber | 22992 | 7.12% LvaTable | 2944 | 0.91% UnwindInfo | 0 | 0.00% hashBv | 688 | 0.21% bitset | 592 | 0.18% FixedBitVect | 156 | 0.05% Generic | 7578 | 2.35% LocalAddressVisitor | 1536 | 0.48% FieldSeqStore | 936 | 0.29% ZeroOffsetFieldMap | 600 | 0.19% ArrayInfoMap | 40 | 0.01% MemoryPhiArg | 64 | 0.02% CSE | 4496 | 1.39% GC | 2961 | 0.92% CorTailCallInfo | 0 | 0.00% Inlining | 10840 | 3.35% ArrayStack | 256 | 0.08% DebugInfo | 768 | 0.24% DebugOnly | 154345 | 47.77% Codegen | 1176 | 0.36% LoopOpt | 0 | 0.00% LoopHoist | 0 | 0.00% Unknown | 1364 | 0.42% RangeCheck | 0 | 0.00% CopyProp | 1936 | 0.60% SideEffects | 0 | 0.00% ObjectAllocator | 0 | 0.00% VariableLiveRanges | 0 | 0.00% ClassLayout | 0 | 0.00% TailMergeThrows | 0 | 0.00% EarlyProp | 96 | 0.03% ZeroInit | 104 | 0.03% ****** DONE compiling Microsoft.CodeAnalysis.CSharp.BoundConversion:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,ubyte,bool,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool,bool,bool,bool,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundConversion:this