Beginning test case Vector64Zero at 2020-03-25 오전 1:53:48 Random seed: 20010415; set environment variable CORECLR_SEED to this value to repro Ending test case at 2020-03-25 오전 1:53:48 Beginning test case Vector64AllBitsSet at 2020-03-25 오전 1:53:48 Random seed: 20010415; set environment variable CORECLR_SEED to this value to repro ****** START compiling JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet() (MethodHash=4b6671c3) Generating code for Windows x64 OPTIONS: compCodeOpt = BLENDED_CODE OPTIONS: compDbgCode = false OPTIONS: compDbgInfo = true OPTIONS: compDbgEnC = false OPTIONS: compProcedureSplitting = false OPTIONS: compProcedureSplittingEH = false IL to import: IL_0000 16 ldc.i4.0 IL_0001 0a stloc.0 IL_0002 28 37 00 00 0a call 0xA000037 IL_0007 0b stloc.1 IL_0008 de 05 leave.s 5 (IL_000f) IL_000a 26 pop IL_000b 17 ldc.i4.1 IL_000c 0a stloc.0 IL_000d de 00 leave.s 0 (IL_000f) IL_000f 06 ldloc.0 IL_0010 2d 1f brtrue.s 31 (IL_0031) IL_0012 72 25 5f 00 70 ldstr 0x70005F25 IL_0017 28 0a 00 00 0a call 0xA00000A IL_001c 7e 0b 00 00 0a ldsfld 0xA00000B IL_0021 28 0a 00 00 0a call 0xA00000A IL_0026 72 66 1d 00 70 ldstr 0x70001D66 IL_002b 73 0c 00 00 0a newobj 0xA00000C IL_0030 7a throw IL_0031 2a ret HW Intrinsic SIMD Candidate Type Vector64`1 with Base Type Boolean lvaGrabTemp returning 2 (V02 tmp0) (a long lifetime temp) called for OutgoingArgSpace. ; Initial local variable assignments ; ; V00 loc0 bool ; V01 loc1 struct ; V02 OutArgs lclBlk "OutgoingArgSpace" *************** In compInitDebuggingInfo() for JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet() getVars() returned cVars = 0, extendOthers = true info.compVarScopesCount = 2 VarNum LVNum Name Beg End 0: 00h 00h V00 loc0 000h 032h 1: 01h 01h V01 loc1 000h 032h info.compStmtOffsetsCount = 0 info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) *************** In fgFindBasicBlocks() for JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet() Marked V01 as a single def local Jump targets: IL_0002 IL_000a IL_000f IL_0031 New Basic Block BB01 [0000] created. BB01 [000..002) New Basic Block BB02 [0001] created. BB02 [002..00A) New Basic Block BB03 [0002] created. BB03 [00A..00F) New Basic Block BB04 [0003] created. BB04 [00F..012) New Basic Block BB05 [0004] created. BB05 [012..031) New Basic Block BB06 [0005] created. BB06 [031..032) EH clause #0: Flags: 0x0 (catch) TryOffset: 0x2 TryLength: 0x8 HandlerOffset: 0xa HandlerLength: 0x5 ClassToken: 0x100000d *************** After fgFindBasicBlocks() has created the EH table *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB02 [002..00A), Handler at BB03..BB03 [00A..00F) *************** In fgNormalizeEH() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) BB02 [0001] 1 0 1 [002..00A)-> BB04 (leave ) T0 try { } keep try label BB03 [0002] 1 0 1 [00A..00F)-> BB04 (leave ) H0 catch { } keep label target BB04 [0003] 2 1 [00F..012)-> BB06 ( cond ) BB05 [0004] 1 0 [012..031) (throw ) rare BB06 [0005] 1 1 [031..032) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB02 [002..00A), Handler at BB03..BB03 [00A..00F) No EH normalization performed. IL Code Size,Instr 50, 19, Basic Block count 6, Local Variable Num,Ref count 3, 4 for method JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet() OPTIONS: opts.MinOpts() == false Basic block list for 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) BB02 [0001] 1 0 1 [002..00A)-> BB04 (leave ) T0 try { } keep try label BB03 [0002] 1 0 1 [00A..00F)-> BB04 (leave ) H0 catch { } keep label target BB04 [0003] 2 1 [00F..012)-> BB06 ( cond ) BB05 [0004] 1 0 [012..031) (throw ) rare BB06 [0005] 1 1 [031..032) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Pre-import *************** Finishing PHASE Pre-import *************** Starting PHASE Importation *************** In impImport() for JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet() impImportBlockPending for BB01 Importing BB01 (PC=000) of 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' [ 0] 0 (0x000) ldc.i4.0 0 [ 1] 1 (0x001) stloc.0 STMT00000 (IL 0x000... ???) [000002] -A---------- * ASG int [000001] D------N---- +--* LCL_VAR int V00 loc0 [000000] ------------ \--* CNS_INT int 0 impImportBlockPending for BB02 impImportBlockPending for BB03 Importing BB02 (PC=002) of 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' [ 0] 2 (0x002) call 0A000037 In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8 HW Intrinsic SIMD Candidate Type Vector64`1 with Base Type Boolean STMT00001 (IL 0x002... ???) [000005] I-C-G------- * CALL struct System.Runtime.Intrinsics.Vector64`1[Boolean][System.Boolean].get_AllBitsSet (exactContextHnd=0x00007FFBBB9AB579) [ 1] 7 (0x007) stloc.1 STMT00002 (IL ???... ???) [000010] -AC--------- * ASG long [000009] *----------- +--* IND long [000008] ------------ | \--* ADDR byref [000007] ------------ | \--* LCL_VAR struct V01 loc1 [000006] --C--------- \--* RET_EXPR long (inl return from call [000005]) [ 0] 8 (0x008) leave.s 000F Before import CEE_LEAVE in BB02 (targetting BB04): ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i BB02 [0001] 1 0 1 [002..00A)-> BB04 (leave ) T0 try { } keep try label BB03 [0002] 1 0 1 [00A..00F)-> BB04 (leave ) H0 catch { } keep label target BB04 [0003] 2 1 [00F..012)-> BB06 ( cond ) BB05 [0004] 1 0 [012..031) (throw ) rare BB06 [0005] 1 1 [031..032) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB02 [002..00A), Handler at BB03..BB03 [00A..00F) impImportLeave - no enclosing finally-protected try blocks or catch handlers; convert CEE_LEAVE block BB02 to BBJ_ALWAYS After import CEE_LEAVE: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i BB02 [0001] 1 0 1 [002..00A)-> BB04 (always) T0 try { } keep try label BB03 [0002] 1 0 1 [00A..00F)-> BB04 (leave ) H0 catch { } keep label target BB04 [0003] 2 1 [00F..012)-> BB06 ( cond ) BB05 [0004] 1 0 [012..031) (throw ) rare BB06 [0005] 1 1 [031..032) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB02 [002..00A), Handler at BB03..BB03 [00A..00F) impImportBlockPending for BB04 Importing BB04 (PC=015) of 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' [ 0] 15 (0x00f) ldloc.0 [ 1] 16 (0x010) brtrue.s STMT00003 (IL 0x00F... ???) [000014] ------------ * JTRUE void [000013] ------------ \--* NE int [000011] ------------ +--* LCL_VAR int V00 loc0 [000012] ------------ \--* CNS_INT int 0 impImportBlockPending for BB05 impImportBlockPending for BB06 Importing BB06 (PC=049) of 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' [ 0] 49 (0x031) ret STMT00004 (IL 0x031... ???) [000015] ------------ * RETURN void Importing BB05 (PC=018) of 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' [ 0] 18 (0x012) ldstr 70005F25 [ 1] 23 (0x017) call 0A00000A In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 STMT00005 (IL 0x012... ???) [000017] I-C-G------- * CALL void TestLibrary.TestFramework.LogInformation (exactContextHnd=0x00007FFBBB88AD99) [000016] ------------ arg0 \--* CNS_STR ref [ 0] 28 (0x01c) ldsfld 0A00000B [ 1] 33 (0x021) call 0A00000A In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 STMT00006 (IL 0x01C... ???) [000020] I-C-G------- * CALL void TestLibrary.TestFramework.LogInformation (exactContextHnd=0x00007FFBBB88AD99) [000019] n---G------- arg0 \--* IND ref [000018] ------------ \--* CNS_INT(h) long 0xAD143060 "" [ 0] 38 (0x026) ldstr 70001D66 [ 1] 43 (0x02b) newobj lvaGrabTemp returning 3 (V03 tmp1) called for NewObj constructor temp. STMT00007 (IL 0x026... ???) [000025] -A---------- * ASG ref [000024] D------N---- +--* LCL_VAR ref V03 tmp1 [000023] ------------ \--* ALLOCOBJ ref [000022] ------------ \--* CNS_INT(h) long 0x7ffbbb6dfd60 token Marked V03 as a single def local lvaSetClass: setting class for V03 to (00007FFBBB6DFD60) System.Exception [exact] 0A00000C In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0 STMT00008 (IL ???... ???) [000027] I-C-G------- * CALL void System.Exception..ctor (exactContextHnd=0x00007FFBBB6DFD61) [000026] ------------ this in rcx +--* LCL_VAR ref V03 tmp1 [000021] ------------ arg1 \--* CNS_STR ref [ 1] 48 (0x030) throw STMT00009 (IL 0x030... ???) [000029] --CXG------- * CALL help void HELPER.CORINFO_HELP_THROW [000028] ------------ arg0 \--* LCL_VAR ref V03 tmp1 Importing BB03 (PC=010) of 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' lvaGrabTemp returning 4 (V04 tmp2) called for impSpillSpecialSideEff. STMT00010 (IL 0x00A... ???) [000031] -A---O------ * ASG ref [000030] D------N---- +--* LCL_VAR ref V04 tmp2 [000004] -----O------ \--* CATCH_ARG ref Marked V04 as a single def temp lvaSetClass: setting class for V04 to (00007FFBBB979248) System.NotSupportedException [ 1] 10 (0x00a) pop [ 0] 11 (0x00b) ldc.i4.1 1 [ 1] 12 (0x00c) stloc.0 STMT00011 (IL 0x00B... ???) [000035] -A---------- * ASG int [000034] D------N---- +--* LCL_VAR int V00 loc0 [000033] ------------ \--* CNS_INT int 1 [ 0] 13 (0x00d) leave.s 000F Before import CEE_LEAVE in BB03 (targetting BB04): ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i BB02 [0001] 1 0 1 [002..00A)-> BB04 (always) T0 try { } keep i try label BB03 [0002] 1 0 1 [00A..00F)-> BB04 (leave ) H0 catch { } keep label target BB04 [0003] 2 1 [00F..012)-> BB06 ( cond ) i BB05 [0004] 1 0 [012..031) (throw ) i rare newobj BB06 [0005] 1 1 [031..032) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB02 [002..00A), Handler at BB03..BB03 [00A..00F) impImportLeave - jumping out of a catch (EH#0), convert block BB03 to BBJ_EHCATCHRET block impImportLeave - final destination of step blocks set to BB04 impImportBlockPending for BB04 After import CEE_LEAVE: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i BB02 [0001] 1 0 1 [002..00A)-> BB04 (always) T0 try { } keep i try label BB03 [0002] 1 0 1 [00A..00F)-> BB04 ( cret ) H0 catch { } keep label target BB04 [0003] 2 1 [00F..012)-> BB06 ( cond ) i BB05 [0004] 1 0 [012..031) (throw ) i rare newobj BB06 [0005] 1 1 [031..032) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB02 [002..00A), Handler at BB03..BB03 [00A..00F) impImportBlockPending for BB04 After impImport() added block for try,catch,finally ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i BB02 [0001] 1 0 1 [002..00A)-> BB04 (always) T0 try { } keep i try label BB03 [0002] 1 0 1 [00A..00F)-> BB04 ( cret ) H0 catch { } keep i label target BB04 [0003] 2 1 [00F..012)-> BB06 ( cond ) i BB05 [0004] 1 0 [012..031) (throw ) i rare newobj BB06 [0005] 1 1 [031..032) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- *************** Finishing PHASE Importation *************** Starting PHASE Indirect call transform *************** in fgTransformIndirectCalls(root) -- no candidates to transform *************** Finishing PHASE Indirect call transform *************** Starting PHASE Expand patchpoints *************** in fgTransformPatchpoints -- no patchpoints to transform *************** Finishing PHASE Expand patchpoints *************** Starting PHASE Post-import *************** Finishing PHASE Post-import *************** Starting PHASE Morph - Init New BlockSet epoch 1, # of blocks (including unused BB00): 7, bitset array size: 1 (short) *************** In fgRemoveEmptyBlocks *************** Finishing PHASE Morph - Init *************** In fgDebugCheckBBlist *************** Starting PHASE Morph - Inlining *************** In fgInline() Expanding INLINE_CANDIDATE in statement STMT00001 in BB02: STMT00001 (IL 0x002...0x007) [000005] I-C-G------- * CALL long System.Runtime.Intrinsics.Vector64`1[Boolean][System.Boolean].get_AllBitsSet (exactContextHnd=0x00007FFBBB9AB579) INLINER: inlineInfo.tokenLookupContextHandle for System.Runtime.Intrinsics.Vector64`1[Boolean][System.Boolean]:get_AllBitsSet():System.Runtime.Intrinsics.Vector64`1[Boolean] set to 0x00007FFBBB9AB579: Invoking compiler for the inlinee method System.Runtime.Intrinsics.Vector64`1[Boolean][System.Boolean]:get_AllBitsSet():System.Runtime.Intrinsics.Vector64`1[Boolean] : IL to import: IL_0000 28 d4 01 00 2b call 0x2B0001D4 IL_0005 15 ldc.i4.m1 IL_0006 28 4b 2e 00 06 call 0x6002E4B IL_000b 28 be 03 00 2b call 0x2B0003BE IL_0010 2a ret INLINER impTokenLookupContextHandle for System.Runtime.Intrinsics.Vector64`1[Boolean][System.Boolean]:get_AllBitsSet():System.Runtime.Intrinsics.Vector64`1[Boolean] is 0x00007FFBBB9AB579. HW Intrinsic SIMD Candidate Type Vector64`1 with Base Type Boolean *************** In fgFindBasicBlocks() for System.Runtime.Intrinsics.Vector64`1[Boolean][System.Boolean]:get_AllBitsSet():System.Runtime.Intrinsics.Vector64`1[Boolean] weight= 79 : state 40 [ call ] weight= 22 : state 22 [ ldc.i4.m1 ] weight= 79 : state 40 [ call ] weight= 79 : state 40 [ call ] weight= 19 : state 42 [ ret ] multiplier in methods of promotable struct increased to 3. Inline candidate has SIMD type args, locals or return value. Multiplier increased to 6. Inline candidate looks like a wrapper method. Multiplier increased to 7. Inline candidate callsite is boring. Multiplier increased to 8.3. calleeNativeSizeEstimate=278 callsiteNativeSizeEstimate=55 benefit multiplier=8.3 threshold=456 Native estimate for function size is within threshold for inlining 27.8 <= 45.6 (multiplier = 8.3) Jump targets: none New Basic Block BB07 [0006] created. BB07 [000..011) Basic block list for 'System.Runtime.Intrinsics.Vector64`1[Boolean][System.Boolean]:get_AllBitsSet():System.Runtime.Intrinsics.Vector64`1[Boolean]' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB07 [0006] 1 1 [000..011) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000005] Starting PHASE Pre-import *************** Inline @[000005] Finishing PHASE Pre-import *************** Inline @[000005] Starting PHASE Importation *************** In impImport() for System.Runtime.Intrinsics.Vector64`1[Boolean][System.Boolean]:get_AllBitsSet():System.Runtime.Intrinsics.Vector64`1[Boolean] impImportBlockPending for BB07 Importing BB07 (PC=000) of 'System.Runtime.Intrinsics.Vector64`1[Boolean][System.Boolean]:get_AllBitsSet():System.Runtime.Intrinsics.Vector64`1[Boolean]' [ 0] 0 (0x000) call 2B0001D4 In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 [000036] I-C-G------- * CALL void System.ThrowHelper.ThrowForUnsupportedVectorBaseType (exactContextHnd=0x00007FFBBB9ACB48) [ 0] 5 (0x005) ldc.i4.m1 -1 [ 1] 6 (0x006) call 06002E4B In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8 HW Intrinsic SIMD Candidate Type Vector64`1 with Base Type UInt32 [000038] I-C-G------- * CALL struct System.Runtime.Intrinsics.Vector64.Create (exactContextHnd=0x00007FFBBBA60CE1) [000037] ------------ arg0 \--* CNS_INT int -1 [ 1] 11 (0x00b) call 2B0003BE In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8 Named Intrinsic System.Runtime.Intrinsics.Vector64As: Not recognized HW Intrinsic SIMD Candidate Type Vector64`1 with Base Type Boolean Calling impNormStructVal on: [000039] --C--------- * RET_EXPR struct(inl return from call [000038]) HW Intrinsic SIMD Candidate Type Vector64`1 with Base Type UInt32 lvaGrabTemp returning 5 (V05 tmp3) called for struct address for call/obj. HW Intrinsic SIMD Candidate Type Vector64`1 with Base Type UInt32 [000044] -AC--------- * ASG long [000043] *----------- +--* IND long [000042] ------------ | \--* ADDR byref [000041] ------------ | \--* LCL_VAR struct V05 tmp3 [000039] --C--------- \--* RET_EXPR long (inl return from call [000038]) HW Intrinsic SIMD Candidate Type Vector64`1 with Base Type UInt32 resulting tree: [000047] n----------- * OBJ struct [000046] ------------ \--* ADDR byref [000045] ------------ \--* LCL_VAR struct V05 tmp3 [000040] I-C-G------- * CALL struct System.Runtime.Intrinsics.Vector64.As (exactContextHnd=0x00007FFBBBA614B8) [000047] n----------- arg0 \--* OBJ struct [000046] ------------ \--* ADDR byref [000045] ------------ \--* LCL_VAR struct V05 tmp3 [ 1] 16 (0x010) ret Inlinee Return expression (before normalization) => [000048] --C--------- * RET_EXPR struct(inl return from call [000040]) impFixupStructReturnType: retyping [000048] --C--------- * RET_EXPR struct(inl return from call [000040]) impFixupStructReturnType: result of retyping is [000048] --C--------- * RET_EXPR long (inl return from call [000040]) Inlinee Return expression (after normalization) => [000048] --C--------- * RET_EXPR long (inl return from call [000040]) After impImport() added block for try,catch,finally ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB07 [0006] 1 1 [000..011) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000005] Finishing PHASE Importation *************** Inline @[000005] Starting PHASE Indirect call transform *************** in fgTransformIndirectCalls(inlinee) -- no candidates to transform *************** Inline @[000005] Finishing PHASE Indirect call transform *************** Inline @[000005] Starting PHASE Expand patchpoints *************** in fgTransformPatchpoints -- no patchpoints to transform *************** Inline @[000005] Finishing PHASE Expand patchpoints *************** Inline @[000005] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000005] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000005] ----------- Inlinee method body: STMT00012 (IL 0x002... ???) [000036] I-C-G------- * CALL void System.ThrowHelper.ThrowForUnsupportedVectorBaseType (exactContextHnd=0x00007FFBBB9ACB48) STMT00013 (IL 0x002... ???) [000038] I-C-G------- * CALL long System.Runtime.Intrinsics.Vector64.Create (exactContextHnd=0x00007FFBBBA60CE1) [000037] ------------ arg0 \--* CNS_INT int -1 STMT00014 (IL 0x002... ???) [000044] -AC--------- * ASG long [000043] *----------- +--* IND long [000042] ------------ | \--* ADDR byref [000041] ------------ | \--* LCL_VAR struct V05 tmp3 [000039] --C--------- \--* RET_EXPR long (inl return from call [000038]) STMT00015 (IL 0x002... ???) [000040] I-C-G------- * CALL struct System.Runtime.Intrinsics.Vector64.As (exactContextHnd=0x00007FFBBBA614B8) [000047] n----------- arg0 \--* OBJ struct [000046] ------------ \--* ADDR byref [000045] ------------ \--* LCL_VAR struct V05 tmp3 fgInlineAppendStatements: no gc ref inline locals. Return expression for call at [000005] is [000048] --C--------- * RET_EXPR long (inl return from call [000040]) Successfully inlined System.Runtime.Intrinsics.Vector64`1[Boolean][System.Boolean]:get_AllBitsSet():System.Runtime.Intrinsics.Vector64`1[Boolean] (17 IL bytes) (depth 1) [profitable inline] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'profitable inline' for 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' calling 'System.Runtime.Intrinsics.Vector64`1[Boolean][System.Boolean]:get_AllBitsSet():System.Runtime.Intrinsics.Vector64`1[Boolean]' INLINER: during 'fgInline' result 'success' reason 'profitable inline' Expanding INLINE_CANDIDATE in statement STMT00012 in BB02: STMT00012 (IL 0x002... ???) [000036] I-C-G------- * CALL void System.ThrowHelper.ThrowForUnsupportedVectorBaseType (exactContextHnd=0x00007FFBBB9ACB48) INLINER: inlineInfo.tokenLookupContextHandle for System.ThrowHelper:ThrowForUnsupportedVectorBaseType() set to 0x00007FFBBB9ACB48: Invoking compiler for the inlinee method System.ThrowHelper:ThrowForUnsupportedVectorBaseType() : IL to import: IL_0000 d0 06 00 00 1b ldtoken 0x1B000006 IL_0005 28 64 07 00 06 call 0x6000764 IL_000a d0 e6 00 00 02 ldtoken 0x20000E6 IL_000f 28 64 07 00 06 call 0x6000764 IL_0014 28 6a 07 00 06 call 0x600076A IL_0019 39 06 01 00 00 brfalse 262 (IL_0124) IL_001e d0 06 00 00 1b ldtoken 0x1B000006 IL_0023 28 64 07 00 06 call 0x6000764 IL_0028 d0 84 01 00 02 ldtoken 0x2000184 IL_002d 28 64 07 00 06 call 0x6000764 IL_0032 28 6a 07 00 06 call 0x600076A IL_0037 39 e8 00 00 00 brfalse 232 (IL_0124) IL_003c d0 06 00 00 1b ldtoken 0x1B000006 IL_0041 28 64 07 00 06 call 0x6000764 IL_0046 d0 3e 01 00 02 ldtoken 0x200013E IL_004b 28 64 07 00 06 call 0x6000764 IL_0050 28 6a 07 00 06 call 0x600076A IL_0055 39 ca 00 00 00 brfalse 202 (IL_0124) IL_005a d0 06 00 00 1b ldtoken 0x1B000006 IL_005f 28 64 07 00 06 call 0x6000764 IL_0064 d0 ba 01 00 02 ldtoken 0x20001BA IL_0069 28 64 07 00 06 call 0x6000764 IL_006e 28 6a 07 00 06 call 0x600076A IL_0073 39 ac 00 00 00 brfalse 172 (IL_0124) IL_0078 d0 06 00 00 1b ldtoken 0x1B000006 IL_007d 28 64 07 00 06 call 0x6000764 IL_0082 d0 3f 01 00 02 ldtoken 0x200013F IL_0087 28 64 07 00 06 call 0x6000764 IL_008c 28 6a 07 00 06 call 0x600076A IL_0091 39 8e 00 00 00 brfalse 142 (IL_0124) IL_0096 d0 06 00 00 1b ldtoken 0x1B000006 IL_009b 28 64 07 00 06 call 0x6000764 IL_00a0 d0 bb 01 00 02 ldtoken 0x20001BB IL_00a5 28 64 07 00 06 call 0x6000764 IL_00aa 28 6a 07 00 06 call 0x600076A IL_00af 2c 73 brfalse.s 115 (IL_0124) IL_00b1 d0 06 00 00 1b ldtoken 0x1B000006 IL_00b6 28 64 07 00 06 call 0x6000764 IL_00bb d0 40 01 00 02 ldtoken 0x2000140 IL_00c0 28 64 07 00 06 call 0x6000764 IL_00c5 28 6a 07 00 06 call 0x600076A IL_00ca 2c 58 brfalse.s 88 (IL_0124) IL_00cc d0 06 00 00 1b ldtoken 0x1B000006 IL_00d1 28 64 07 00 06 call 0x6000764 IL_00d6 d0 bc 01 00 02 ldtoken 0x20001BC IL_00db 28 64 07 00 06 call 0x6000764 IL_00e0 28 6a 07 00 06 call 0x600076A IL_00e5 2c 3d brfalse.s 61 (IL_0124) IL_00e7 d0 06 00 00 1b ldtoken 0x1B000006 IL_00ec 28 64 07 00 06 call 0x6000764 IL_00f1 d0 86 01 00 02 ldtoken 0x2000186 IL_00f6 28 64 07 00 06 call 0x6000764 IL_00fb 28 6a 07 00 06 call 0x600076A IL_0100 2c 22 brfalse.s 34 (IL_0124) IL_0102 d0 06 00 00 1b ldtoken 0x1B000006 IL_0107 28 64 07 00 06 call 0x6000764 IL_010c d0 fb 00 00 02 ldtoken 0x20000FB IL_0111 28 64 07 00 06 call 0x6000764 IL_0116 28 6a 07 00 06 call 0x600076A IL_011b 2c 07 brfalse.s 7 (IL_0124) IL_011d 1f 3f ldc.i4.s 0x3F IL_011f 28 5b 18 00 06 call 0x600185B IL_0124 2a ret INLINER impTokenLookupContextHandle for System.ThrowHelper:ThrowForUnsupportedVectorBaseType() is 0x00007FFBBB9ACB48. *************** In fgFindBasicBlocks() for System.ThrowHelper:ThrowForUnsupportedVectorBaseType() Jump targets: IL_0124 New Basic Block BB08 [0007] created. BB08 [000..01E) New Basic Block BB09 [0008] created. BB09 [01E..03C) New Basic Block BB10 [0009] created. BB10 [03C..05A) New Basic Block BB11 [0010] created. BB11 [05A..078) New Basic Block BB12 [0011] created. BB12 [078..096) New Basic Block BB13 [0012] created. BB13 [096..0B1) New Basic Block BB14 [0013] created. BB14 [0B1..0CC) New Basic Block BB15 [0014] created. BB15 [0CC..0E7) New Basic Block BB16 [0015] created. BB16 [0E7..102) New Basic Block BB17 [0016] created. BB17 [102..11D) New Basic Block BB18 [0017] created. BB18 [11D..124) New Basic Block BB19 [0018] created. BB19 [124..125) Basic block list for 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB08 [0007] 1 1 [000..01E)-> BB19 ( cond ) BB09 [0008] 1 1 [01E..03C)-> BB19 ( cond ) BB10 [0009] 1 1 [03C..05A)-> BB19 ( cond ) BB11 [0010] 1 1 [05A..078)-> BB19 ( cond ) BB12 [0011] 1 1 [078..096)-> BB19 ( cond ) BB13 [0012] 1 1 [096..0B1)-> BB19 ( cond ) BB14 [0013] 1 1 [0B1..0CC)-> BB19 ( cond ) BB15 [0014] 1 1 [0CC..0E7)-> BB19 ( cond ) BB16 [0015] 1 1 [0E7..102)-> BB19 ( cond ) BB17 [0016] 1 1 [102..11D)-> BB19 ( cond ) BB18 [0017] 1 1 [11D..124) BB19 [0018] 11 1 [124..125) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000036] Starting PHASE Pre-import *************** Inline @[000036] Finishing PHASE Pre-import *************** Inline @[000036] Starting PHASE Importation *************** In impImport() for System.ThrowHelper:ThrowForUnsupportedVectorBaseType() impImportBlockPending for BB08 Importing BB08 (PC=000) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 0 (0x000) ldtoken [ 1] 5 (0x005) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 10 (0x00a) ldtoken [ 2] 15 (0x00f) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 20 (0x014) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB674AB8 (System.Boolean) and 00007FFBBB679B40 (System.Byte) for equality Runtime reports comparison is known at jit time: 1 [ 1] 25 (0x019) brfalse Folding operator with constant nodes into a constant: [000059] ------------ * EQ int [000057] ------------ +--* CNS_INT int 1 [000058] ------------ \--* CNS_INT int 0 Bashed to int constant: [000059] ------------ * CNS_INT int 0 The block falls through into the next BB09 impImportBlockPending for BB09 Importing BB09 (PC=030) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 30 (0x01e) ldtoken [ 1] 35 (0x023) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 40 (0x028) ldtoken [ 2] 45 (0x02d) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 50 (0x032) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB674AB8 (System.Boolean) and 00007FFBBB6784A0 (System.SByte) for equality Runtime reports comparison is known at jit time: 1 [ 1] 55 (0x037) brfalse Folding operator with constant nodes into a constant: [000069] ------------ * EQ int [000067] ------------ +--* CNS_INT int 1 [000068] ------------ \--* CNS_INT int 0 Bashed to int constant: [000069] ------------ * CNS_INT int 0 The block falls through into the next BB10 impImportBlockPending for BB10 Importing BB10 (PC=060) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 60 (0x03c) ldtoken [ 1] 65 (0x041) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 70 (0x046) ldtoken [ 2] 75 (0x04b) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 80 (0x050) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB674AB8 (System.Boolean) and 00007FFBBB67B1E0 (System.Int16) for equality Runtime reports comparison is known at jit time: 1 [ 1] 85 (0x055) brfalse Folding operator with constant nodes into a constant: [000079] ------------ * EQ int [000077] ------------ +--* CNS_INT int 1 [000078] ------------ \--* CNS_INT int 0 Bashed to int constant: [000079] ------------ * CNS_INT int 0 The block falls through into the next BB11 impImportBlockPending for BB11 Importing BB11 (PC=090) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 90 (0x05a) ldtoken [ 1] 95 (0x05f) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 100 (0x064) ldtoken [ 2] 105 (0x069) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 110 (0x06e) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB674AB8 (System.Boolean) and 00007FFBBB67C880 (System.UInt16) for equality Runtime reports comparison is known at jit time: 1 [ 1] 115 (0x073) brfalse Folding operator with constant nodes into a constant: [000089] ------------ * EQ int [000087] ------------ +--* CNS_INT int 1 [000088] ------------ \--* CNS_INT int 0 Bashed to int constant: [000089] ------------ * CNS_INT int 0 The block falls through into the next BB12 impImportBlockPending for BB12 Importing BB12 (PC=120) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 120 (0x078) ldtoken [ 1] 125 (0x07d) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 130 (0x082) ldtoken [ 2] 135 (0x087) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 140 (0x08c) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB674AB8 (System.Boolean) and 00007FFBBB67DEA0 (System.Int32) for equality Runtime reports comparison is known at jit time: 1 [ 1] 145 (0x091) brfalse Folding operator with constant nodes into a constant: [000099] ------------ * EQ int [000097] ------------ +--* CNS_INT int 1 [000098] ------------ \--* CNS_INT int 0 Bashed to int constant: [000099] ------------ * CNS_INT int 0 The block falls through into the next BB13 impImportBlockPending for BB13 Importing BB13 (PC=150) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 150 (0x096) ldtoken [ 1] 155 (0x09b) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 160 (0x0a0) ldtoken [ 2] 165 (0x0a5) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 170 (0x0aa) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB674AB8 (System.Boolean) and 00007FFBBB67F4C0 (System.UInt32) for equality Runtime reports comparison is known at jit time: 1 [ 1] 175 (0x0af) brfalse.s Folding operator with constant nodes into a constant: [000109] ------------ * EQ int [000107] ------------ +--* CNS_INT int 1 [000108] ------------ \--* CNS_INT int 0 Bashed to int constant: [000109] ------------ * CNS_INT int 0 The block falls through into the next BB14 impImportBlockPending for BB14 Importing BB14 (PC=177) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 177 (0x0b1) ldtoken [ 1] 182 (0x0b6) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 187 (0x0bb) ldtoken [ 2] 192 (0x0c0) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 197 (0x0c5) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB674AB8 (System.Boolean) and 00007FFBBB6A10F8 (System.Int64) for equality Runtime reports comparison is known at jit time: 1 [ 1] 202 (0x0ca) brfalse.s Folding operator with constant nodes into a constant: [000119] ------------ * EQ int [000117] ------------ +--* CNS_INT int 1 [000118] ------------ \--* CNS_INT int 0 Bashed to int constant: [000119] ------------ * CNS_INT int 0 The block falls through into the next BB15 impImportBlockPending for BB15 Importing BB15 (PC=204) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 204 (0x0cc) ldtoken [ 1] 209 (0x0d1) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 214 (0x0d6) ldtoken [ 2] 219 (0x0db) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 224 (0x0e0) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB674AB8 (System.Boolean) and 00007FFBBB6A2718 (System.UInt64) for equality Runtime reports comparison is known at jit time: 1 [ 1] 229 (0x0e5) brfalse.s Folding operator with constant nodes into a constant: [000129] ------------ * EQ int [000127] ------------ +--* CNS_INT int 1 [000128] ------------ \--* CNS_INT int 0 Bashed to int constant: [000129] ------------ * CNS_INT int 0 The block falls through into the next BB16 impImportBlockPending for BB16 Importing BB16 (PC=231) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 231 (0x0e7) ldtoken [ 1] 236 (0x0ec) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 241 (0x0f1) ldtoken [ 2] 246 (0x0f6) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 251 (0x0fb) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB674AB8 (System.Boolean) and 00007FFBBB6A4178 (System.Single) for equality Runtime reports comparison is known at jit time: 1 [ 1] 256 (0x100) brfalse.s Folding operator with constant nodes into a constant: [000139] ------------ * EQ int [000137] ------------ +--* CNS_INT int 1 [000138] ------------ \--* CNS_INT int 0 Bashed to int constant: [000139] ------------ * CNS_INT int 0 The block falls through into the next BB17 impImportBlockPending for BB17 Importing BB17 (PC=258) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 258 (0x102) ldtoken [ 1] 263 (0x107) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 268 (0x10c) ldtoken [ 2] 273 (0x111) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 278 (0x116) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB674AB8 (System.Boolean) and 00007FFBBB6A5BD8 (System.Double) for equality Runtime reports comparison is known at jit time: 1 [ 1] 283 (0x11b) brfalse.s Folding operator with constant nodes into a constant: [000149] ------------ * EQ int [000147] ------------ +--* CNS_INT int 1 [000148] ------------ \--* CNS_INT int 0 Bashed to int constant: [000149] ------------ * CNS_INT int 0 The block falls through into the next BB18 impImportBlockPending for BB18 Importing BB18 (PC=285) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 285 (0x11d) ldc.i4.s 63 [ 1] 287 (0x11f) call 0600185B In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 [000151] I-C-G------- * CALL void System.ThrowHelper.ThrowNotSupportedException (exactContextHnd=0x00007FFBBB9ACA29) [000150] ------------ arg0 \--* CNS_INT int 63 impImportBlockPending for BB19 Importing BB19 (PC=292) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 292 (0x124) ret After impImport() added block for try,catch,finally ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB08 [0007] 1 1 [000..01E) i BB09 [0008] 1 1 [01E..03C) i BB10 [0009] 1 1 [03C..05A) i BB11 [0010] 1 1 [05A..078) i BB12 [0011] 1 1 [078..096) i BB13 [0012] 1 1 [096..0B1) i BB14 [0013] 1 1 [0B1..0CC) i BB15 [0014] 1 1 [0CC..0E7) i BB16 [0015] 1 1 [0E7..102) i BB17 [0016] 1 1 [102..11D) i BB18 [0017] 1 1 [11D..124) i BB19 [0018] 11 1 [124..125) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ** Note: inlinee IL was partially imported -- imported 7 of 293 bytes of method IL *************** Inline @[000036] Finishing PHASE Importation *************** Inline @[000036] Starting PHASE Indirect call transform *************** in fgTransformIndirectCalls(inlinee) -- no candidates to transform *************** Inline @[000036] Finishing PHASE Indirect call transform *************** Inline @[000036] Starting PHASE Expand patchpoints *************** in fgTransformPatchpoints -- no patchpoints to transform *************** Inline @[000036] Finishing PHASE Expand patchpoints *************** 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] ----------- Inlinee method body:New Basic Block BB20 [0019] created. EH#0: New last block of try: BB20 Convert bbJumpKind of BB19 to BBJ_NONE fgInlineAppendStatements: no gc ref inline locals. ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB08 [0007] 1 0 1 [002..003) T0 i BB09 [0008] 1 0 0.50 [002..003) T0 i BB10 [0009] 1 0 0.50 [002..003) T0 i BB11 [0010] 1 0 0.50 [002..003) T0 i BB12 [0011] 1 0 0.50 [002..003) T0 i BB13 [0012] 1 0 0.50 [002..003) T0 i BB14 [0013] 1 0 0.50 [002..003) T0 i BB15 [0014] 1 0 0.50 [002..003) T0 i BB16 [0015] 1 0 0.50 [002..003) T0 i BB17 [0016] 1 0 0.50 [002..003) T0 i BB18 [0017] 1 0 0.50 [002..003) T0 i BB19 [0018] 11 0 1 [002..003) T0 i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB08 [002..003), preds={} succs={BB09} ------------ BB09 [002..003), preds={} succs={BB10} ------------ BB10 [002..003), preds={} succs={BB11} ------------ BB11 [002..003), preds={} succs={BB12} ------------ BB12 [002..003), preds={} succs={BB13} ------------ BB13 [002..003), preds={} succs={BB14} ------------ BB14 [002..003), preds={} succs={BB15} ------------ BB15 [002..003), preds={} succs={BB16} ------------ BB16 [002..003), preds={} succs={BB17} ------------ BB17 [002..003), preds={} succs={BB18} ------------ BB18 [002..003), preds={} succs={BB19} ***** BB18 STMT00016 (IL 0x002... ???) [000151] I-C-G------- * CALL void System.ThrowHelper.ThrowNotSupportedException (exactContextHnd=0x00007FFBBB9ACA29) [000150] ------------ arg0 \--* CNS_INT int 63 ------------ BB19 [002..003), preds={} succs={BB20} ------------------------------------------------------------------------------------------------------------------- Successfully inlined System.ThrowHelper:ThrowForUnsupportedVectorBaseType() (293 IL bytes) (depth 2) [aggressive inline attribute] -------------------------------------------------------------------------------------------- BB02 becomes empty INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' calling 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' Expanding INLINE_CANDIDATE in statement STMT00016 in BB18: STMT00016 (IL 0x002... ???) [000151] I-C-G------- * CALL void System.ThrowHelper.ThrowNotSupportedException (exactContextHnd=0x00007FFBBB9ACA29) [000150] ------------ arg0 \--* CNS_INT int 63 Argument #0: is a constant [000150] ------------ * CNS_INT int 63 INLINER: inlineInfo.tokenLookupContextHandle for System.ThrowHelper:ThrowNotSupportedException(int) set to 0x00007FFBBB9ACA29: Invoking compiler for the inlinee method System.ThrowHelper:ThrowNotSupportedException(int) : IL to import: IL_0000 02 ldarg.0 IL_0001 28 7a 18 00 06 call 0x600187A IL_0006 73 87 11 00 06 newobj 0x6001187 IL_000b 7a throw INLINER impTokenLookupContextHandle for System.ThrowHelper:ThrowNotSupportedException(int) is 0x00007FFBBB9ACA29. *************** In fgFindBasicBlocks() for System.ThrowHelper:ThrowNotSupportedException(int) Jump targets: none New Basic Block BB21 [0020] created. BB21 [000..00C) Basic block list for 'System.ThrowHelper:ThrowNotSupportedException(int)' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB21 [0020] 1 0 [000..00C) (throw ) rare ----------------------------------------------------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'failed this callee' reason 'does not return' for 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' calling 'System.ThrowHelper:ThrowNotSupportedException(int)' INLINER: during 'fgInline' result 'failed this callee' reason 'does not return' Expanding INLINE_CANDIDATE in statement STMT00013 in BB20: STMT00013 (IL 0x002... ???) [000038] I-C-G------- * CALL long System.Runtime.Intrinsics.Vector64.Create (exactContextHnd=0x00007FFBBBA60CE1) [000037] ------------ arg0 \--* CNS_INT int -1 Argument #0: is a constant [000037] ------------ * CNS_INT int -1 INLINER: inlineInfo.tokenLookupContextHandle for System.Runtime.Intrinsics.Vector64:Create(int):System.Runtime.Intrinsics.Vector64`1[UInt32] set to 0x00007FFBBBA60CE1: Invoking compiler for the inlinee method System.Runtime.Intrinsics.Vector64:Create(int):System.Runtime.Intrinsics.Vector64`1[UInt32] : IL to import: IL_0000 1e ldc.i4.8 IL_0001 e0 conv.u IL_0002 fe 0f localloc IL_0004 25 dup IL_0005 02 ldarg.0 IL_0006 54 stind.i4 IL_0007 25 dup IL_0008 1a ldc.i4.4 IL_0009 58 add IL_000a 02 ldarg.0 IL_000b 54 stind.i4 IL_000c 0a stloc.0 IL_000d 06 ldloc.0 IL_000e 28 b3 03 00 2b call 0x2B0003B3 IL_0013 71 90 02 00 1b ldobj 0x1B000290 IL_0018 2a ret INLINER impTokenLookupContextHandle for System.Runtime.Intrinsics.Vector64:Create(int):System.Runtime.Intrinsics.Vector64`1[UInt32] is 0x00007FFBBBA60CE1. HW Intrinsic SIMD Candidate Type Vector64`1 with Base Type UInt32 *************** In fgFindBasicBlocks() for System.Runtime.Intrinsics.Vector64:Create(int):System.Runtime.Intrinsics.Vector64`1[UInt32] weight= 42 : state 31 [ ldc.i4.8 ] weight=-36 : state 165 [ conv.u ] weight=347 : state 176 [ localloc ] weight= 11 : state 38 [ dup ] weight= 10 : state 3 [ ldarg.0 ] weight= 11 : state 72 [ stind.i4 ] weight= 11 : state 38 [ dup ] weight= 20 : state 27 [ ldc.i4.4 ] weight=-12 : state 76 [ add ] weight= 10 : state 3 [ ldarg.0 ] weight= 11 : state 72 [ stind.i4 ] weight= 20 : state 199 [ stloc.0 -> ldloc.0 ] weight= 79 : state 40 [ call ] weight= 29 : state 101 [ ldobj ] weight= 19 : state 42 [ ret ] Inline candidate has SIMD type args, locals or return value. Multiplier increased to 3. Inline candidate callsite is boring. Multiplier increased to 4.3. calleeNativeSizeEstimate=572 callsiteNativeSizeEstimate=85 benefit multiplier=4.3 threshold=365 Native estimate for function size exceeds threshold for inlining 57.2 > 36.5 (multiplier = 4.3) Inline expansion aborted, inline not profitable Inlining [000038] failed, so bashing STMT00013 to NOP INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' for 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' calling 'System.Runtime.Intrinsics.Vector64:Create(int):System.Runtime.Intrinsics.Vector64`1[UInt32]' INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' Replacing the return expression placeholder [000039] with [000038] [000039] --C--------- * RET_EXPR long (inl return from call [000038]) Inserting the inline return expression [000038] --C-G------- * CALL long System.Runtime.Intrinsics.Vector64.Create [000037] ------------ arg0 \--* CNS_INT int -1 Expanding INLINE_CANDIDATE in statement STMT00015 in BB20: STMT00015 (IL 0x002... ???) [000040] I-C-G------- * CALL struct System.Runtime.Intrinsics.Vector64.As (exactContextHnd=0x00007FFBBBA614B8) [000047] n----------- arg0 \--* OBJ struct [000046] ------------ \--* ADDR byref [000045] ------------ \--* LCL_VAR struct V05 tmp3 Argument #0: [000047] n----------- * OBJ struct [000046] ------------ \--* ADDR byref [000045] ------------ \--* LCL_VAR struct V05 tmp3 HW Intrinsic SIMD Candidate Type Vector64`1 with Base Type UInt32 INLINER: inlineInfo.tokenLookupContextHandle for System.Runtime.Intrinsics.Vector64:As(System.Runtime.Intrinsics.Vector64`1[UInt32]):System.Runtime.Intrinsics.Vector64`1[Boolean] set to 0x00007FFBBBA614B8: Invoking compiler for the inlinee method System.Runtime.Intrinsics.Vector64:As(System.Runtime.Intrinsics.Vector64`1[UInt32]):System.Runtime.Intrinsics.Vector64`1[Boolean] : IL to import: IL_0000 28 d6 02 00 2b call 0x2B0002D6 IL_0005 28 d7 02 00 2b call 0x2B0002D7 IL_000a 0f 00 ldarga.s 0x0 IL_000c 28 a0 03 00 2b call 0x2B0003A0 IL_0011 71 a5 02 00 1b ldobj 0x1B0002A5 IL_0016 2a ret INLINER impTokenLookupContextHandle for System.Runtime.Intrinsics.Vector64:As(System.Runtime.Intrinsics.Vector64`1[UInt32]):System.Runtime.Intrinsics.Vector64`1[Boolean] is 0x00007FFBBBA614B8. HW Intrinsic SIMD Candidate Type Vector64`1 with Base Type Boolean *************** In fgFindBasicBlocks() for System.Runtime.Intrinsics.Vector64:As(System.Runtime.Intrinsics.Vector64`1[UInt32]):System.Runtime.Intrinsics.Vector64`1[Boolean] Jump targets: none New Basic Block BB22 [0020] created. BB22 [000..017) Basic block list for 'System.Runtime.Intrinsics.Vector64:As(System.Runtime.Intrinsics.Vector64`1[UInt32]):System.Runtime.Intrinsics.Vector64`1[Boolean]' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB22 [0020] 1 1 [000..017) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000040] Starting PHASE Pre-import *************** Inline @[000040] Finishing PHASE Pre-import *************** Inline @[000040] Starting PHASE Importation *************** In impImport() for System.Runtime.Intrinsics.Vector64:As(System.Runtime.Intrinsics.Vector64`1[UInt32]):System.Runtime.Intrinsics.Vector64`1[Boolean] impImportBlockPending for BB22 Importing BB22 (PC=000) of 'System.Runtime.Intrinsics.Vector64:As(System.Runtime.Intrinsics.Vector64`1[UInt32]):System.Runtime.Intrinsics.Vector64`1[Boolean]' [ 0] 0 (0x000) call 2B0002D6 In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 [000154] I-C-G------- * CALL void System.ThrowHelper.ThrowForUnsupportedVectorBaseType (exactContextHnd=0x00007FFBBBA61640) [ 0] 5 (0x005) call 2B0002D7 In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 [000155] I-C-G------- * CALL void System.ThrowHelper.ThrowForUnsupportedVectorBaseType (exactContextHnd=0x00007FFBBB9ACB48) [ 0] 10 (0x00a) ldarga.s 0 lvaGrabTemp returning 6 (V06 tmp4) called for Inlining Arg. HW Intrinsic SIMD Candidate Type Vector64`1 with Base Type UInt32 [ 1] 12 (0x00c) call 2B0003A0 In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 Named Intrinsic Internal.Runtime.CompilerServices.UnsafeAs: Not recognized [000158] I-C-G------- * CALL byref Internal.Runtime.CompilerServices.Unsafe.As (exactContextHnd=0x00007FFBBBA61888) [000157] ------------ arg0 \--* ADDR byref [000156] ------------ \--* LCL_VAR struct V06 tmp4 [ 1] 17 (0x011) ldobj 1B0002A5HW Intrinsic SIMD Candidate Type Vector64`1 with Base Type Boolean [ 1] 22 (0x016) ret Inlinee Return expression (before normalization) => [000160] --CXG------- * OBJ struct [000159] --C--------- \--* RET_EXPR byref (inl return from call [000158]) impFixupStructReturnType: retyping [000160] --CXG------- * OBJ struct [000159] --C--------- \--* RET_EXPR byref (inl return from call [000158]) impFixupStructReturnType: result of retyping is [000160] *-CXG------- * IND long [000159] --C--------- \--* RET_EXPR byref (inl return from call [000158]) Inlinee Return expression (after normalization) => [000160] *-CXG------- * IND long [000159] --C--------- \--* RET_EXPR byref (inl return from call [000158]) After impImport() added block for try,catch,finally ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB22 [0020] 1 1 [000..017) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000040] Finishing PHASE Importation *************** Inline @[000040] Starting PHASE Indirect call transform *************** in fgTransformIndirectCalls(inlinee) -- no candidates to transform *************** Inline @[000040] Finishing PHASE Indirect call transform *************** Inline @[000040] Starting PHASE Expand patchpoints *************** in fgTransformPatchpoints -- no patchpoints to transform *************** Inline @[000040] Finishing PHASE Expand patchpoints *************** Inline @[000040] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000040] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000040] ----------- Arguments setup: HW Intrinsic SIMD Candidate Type Vector64`1 with Base Type UInt32 STMT00020 (IL 0x002... ???) [000163] -A---------- * ASG struct (copy) [000161] D----------- +--* LCL_VAR struct V06 tmp4 [000047] n----------- \--* OBJ struct [000046] ------------ \--* ADDR byref [000045] ------------ \--* LCL_VAR struct V05 tmp3 Inlinee method body: STMT00017 (IL 0x002... ???) [000154] I-C-G------- * CALL void System.ThrowHelper.ThrowForUnsupportedVectorBaseType (exactContextHnd=0x00007FFBBBA61640) STMT00018 (IL 0x002... ???) [000155] I-C-G------- * CALL void System.ThrowHelper.ThrowForUnsupportedVectorBaseType (exactContextHnd=0x00007FFBBB9ACB48) STMT00019 (IL 0x002... ???) [000158] I-C-G------- * CALL byref Internal.Runtime.CompilerServices.Unsafe.As (exactContextHnd=0x00007FFBBBA61888) [000157] ------------ arg0 \--* ADDR byref [000156] ------------ \--* LCL_VAR struct V06 tmp4 fgInlineAppendStatements: no gc ref inline locals. Return expression for call at [000040] is [000160] *-CXG------- * IND long [000159] --C--------- \--* RET_EXPR byref (inl return from call [000158]) Successfully inlined System.Runtime.Intrinsics.Vector64:As(System.Runtime.Intrinsics.Vector64`1[UInt32]):System.Runtime.Intrinsics.Vector64`1[Boolean] (23 IL bytes) (depth 2) [aggressive inline attribute] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' calling 'System.Runtime.Intrinsics.Vector64:As(System.Runtime.Intrinsics.Vector64`1[UInt32]):System.Runtime.Intrinsics.Vector64`1[Boolean]' INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' Expanding INLINE_CANDIDATE in statement STMT00017 in BB20: STMT00017 (IL 0x002... ???) [000154] I-C-G------- * CALL void System.ThrowHelper.ThrowForUnsupportedVectorBaseType (exactContextHnd=0x00007FFBBBA61640) INLINER: inlineInfo.tokenLookupContextHandle for System.ThrowHelper:ThrowForUnsupportedVectorBaseType() set to 0x00007FFBBBA61640: Invoking compiler for the inlinee method System.ThrowHelper:ThrowForUnsupportedVectorBaseType() : IL to import: IL_0000 d0 06 00 00 1b ldtoken 0x1B000006 IL_0005 28 64 07 00 06 call 0x6000764 IL_000a d0 e6 00 00 02 ldtoken 0x20000E6 IL_000f 28 64 07 00 06 call 0x6000764 IL_0014 28 6a 07 00 06 call 0x600076A IL_0019 39 06 01 00 00 brfalse 262 (IL_0124) IL_001e d0 06 00 00 1b ldtoken 0x1B000006 IL_0023 28 64 07 00 06 call 0x6000764 IL_0028 d0 84 01 00 02 ldtoken 0x2000184 IL_002d 28 64 07 00 06 call 0x6000764 IL_0032 28 6a 07 00 06 call 0x600076A IL_0037 39 e8 00 00 00 brfalse 232 (IL_0124) IL_003c d0 06 00 00 1b ldtoken 0x1B000006 IL_0041 28 64 07 00 06 call 0x6000764 IL_0046 d0 3e 01 00 02 ldtoken 0x200013E IL_004b 28 64 07 00 06 call 0x6000764 IL_0050 28 6a 07 00 06 call 0x600076A IL_0055 39 ca 00 00 00 brfalse 202 (IL_0124) IL_005a d0 06 00 00 1b ldtoken 0x1B000006 IL_005f 28 64 07 00 06 call 0x6000764 IL_0064 d0 ba 01 00 02 ldtoken 0x20001BA IL_0069 28 64 07 00 06 call 0x6000764 IL_006e 28 6a 07 00 06 call 0x600076A IL_0073 39 ac 00 00 00 brfalse 172 (IL_0124) IL_0078 d0 06 00 00 1b ldtoken 0x1B000006 IL_007d 28 64 07 00 06 call 0x6000764 IL_0082 d0 3f 01 00 02 ldtoken 0x200013F IL_0087 28 64 07 00 06 call 0x6000764 IL_008c 28 6a 07 00 06 call 0x600076A IL_0091 39 8e 00 00 00 brfalse 142 (IL_0124) IL_0096 d0 06 00 00 1b ldtoken 0x1B000006 IL_009b 28 64 07 00 06 call 0x6000764 IL_00a0 d0 bb 01 00 02 ldtoken 0x20001BB IL_00a5 28 64 07 00 06 call 0x6000764 IL_00aa 28 6a 07 00 06 call 0x600076A IL_00af 2c 73 brfalse.s 115 (IL_0124) IL_00b1 d0 06 00 00 1b ldtoken 0x1B000006 IL_00b6 28 64 07 00 06 call 0x6000764 IL_00bb d0 40 01 00 02 ldtoken 0x2000140 IL_00c0 28 64 07 00 06 call 0x6000764 IL_00c5 28 6a 07 00 06 call 0x600076A IL_00ca 2c 58 brfalse.s 88 (IL_0124) IL_00cc d0 06 00 00 1b ldtoken 0x1B000006 IL_00d1 28 64 07 00 06 call 0x6000764 IL_00d6 d0 bc 01 00 02 ldtoken 0x20001BC IL_00db 28 64 07 00 06 call 0x6000764 IL_00e0 28 6a 07 00 06 call 0x600076A IL_00e5 2c 3d brfalse.s 61 (IL_0124) IL_00e7 d0 06 00 00 1b ldtoken 0x1B000006 IL_00ec 28 64 07 00 06 call 0x6000764 IL_00f1 d0 86 01 00 02 ldtoken 0x2000186 IL_00f6 28 64 07 00 06 call 0x6000764 IL_00fb 28 6a 07 00 06 call 0x600076A IL_0100 2c 22 brfalse.s 34 (IL_0124) IL_0102 d0 06 00 00 1b ldtoken 0x1B000006 IL_0107 28 64 07 00 06 call 0x6000764 IL_010c d0 fb 00 00 02 ldtoken 0x20000FB IL_0111 28 64 07 00 06 call 0x6000764 IL_0116 28 6a 07 00 06 call 0x600076A IL_011b 2c 07 brfalse.s 7 (IL_0124) IL_011d 1f 3f ldc.i4.s 0x3F IL_011f 28 5b 18 00 06 call 0x600185B IL_0124 2a ret INLINER impTokenLookupContextHandle for System.ThrowHelper:ThrowForUnsupportedVectorBaseType() is 0x00007FFBBBA61640. *************** In fgFindBasicBlocks() for System.ThrowHelper:ThrowForUnsupportedVectorBaseType() Jump targets: IL_0124 New Basic Block BB23 [0021] created. BB23 [000..01E) New Basic Block BB24 [0022] created. BB24 [01E..03C) New Basic Block BB25 [0023] created. BB25 [03C..05A) New Basic Block BB26 [0024] created. BB26 [05A..078) New Basic Block BB27 [0025] created. BB27 [078..096) New Basic Block BB28 [0026] created. BB28 [096..0B1) New Basic Block BB29 [0027] created. BB29 [0B1..0CC) New Basic Block BB30 [0028] created. BB30 [0CC..0E7) New Basic Block BB31 [0029] created. BB31 [0E7..102) New Basic Block BB32 [0030] created. BB32 [102..11D) New Basic Block BB33 [0031] created. BB33 [11D..124) New Basic Block BB34 [0032] created. BB34 [124..125) Basic block list for 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB23 [0021] 1 1 [000..01E)-> BB34 ( cond ) BB24 [0022] 1 1 [01E..03C)-> BB34 ( cond ) BB25 [0023] 1 1 [03C..05A)-> BB34 ( cond ) BB26 [0024] 1 1 [05A..078)-> BB34 ( cond ) BB27 [0025] 1 1 [078..096)-> BB34 ( cond ) BB28 [0026] 1 1 [096..0B1)-> BB34 ( cond ) BB29 [0027] 1 1 [0B1..0CC)-> BB34 ( cond ) BB30 [0028] 1 1 [0CC..0E7)-> BB34 ( cond ) BB31 [0029] 1 1 [0E7..102)-> BB34 ( cond ) BB32 [0030] 1 1 [102..11D)-> BB34 ( cond ) BB33 [0031] 1 1 [11D..124) BB34 [0032] 11 1 [124..125) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000154] Starting PHASE Pre-import *************** Inline @[000154] Finishing PHASE Pre-import *************** Inline @[000154] Starting PHASE Importation *************** In impImport() for System.ThrowHelper:ThrowForUnsupportedVectorBaseType() impImportBlockPending for BB23 Importing BB23 (PC=000) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 0 (0x000) ldtoken [ 1] 5 (0x005) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 10 (0x00a) ldtoken [ 2] 15 (0x00f) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 20 (0x014) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB67F4C0 (System.UInt32) and 00007FFBBB679B40 (System.Byte) for equality Runtime reports comparison is known at jit time: 1 [ 1] 25 (0x019) brfalse Folding operator with constant nodes into a constant: [000174] ------------ * EQ int [000172] ------------ +--* CNS_INT int 1 [000173] ------------ \--* CNS_INT int 0 Bashed to int constant: [000174] ------------ * CNS_INT int 0 The block falls through into the next BB24 impImportBlockPending for BB24 Importing BB24 (PC=030) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 30 (0x01e) ldtoken [ 1] 35 (0x023) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 40 (0x028) ldtoken [ 2] 45 (0x02d) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 50 (0x032) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB67F4C0 (System.UInt32) and 00007FFBBB6784A0 (System.SByte) for equality Runtime reports comparison is known at jit time: 1 [ 1] 55 (0x037) brfalse Folding operator with constant nodes into a constant: [000184] ------------ * EQ int [000182] ------------ +--* CNS_INT int 1 [000183] ------------ \--* CNS_INT int 0 Bashed to int constant: [000184] ------------ * CNS_INT int 0 The block falls through into the next BB25 impImportBlockPending for BB25 Importing BB25 (PC=060) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 60 (0x03c) ldtoken [ 1] 65 (0x041) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 70 (0x046) ldtoken [ 2] 75 (0x04b) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 80 (0x050) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB67F4C0 (System.UInt32) and 00007FFBBB67B1E0 (System.Int16) for equality Runtime reports comparison is known at jit time: 1 [ 1] 85 (0x055) brfalse Folding operator with constant nodes into a constant: [000194] ------------ * EQ int [000192] ------------ +--* CNS_INT int 1 [000193] ------------ \--* CNS_INT int 0 Bashed to int constant: [000194] ------------ * CNS_INT int 0 The block falls through into the next BB26 impImportBlockPending for BB26 Importing BB26 (PC=090) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 90 (0x05a) ldtoken [ 1] 95 (0x05f) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 100 (0x064) ldtoken [ 2] 105 (0x069) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 110 (0x06e) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB67F4C0 (System.UInt32) and 00007FFBBB67C880 (System.UInt16) for equality Runtime reports comparison is known at jit time: 1 [ 1] 115 (0x073) brfalse Folding operator with constant nodes into a constant: [000204] ------------ * EQ int [000202] ------------ +--* CNS_INT int 1 [000203] ------------ \--* CNS_INT int 0 Bashed to int constant: [000204] ------------ * CNS_INT int 0 The block falls through into the next BB27 impImportBlockPending for BB27 Importing BB27 (PC=120) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 120 (0x078) ldtoken [ 1] 125 (0x07d) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 130 (0x082) ldtoken [ 2] 135 (0x087) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 140 (0x08c) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB67F4C0 (System.UInt32) and 00007FFBBB67DEA0 (System.Int32) for equality Runtime reports comparison is known at jit time: 1 [ 1] 145 (0x091) brfalse Folding operator with constant nodes into a constant: [000214] ------------ * EQ int [000212] ------------ +--* CNS_INT int 1 [000213] ------------ \--* CNS_INT int 0 Bashed to int constant: [000214] ------------ * CNS_INT int 0 The block falls through into the next BB28 impImportBlockPending for BB28 Importing BB28 (PC=150) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 150 (0x096) ldtoken [ 1] 155 (0x09b) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 160 (0x0a0) ldtoken [ 2] 165 (0x0a5) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 170 (0x0aa) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB67F4C0 (System.UInt32) and 00007FFBBB67F4C0 (System.UInt32) for equality Runtime reports comparison is known at jit time: 0 [ 1] 175 (0x0af) brfalse.s Folding operator with constant nodes into a constant: [000224] ------------ * EQ int [000222] ------------ +--* CNS_INT int 0 [000223] ------------ \--* CNS_INT int 0 Bashed to int constant: [000224] ------------ * CNS_INT int 1 The conditional jump becomes an unconditional jump to BB34 impImportBlockPending for BB34 Importing BB34 (PC=292) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 292 (0x124) ret After impImport() added block for try,catch,finally ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB23 [0021] 1 1 [000..01E) i BB24 [0022] 1 1 [01E..03C) i BB25 [0023] 1 1 [03C..05A) i BB26 [0024] 1 1 [05A..078) i BB27 [0025] 1 1 [078..096) i BB28 [0026] 1 1 [096..0B1)-> BB34 (always) i BB29 [0027] 1 1 [0B1..0CC)-> BB34 ( cond ) BB30 [0028] 1 1 [0CC..0E7)-> BB34 ( cond ) BB31 [0029] 1 1 [0E7..102)-> BB34 ( cond ) BB32 [0030] 1 1 [102..11D)-> BB34 ( cond ) BB33 [0031] 1 1 [11D..124) BB34 [0032] 11 1 [124..125) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ** Note: inlinee IL was partially imported -- imported 0 of 293 bytes of method IL *************** Inline @[000154] Finishing PHASE Importation *************** Inline @[000154] Starting PHASE Indirect call transform *************** in fgTransformIndirectCalls(inlinee) -- no candidates to transform *************** Inline @[000154] Finishing PHASE Indirect call transform *************** Inline @[000154] Starting PHASE Expand patchpoints *************** in fgTransformPatchpoints -- no patchpoints to transform *************** Inline @[000154] Finishing PHASE Expand patchpoints *************** Inline @[000154] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks BB29 was not imported, marking as removed (0) BB30 was not imported, marking as removed (1) BB31 was not imported, marking as removed (2) BB32 was not imported, marking as removed (3) BB33 was not imported, marking as removed (4) Renumbering the basic blocks for fgRemoveEmptyBlocks *************** Before renumbering the basic blocks ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB23 [0021] 1 1 [000..01E) i BB24 [0022] 1 1 [01E..03C) i BB25 [0023] 1 1 [03C..05A) i BB26 [0024] 1 1 [05A..078) i BB27 [0025] 1 1 [078..096) i BB28 [0026] 1 1 [096..0B1)-> BB34 (always) i BB34 [0032] 11 1 [124..125) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB20 [002..00A), Handler at BB03..BB03 [00A..00F) Renumber BB23 to BB35 Renumber BB24 to BB36 Renumber BB25 to BB37 Renumber BB26 to BB38 Renumber BB27 to BB39 Renumber BB28 to BB40 Renumber BB34 to BB41 *************** After renumbering the basic blocks ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB35 [0021] 1 1 [000..01E) i BB36 [0022] 1 1 [01E..03C) i BB37 [0023] 1 1 [03C..05A) i BB38 [0024] 1 1 [05A..078) i BB39 [0025] 1 1 [078..096) i BB40 [0026] 1 1 [096..0B1)-> BB41 (always) i BB41 [0032] 11 1 [124..125) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB20 [002..00A), Handler at BB03..BB03 [00A..00F) New BlockSet epoch 1, # of blocks (including unused BB00): 1, bitset array size: 1 (short) *************** Inline @[000154] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000154] ----------- Inlinee method body:New Basic Block BB42 [0033] created. EH#0: New last block of try: BB42 Convert bbJumpKind of BB41 to BBJ_NONE fgInlineAppendStatements: no gc ref inline locals. ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB35 [0021] 1 0 1 [002..003) T0 i BB36 [0022] 1 0 0.50 [002..003) T0 i BB37 [0023] 1 0 0.50 [002..003) T0 i BB38 [0024] 1 0 0.50 [002..003) T0 i BB39 [0025] 1 0 0.50 [002..003) T0 i BB40 [0026] 1 0 0.50 [002..003)-> BB41 (always) T0 i BB41 [0032] 11 0 1 [002..003) T0 i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB35 [002..003), preds={} succs={BB36} ------------ BB36 [002..003), preds={} succs={BB37} ------------ BB37 [002..003), preds={} succs={BB38} ------------ BB38 [002..003), preds={} succs={BB39} ------------ BB39 [002..003), preds={} succs={BB40} ------------ BB40 [002..003) -> BB41 (always), preds={} succs={BB41} ------------ BB41 [002..003), preds={} succs={BB42} ------------------------------------------------------------------------------------------------------------------- Successfully inlined System.ThrowHelper:ThrowForUnsupportedVectorBaseType() (293 IL bytes) (depth 3) [aggressive inline attribute] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' calling 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' Expanding INLINE_CANDIDATE in statement STMT00018 in BB42: STMT00018 (IL 0x002... ???) [000155] I-C-G------- * CALL void System.ThrowHelper.ThrowForUnsupportedVectorBaseType (exactContextHnd=0x00007FFBBB9ACB48) INLINER: inlineInfo.tokenLookupContextHandle for System.ThrowHelper:ThrowForUnsupportedVectorBaseType() set to 0x00007FFBBB9ACB48: Invoking compiler for the inlinee method System.ThrowHelper:ThrowForUnsupportedVectorBaseType() : IL to import: IL_0000 d0 06 00 00 1b ldtoken 0x1B000006 IL_0005 28 64 07 00 06 call 0x6000764 IL_000a d0 e6 00 00 02 ldtoken 0x20000E6 IL_000f 28 64 07 00 06 call 0x6000764 IL_0014 28 6a 07 00 06 call 0x600076A IL_0019 39 06 01 00 00 brfalse 262 (IL_0124) IL_001e d0 06 00 00 1b ldtoken 0x1B000006 IL_0023 28 64 07 00 06 call 0x6000764 IL_0028 d0 84 01 00 02 ldtoken 0x2000184 IL_002d 28 64 07 00 06 call 0x6000764 IL_0032 28 6a 07 00 06 call 0x600076A IL_0037 39 e8 00 00 00 brfalse 232 (IL_0124) IL_003c d0 06 00 00 1b ldtoken 0x1B000006 IL_0041 28 64 07 00 06 call 0x6000764 IL_0046 d0 3e 01 00 02 ldtoken 0x200013E IL_004b 28 64 07 00 06 call 0x6000764 IL_0050 28 6a 07 00 06 call 0x600076A IL_0055 39 ca 00 00 00 brfalse 202 (IL_0124) IL_005a d0 06 00 00 1b ldtoken 0x1B000006 IL_005f 28 64 07 00 06 call 0x6000764 IL_0064 d0 ba 01 00 02 ldtoken 0x20001BA IL_0069 28 64 07 00 06 call 0x6000764 IL_006e 28 6a 07 00 06 call 0x600076A IL_0073 39 ac 00 00 00 brfalse 172 (IL_0124) IL_0078 d0 06 00 00 1b ldtoken 0x1B000006 IL_007d 28 64 07 00 06 call 0x6000764 IL_0082 d0 3f 01 00 02 ldtoken 0x200013F IL_0087 28 64 07 00 06 call 0x6000764 IL_008c 28 6a 07 00 06 call 0x600076A IL_0091 39 8e 00 00 00 brfalse 142 (IL_0124) IL_0096 d0 06 00 00 1b ldtoken 0x1B000006 IL_009b 28 64 07 00 06 call 0x6000764 IL_00a0 d0 bb 01 00 02 ldtoken 0x20001BB IL_00a5 28 64 07 00 06 call 0x6000764 IL_00aa 28 6a 07 00 06 call 0x600076A IL_00af 2c 73 brfalse.s 115 (IL_0124) IL_00b1 d0 06 00 00 1b ldtoken 0x1B000006 IL_00b6 28 64 07 00 06 call 0x6000764 IL_00bb d0 40 01 00 02 ldtoken 0x2000140 IL_00c0 28 64 07 00 06 call 0x6000764 IL_00c5 28 6a 07 00 06 call 0x600076A IL_00ca 2c 58 brfalse.s 88 (IL_0124) IL_00cc d0 06 00 00 1b ldtoken 0x1B000006 IL_00d1 28 64 07 00 06 call 0x6000764 IL_00d6 d0 bc 01 00 02 ldtoken 0x20001BC IL_00db 28 64 07 00 06 call 0x6000764 IL_00e0 28 6a 07 00 06 call 0x600076A IL_00e5 2c 3d brfalse.s 61 (IL_0124) IL_00e7 d0 06 00 00 1b ldtoken 0x1B000006 IL_00ec 28 64 07 00 06 call 0x6000764 IL_00f1 d0 86 01 00 02 ldtoken 0x2000186 IL_00f6 28 64 07 00 06 call 0x6000764 IL_00fb 28 6a 07 00 06 call 0x600076A IL_0100 2c 22 brfalse.s 34 (IL_0124) IL_0102 d0 06 00 00 1b ldtoken 0x1B000006 IL_0107 28 64 07 00 06 call 0x6000764 IL_010c d0 fb 00 00 02 ldtoken 0x20000FB IL_0111 28 64 07 00 06 call 0x6000764 IL_0116 28 6a 07 00 06 call 0x600076A IL_011b 2c 07 brfalse.s 7 (IL_0124) IL_011d 1f 3f ldc.i4.s 0x3F IL_011f 28 5b 18 00 06 call 0x600185B IL_0124 2a ret INLINER impTokenLookupContextHandle for System.ThrowHelper:ThrowForUnsupportedVectorBaseType() is 0x00007FFBBB9ACB48. *************** In fgFindBasicBlocks() for System.ThrowHelper:ThrowForUnsupportedVectorBaseType() Jump targets: IL_0124 New Basic Block BB43 [0034] created. BB43 [000..01E) New Basic Block BB44 [0035] created. BB44 [01E..03C) New Basic Block BB45 [0036] created. BB45 [03C..05A) New Basic Block BB46 [0037] created. BB46 [05A..078) New Basic Block BB47 [0038] created. BB47 [078..096) New Basic Block BB48 [0039] created. BB48 [096..0B1) New Basic Block BB49 [0040] created. BB49 [0B1..0CC) New Basic Block BB50 [0041] created. BB50 [0CC..0E7) New Basic Block BB51 [0042] created. BB51 [0E7..102) New Basic Block BB52 [0043] created. BB52 [102..11D) New Basic Block BB53 [0044] created. BB53 [11D..124) New Basic Block BB54 [0045] created. BB54 [124..125) Basic block list for 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB43 [0034] 1 1 [000..01E)-> BB54 ( cond ) BB44 [0035] 1 1 [01E..03C)-> BB54 ( cond ) BB45 [0036] 1 1 [03C..05A)-> BB54 ( cond ) BB46 [0037] 1 1 [05A..078)-> BB54 ( cond ) BB47 [0038] 1 1 [078..096)-> BB54 ( cond ) BB48 [0039] 1 1 [096..0B1)-> BB54 ( cond ) BB49 [0040] 1 1 [0B1..0CC)-> BB54 ( cond ) BB50 [0041] 1 1 [0CC..0E7)-> BB54 ( cond ) BB51 [0042] 1 1 [0E7..102)-> BB54 ( cond ) BB52 [0043] 1 1 [102..11D)-> BB54 ( cond ) BB53 [0044] 1 1 [11D..124) BB54 [0045] 11 1 [124..125) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000155] Starting PHASE Pre-import *************** Inline @[000155] Finishing PHASE Pre-import *************** Inline @[000155] Starting PHASE Importation *************** In impImport() for System.ThrowHelper:ThrowForUnsupportedVectorBaseType() impImportBlockPending for BB43 Importing BB43 (PC=000) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 0 (0x000) ldtoken [ 1] 5 (0x005) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 10 (0x00a) ldtoken [ 2] 15 (0x00f) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 20 (0x014) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB674AB8 (System.Boolean) and 00007FFBBB679B40 (System.Byte) for equality Runtime reports comparison is known at jit time: 1 [ 1] 25 (0x019) brfalse Folding operator with constant nodes into a constant: [000235] ------------ * EQ int [000233] ------------ +--* CNS_INT int 1 [000234] ------------ \--* CNS_INT int 0 Bashed to int constant: [000235] ------------ * CNS_INT int 0 The block falls through into the next BB44 impImportBlockPending for BB44 Importing BB44 (PC=030) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 30 (0x01e) ldtoken [ 1] 35 (0x023) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 40 (0x028) ldtoken [ 2] 45 (0x02d) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 50 (0x032) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB674AB8 (System.Boolean) and 00007FFBBB6784A0 (System.SByte) for equality Runtime reports comparison is known at jit time: 1 [ 1] 55 (0x037) brfalse Folding operator with constant nodes into a constant: [000245] ------------ * EQ int [000243] ------------ +--* CNS_INT int 1 [000244] ------------ \--* CNS_INT int 0 Bashed to int constant: [000245] ------------ * CNS_INT int 0 The block falls through into the next BB45 impImportBlockPending for BB45 Importing BB45 (PC=060) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 60 (0x03c) ldtoken [ 1] 65 (0x041) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 70 (0x046) ldtoken [ 2] 75 (0x04b) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 80 (0x050) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB674AB8 (System.Boolean) and 00007FFBBB67B1E0 (System.Int16) for equality Runtime reports comparison is known at jit time: 1 [ 1] 85 (0x055) brfalse Folding operator with constant nodes into a constant: [000255] ------------ * EQ int [000253] ------------ +--* CNS_INT int 1 [000254] ------------ \--* CNS_INT int 0 Bashed to int constant: [000255] ------------ * CNS_INT int 0 The block falls through into the next BB46 impImportBlockPending for BB46 Importing BB46 (PC=090) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 90 (0x05a) ldtoken [ 1] 95 (0x05f) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 100 (0x064) ldtoken [ 2] 105 (0x069) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 110 (0x06e) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB674AB8 (System.Boolean) and 00007FFBBB67C880 (System.UInt16) for equality Runtime reports comparison is known at jit time: 1 [ 1] 115 (0x073) brfalse Folding operator with constant nodes into a constant: [000265] ------------ * EQ int [000263] ------------ +--* CNS_INT int 1 [000264] ------------ \--* CNS_INT int 0 Bashed to int constant: [000265] ------------ * CNS_INT int 0 The block falls through into the next BB47 impImportBlockPending for BB47 Importing BB47 (PC=120) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 120 (0x078) ldtoken [ 1] 125 (0x07d) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 130 (0x082) ldtoken [ 2] 135 (0x087) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 140 (0x08c) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB674AB8 (System.Boolean) and 00007FFBBB67DEA0 (System.Int32) for equality Runtime reports comparison is known at jit time: 1 [ 1] 145 (0x091) brfalse Folding operator with constant nodes into a constant: [000275] ------------ * EQ int [000273] ------------ +--* CNS_INT int 1 [000274] ------------ \--* CNS_INT int 0 Bashed to int constant: [000275] ------------ * CNS_INT int 0 The block falls through into the next BB48 impImportBlockPending for BB48 Importing BB48 (PC=150) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 150 (0x096) ldtoken [ 1] 155 (0x09b) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 160 (0x0a0) ldtoken [ 2] 165 (0x0a5) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 170 (0x0aa) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB674AB8 (System.Boolean) and 00007FFBBB67F4C0 (System.UInt32) for equality Runtime reports comparison is known at jit time: 1 [ 1] 175 (0x0af) brfalse.s Folding operator with constant nodes into a constant: [000285] ------------ * EQ int [000283] ------------ +--* CNS_INT int 1 [000284] ------------ \--* CNS_INT int 0 Bashed to int constant: [000285] ------------ * CNS_INT int 0 The block falls through into the next BB49 impImportBlockPending for BB49 Importing BB49 (PC=177) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 177 (0x0b1) ldtoken [ 1] 182 (0x0b6) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 187 (0x0bb) ldtoken [ 2] 192 (0x0c0) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 197 (0x0c5) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB674AB8 (System.Boolean) and 00007FFBBB6A10F8 (System.Int64) for equality Runtime reports comparison is known at jit time: 1 [ 1] 202 (0x0ca) brfalse.s Folding operator with constant nodes into a constant: [000295] ------------ * EQ int [000293] ------------ +--* CNS_INT int 1 [000294] ------------ \--* CNS_INT int 0 Bashed to int constant: [000295] ------------ * CNS_INT int 0 The block falls through into the next BB50 impImportBlockPending for BB50 Importing BB50 (PC=204) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 204 (0x0cc) ldtoken [ 1] 209 (0x0d1) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 214 (0x0d6) ldtoken [ 2] 219 (0x0db) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 224 (0x0e0) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB674AB8 (System.Boolean) and 00007FFBBB6A2718 (System.UInt64) for equality Runtime reports comparison is known at jit time: 1 [ 1] 229 (0x0e5) brfalse.s Folding operator with constant nodes into a constant: [000305] ------------ * EQ int [000303] ------------ +--* CNS_INT int 1 [000304] ------------ \--* CNS_INT int 0 Bashed to int constant: [000305] ------------ * CNS_INT int 0 The block falls through into the next BB51 impImportBlockPending for BB51 Importing BB51 (PC=231) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 231 (0x0e7) ldtoken [ 1] 236 (0x0ec) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 241 (0x0f1) ldtoken [ 2] 246 (0x0f6) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 251 (0x0fb) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB674AB8 (System.Boolean) and 00007FFBBB6A4178 (System.Single) for equality Runtime reports comparison is known at jit time: 1 [ 1] 256 (0x100) brfalse.s Folding operator with constant nodes into a constant: [000315] ------------ * EQ int [000313] ------------ +--* CNS_INT int 1 [000314] ------------ \--* CNS_INT int 0 Bashed to int constant: [000315] ------------ * CNS_INT int 0 The block falls through into the next BB52 impImportBlockPending for BB52 Importing BB52 (PC=258) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 258 (0x102) ldtoken [ 1] 263 (0x107) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 1] 268 (0x10c) ldtoken [ 2] 273 (0x111) call 06000764 In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 [ 2] 278 (0x116) call 0600076A In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 Importing Type.op_*Equality intrinsic Folding call to Type:op_Inequality to a simple compare via NE Optimizing compare of types-from-handles to instead compare handles Asking runtime to compare 00007FFBBB674AB8 (System.Boolean) and 00007FFBBB6A5BD8 (System.Double) for equality Runtime reports comparison is known at jit time: 1 [ 1] 283 (0x11b) brfalse.s Folding operator with constant nodes into a constant: [000325] ------------ * EQ int [000323] ------------ +--* CNS_INT int 1 [000324] ------------ \--* CNS_INT int 0 Bashed to int constant: [000325] ------------ * CNS_INT int 0 The block falls through into the next BB53 impImportBlockPending for BB53 Importing BB53 (PC=285) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 285 (0x11d) ldc.i4.s 63 [ 1] 287 (0x11f) call 0600185B In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 [000327] I-C-G------- * CALL void System.ThrowHelper.ThrowNotSupportedException (exactContextHnd=0x00007FFBBB9ACA29) [000326] ------------ arg0 \--* CNS_INT int 63 impImportBlockPending for BB54 Importing BB54 (PC=292) of 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' [ 0] 292 (0x124) ret After impImport() added block for try,catch,finally ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB43 [0034] 1 1 [000..01E) i BB44 [0035] 1 1 [01E..03C) i BB45 [0036] 1 1 [03C..05A) i BB46 [0037] 1 1 [05A..078) i BB47 [0038] 1 1 [078..096) i BB48 [0039] 1 1 [096..0B1) i BB49 [0040] 1 1 [0B1..0CC) i BB50 [0041] 1 1 [0CC..0E7) i BB51 [0042] 1 1 [0E7..102) i BB52 [0043] 1 1 [102..11D) i BB53 [0044] 1 1 [11D..124) i BB54 [0045] 11 1 [124..125) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ** Note: inlinee IL was partially imported -- imported 7 of 293 bytes of method IL *************** Inline @[000155] Finishing PHASE Importation *************** Inline @[000155] Starting PHASE Indirect call transform *************** in fgTransformIndirectCalls(inlinee) -- no candidates to transform *************** Inline @[000155] Finishing PHASE Indirect call transform *************** Inline @[000155] Starting PHASE Expand patchpoints *************** in fgTransformPatchpoints -- no patchpoints to transform *************** Inline @[000155] Finishing PHASE Expand patchpoints *************** Inline @[000155] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000155] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000155] ----------- Inlinee method body:New Basic Block BB55 [0046] created. EH#0: New last block of try: BB55 Convert bbJumpKind of BB54 to BBJ_NONE fgInlineAppendStatements: no gc ref inline locals. ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB43 [0034] 1 0 1 [002..003) T0 i BB44 [0035] 1 0 0.50 [002..003) T0 i BB45 [0036] 1 0 0.50 [002..003) T0 i BB46 [0037] 1 0 0.50 [002..003) T0 i BB47 [0038] 1 0 0.50 [002..003) T0 i BB48 [0039] 1 0 0.50 [002..003) T0 i BB49 [0040] 1 0 0.50 [002..003) T0 i BB50 [0041] 1 0 0.50 [002..003) T0 i BB51 [0042] 1 0 0.50 [002..003) T0 i BB52 [0043] 1 0 0.50 [002..003) T0 i BB53 [0044] 1 0 0.50 [002..003) T0 i BB54 [0045] 11 0 1 [002..003) T0 i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB43 [002..003), preds={} succs={BB44} ------------ BB44 [002..003), preds={} succs={BB45} ------------ BB45 [002..003), preds={} succs={BB46} ------------ BB46 [002..003), preds={} succs={BB47} ------------ BB47 [002..003), preds={} succs={BB48} ------------ BB48 [002..003), preds={} succs={BB49} ------------ BB49 [002..003), preds={} succs={BB50} ------------ BB50 [002..003), preds={} succs={BB51} ------------ BB51 [002..003), preds={} succs={BB52} ------------ BB52 [002..003), preds={} succs={BB53} ------------ BB53 [002..003), preds={} succs={BB54} ***** BB53 STMT00021 (IL 0x002... ???) [000327] I-C-G------- * CALL void System.ThrowHelper.ThrowNotSupportedException (exactContextHnd=0x00007FFBBB9ACA29) [000326] ------------ arg0 \--* CNS_INT int 63 ------------ BB54 [002..003), preds={} succs={BB55} ------------------------------------------------------------------------------------------------------------------- Successfully inlined System.ThrowHelper:ThrowForUnsupportedVectorBaseType() (293 IL bytes) (depth 3) [aggressive inline attribute] -------------------------------------------------------------------------------------------- BB42 becomes empty INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' calling 'System.ThrowHelper:ThrowForUnsupportedVectorBaseType()' INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' Expanding INLINE_CANDIDATE in statement STMT00021 in BB53: STMT00021 (IL 0x002... ???) [000327] I-C-G------- * CALL void System.ThrowHelper.ThrowNotSupportedException (exactContextHnd=0x00007FFBBB9ACA29) [000326] ------------ arg0 \--* CNS_INT int 63 Argument #0: is a constant [000326] ------------ * CNS_INT int 63 INLINER: inlineInfo.tokenLookupContextHandle for System.ThrowHelper:ThrowNotSupportedException(int) set to 0x00007FFBBB9ACA29: Invoking compiler for the inlinee method System.ThrowHelper:ThrowNotSupportedException(int) : IL to import: IL_0000 02 ldarg.0 IL_0001 28 7a 18 00 06 call 0x600187A IL_0006 73 87 11 00 06 newobj 0x6001187 IL_000b 7a throw INLINER impTokenLookupContextHandle for System.ThrowHelper:ThrowNotSupportedException(int) is 0x00007FFBBB9ACA29. *************** In fgFindBasicBlocks() for System.ThrowHelper:ThrowNotSupportedException(int) Jump targets: none New Basic Block BB56 [0047] created. BB56 [000..00C) Basic block list for 'System.ThrowHelper:ThrowNotSupportedException(int)' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB56 [0047] 1 0 [000..00C) (throw ) rare ----------------------------------------------------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'failed this callee' reason 'does not return' for 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' calling 'System.ThrowHelper:ThrowNotSupportedException(int)' INLINER: during 'fgInline' result 'failed this callee' reason 'does not return' Expanding INLINE_CANDIDATE in statement STMT00019 in BB55: STMT00019 (IL 0x002... ???) [000158] I-C-G------- * CALL byref Internal.Runtime.CompilerServices.Unsafe.As (exactContextHnd=0x00007FFBBBA61888) [000157] ------------ arg0 \--* ADDR byref [000156] ------------ \--* LCL_VAR struct V06 tmp4 Argument #0: is a constant is byref to a struct local [000157] ------------ * ADDR byref [000156] ------------ \--* LCL_VAR struct V06 tmp4 INLINER: inlineInfo.tokenLookupContextHandle for Internal.Runtime.CompilerServices.Unsafe:As(byref):byref set to 0x00007FFBBBA61888: Invoking compiler for the inlinee method Internal.Runtime.CompilerServices.Unsafe:As(byref):byref : IL to import: IL_0000 02 ldarg.0 IL_0001 2a ret INLINER impTokenLookupContextHandle for Internal.Runtime.CompilerServices.Unsafe:As(byref):byref is 0x00007FFBBBA61888. *************** In fgFindBasicBlocks() for Internal.Runtime.CompilerServices.Unsafe:As(byref):byref Jump targets: none New Basic Block BB57 [0047] created. BB57 [000..002) Basic block list for 'Internal.Runtime.CompilerServices.Unsafe:As(byref):byref' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB57 [0047] 1 1 [000..002) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000158] Starting PHASE Pre-import *************** Inline @[000158] Finishing PHASE Pre-import *************** Inline @[000158] Starting PHASE Importation *************** In impImport() for Internal.Runtime.CompilerServices.Unsafe:As(byref):byref impImportBlockPending for BB57 Importing BB57 (PC=000) of 'Internal.Runtime.CompilerServices.Unsafe:As(byref):byref' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) ret Inlinee Return expression (before normalization) => [000329] ------------ * ADDR byref [000330] ------------ \--* LCL_VAR struct V06 tmp4 Setting lvOverlappingFields to true on V06 because of struct reinterpretation Inlinee Return expression (after normalization) => [000329] ------------ * ADDR byref [000330] ------------ \--* LCL_VAR struct V06 tmp4 After impImport() added block for try,catch,finally ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB57 [0047] 1 1 [000..002) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL *************** Inline @[000158] Finishing PHASE Importation *************** Inline @[000158] Starting PHASE Indirect call transform *************** in fgTransformIndirectCalls(inlinee) -- no candidates to transform *************** Inline @[000158] Finishing PHASE Indirect call transform *************** Inline @[000158] Starting PHASE Expand patchpoints *************** in fgTransformPatchpoints -- no patchpoints to transform *************** Inline @[000158] Finishing PHASE Expand patchpoints *************** Inline @[000158] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000158] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000158] ----------- Arguments setup: Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. Return expression for call at [000158] is [000329] ------------ * ADDR byref [000330] ------------ \--* LCL_VAR struct V06 tmp4 Successfully inlined Internal.Runtime.CompilerServices.Unsafe:As(byref):byref (2 IL bytes) (depth 3) [aggressive inline attribute] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' calling 'Internal.Runtime.CompilerServices.Unsafe:As(byref):byref' INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' Replacing the return expression placeholder [000006] with [000160] [000006] --C--------- * RET_EXPR long (inl return from call [000048]) Inserting the inline return expression [000160] *-CXG------- * IND long [000159] --C--------- \--* RET_EXPR byref (inl return from call [000329]) Replacing the return expression placeholder [000159] with [000329] [000159] --C--------- * RET_EXPR byref (inl return from call [000329]) Inserting the inline return expression [000329] ------------ * ADDR byref [000330] ------------ \--* LCL_VAR struct V06 tmp4 Expanding INLINE_CANDIDATE in statement STMT00005 in BB05: STMT00005 (IL 0x012...0x030) [000017] I-C-G------- * CALL void TestLibrary.TestFramework.LogInformation (exactContextHnd=0x00007FFBBB88AD99) [000016] ------------ arg0 \--* CNS_STR ref Argument #0: is a constant [000016] ------------ * CNS_STR ref INLINER: inlineInfo.tokenLookupContextHandle for TestLibrary.TestFramework:LogInformation(System.String) set to 0x00007FFBBB88AD99: Invoking compiler for the inlinee method TestLibrary.TestFramework:LogInformation(System.String) : IL to import: IL_0000 02 ldarg.0 IL_0001 28 68 00 00 06 call 0x6000068 IL_0006 2a ret INLINER impTokenLookupContextHandle for TestLibrary.TestFramework:LogInformation(System.String) is 0x00007FFBBB88AD99. *************** In fgFindBasicBlocks() for TestLibrary.TestFramework:LogInformation(System.String) Jump targets: none New Basic Block BB58 [0048] created. BB58 [000..007) Basic block list for 'TestLibrary.TestFramework:LogInformation(System.String)' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB58 [0048] 1 1 [000..007) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000017] Starting PHASE Pre-import *************** Inline @[000017] Finishing PHASE Pre-import *************** Inline @[000017] Starting PHASE Importation *************** In impImport() for TestLibrary.TestFramework:LogInformation(System.String) impImportBlockPending for BB58 Importing BB58 (PC=000) of 'TestLibrary.TestFramework:LogInformation(System.String)' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) call 06000068 In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 [000333] I-C-G------- * CALL void TestLibrary.Logging.WriteLine (exactContextHnd=0x00007FFBBB8F4F69) [000332] ------------ arg0 \--* CNS_STR ref [ 0] 6 (0x006) ret After impImport() added block for try,catch,finally ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB58 [0048] 1 1 [000..007) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000017] Finishing PHASE Importation *************** Inline @[000017] Starting PHASE Indirect call transform *************** in fgTransformIndirectCalls(inlinee) -- no candidates to transform *************** Inline @[000017] Finishing PHASE Indirect call transform *************** Inline @[000017] Starting PHASE Expand patchpoints *************** in fgTransformPatchpoints -- no patchpoints to transform *************** Inline @[000017] Finishing PHASE Expand patchpoints *************** Inline @[000017] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000017] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000017] ----------- Arguments setup: Inlinee method body: STMT00022 (IL 0x012... ???) [000333] I-C-G------- * CALL void TestLibrary.Logging.WriteLine (exactContextHnd=0x00007FFBBB8F4F69) [000332] ------------ arg0 \--* CNS_STR ref fgInlineAppendStatements: no gc ref inline locals. Successfully inlined TestLibrary.TestFramework:LogInformation(System.String) (7 IL bytes) (depth 1) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' calling 'TestLibrary.TestFramework:LogInformation(System.String)' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Expanding INLINE_CANDIDATE in statement STMT00022 in BB05: STMT00022 (IL 0x012... ???) [000333] I-C-G------- * CALL void TestLibrary.Logging.WriteLine (exactContextHnd=0x00007FFBBB8F4F69) [000332] ------------ arg0 \--* CNS_STR ref Argument #0: is a constant [000332] ------------ * CNS_STR ref INLINER: inlineInfo.tokenLookupContextHandle for TestLibrary.Logging:WriteLine(System.String) set to 0x00007FFBBB8F4F69: Invoking compiler for the inlinee method TestLibrary.Logging:WriteLine(System.String) : IL to import: IL_0000 02 ldarg.0 IL_0001 28 60 00 00 0a call 0xA000060 IL_0006 2a ret INLINER impTokenLookupContextHandle for TestLibrary.Logging:WriteLine(System.String) is 0x00007FFBBB8F4F69. *************** In fgFindBasicBlocks() for TestLibrary.Logging:WriteLine(System.String) Jump targets: none New Basic Block BB59 [0049] created. BB59 [000..007) Basic block list for 'TestLibrary.Logging:WriteLine(System.String)' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB59 [0049] 1 1 [000..007) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000333] Starting PHASE Pre-import *************** Inline @[000333] Finishing PHASE Pre-import *************** Inline @[000333] Starting PHASE Importation *************** In impImport() for TestLibrary.Logging:WriteLine(System.String) impImportBlockPending for BB59 Importing BB59 (PC=000) of 'TestLibrary.Logging:WriteLine(System.String)' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) call 0A000060 In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'TestLibrary.Logging:WriteLine(System.String)' calling 'System.Console:WriteLine(System.String)' INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' [000336] --C-G------- * CALL void System.Console.WriteLine [000335] ------------ arg0 \--* CNS_STR ref [ 0] 6 (0x006) ret After impImport() added block for try,catch,finally ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB59 [0049] 1 1 [000..007) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000333] Finishing PHASE Importation *************** Inline @[000333] Starting PHASE Indirect call transform *************** in fgTransformIndirectCalls(inlinee) -- no candidates to transform *************** Inline @[000333] Finishing PHASE Indirect call transform *************** Inline @[000333] Starting PHASE Expand patchpoints *************** in fgTransformPatchpoints -- no patchpoints to transform *************** Inline @[000333] Finishing PHASE Expand patchpoints *************** Inline @[000333] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000333] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000333] ----------- Arguments setup: Inlinee method body: STMT00023 (IL 0x012... ???) [000336] --C-G------- * CALL void System.Console.WriteLine [000335] ------------ arg0 \--* CNS_STR ref fgInlineAppendStatements: no gc ref inline locals. Successfully inlined TestLibrary.Logging:WriteLine(System.String) (7 IL bytes) (depth 2) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' calling 'TestLibrary.Logging:WriteLine(System.String)' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Expanding INLINE_CANDIDATE in statement STMT00006 in BB05: STMT00006 (IL 0x01C... ???) [000020] I-C-G------- * CALL void TestLibrary.TestFramework.LogInformation (exactContextHnd=0x00007FFBBB88AD99) [000019] n---G------- arg0 \--* IND ref [000018] ------------ \--* CNS_INT(h) long 0xAD143060 "" Argument #0: has global refs [000019] n---G------- * IND ref [000018] ------------ \--* CNS_INT(h) long 0xAD143060 "" INLINER: inlineInfo.tokenLookupContextHandle for TestLibrary.TestFramework:LogInformation(System.String) set to 0x00007FFBBB88AD99: Invoking compiler for the inlinee method TestLibrary.TestFramework:LogInformation(System.String) : IL to import: IL_0000 02 ldarg.0 IL_0001 28 68 00 00 06 call 0x6000068 IL_0006 2a ret INLINER impTokenLookupContextHandle for TestLibrary.TestFramework:LogInformation(System.String) is 0x00007FFBBB88AD99. *************** In fgFindBasicBlocks() for TestLibrary.TestFramework:LogInformation(System.String) Jump targets: none New Basic Block BB60 [0050] created. BB60 [000..007) Basic block list for 'TestLibrary.TestFramework:LogInformation(System.String)' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB60 [0050] 1 1 [000..007) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000020] Starting PHASE Pre-import *************** Inline @[000020] Finishing PHASE Pre-import *************** Inline @[000020] Starting PHASE Importation *************** In impImport() for TestLibrary.TestFramework:LogInformation(System.String) impImportBlockPending for BB60 Importing BB60 (PC=000) of 'TestLibrary.TestFramework:LogInformation(System.String)' [ 0] 0 (0x000) ldarg.0 lvaGrabTemp returning 7 (V07 tmp5) called for Inlining Arg. Marked V07 as a single def temp lvaSetClass: setting class for V07 to (00007FFBBB6D9B18) System.String [ 1] 1 (0x001) call 06000068 In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 [000339] I-C-G------- * CALL void TestLibrary.Logging.WriteLine (exactContextHnd=0x00007FFBBB8F4F69) [000338] ------------ arg0 \--* LCL_VAR ref V07 tmp5 [ 0] 6 (0x006) ret After impImport() added block for try,catch,finally ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB60 [0050] 1 1 [000..007) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000020] Finishing PHASE Importation *************** Inline @[000020] Starting PHASE Indirect call transform *************** in fgTransformIndirectCalls(inlinee) -- no candidates to transform *************** Inline @[000020] Finishing PHASE Indirect call transform *************** Inline @[000020] Starting PHASE Expand patchpoints *************** in fgTransformPatchpoints -- no patchpoints to transform *************** Inline @[000020] Finishing PHASE Expand patchpoints *************** 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: STMT00025 (IL 0x01C... ???) [000341] -A--G------- * ASG ref [000340] D------N---- +--* LCL_VAR ref V07 tmp5 [000019] n---G------- \--* IND ref [000018] ------------ \--* CNS_INT(h) long 0xAD143060 "" Inlinee method body: STMT00024 (IL 0x01C... ???) [000339] I-C-G------- * CALL void TestLibrary.Logging.WriteLine (exactContextHnd=0x00007FFBBB8F4F69) [000338] ------------ arg0 \--* LCL_VAR ref V07 tmp5 fgInlineAppendStatements: no gc ref inline locals. Successfully inlined TestLibrary.TestFramework:LogInformation(System.String) (7 IL bytes) (depth 1) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' calling 'TestLibrary.TestFramework:LogInformation(System.String)' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Expanding INLINE_CANDIDATE in statement STMT00024 in BB05: STMT00024 (IL 0x01C... ???) [000339] I-C-G------- * CALL void TestLibrary.Logging.WriteLine (exactContextHnd=0x00007FFBBB8F4F69) [000338] ------------ arg0 \--* LCL_VAR ref V07 tmp5 Argument #0: is a local var [000338] ------------ * LCL_VAR ref V07 tmp5 INLINER: inlineInfo.tokenLookupContextHandle for TestLibrary.Logging:WriteLine(System.String) set to 0x00007FFBBB8F4F69: Invoking compiler for the inlinee method TestLibrary.Logging:WriteLine(System.String) : IL to import: IL_0000 02 ldarg.0 IL_0001 28 60 00 00 0a call 0xA000060 IL_0006 2a ret INLINER impTokenLookupContextHandle for TestLibrary.Logging:WriteLine(System.String) is 0x00007FFBBB8F4F69. *************** In fgFindBasicBlocks() for TestLibrary.Logging:WriteLine(System.String) Jump targets: none New Basic Block BB61 [0051] created. BB61 [000..007) Basic block list for 'TestLibrary.Logging:WriteLine(System.String)' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB61 [0051] 1 1 [000..007) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000339] Starting PHASE Pre-import *************** Inline @[000339] Finishing PHASE Pre-import *************** Inline @[000339] Starting PHASE Importation *************** In impImport() for TestLibrary.Logging:WriteLine(System.String) impImportBlockPending for BB61 Importing BB61 (PC=000) of 'TestLibrary.Logging:WriteLine(System.String)' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) call 0A000060 In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'TestLibrary.Logging:WriteLine(System.String)' calling 'System.Console:WriteLine(System.String)' INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' [000343] --C-G------- * CALL void System.Console.WriteLine [000338] ------------ arg0 \--* LCL_VAR ref V07 tmp5 [ 0] 6 (0x006) ret After impImport() added block for try,catch,finally ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB61 [0051] 1 1 [000..007) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000339] Finishing PHASE Importation *************** Inline @[000339] Starting PHASE Indirect call transform *************** in fgTransformIndirectCalls(inlinee) -- no candidates to transform *************** Inline @[000339] Finishing PHASE Indirect call transform *************** Inline @[000339] Starting PHASE Expand patchpoints *************** in fgTransformPatchpoints -- no patchpoints to transform *************** Inline @[000339] Finishing PHASE Expand patchpoints *************** Inline @[000339] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000339] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000339] ----------- Arguments setup: Inlinee method body: STMT00026 (IL 0x01C... ???) [000343] --C-G------- * CALL void System.Console.WriteLine [000338] ------------ arg0 \--* LCL_VAR ref V07 tmp5 fgInlineAppendStatements: no gc ref inline locals. Successfully inlined TestLibrary.Logging:WriteLine(System.String) (7 IL bytes) (depth 2) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' calling 'TestLibrary.Logging:WriteLine(System.String)' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Expanding INLINE_CANDIDATE in statement STMT00008 in BB05: STMT00008 (IL ???... ???) [000027] I-C-G------- * CALL void System.Exception..ctor (exactContextHnd=0x00007FFBBB6DFD61) [000026] ------------ this in rcx +--* LCL_VAR ref V03 tmp1 [000021] ------------ arg1 \--* CNS_STR ref thisArg: is a local var [000026] ------------ * LCL_VAR ref V03 tmp1 Argument #1: is a constant [000021] ------------ * CNS_STR ref INLINER: inlineInfo.tokenLookupContextHandle for System.Exception:.ctor(System.String):this set to 0x00007FFBBB6DFD61: Invoking compiler for the inlinee method System.Exception:.ctor(System.String):this : IL to import: IL_0000 02 ldarg.0 IL_0001 28 66 03 00 06 call 0x6000366 IL_0006 02 ldarg.0 IL_0007 03 ldarg.1 IL_0008 7d 61 01 00 04 stfld 0x4000161 IL_000d 2a ret INLINER impTokenLookupContextHandle for System.Exception:.ctor(System.String):this is 0x00007FFBBB6DFD61. *************** In fgFindBasicBlocks() for System.Exception:.ctor(System.String):this Jump targets: none New Basic Block BB62 [0052] created. BB62 [000..00E) Basic block list for 'System.Exception:.ctor(System.String):this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB62 [0052] 1 1 [000..00E) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000027] Starting PHASE Pre-import *************** Inline @[000027] Finishing PHASE Pre-import *************** Inline @[000027] Starting PHASE Importation *************** In impImport() for System.Exception:.ctor(System.String):this impImportBlockPending for BB62 Importing BB62 (PC=000) of 'System.Exception:.ctor(System.String):this' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) call 06000366 In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 [000345] I-C-G------- * CALL void System.Exception..ctor (exactContextHnd=0x00007FFBBB6DFD61) [000026] ------------ this in rcx \--* LCL_VAR ref V03 tmp1 [ 0] 6 (0x006) ldarg.0 [ 1] 7 (0x007) ldarg.1 [ 2] 8 (0x008) stfld 04000161 [000349] -A-XG------- * ASG ref [000348] ---XG--N---- +--* FIELD ref _message [000346] ------------ | \--* LCL_VAR ref V03 tmp1 [000347] ------------ \--* CNS_STR ref [ 0] 13 (0x00d) ret After impImport() added block for try,catch,finally ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB62 [0052] 1 1 [000..00E) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000027] Finishing PHASE Importation *************** Inline @[000027] Starting PHASE Indirect call transform *************** in fgTransformIndirectCalls(inlinee) -- no candidates to transform *************** Inline @[000027] Finishing PHASE Indirect call transform *************** Inline @[000027] Starting PHASE Expand patchpoints *************** in fgTransformPatchpoints -- no patchpoints to transform *************** Inline @[000027] Finishing PHASE Expand patchpoints *************** Inline @[000027] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000027] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000027] ----------- Arguments setup: Inlinee method body: STMT00027 (IL ???... ???) [000345] I-C-G------- * CALL void System.Exception..ctor (exactContextHnd=0x00007FFBBB6DFD61) [000026] ------------ this in rcx \--* LCL_VAR ref V03 tmp1 STMT00028 (IL ???... ???) [000349] -A-XG------- * ASG ref [000348] ---XG--N---- +--* FIELD ref _message [000346] ------------ | \--* LCL_VAR ref V03 tmp1 [000347] ------------ \--* CNS_STR ref fgInlineAppendStatements: no gc ref inline locals. Successfully inlined System.Exception:.ctor(System.String):this (14 IL bytes) (depth 1) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' calling 'System.Exception:.ctor(System.String):this' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Expanding INLINE_CANDIDATE in statement STMT00027 in BB05: STMT00027 (IL ???... ???) [000345] I-C-G------- * CALL void System.Exception..ctor (exactContextHnd=0x00007FFBBB6DFD61) [000026] ------------ this in rcx \--* LCL_VAR ref V03 tmp1 thisArg: is a local var [000026] ------------ * LCL_VAR ref V03 tmp1 INLINER: inlineInfo.tokenLookupContextHandle for System.Exception:.ctor():this set to 0x00007FFBBB6DFD61: Invoking compiler for the inlinee method System.Exception:.ctor():this : IL to import: IL_0000 02 ldarg.0 IL_0001 20 52 43 43 e0 ldc.i4 0xE0434352 IL_0006 7d 6d 01 00 04 stfld 0x400016D IL_000b 02 ldarg.0 IL_000c 28 6f 04 00 06 call 0x600046F IL_0011 02 ldarg.0 IL_0012 20 00 15 13 80 ldc.i4 0x80131500 IL_0017 7d 6e 01 00 04 stfld 0x400016E IL_001c 2a ret INLINER impTokenLookupContextHandle for System.Exception:.ctor():this is 0x00007FFBBB6DFD61. *************** In fgFindBasicBlocks() for System.Exception:.ctor():this weight= 10 : state 3 [ ldarg.0 ] weight= 38 : state 33 [ ldc.i4 ] weight= 31 : state 111 [ stfld ] weight= 10 : state 3 [ ldarg.0 ] weight= 79 : state 40 [ call ] weight= 10 : state 3 [ ldarg.0 ] weight= 38 : state 33 [ ldc.i4 ] weight= 31 : state 111 [ stfld ] weight= 19 : state 42 [ ret ] multiplier in instance constructors increased to 1.5. Inline candidate is mostly loads and stores. Multiplier increased to 4.5. Inline candidate callsite is rare. Multiplier limited to 1.3. calleeNativeSizeEstimate=266 callsiteNativeSizeEstimate=85 benefit multiplier=1.3 threshold=110 Native estimate for function size exceeds threshold for inlining 26.6 > 11 (multiplier = 1.3) Inline expansion aborted, inline not profitable INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' for 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' calling 'System.Exception:.ctor():this' INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' *************** After fgInline() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i BB02 [0001] 1 0 1 [002..00A) T0 try { keep i try label BB08 [0007] 1 0 1 [002..003) T0 i BB09 [0008] 1 0 0.50 [002..003) T0 i BB10 [0009] 1 0 0.50 [002..003) T0 i BB11 [0010] 1 0 0.50 [002..003) T0 i BB12 [0011] 1 0 0.50 [002..003) T0 i BB13 [0012] 1 0 0.50 [002..003) T0 i BB14 [0013] 1 0 0.50 [002..003) T0 i BB15 [0014] 1 0 0.50 [002..003) T0 i BB16 [0015] 1 0 0.50 [002..003) T0 i BB17 [0016] 1 0 0.50 [002..003) T0 i BB18 [0017] 1 0 0.50 [002..003) T0 i BB19 [0018] 11 0 1 [002..003) T0 i BB20 [0019] 1 0 1 [???..???) T0 keep i internal label BB35 [0021] 1 0 1 [002..003) T0 i BB36 [0022] 1 0 0.50 [002..003) T0 i BB37 [0023] 1 0 0.50 [002..003) T0 i BB38 [0024] 1 0 0.50 [002..003) T0 i BB39 [0025] 1 0 0.50 [002..003) T0 i BB40 [0026] 1 0 0.50 [002..003)-> BB41 (always) T0 i BB41 [0032] 11 0 1 [002..003) T0 i BB42 [0033] 1 0 1 [???..???) T0 keep internal label BB43 [0034] 1 0 1 [002..003) T0 i BB44 [0035] 1 0 0.50 [002..003) T0 i BB45 [0036] 1 0 0.50 [002..003) T0 i BB46 [0037] 1 0 0.50 [002..003) T0 i BB47 [0038] 1 0 0.50 [002..003) T0 i BB48 [0039] 1 0 0.50 [002..003) T0 i BB49 [0040] 1 0 0.50 [002..003) T0 i BB50 [0041] 1 0 0.50 [002..003) T0 i BB51 [0042] 1 0 0.50 [002..003) T0 i BB52 [0043] 1 0 0.50 [002..003) T0 i BB53 [0044] 1 0 0.50 [002..003) T0 i BB54 [0045] 11 0 1 [002..003) T0 i BB55 [0046] 1 0 1 [???..???)-> BB04 (always) T0 } keep i internal label BB03 [0002] 1 0 1 [00A..00F)-> BB04 ( cret ) H0 catch { } keep i label target BB04 [0003] 2 1 [00F..012)-> BB06 ( cond ) i BB05 [0004] 1 0 [012..031) (throw ) i rare newobj BB06 [0005] 1 1 [031..032) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..002), preds={} succs={BB02} ***** BB01 STMT00000 (IL 0x000...0x001) [000002] -A---------- * ASG int [000001] D------N---- +--* LCL_VAR int V00 loc0 [000000] ------------ \--* CNS_INT int 0 ------------ BB02 [002..00A), preds={} succs={BB08} ------------ BB08 [002..003), preds={} succs={BB09} ------------ BB09 [002..003), preds={} succs={BB10} ------------ BB10 [002..003), preds={} succs={BB11} ------------ BB11 [002..003), preds={} succs={BB12} ------------ BB12 [002..003), preds={} succs={BB13} ------------ BB13 [002..003), preds={} succs={BB14} ------------ BB14 [002..003), preds={} succs={BB15} ------------ BB15 [002..003), preds={} succs={BB16} ------------ BB16 [002..003), preds={} succs={BB17} ------------ BB17 [002..003), preds={} succs={BB18} ------------ BB18 [002..003), preds={} succs={BB19} ***** BB18 STMT00016 (IL 0x002... ???) [000151] --C-G------- * CALL void System.ThrowHelper.ThrowNotSupportedException [000150] ------------ arg0 \--* CNS_INT int 63 ------------ BB19 [002..003), preds={} succs={BB20} ------------ BB20 [???..???), preds={} succs={BB35} ***** BB20 STMT00014 (IL 0x002... ???) [000044] -AC--------- * ASG long [000043] *----------- +--* IND long [000042] ------------ | \--* ADDR byref [000041] ------------ | \--* LCL_VAR struct V05 tmp3 [000038] --C-G------- \--* CALL long System.Runtime.Intrinsics.Vector64.Create [000037] ------------ arg0 \--* CNS_INT int -1 ***** BB20 STMT00020 (IL 0x002... ???) [000163] -A---------- * ASG struct (copy) [000161] D----------- +--* LCL_VAR struct V06 tmp4 [000047] n----------- \--* OBJ struct [000046] ------------ \--* ADDR byref [000045] ------------ \--* LCL_VAR struct V05 tmp3 ------------ BB35 [002..003), preds={} succs={BB36} ------------ BB36 [002..003), preds={} succs={BB37} ------------ BB37 [002..003), preds={} succs={BB38} ------------ BB38 [002..003), preds={} succs={BB39} ------------ BB39 [002..003), preds={} succs={BB40} ------------ BB40 [002..003) -> BB41 (always), preds={} succs={BB41} ------------ BB41 [002..003), preds={} succs={BB42} ------------ BB42 [???..???), preds={} succs={BB43} ------------ BB43 [002..003), preds={} succs={BB44} ------------ BB44 [002..003), preds={} succs={BB45} ------------ BB45 [002..003), preds={} succs={BB46} ------------ BB46 [002..003), preds={} succs={BB47} ------------ BB47 [002..003), preds={} succs={BB48} ------------ BB48 [002..003), preds={} succs={BB49} ------------ BB49 [002..003), preds={} succs={BB50} ------------ BB50 [002..003), preds={} succs={BB51} ------------ BB51 [002..003), preds={} succs={BB52} ------------ BB52 [002..003), preds={} succs={BB53} ------------ BB53 [002..003), preds={} succs={BB54} ***** BB53 STMT00021 (IL 0x002... ???) [000327] --C-G------- * CALL void System.ThrowHelper.ThrowNotSupportedException [000326] ------------ arg0 \--* CNS_INT int 63 ------------ BB54 [002..003), preds={} succs={BB55} ------------ BB55 [???..???) -> BB04 (always), preds={} succs={BB04} ***** BB55 STMT00002 (IL ???... ???) [000010] -AC--------- * ASG long [000009] *----------- +--* IND long [000008] ------------ | \--* ADDR byref [000007] ------------ | \--* LCL_VAR struct V01 loc1 [000160] *-CXG------- \--* IND long [000329] ------------ \--* ADDR byref [000330] ------------ \--* LCL_VAR struct V06 tmp4 ------------ BB03 [00A..00F) -> BB04 (cret), preds={} succs={BB04} ***** BB03 STMT00010 (IL 0x00A...0x00C) [000031] -A---O------ * ASG ref [000030] D------N---- +--* LCL_VAR ref V04 tmp2 [000004] -----O------ \--* CATCH_ARG ref ***** BB03 STMT00011 (IL 0x00B... ???) [000035] -A---------- * ASG int [000034] D------N---- +--* LCL_VAR int V00 loc0 [000033] ------------ \--* CNS_INT int 1 ------------ BB04 [00F..012) -> BB06 (cond), preds={} succs={BB05,BB06} ***** BB04 STMT00003 (IL 0x00F...0x010) [000014] ------------ * JTRUE void [000013] ------------ \--* NE int [000011] ------------ +--* LCL_VAR int V00 loc0 [000012] ------------ \--* CNS_INT int 0 ------------ BB05 [012..031) (throw), preds={} succs={} ***** BB05 STMT00023 (IL 0x012... ???) [000336] --C-G------- * CALL void System.Console.WriteLine [000335] ------------ arg0 \--* CNS_STR ref ***** BB05 STMT00025 (IL 0x01C... ???) [000341] -A--G------- * ASG ref [000340] D------N---- +--* LCL_VAR ref V07 tmp5 [000019] n---G------- \--* IND ref [000018] ------------ \--* CNS_INT(h) long 0xAD143060 "" ***** BB05 STMT00026 (IL 0x01C... ???) [000343] --C-G------- * CALL void System.Console.WriteLine [000338] ------------ arg0 \--* LCL_VAR ref V07 tmp5 ***** BB05 STMT00007 (IL 0x026... ???) [000025] -A---------- * ASG ref [000024] D------N---- +--* LCL_VAR ref V03 tmp1 [000023] ------------ \--* ALLOCOBJ ref [000022] ------------ \--* CNS_INT(h) long 0x7ffbbb6dfd60 token ***** BB05 STMT00027 (IL ???... ???) [000345] --C-G------- * CALL void System.Exception..ctor [000026] ------------ this in rcx \--* LCL_VAR ref V03 tmp1 ***** BB05 STMT00028 (IL ???... ???) [000349] -A-XG------- * ASG ref [000348] ---XG--N---- +--* FIELD ref _message [000346] ------------ | \--* LCL_VAR ref V03 tmp1 [000347] ------------ \--* CNS_STR ref ***** BB05 STMT00009 (IL 0x030... ???) [000029] --CXG------- * CALL help void HELPER.CORINFO_HELP_THROW [000028] ------------ arg0 \--* LCL_VAR ref V03 tmp1 ------------ BB06 [031..032) (return), preds={} succs={} ***** BB06 STMT00004 (IL 0x031...0x031) [000015] ------------ * RETURN void ------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB55 [002..00A), Handler at BB03..BB03 [00A..00F) **************** Inline Tree Inlines into 0600005E JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet() [1 IL=0002 TR=000005 06002E69] [profitable inline] System.Runtime.Intrinsics.Vector64`1[Boolean][System.Boolean]:get_AllBitsSet():System.Runtime.Intrinsics.Vector64`1[Boolean] [2 IL=0000 TR=000036 06001878] [aggressive inline attribute] System.ThrowHelper:ThrowForUnsupportedVectorBaseType() [0 IL=0287 TR=000151 0600185B] [FAILED: does not return] System.ThrowHelper:ThrowNotSupportedException(int) [0 IL=0006 TR=000038 06002E4B] [FAILED: unprofitable inline] System.Runtime.Intrinsics.Vector64:Create(int):System.Runtime.Intrinsics.Vector64`1[UInt32] [3 IL=0011 TR=000040 06002E38] [aggressive inline attribute] System.Runtime.Intrinsics.Vector64:As(System.Runtime.Intrinsics.Vector64`1[UInt32]):System.Runtime.Intrinsics.Vector64`1[Boolean] [4 IL=0000 TR=000154 06001878] [aggressive inline attribute] System.ThrowHelper:ThrowForUnsupportedVectorBaseType() [5 IL=0005 TR=000155 06001878] [aggressive inline attribute] System.ThrowHelper:ThrowForUnsupportedVectorBaseType() [0 IL=0287 TR=000327 0600185B] [FAILED: does not return] System.ThrowHelper:ThrowNotSupportedException(int) [6 IL=0012 TR=000158 06005F06] [aggressive inline attribute] Internal.Runtime.CompilerServices.Unsafe:As(byref):byref [7 IL=0023 TR=000017 06000072] [below ALWAYS_INLINE size] TestLibrary.TestFramework:LogInformation(System.String) [8 IL=0001 TR=000333 06000068] [below ALWAYS_INLINE size] TestLibrary.Logging:WriteLine(System.String) [0 IL=0001 TR=000336 06000085] [FAILED: noinline per IL/cached result] System.Console:WriteLine(System.String) [9 IL=0033 TR=000020 06000072] [below ALWAYS_INLINE size] TestLibrary.TestFramework:LogInformation(System.String) [10 IL=0001 TR=000339 06000068] [below ALWAYS_INLINE size] TestLibrary.Logging:WriteLine(System.String) [0 IL=0001 TR=000343 06000085] [FAILED: noinline per IL/cached result] System.Console:WriteLine(System.String) [11 IL=0043 TR=000027 06000367] [below ALWAYS_INLINE size] System.Exception:.ctor(System.String):this [0 IL=0001 TR=000345 06000366] [FAILED: unprofitable inline] System.Exception:.ctor():this Budget: initialTime=210, finalTime=248, initialBudget=2100, currentBudget=2100 Budget: discretionary inline caused a force inline Budget: initialSize=1271, finalSize=1494 *************** Finishing PHASE Morph - Inlining Trees before Allocate Objects ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i BB02 [0001] 1 0 1 [002..00A) T0 try { keep i try label BB08 [0007] 1 0 1 [002..003) T0 i BB09 [0008] 1 0 0.50 [002..003) T0 i BB10 [0009] 1 0 0.50 [002..003) T0 i BB11 [0010] 1 0 0.50 [002..003) T0 i BB12 [0011] 1 0 0.50 [002..003) T0 i BB13 [0012] 1 0 0.50 [002..003) T0 i BB14 [0013] 1 0 0.50 [002..003) T0 i BB15 [0014] 1 0 0.50 [002..003) T0 i BB16 [0015] 1 0 0.50 [002..003) T0 i BB17 [0016] 1 0 0.50 [002..003) T0 i BB18 [0017] 1 0 0.50 [002..003) T0 i BB19 [0018] 11 0 1 [002..003) T0 i BB20 [0019] 1 0 1 [???..???) T0 keep i internal label BB35 [0021] 1 0 1 [002..003) T0 i BB36 [0022] 1 0 0.50 [002..003) T0 i BB37 [0023] 1 0 0.50 [002..003) T0 i BB38 [0024] 1 0 0.50 [002..003) T0 i BB39 [0025] 1 0 0.50 [002..003) T0 i BB40 [0026] 1 0 0.50 [002..003)-> BB41 (always) T0 i BB41 [0032] 11 0 1 [002..003) T0 i BB42 [0033] 1 0 1 [???..???) T0 keep internal label BB43 [0034] 1 0 1 [002..003) T0 i BB44 [0035] 1 0 0.50 [002..003) T0 i BB45 [0036] 1 0 0.50 [002..003) T0 i BB46 [0037] 1 0 0.50 [002..003) T0 i BB47 [0038] 1 0 0.50 [002..003) T0 i BB48 [0039] 1 0 0.50 [002..003) T0 i BB49 [0040] 1 0 0.50 [002..003) T0 i BB50 [0041] 1 0 0.50 [002..003) T0 i BB51 [0042] 1 0 0.50 [002..003) T0 i BB52 [0043] 1 0 0.50 [002..003) T0 i BB53 [0044] 1 0 0.50 [002..003) T0 i BB54 [0045] 11 0 1 [002..003) T0 i BB55 [0046] 1 0 1 [???..???)-> BB04 (always) T0 } keep i internal label BB03 [0002] 1 0 1 [00A..00F)-> BB04 ( cret ) H0 catch { } keep i label target BB04 [0003] 2 1 [00F..012)-> BB06 ( cond ) i BB05 [0004] 1 0 [012..031) (throw ) i rare newobj BB06 [0005] 1 1 [031..032) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..002), preds={} succs={BB02} ***** BB01 STMT00000 (IL 0x000...0x001) [000002] -A---------- * ASG int [000001] D------N---- +--* LCL_VAR int V00 loc0 [000000] ------------ \--* CNS_INT int 0 ------------ BB02 [002..00A), preds={} succs={BB08} ------------ BB08 [002..003), preds={} succs={BB09} ------------ BB09 [002..003), preds={} succs={BB10} ------------ BB10 [002..003), preds={} succs={BB11} ------------ BB11 [002..003), preds={} succs={BB12} ------------ BB12 [002..003), preds={} succs={BB13} ------------ BB13 [002..003), preds={} succs={BB14} ------------ BB14 [002..003), preds={} succs={BB15} ------------ BB15 [002..003), preds={} succs={BB16} ------------ BB16 [002..003), preds={} succs={BB17} ------------ BB17 [002..003), preds={} succs={BB18} ------------ BB18 [002..003), preds={} succs={BB19} ***** BB18 STMT00016 (IL 0x002... ???) [000151] --C-G------- * CALL void System.ThrowHelper.ThrowNotSupportedException [000150] ------------ arg0 \--* CNS_INT int 63 ------------ BB19 [002..003), preds={} succs={BB20} ------------ BB20 [???..???), preds={} succs={BB35} ***** BB20 STMT00014 (IL 0x002... ???) [000044] -AC--------- * ASG long [000043] *----------- +--* IND long [000042] ------------ | \--* ADDR byref [000041] ------------ | \--* LCL_VAR struct V05 tmp3 [000038] --C-G------- \--* CALL long System.Runtime.Intrinsics.Vector64.Create [000037] ------------ arg0 \--* CNS_INT int -1 ***** BB20 STMT00020 (IL 0x002... ???) [000163] -A---------- * ASG struct (copy) [000161] D----------- +--* LCL_VAR struct V06 tmp4 [000047] n----------- \--* OBJ struct [000046] ------------ \--* ADDR byref [000045] ------------ \--* LCL_VAR struct V05 tmp3 ------------ BB35 [002..003), preds={} succs={BB36} ------------ BB36 [002..003), preds={} succs={BB37} ------------ BB37 [002..003), preds={} succs={BB38} ------------ BB38 [002..003), preds={} succs={BB39} ------------ BB39 [002..003), preds={} succs={BB40} ------------ BB40 [002..003) -> BB41 (always), preds={} succs={BB41} ------------ BB41 [002..003), preds={} succs={BB42} ------------ BB42 [???..???), preds={} succs={BB43} ------------ BB43 [002..003), preds={} succs={BB44} ------------ BB44 [002..003), preds={} succs={BB45} ------------ BB45 [002..003), preds={} succs={BB46} ------------ BB46 [002..003), preds={} succs={BB47} ------------ BB47 [002..003), preds={} succs={BB48} ------------ BB48 [002..003), preds={} succs={BB49} ------------ BB49 [002..003), preds={} succs={BB50} ------------ BB50 [002..003), preds={} succs={BB51} ------------ BB51 [002..003), preds={} succs={BB52} ------------ BB52 [002..003), preds={} succs={BB53} ------------ BB53 [002..003), preds={} succs={BB54} ***** BB53 STMT00021 (IL 0x002... ???) [000327] --C-G------- * CALL void System.ThrowHelper.ThrowNotSupportedException [000326] ------------ arg0 \--* CNS_INT int 63 ------------ BB54 [002..003), preds={} succs={BB55} ------------ BB55 [???..???) -> BB04 (always), preds={} succs={BB04} ***** BB55 STMT00002 (IL ???... ???) [000010] -AC--------- * ASG long [000009] *----------- +--* IND long [000008] ------------ | \--* ADDR byref [000007] ------------ | \--* LCL_VAR struct V01 loc1 [000160] *-CXG------- \--* IND long [000329] ------------ \--* ADDR byref [000330] ------------ \--* LCL_VAR struct V06 tmp4 ------------ BB03 [00A..00F) -> BB04 (cret), preds={} succs={BB04} ***** BB03 STMT00010 (IL 0x00A...0x00C) [000031] -A---O------ * ASG ref [000030] D------N---- +--* LCL_VAR ref V04 tmp2 [000004] -----O------ \--* CATCH_ARG ref ***** BB03 STMT00011 (IL 0x00B... ???) [000035] -A---------- * ASG int [000034] D------N---- +--* LCL_VAR int V00 loc0 [000033] ------------ \--* CNS_INT int 1 ------------ BB04 [00F..012) -> BB06 (cond), preds={} succs={BB05,BB06} ***** BB04 STMT00003 (IL 0x00F...0x010) [000014] ------------ * JTRUE void [000013] ------------ \--* NE int [000011] ------------ +--* LCL_VAR int V00 loc0 [000012] ------------ \--* CNS_INT int 0 ------------ BB05 [012..031) (throw), preds={} succs={} ***** BB05 STMT00023 (IL 0x012... ???) [000336] --C-G------- * CALL void System.Console.WriteLine [000335] ------------ arg0 \--* CNS_STR ref ***** BB05 STMT00025 (IL 0x01C... ???) [000341] -A--G------- * ASG ref [000340] D------N---- +--* LCL_VAR ref V07 tmp5 [000019] n---G------- \--* IND ref [000018] ------------ \--* CNS_INT(h) long 0xAD143060 "" ***** BB05 STMT00026 (IL 0x01C... ???) [000343] --C-G------- * CALL void System.Console.WriteLine [000338] ------------ arg0 \--* LCL_VAR ref V07 tmp5 ***** BB05 STMT00007 (IL 0x026... ???) [000025] -A---------- * ASG ref [000024] D------N---- +--* LCL_VAR ref V03 tmp1 [000023] ------------ \--* ALLOCOBJ ref [000022] ------------ \--* CNS_INT(h) long 0x7ffbbb6dfd60 token ***** BB05 STMT00027 (IL ???... ???) [000345] --C-G------- * CALL void System.Exception..ctor [000026] ------------ this in rcx \--* LCL_VAR ref V03 tmp1 ***** BB05 STMT00028 (IL ???... ???) [000349] -A-XG------- * ASG ref [000348] ---XG--N---- +--* FIELD ref _message [000346] ------------ | \--* LCL_VAR ref V03 tmp1 [000347] ------------ \--* CNS_STR ref ***** BB05 STMT00009 (IL 0x030... ???) [000029] --CXG------- * CALL help void HELPER.CORINFO_HELP_THROW [000028] ------------ arg0 \--* LCL_VAR ref V03 tmp1 ------------ BB06 [031..032) (return), preds={} succs={} ***** BB06 STMT00004 (IL 0x031...0x031) [000015] ------------ * RETURN void ------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Allocate Objects *** ObjectAllocationPhase: disabled, punting *************** Finishing PHASE Allocate Objects Trees after Allocate Objects ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i BB02 [0001] 1 0 1 [002..00A) T0 try { keep i try label BB08 [0007] 1 0 1 [002..003) T0 i BB09 [0008] 1 0 0.50 [002..003) T0 i BB10 [0009] 1 0 0.50 [002..003) T0 i BB11 [0010] 1 0 0.50 [002..003) T0 i BB12 [0011] 1 0 0.50 [002..003) T0 i BB13 [0012] 1 0 0.50 [002..003) T0 i BB14 [0013] 1 0 0.50 [002..003) T0 i BB15 [0014] 1 0 0.50 [002..003) T0 i BB16 [0015] 1 0 0.50 [002..003) T0 i BB17 [0016] 1 0 0.50 [002..003) T0 i BB18 [0017] 1 0 0.50 [002..003) T0 i BB19 [0018] 11 0 1 [002..003) T0 i BB20 [0019] 1 0 1 [???..???) T0 keep i internal label BB35 [0021] 1 0 1 [002..003) T0 i BB36 [0022] 1 0 0.50 [002..003) T0 i BB37 [0023] 1 0 0.50 [002..003) T0 i BB38 [0024] 1 0 0.50 [002..003) T0 i BB39 [0025] 1 0 0.50 [002..003) T0 i BB40 [0026] 1 0 0.50 [002..003)-> BB41 (always) T0 i BB41 [0032] 11 0 1 [002..003) T0 i BB42 [0033] 1 0 1 [???..???) T0 keep internal label BB43 [0034] 1 0 1 [002..003) T0 i BB44 [0035] 1 0 0.50 [002..003) T0 i BB45 [0036] 1 0 0.50 [002..003) T0 i BB46 [0037] 1 0 0.50 [002..003) T0 i BB47 [0038] 1 0 0.50 [002..003) T0 i BB48 [0039] 1 0 0.50 [002..003) T0 i BB49 [0040] 1 0 0.50 [002..003) T0 i BB50 [0041] 1 0 0.50 [002..003) T0 i BB51 [0042] 1 0 0.50 [002..003) T0 i BB52 [0043] 1 0 0.50 [002..003) T0 i BB53 [0044] 1 0 0.50 [002..003) T0 i BB54 [0045] 11 0 1 [002..003) T0 i BB55 [0046] 1 0 1 [???..???)-> BB04 (always) T0 } keep i internal label BB03 [0002] 1 0 1 [00A..00F)-> BB04 ( cret ) H0 catch { } keep i label target BB04 [0003] 2 1 [00F..012)-> BB06 ( cond ) i BB05 [0004] 1 0 [012..031) (throw ) i rare newobj BB06 [0005] 1 1 [031..032) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..002), preds={} succs={BB02} ***** BB01 STMT00000 (IL 0x000...0x001) [000002] -A---------- * ASG int [000001] D------N---- +--* LCL_VAR int V00 loc0 [000000] ------------ \--* CNS_INT int 0 ------------ BB02 [002..00A), preds={} succs={BB08} ------------ BB08 [002..003), preds={} succs={BB09} ------------ BB09 [002..003), preds={} succs={BB10} ------------ BB10 [002..003), preds={} succs={BB11} ------------ BB11 [002..003), preds={} succs={BB12} ------------ BB12 [002..003), preds={} succs={BB13} ------------ BB13 [002..003), preds={} succs={BB14} ------------ BB14 [002..003), preds={} succs={BB15} ------------ BB15 [002..003), preds={} succs={BB16} ------------ BB16 [002..003), preds={} succs={BB17} ------------ BB17 [002..003), preds={} succs={BB18} ------------ BB18 [002..003), preds={} succs={BB19} ***** BB18 STMT00016 (IL 0x002... ???) [000151] --C-G------- * CALL void System.ThrowHelper.ThrowNotSupportedException [000150] ------------ arg0 \--* CNS_INT int 63 ------------ BB19 [002..003), preds={} succs={BB20} ------------ BB20 [???..???), preds={} succs={BB35} ***** BB20 STMT00014 (IL 0x002... ???) [000044] -AC--------- * ASG long [000043] *----------- +--* IND long [000042] ------------ | \--* ADDR byref [000041] ------------ | \--* LCL_VAR struct V05 tmp3 [000038] --C-G------- \--* CALL long System.Runtime.Intrinsics.Vector64.Create [000037] ------------ arg0 \--* CNS_INT int -1 ***** BB20 STMT00020 (IL 0x002... ???) [000163] -A---------- * ASG struct (copy) [000161] D----------- +--* LCL_VAR struct V06 tmp4 [000047] n----------- \--* OBJ struct [000046] ------------ \--* ADDR byref [000045] ------------ \--* LCL_VAR struct V05 tmp3 ------------ BB35 [002..003), preds={} succs={BB36} ------------ BB36 [002..003), preds={} succs={BB37} ------------ BB37 [002..003), preds={} succs={BB38} ------------ BB38 [002..003), preds={} succs={BB39} ------------ BB39 [002..003), preds={} succs={BB40} ------------ BB40 [002..003) -> BB41 (always), preds={} succs={BB41} ------------ BB41 [002..003), preds={} succs={BB42} ------------ BB42 [???..???), preds={} succs={BB43} ------------ BB43 [002..003), preds={} succs={BB44} ------------ BB44 [002..003), preds={} succs={BB45} ------------ BB45 [002..003), preds={} succs={BB46} ------------ BB46 [002..003), preds={} succs={BB47} ------------ BB47 [002..003), preds={} succs={BB48} ------------ BB48 [002..003), preds={} succs={BB49} ------------ BB49 [002..003), preds={} succs={BB50} ------------ BB50 [002..003), preds={} succs={BB51} ------------ BB51 [002..003), preds={} succs={BB52} ------------ BB52 [002..003), preds={} succs={BB53} ------------ BB53 [002..003), preds={} succs={BB54} ***** BB53 STMT00021 (IL 0x002... ???) [000327] --C-G------- * CALL void System.ThrowHelper.ThrowNotSupportedException [000326] ------------ arg0 \--* CNS_INT int 63 ------------ BB54 [002..003), preds={} succs={BB55} ------------ BB55 [???..???) -> BB04 (always), preds={} succs={BB04} ***** BB55 STMT00002 (IL ???... ???) [000010] -AC--------- * ASG long [000009] *----------- +--* IND long [000008] ------------ | \--* ADDR byref [000007] ------------ | \--* LCL_VAR struct V01 loc1 [000160] *-CXG------- \--* IND long [000329] ------------ \--* ADDR byref [000330] ------------ \--* LCL_VAR struct V06 tmp4 ------------ BB03 [00A..00F) -> BB04 (cret), preds={} succs={BB04} ***** BB03 STMT00010 (IL 0x00A...0x00C) [000031] -A---O------ * ASG ref [000030] D------N---- +--* LCL_VAR ref V04 tmp2 [000004] -----O------ \--* CATCH_ARG ref ***** BB03 STMT00011 (IL 0x00B... ???) [000035] -A---------- * ASG int [000034] D------N---- +--* LCL_VAR int V00 loc0 [000033] ------------ \--* CNS_INT int 1 ------------ BB04 [00F..012) -> BB06 (cond), preds={} succs={BB05,BB06} ***** BB04 STMT00003 (IL 0x00F...0x010) [000014] ------------ * JTRUE void [000013] ------------ \--* NE int [000011] ------------ +--* LCL_VAR int V00 loc0 [000012] ------------ \--* CNS_INT int 0 ------------ BB05 [012..031) (throw), preds={} succs={} ***** BB05 STMT00023 (IL 0x012... ???) [000336] --C-G------- * CALL void System.Console.WriteLine [000335] ------------ arg0 \--* CNS_STR ref ***** BB05 STMT00025 (IL 0x01C... ???) [000341] -A--G------- * ASG ref [000340] D------N---- +--* LCL_VAR ref V07 tmp5 [000019] n---G------- \--* IND ref [000018] ------------ \--* CNS_INT(h) long 0xAD143060 "" ***** BB05 STMT00026 (IL 0x01C... ???) [000343] --C-G------- * CALL void System.Console.WriteLine [000338] ------------ arg0 \--* LCL_VAR ref V07 tmp5 ***** BB05 STMT00007 (IL 0x026... ???) [000025] -AC--------- * ASG ref [000024] D------N---- +--* LCL_VAR ref V03 tmp1 [000023] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST [000022] ------------ arg0 \--* CNS_INT(h) long 0x7ffbbb6dfd60 token ***** BB05 STMT00027 (IL ???... ???) [000345] --C-G------- * CALL void System.Exception..ctor [000026] ------------ this in rcx \--* LCL_VAR ref V03 tmp1 ***** BB05 STMT00028 (IL ???... ???) [000349] -A-XG------- * ASG ref [000348] ---XG--N---- +--* FIELD ref _message [000346] ------------ | \--* LCL_VAR ref V03 tmp1 [000347] ------------ \--* CNS_STR ref ***** BB05 STMT00009 (IL 0x030... ???) [000029] --CXG------- * CALL help void HELPER.CORINFO_HELP_THROW [000028] ------------ arg0 \--* LCL_VAR ref V03 tmp1 ------------ BB06 [031..032) (return), preds={} succs={} ***** BB06 STMT00004 (IL 0x031...0x031) [000015] ------------ * RETURN void ------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Morph - Add internal blocks *************** After fgAddInternal() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i BB02 [0001] 1 0 1 [002..00A) T0 try { keep i try label BB08 [0007] 1 0 1 [002..003) T0 i BB09 [0008] 1 0 0.50 [002..003) T0 i BB10 [0009] 1 0 0.50 [002..003) T0 i BB11 [0010] 1 0 0.50 [002..003) T0 i BB12 [0011] 1 0 0.50 [002..003) T0 i BB13 [0012] 1 0 0.50 [002..003) T0 i BB14 [0013] 1 0 0.50 [002..003) T0 i BB15 [0014] 1 0 0.50 [002..003) T0 i BB16 [0015] 1 0 0.50 [002..003) T0 i BB17 [0016] 1 0 0.50 [002..003) T0 i BB18 [0017] 1 0 0.50 [002..003) T0 i BB19 [0018] 11 0 1 [002..003) T0 i BB20 [0019] 1 0 1 [???..???) T0 keep i internal label BB35 [0021] 1 0 1 [002..003) T0 i BB36 [0022] 1 0 0.50 [002..003) T0 i BB37 [0023] 1 0 0.50 [002..003) T0 i BB38 [0024] 1 0 0.50 [002..003) T0 i BB39 [0025] 1 0 0.50 [002..003) T0 i BB40 [0026] 1 0 0.50 [002..003)-> BB41 (always) T0 i BB41 [0032] 11 0 1 [002..003) T0 i BB42 [0033] 1 0 1 [???..???) T0 keep internal label BB43 [0034] 1 0 1 [002..003) T0 i BB44 [0035] 1 0 0.50 [002..003) T0 i BB45 [0036] 1 0 0.50 [002..003) T0 i BB46 [0037] 1 0 0.50 [002..003) T0 i BB47 [0038] 1 0 0.50 [002..003) T0 i BB48 [0039] 1 0 0.50 [002..003) T0 i BB49 [0040] 1 0 0.50 [002..003) T0 i BB50 [0041] 1 0 0.50 [002..003) T0 i BB51 [0042] 1 0 0.50 [002..003) T0 i BB52 [0043] 1 0 0.50 [002..003) T0 i BB53 [0044] 1 0 0.50 [002..003) T0 i BB54 [0045] 11 0 1 [002..003) T0 i BB55 [0046] 1 0 1 [???..???)-> BB04 (always) T0 } keep i internal label BB03 [0002] 1 0 1 [00A..00F)-> BB04 ( cret ) H0 catch { } keep i label target BB04 [0003] 2 1 [00F..012)-> BB06 ( cond ) i BB05 [0004] 1 0 [012..031) (throw ) i rare newobj BB06 [0005] 1 1 [031..032) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB55 [002..00A), Handler at BB03..BB03 [00A..00F) *************** Finishing PHASE Morph - Add internal blocks *************** Starting PHASE Remove empty try *************** In fgRemoveEmptyTry() *************** Before fgRemoveEmptyTry() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i BB02 [0001] 1 0 1 [002..00A) T0 try { keep i try label BB08 [0007] 1 0 1 [002..003) T0 i BB09 [0008] 1 0 0.50 [002..003) T0 i BB10 [0009] 1 0 0.50 [002..003) T0 i BB11 [0010] 1 0 0.50 [002..003) T0 i BB12 [0011] 1 0 0.50 [002..003) T0 i BB13 [0012] 1 0 0.50 [002..003) T0 i BB14 [0013] 1 0 0.50 [002..003) T0 i BB15 [0014] 1 0 0.50 [002..003) T0 i BB16 [0015] 1 0 0.50 [002..003) T0 i BB17 [0016] 1 0 0.50 [002..003) T0 i BB18 [0017] 1 0 0.50 [002..003) T0 i BB19 [0018] 11 0 1 [002..003) T0 i BB20 [0019] 1 0 1 [???..???) T0 keep i internal label BB35 [0021] 1 0 1 [002..003) T0 i BB36 [0022] 1 0 0.50 [002..003) T0 i BB37 [0023] 1 0 0.50 [002..003) T0 i BB38 [0024] 1 0 0.50 [002..003) T0 i BB39 [0025] 1 0 0.50 [002..003) T0 i BB40 [0026] 1 0 0.50 [002..003)-> BB41 (always) T0 i BB41 [0032] 11 0 1 [002..003) T0 i BB42 [0033] 1 0 1 [???..???) T0 keep internal label BB43 [0034] 1 0 1 [002..003) T0 i BB44 [0035] 1 0 0.50 [002..003) T0 i BB45 [0036] 1 0 0.50 [002..003) T0 i BB46 [0037] 1 0 0.50 [002..003) T0 i BB47 [0038] 1 0 0.50 [002..003) T0 i BB48 [0039] 1 0 0.50 [002..003) T0 i BB49 [0040] 1 0 0.50 [002..003) T0 i BB50 [0041] 1 0 0.50 [002..003) T0 i BB51 [0042] 1 0 0.50 [002..003) T0 i BB52 [0043] 1 0 0.50 [002..003) T0 i BB53 [0044] 1 0 0.50 [002..003) T0 i BB54 [0045] 11 0 1 [002..003) T0 i BB55 [0046] 1 0 1 [???..???)-> BB04 (always) T0 } keep i internal label BB03 [0002] 1 0 1 [00A..00F)-> BB04 ( cret ) H0 catch { } keep i label target BB04 [0003] 2 1 [00F..012)-> BB06 ( cond ) i BB05 [0004] 1 0 [012..031) (throw ) i rare newobj BB06 [0005] 1 1 [031..032) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB55 [002..00A), Handler at BB03..BB03 [00A..00F) EH#0 is not a try-finally; skipping. *************** Finishing PHASE Remove empty try *************** Starting PHASE Remove empty finally *************** In fgRemoveEmptyFinally() *************** Before fgRemoveEmptyFinally() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i BB02 [0001] 1 0 1 [002..00A) T0 try { keep i try label BB08 [0007] 1 0 1 [002..003) T0 i BB09 [0008] 1 0 0.50 [002..003) T0 i BB10 [0009] 1 0 0.50 [002..003) T0 i BB11 [0010] 1 0 0.50 [002..003) T0 i BB12 [0011] 1 0 0.50 [002..003) T0 i BB13 [0012] 1 0 0.50 [002..003) T0 i BB14 [0013] 1 0 0.50 [002..003) T0 i BB15 [0014] 1 0 0.50 [002..003) T0 i BB16 [0015] 1 0 0.50 [002..003) T0 i BB17 [0016] 1 0 0.50 [002..003) T0 i BB18 [0017] 1 0 0.50 [002..003) T0 i BB19 [0018] 11 0 1 [002..003) T0 i BB20 [0019] 1 0 1 [???..???) T0 keep i internal label BB35 [0021] 1 0 1 [002..003) T0 i BB36 [0022] 1 0 0.50 [002..003) T0 i BB37 [0023] 1 0 0.50 [002..003) T0 i BB38 [0024] 1 0 0.50 [002..003) T0 i BB39 [0025] 1 0 0.50 [002..003) T0 i BB40 [0026] 1 0 0.50 [002..003)-> BB41 (always) T0 i BB41 [0032] 11 0 1 [002..003) T0 i BB42 [0033] 1 0 1 [???..???) T0 keep internal label BB43 [0034] 1 0 1 [002..003) T0 i BB44 [0035] 1 0 0.50 [002..003) T0 i BB45 [0036] 1 0 0.50 [002..003) T0 i BB46 [0037] 1 0 0.50 [002..003) T0 i BB47 [0038] 1 0 0.50 [002..003) T0 i BB48 [0039] 1 0 0.50 [002..003) T0 i BB49 [0040] 1 0 0.50 [002..003) T0 i BB50 [0041] 1 0 0.50 [002..003) T0 i BB51 [0042] 1 0 0.50 [002..003) T0 i BB52 [0043] 1 0 0.50 [002..003) T0 i BB53 [0044] 1 0 0.50 [002..003) T0 i BB54 [0045] 11 0 1 [002..003) T0 i BB55 [0046] 1 0 1 [???..???)-> BB04 (always) T0 } keep i internal label BB03 [0002] 1 0 1 [00A..00F)-> BB04 ( cret ) H0 catch { } keep i label target BB04 [0003] 2 1 [00F..012)-> BB06 ( cond ) i BB05 [0004] 1 0 [012..031) (throw ) i rare newobj BB06 [0005] 1 1 [031..032) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB55 [002..00A), Handler at BB03..BB03 [00A..00F) EH#0 is not a try-finally; skipping. *************** Finishing PHASE Remove empty finally *************** Starting PHASE Merge callfinally chains *************** In fgMergeFinallyChains() *************** Before fgMergeFinallyChains() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i BB02 [0001] 1 0 1 [002..00A) T0 try { keep i try label BB08 [0007] 1 0 1 [002..003) T0 i BB09 [0008] 1 0 0.50 [002..003) T0 i BB10 [0009] 1 0 0.50 [002..003) T0 i BB11 [0010] 1 0 0.50 [002..003) T0 i BB12 [0011] 1 0 0.50 [002..003) T0 i BB13 [0012] 1 0 0.50 [002..003) T0 i BB14 [0013] 1 0 0.50 [002..003) T0 i BB15 [0014] 1 0 0.50 [002..003) T0 i BB16 [0015] 1 0 0.50 [002..003) T0 i BB17 [0016] 1 0 0.50 [002..003) T0 i BB18 [0017] 1 0 0.50 [002..003) T0 i BB19 [0018] 11 0 1 [002..003) T0 i BB20 [0019] 1 0 1 [???..???) T0 keep i internal label BB35 [0021] 1 0 1 [002..003) T0 i BB36 [0022] 1 0 0.50 [002..003) T0 i BB37 [0023] 1 0 0.50 [002..003) T0 i BB38 [0024] 1 0 0.50 [002..003) T0 i BB39 [0025] 1 0 0.50 [002..003) T0 i BB40 [0026] 1 0 0.50 [002..003)-> BB41 (always) T0 i BB41 [0032] 11 0 1 [002..003) T0 i BB42 [0033] 1 0 1 [???..???) T0 keep internal label BB43 [0034] 1 0 1 [002..003) T0 i BB44 [0035] 1 0 0.50 [002..003) T0 i BB45 [0036] 1 0 0.50 [002..003) T0 i BB46 [0037] 1 0 0.50 [002..003) T0 i BB47 [0038] 1 0 0.50 [002..003) T0 i BB48 [0039] 1 0 0.50 [002..003) T0 i BB49 [0040] 1 0 0.50 [002..003) T0 i BB50 [0041] 1 0 0.50 [002..003) T0 i BB51 [0042] 1 0 0.50 [002..003) T0 i BB52 [0043] 1 0 0.50 [002..003) T0 i BB53 [0044] 1 0 0.50 [002..003) T0 i BB54 [0045] 11 0 1 [002..003) T0 i BB55 [0046] 1 0 1 [???..???)-> BB04 (always) T0 } keep i internal label BB03 [0002] 1 0 1 [00A..00F)-> BB04 ( cret ) H0 catch { } keep i label target BB04 [0003] 2 1 [00F..012)-> BB06 ( cond ) i BB05 [0004] 1 0 [012..031) (throw ) i rare newobj BB06 [0005] 1 1 [031..032) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB55 [002..00A), Handler at BB03..BB03 [00A..00F) Method does not have any try-finallys; no merging. *************** Finishing PHASE Merge callfinally chains *************** Starting PHASE Clone finally *************** In fgCloneFinally() *************** Before fgCloneFinally() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i BB02 [0001] 1 0 1 [002..00A) T0 try { keep i try label BB08 [0007] 1 0 1 [002..003) T0 i BB09 [0008] 1 0 0.50 [002..003) T0 i BB10 [0009] 1 0 0.50 [002..003) T0 i BB11 [0010] 1 0 0.50 [002..003) T0 i BB12 [0011] 1 0 0.50 [002..003) T0 i BB13 [0012] 1 0 0.50 [002..003) T0 i BB14 [0013] 1 0 0.50 [002..003) T0 i BB15 [0014] 1 0 0.50 [002..003) T0 i BB16 [0015] 1 0 0.50 [002..003) T0 i BB17 [0016] 1 0 0.50 [002..003) T0 i BB18 [0017] 1 0 0.50 [002..003) T0 i BB19 [0018] 11 0 1 [002..003) T0 i BB20 [0019] 1 0 1 [???..???) T0 keep i internal label BB35 [0021] 1 0 1 [002..003) T0 i BB36 [0022] 1 0 0.50 [002..003) T0 i BB37 [0023] 1 0 0.50 [002..003) T0 i BB38 [0024] 1 0 0.50 [002..003) T0 i BB39 [0025] 1 0 0.50 [002..003) T0 i BB40 [0026] 1 0 0.50 [002..003)-> BB41 (always) T0 i BB41 [0032] 11 0 1 [002..003) T0 i BB42 [0033] 1 0 1 [???..???) T0 keep internal label BB43 [0034] 1 0 1 [002..003) T0 i BB44 [0035] 1 0 0.50 [002..003) T0 i BB45 [0036] 1 0 0.50 [002..003) T0 i BB46 [0037] 1 0 0.50 [002..003) T0 i BB47 [0038] 1 0 0.50 [002..003) T0 i BB48 [0039] 1 0 0.50 [002..003) T0 i BB49 [0040] 1 0 0.50 [002..003) T0 i BB50 [0041] 1 0 0.50 [002..003) T0 i BB51 [0042] 1 0 0.50 [002..003) T0 i BB52 [0043] 1 0 0.50 [002..003) T0 i BB53 [0044] 1 0 0.50 [002..003) T0 i BB54 [0045] 11 0 1 [002..003) T0 i BB55 [0046] 1 0 1 [???..???)-> BB04 (always) T0 } keep i internal label BB03 [0002] 1 0 1 [00A..00F)-> BB04 ( cret ) H0 catch { } keep i label target BB04 [0003] 2 1 [00F..012)-> BB06 ( cond ) i BB05 [0004] 1 0 [012..031) (throw ) i rare newobj BB06 [0005] 1 1 [031..032) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB55 [002..00A), Handler at BB03..BB03 [00A..00F) EH#0 is not a try-finally; skipping. *************** Finishing PHASE Clone finally *************** Starting PHASE Compute preds Renumbering the basic blocks for fgComputePred *************** Before renumbering the basic blocks ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i BB02 [0001] 1 0 1 [002..00A) T0 try { keep i try label BB08 [0007] 1 0 1 [002..003) T0 i BB09 [0008] 1 0 0.50 [002..003) T0 i BB10 [0009] 1 0 0.50 [002..003) T0 i BB11 [0010] 1 0 0.50 [002..003) T0 i BB12 [0011] 1 0 0.50 [002..003) T0 i BB13 [0012] 1 0 0.50 [002..003) T0 i BB14 [0013] 1 0 0.50 [002..003) T0 i BB15 [0014] 1 0 0.50 [002..003) T0 i BB16 [0015] 1 0 0.50 [002..003) T0 i BB17 [0016] 1 0 0.50 [002..003) T0 i BB18 [0017] 1 0 0.50 [002..003) T0 i BB19 [0018] 11 0 1 [002..003) T0 i BB20 [0019] 1 0 1 [???..???) T0 keep i internal label BB35 [0021] 1 0 1 [002..003) T0 i BB36 [0022] 1 0 0.50 [002..003) T0 i BB37 [0023] 1 0 0.50 [002..003) T0 i BB38 [0024] 1 0 0.50 [002..003) T0 i BB39 [0025] 1 0 0.50 [002..003) T0 i BB40 [0026] 1 0 0.50 [002..003)-> BB41 (always) T0 i BB41 [0032] 11 0 1 [002..003) T0 i BB42 [0033] 1 0 1 [???..???) T0 keep internal label BB43 [0034] 1 0 1 [002..003) T0 i BB44 [0035] 1 0 0.50 [002..003) T0 i BB45 [0036] 1 0 0.50 [002..003) T0 i BB46 [0037] 1 0 0.50 [002..003) T0 i BB47 [0038] 1 0 0.50 [002..003) T0 i BB48 [0039] 1 0 0.50 [002..003) T0 i BB49 [0040] 1 0 0.50 [002..003) T0 i BB50 [0041] 1 0 0.50 [002..003) T0 i BB51 [0042] 1 0 0.50 [002..003) T0 i BB52 [0043] 1 0 0.50 [002..003) T0 i BB53 [0044] 1 0 0.50 [002..003) T0 i BB54 [0045] 11 0 1 [002..003) T0 i BB55 [0046] 1 0 1 [???..???)-> BB04 (always) T0 } keep i internal label BB03 [0002] 1 0 1 [00A..00F)-> BB04 ( cret ) H0 catch { } keep i label target BB04 [0003] 2 1 [00F..012)-> BB06 ( cond ) i BB05 [0004] 1 0 [012..031) (throw ) i rare newobj BB06 [0005] 1 1 [031..032) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB55 [002..00A), Handler at BB03..BB03 [00A..00F) Renumber BB08 to BB03 Renumber BB09 to BB04 Renumber BB10 to BB05 Renumber BB11 to BB06 Renumber BB12 to BB07 Renumber BB13 to BB08 Renumber BB14 to BB09 Renumber BB15 to BB10 Renumber BB16 to BB11 Renumber BB17 to BB12 Renumber BB18 to BB13 Renumber BB19 to BB14 Renumber BB20 to BB15 Renumber BB35 to BB16 Renumber BB36 to BB17 Renumber BB37 to BB18 Renumber BB38 to BB19 Renumber BB39 to BB20 Renumber BB40 to BB21 Renumber BB41 to BB22 Renumber BB42 to BB23 Renumber BB43 to BB24 Renumber BB44 to BB25 Renumber BB45 to BB26 Renumber BB46 to BB27 Renumber BB47 to BB28 Renumber BB48 to BB29 Renumber BB49 to BB30 Renumber BB50 to BB31 Renumber BB51 to BB32 Renumber BB52 to BB33 Renumber BB53 to BB34 Renumber BB54 to BB35 Renumber BB55 to BB36 Renumber BB03 to BB37 Renumber BB04 to BB38 Renumber BB05 to BB39 Renumber BB06 to BB40 *************** After renumbering the basic blocks ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i BB02 [0001] 1 0 1 [002..00A) T0 try { keep i try label BB03 [0007] 1 0 1 [002..003) T0 i BB04 [0008] 1 0 0.50 [002..003) T0 i BB05 [0009] 1 0 0.50 [002..003) T0 i BB06 [0010] 1 0 0.50 [002..003) T0 i BB07 [0011] 1 0 0.50 [002..003) T0 i BB08 [0012] 1 0 0.50 [002..003) T0 i BB09 [0013] 1 0 0.50 [002..003) T0 i BB10 [0014] 1 0 0.50 [002..003) T0 i BB11 [0015] 1 0 0.50 [002..003) T0 i BB12 [0016] 1 0 0.50 [002..003) T0 i BB13 [0017] 1 0 0.50 [002..003) T0 i BB14 [0018] 11 0 1 [002..003) T0 i BB15 [0019] 1 0 1 [???..???) T0 keep i internal label BB16 [0021] 1 0 1 [002..003) T0 i BB17 [0022] 1 0 0.50 [002..003) T0 i BB18 [0023] 1 0 0.50 [002..003) T0 i BB19 [0024] 1 0 0.50 [002..003) T0 i BB20 [0025] 1 0 0.50 [002..003) T0 i BB21 [0026] 1 0 0.50 [002..003)-> BB22 (always) T0 i BB22 [0032] 11 0 1 [002..003) T0 i BB23 [0033] 1 0 1 [???..???) T0 keep internal label BB24 [0034] 1 0 1 [002..003) T0 i BB25 [0035] 1 0 0.50 [002..003) T0 i BB26 [0036] 1 0 0.50 [002..003) T0 i BB27 [0037] 1 0 0.50 [002..003) T0 i BB28 [0038] 1 0 0.50 [002..003) T0 i BB29 [0039] 1 0 0.50 [002..003) T0 i BB30 [0040] 1 0 0.50 [002..003) T0 i BB31 [0041] 1 0 0.50 [002..003) T0 i BB32 [0042] 1 0 0.50 [002..003) T0 i BB33 [0043] 1 0 0.50 [002..003) T0 i BB34 [0044] 1 0 0.50 [002..003) T0 i BB35 [0045] 11 0 1 [002..003) T0 i BB36 [0046] 1 0 1 [???..???)-> BB38 (always) T0 } keep i internal label BB37 [0002] 1 0 1 [00A..00F)-> BB38 ( cret ) H0 catch { } keep i label target BB38 [0003] 2 1 [00F..012)-> BB40 ( cond ) i BB39 [0004] 1 0 [012..031) (throw ) i rare newobj BB40 [0005] 1 1 [031..032) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB36 [002..00A), Handler at BB37..BB37 [00A..00F) New BlockSet epoch 2, # of blocks (including unused BB00): 41, bitset array size: 1 (short) *************** In fgComputePreds() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i BB02 [0001] 1 0 1 [002..00A) T0 try { keep i try label BB03 [0007] 1 0 1 [002..003) T0 i BB04 [0008] 1 0 0.50 [002..003) T0 i BB05 [0009] 1 0 0.50 [002..003) T0 i BB06 [0010] 1 0 0.50 [002..003) T0 i BB07 [0011] 1 0 0.50 [002..003) T0 i BB08 [0012] 1 0 0.50 [002..003) T0 i BB09 [0013] 1 0 0.50 [002..003) T0 i BB10 [0014] 1 0 0.50 [002..003) T0 i BB11 [0015] 1 0 0.50 [002..003) T0 i BB12 [0016] 1 0 0.50 [002..003) T0 i BB13 [0017] 1 0 0.50 [002..003) T0 i BB14 [0018] 11 0 1 [002..003) T0 i BB15 [0019] 1 0 1 [???..???) T0 keep i internal label BB16 [0021] 1 0 1 [002..003) T0 i BB17 [0022] 1 0 0.50 [002..003) T0 i BB18 [0023] 1 0 0.50 [002..003) T0 i BB19 [0024] 1 0 0.50 [002..003) T0 i BB20 [0025] 1 0 0.50 [002..003) T0 i BB21 [0026] 1 0 0.50 [002..003)-> BB22 (always) T0 i BB22 [0032] 11 0 1 [002..003) T0 i BB23 [0033] 1 0 1 [???..???) T0 keep internal label BB24 [0034] 1 0 1 [002..003) T0 i BB25 [0035] 1 0 0.50 [002..003) T0 i BB26 [0036] 1 0 0.50 [002..003) T0 i BB27 [0037] 1 0 0.50 [002..003) T0 i BB28 [0038] 1 0 0.50 [002..003) T0 i BB29 [0039] 1 0 0.50 [002..003) T0 i BB30 [0040] 1 0 0.50 [002..003) T0 i BB31 [0041] 1 0 0.50 [002..003) T0 i BB32 [0042] 1 0 0.50 [002..003) T0 i BB33 [0043] 1 0 0.50 [002..003) T0 i BB34 [0044] 1 0 0.50 [002..003) T0 i BB35 [0045] 11 0 1 [002..003) T0 i BB36 [0046] 1 0 1 [???..???)-> BB38 (always) T0 } keep i internal label BB37 [0002] 1 0 1 [00A..00F)-> BB38 ( cret ) H0 catch { } keep i label target BB38 [0003] 2 1 [00F..012)-> BB40 ( cond ) i BB39 [0004] 1 0 [012..031) (throw ) i rare newobj BB40 [0005] 1 1 [031..032) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- *************** After fgComputePreds() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i label target BB02 [0001] 1 0 BB01 1 [002..00A) T0 try { keep i try label BB03 [0007] 1 0 BB02 1 [002..003) T0 i BB04 [0008] 1 0 BB03 0.50 [002..003) T0 i BB05 [0009] 1 0 BB04 0.50 [002..003) T0 i BB06 [0010] 1 0 BB05 0.50 [002..003) T0 i BB07 [0011] 1 0 BB06 0.50 [002..003) T0 i BB08 [0012] 1 0 BB07 0.50 [002..003) T0 i BB09 [0013] 1 0 BB08 0.50 [002..003) T0 i BB10 [0014] 1 0 BB09 0.50 [002..003) T0 i BB11 [0015] 1 0 BB10 0.50 [002..003) T0 i BB12 [0016] 1 0 BB11 0.50 [002..003) T0 i BB13 [0017] 1 0 BB12 0.50 [002..003) T0 i BB14 [0018] 1 0 BB13 1 [002..003) T0 i BB15 [0019] 1 0 BB14 1 [???..???) T0 keep i internal label BB16 [0021] 1 0 BB15 1 [002..003) T0 i BB17 [0022] 1 0 BB16 0.50 [002..003) T0 i BB18 [0023] 1 0 BB17 0.50 [002..003) T0 i BB19 [0024] 1 0 BB18 0.50 [002..003) T0 i BB20 [0025] 1 0 BB19 0.50 [002..003) T0 i BB21 [0026] 1 0 BB20 0.50 [002..003)-> BB22 (always) T0 i BB22 [0032] 1 0 BB21 1 [002..003) T0 i label target BB23 [0033] 1 0 BB22 1 [???..???) T0 keep internal label BB24 [0034] 1 0 BB23 1 [002..003) T0 i BB25 [0035] 1 0 BB24 0.50 [002..003) T0 i BB26 [0036] 1 0 BB25 0.50 [002..003) T0 i BB27 [0037] 1 0 BB26 0.50 [002..003) T0 i BB28 [0038] 1 0 BB27 0.50 [002..003) T0 i BB29 [0039] 1 0 BB28 0.50 [002..003) T0 i BB30 [0040] 1 0 BB29 0.50 [002..003) T0 i BB31 [0041] 1 0 BB30 0.50 [002..003) T0 i BB32 [0042] 1 0 BB31 0.50 [002..003) T0 i BB33 [0043] 1 0 BB32 0.50 [002..003) T0 i BB34 [0044] 1 0 BB33 0.50 [002..003) T0 i BB35 [0045] 1 0 BB34 1 [002..003) T0 i BB36 [0046] 1 0 BB35 1 [???..???)-> BB38 (always) T0 } keep i internal label BB37 [0002] 1 0 1 [00A..00F)-> BB38 ( cret ) H0 catch { } keep i label target BB38 [0003] 2 BB36,BB37 1 [00F..012)-> BB40 ( cond ) i label target BB39 [0004] 1 BB38 0 [012..031) (throw ) i rare newobj BB40 [0005] 1 BB38 1 [031..032) (return) i label target ----------------------------------------------------------------------------------------------------------------------------------------- *************** Finishing PHASE Compute preds *************** Starting PHASE Update flow graph early pass *************** In fgUpdateFlowGraph() Before updating the flow graph: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i label target BB02 [0001] 1 0 BB01 1 [002..00A) T0 try { keep i try label BB03 [0007] 1 0 BB02 1 [002..003) T0 i BB04 [0008] 1 0 BB03 0.50 [002..003) T0 i BB05 [0009] 1 0 BB04 0.50 [002..003) T0 i BB06 [0010] 1 0 BB05 0.50 [002..003) T0 i BB07 [0011] 1 0 BB06 0.50 [002..003) T0 i BB08 [0012] 1 0 BB07 0.50 [002..003) T0 i BB09 [0013] 1 0 BB08 0.50 [002..003) T0 i BB10 [0014] 1 0 BB09 0.50 [002..003) T0 i BB11 [0015] 1 0 BB10 0.50 [002..003) T0 i BB12 [0016] 1 0 BB11 0.50 [002..003) T0 i BB13 [0017] 1 0 BB12 0.50 [002..003) T0 i BB14 [0018] 1 0 BB13 1 [002..003) T0 i BB15 [0019] 1 0 BB14 1 [???..???) T0 keep i internal label BB16 [0021] 1 0 BB15 1 [002..003) T0 i BB17 [0022] 1 0 BB16 0.50 [002..003) T0 i BB18 [0023] 1 0 BB17 0.50 [002..003) T0 i BB19 [0024] 1 0 BB18 0.50 [002..003) T0 i BB20 [0025] 1 0 BB19 0.50 [002..003) T0 i BB21 [0026] 1 0 BB20 0.50 [002..003)-> BB22 (always) T0 i BB22 [0032] 1 0 BB21 1 [002..003) T0 i label target BB23 [0033] 1 0 BB22 1 [???..???) T0 keep internal label BB24 [0034] 1 0 BB23 1 [002..003) T0 i BB25 [0035] 1 0 BB24 0.50 [002..003) T0 i BB26 [0036] 1 0 BB25 0.50 [002..003) T0 i BB27 [0037] 1 0 BB26 0.50 [002..003) T0 i BB28 [0038] 1 0 BB27 0.50 [002..003) T0 i BB29 [0039] 1 0 BB28 0.50 [002..003) T0 i BB30 [0040] 1 0 BB29 0.50 [002..003) T0 i BB31 [0041] 1 0 BB30 0.50 [002..003) T0 i BB32 [0042] 1 0 BB31 0.50 [002..003) T0 i BB33 [0043] 1 0 BB32 0.50 [002..003) T0 i BB34 [0044] 1 0 BB33 0.50 [002..003) T0 i BB35 [0045] 1 0 BB34 1 [002..003) T0 i BB36 [0046] 1 0 BB35 1 [???..???)-> BB38 (always) T0 } keep i internal label BB37 [0002] 1 0 1 [00A..00F)-> BB38 ( cret ) H0 catch { } keep i label target BB38 [0003] 2 BB36,BB37 1 [00F..012)-> BB40 ( cond ) i label target BB39 [0004] 1 BB38 0 [012..031) (throw ) i rare newobj BB40 [0005] 1 BB38 1 [031..032) (return) i label target ----------------------------------------------------------------------------------------------------------------------------------------- Compacting blocks BB02 and BB03: *************** In fgDebugCheckBBlist Compacting blocks BB02 and BB04: *************** In fgDebugCheckBBlist Compacting blocks BB02 and BB05: *************** In fgDebugCheckBBlist Compacting blocks BB02 and BB06: *************** In fgDebugCheckBBlist Compacting blocks BB02 and BB07: *************** In fgDebugCheckBBlist Compacting blocks BB02 and BB08: *************** In fgDebugCheckBBlist Compacting blocks BB02 and BB09: *************** In fgDebugCheckBBlist Compacting blocks BB02 and BB10: *************** In fgDebugCheckBBlist Compacting blocks BB02 and BB11: *************** In fgDebugCheckBBlist Compacting blocks BB02 and BB12: *************** In fgDebugCheckBBlist Compacting blocks BB02 and BB13: *************** In fgDebugCheckBBlist Compacting blocks BB02 and BB14: *************** In fgDebugCheckBBlist Compacting blocks BB15 and BB16: *************** In fgDebugCheckBBlist Compacting blocks BB15 and BB17: *************** In fgDebugCheckBBlist Compacting blocks BB15 and BB18: *************** In fgDebugCheckBBlist Compacting blocks BB15 and BB19: *************** In fgDebugCheckBBlist Compacting blocks BB15 and BB20: *************** In fgDebugCheckBBlist Compacting blocks BB15 and BB21: *************** In fgDebugCheckBBlist Removing unconditional jump to next block (BB15 -> BB22) (converted BB15 to fall-through) Compacting blocks BB15 and BB22: *************** In fgDebugCheckBBlist Compacting blocks BB23 and BB24: *************** In fgDebugCheckBBlist Compacting blocks BB23 and BB25: *************** In fgDebugCheckBBlist Compacting blocks BB23 and BB26: *************** In fgDebugCheckBBlist Compacting blocks BB23 and BB27: *************** In fgDebugCheckBBlist Compacting blocks BB23 and BB28: *************** In fgDebugCheckBBlist Compacting blocks BB23 and BB29: *************** In fgDebugCheckBBlist Compacting blocks BB23 and BB30: *************** In fgDebugCheckBBlist Compacting blocks BB23 and BB31: *************** In fgDebugCheckBBlist Compacting blocks BB23 and BB32: *************** In fgDebugCheckBBlist Compacting blocks BB23 and BB33: *************** In fgDebugCheckBBlist Compacting blocks BB23 and BB34: *************** In fgDebugCheckBBlist Compacting blocks BB23 and BB35: *************** In fgDebugCheckBBlist After updating the flow graph: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i label target BB02 [0001] 1 0 BB01 1 [002..00A) T0 try { keep i try label BB15 [0019] 1 0 BB02 1 [002..003) T0 keep i label BB23 [0033] 1 0 BB15 1 [002..003) T0 keep i label BB36 [0046] 1 0 BB23 1 [???..???)-> BB38 (always) T0 } keep i internal label BB37 [0002] 1 0 1 [00A..00F)-> BB38 ( cret ) H0 catch { } keep i label target BB38 [0003] 2 BB36,BB37 1 [00F..012)-> BB40 ( cond ) i label target BB39 [0004] 1 BB38 0 [012..031) (throw ) i rare newobj BB40 [0005] 1 BB38 1 [031..032) (return) i label target ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB36 [002..00A), Handler at BB37..BB37 [00A..00F) *************** 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 loc0 bool ; V01 loc1 struct ; V02 OutArgs lclBlk "OutgoingArgSpace" ; V03 tmp1 ref class-hnd exact "NewObj constructor temp" ; V04 tmp2 ref class-hnd "impSpillSpecialSideEff" ; V05 tmp3 struct "struct address for call/obj" ; V06 tmp4 struct ld-addr-op overlapping-fields "Inlining Arg" ; V07 tmp5 ref class-hnd "Inlining Arg" Promoting struct local V01 (System.Runtime.Intrinsics.Vector64`1[Boolean]): lvaGrabTemp returning 8 (V08 tmp6) (a long lifetime temp) called for field V01._00 (fldOffset=0x0). Promoting struct local V05 (System.Runtime.Intrinsics.Vector64`1[UInt32]): lvaGrabTemp returning 9 (V09 tmp7) (a long lifetime temp) called for field V05._00 (fldOffset=0x0). Promoting struct local V06 (System.Runtime.Intrinsics.Vector64`1[UInt32]): lvaGrabTemp returning 10 (V10 tmp8) (a long lifetime temp) called for field V06._00 (fldOffset=0x0). lvaTable after fgPromoteStructs ; Initial local variable assignments ; ; V00 loc0 bool ; V01 loc1 struct ; V02 OutArgs lclBlk "OutgoingArgSpace" ; V03 tmp1 ref class-hnd exact "NewObj constructor temp" ; V04 tmp2 ref class-hnd "impSpillSpecialSideEff" ; V05 tmp3 struct "struct address for call/obj" ; V06 tmp4 struct ld-addr-op overlapping-fields "Inlining Arg" ; V07 tmp5 ref class-hnd "Inlining Arg" ; V08 tmp6 long V01._00(offs=0x00) P-INDEP "field V01._00 (fldOffset=0x0)" ; V09 tmp7 long V05._00(offs=0x00) P-INDEP "field V05._00 (fldOffset=0x0)" ; V10 tmp8 long V06._00(offs=0x00) P-INDEP "field V06._00 (fldOffset=0x0)" *************** Finishing PHASE Morph - Promote Structs *************** Starting PHASE Morph - Structs/AddrExp *************** In fgMarkAddressExposedLocals() LocalAddressVisitor visiting statement: STMT00000 (IL 0x000...0x001) [000002] -A---------- * ASG int [000001] D------N---- +--* LCL_VAR int V00 loc0 [000000] ------------ \--* CNS_INT int 0 LocalAddressVisitor visiting statement: STMT00016 (IL 0x002... ???) [000151] --C-G------- * CALL void System.ThrowHelper.ThrowNotSupportedException [000150] ------------ arg0 \--* CNS_INT int 63 LocalAddressVisitor visiting statement: STMT00014 (IL 0x002... ???) [000044] -AC--------- * ASG long [000043] *----------- +--* IND long [000042] ------------ | \--* ADDR byref [000041] ------------ | \--* LCL_VAR struct(P) V05 tmp3 | \--* long V05._00 (offs=0x00) -> V09 tmp7 [000038] --C-G------- \--* CALL long System.Runtime.Intrinsics.Vector64.Create [000037] ------------ arg0 \--* CNS_INT int -1 LocalAddressVisitor visiting statement: STMT00020 (IL 0x002... ???) [000163] -A---------- * ASG struct (copy) [000161] D----------- +--* LCL_VAR struct(P) V06 tmp4 +--* long V06._00 (offs=0x00) -> V10 tmp8 [000047] n----------- \--* OBJ struct [000046] ------------ \--* ADDR byref [000045] ------------ \--* LCL_VAR struct(P) V05 tmp3 \--* long V05._00 (offs=0x00) -> V09 tmp7 LocalAddressVisitor visiting statement: STMT00021 (IL 0x002... ???) [000327] --C-G------- * CALL void System.ThrowHelper.ThrowNotSupportedException [000326] ------------ arg0 \--* CNS_INT int 63 LocalAddressVisitor visiting statement: STMT00002 (IL ???... ???) [000010] -AC--------- * ASG long [000009] *----------- +--* IND long [000008] ------------ | \--* ADDR byref [000007] ------------ | \--* LCL_VAR struct(P) V01 loc1 | \--* long V01._00 (offs=0x00) -> V08 tmp6 [000160] *-CXG------- \--* IND long [000329] ------------ \--* ADDR byref [000330] ------------ \--* LCL_VAR struct(P) V06 tmp4 \--* long V06._00 (offs=0x00) -> V10 tmp8 LocalAddressVisitor visiting statement: STMT00010 (IL 0x00A...0x00C) [000031] -A---O------ * ASG ref [000030] D------N---- +--* LCL_VAR ref V04 tmp2 [000004] -----O------ \--* CATCH_ARG ref LocalAddressVisitor visiting statement: STMT00011 (IL 0x00B... ???) [000035] -A---------- * ASG int [000034] D------N---- +--* LCL_VAR int V00 loc0 [000033] ------------ \--* CNS_INT int 1 LocalAddressVisitor visiting statement: STMT00003 (IL 0x00F...0x010) [000014] ------------ * JTRUE void [000013] ------------ \--* NE int [000011] ------------ +--* LCL_VAR int V00 loc0 [000012] ------------ \--* CNS_INT int 0 LocalAddressVisitor visiting statement: STMT00023 (IL 0x012... ???) [000336] --C-G------- * CALL void System.Console.WriteLine [000335] ------------ arg0 \--* CNS_STR ref LocalAddressVisitor visiting statement: STMT00025 (IL 0x01C... ???) [000341] -A--G------- * ASG ref [000340] D------N---- +--* LCL_VAR ref V07 tmp5 [000019] n---G------- \--* IND ref [000018] ------------ \--* CNS_INT(h) long 0xAD143060 "" LocalAddressVisitor visiting statement: STMT00026 (IL 0x01C... ???) [000343] --C-G------- * CALL void System.Console.WriteLine [000338] ------------ arg0 \--* LCL_VAR ref V07 tmp5 LocalAddressVisitor visiting statement: STMT00007 (IL 0x026... ???) [000025] -AC--------- * ASG ref [000024] D------N---- +--* LCL_VAR ref V03 tmp1 [000023] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST [000022] ------------ arg0 \--* CNS_INT(h) long 0x7ffbbb6dfd60 token LocalAddressVisitor visiting statement: STMT00027 (IL ???... ???) [000345] --C-G------- * CALL void System.Exception..ctor [000026] ------------ this in rcx \--* LCL_VAR ref V03 tmp1 LocalAddressVisitor visiting statement: STMT00028 (IL ???... ???) [000349] -A-XG------- * ASG ref [000348] ---XG--N---- +--* FIELD ref _message [000346] ------------ | \--* LCL_VAR ref V03 tmp1 [000347] ------------ \--* CNS_STR ref LocalAddressVisitor visiting statement: STMT00009 (IL 0x030... ???) [000029] --CXG------- * CALL help void HELPER.CORINFO_HELP_THROW [000028] ------------ arg0 \--* LCL_VAR ref V03 tmp1 LocalAddressVisitor visiting statement: STMT00004 (IL 0x031...0x031) [000015] ------------ * RETURN void *************** Finishing PHASE Morph - Structs/AddrExp *************** Starting PHASE Morph - ByRefs *************** In fgRetypeImplicitByRefArgs() *************** Finishing PHASE Morph - ByRefs *************** Starting PHASE Morph - Global *************** In fgMorphBlocks() Morphing BB01 of 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' fgMorphTree BB01, STMT00000 (before) [000002] -A---------- * ASG int [000001] D------N---- +--* LCL_VAR int V00 loc0 [000000] ------------ \--* CNS_INT int 0 GenTreeNode creates assertion: [000002] -A---------- * ASG int In BB01 New Local Constant Assertion: V00 == 0 index=#01, mask=0000000000000001 Morphing BB02 of 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' fgMorphTree BB02, STMT00016 (before) [000151] --C-G------- * CALL void System.ThrowHelper.ThrowNotSupportedException [000150] ------------ arg0 \--* CNS_INT int 63 Initializing arg info for 151.CALL: ArgTable for 151.CALL after fgInitArgInfo: fgArgTabEntry[arg 0 150.CNS_INT int, 1 reg: rcx, align=1] Morphing args for 151.CALL: argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 Sorting the arguments: Deferred argument ('rcx'): [000150] -----+------ * CNS_INT int 63 Replaced with placeholder node: [000352] ----------L- * ARGPLACE int Shuffled argument table: rcx ArgTable for 151.CALL after fgMorphArgs: fgArgTabEntry[arg 0 150.CNS_INT int, 1 reg: rcx, align=1, lateArgInx=0, processed] fgMorphTree BB02, STMT00016 (after) [000151] --CXG+------ * CALL void System.ThrowHelper.ThrowNotSupportedException [000150] -----+------ arg0 in rcx \--* CNS_INT int 63 Converting BB02 to BBJ_THROW Morphing BB15 of 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' fgMorphTree BB15, STMT00014 (before) [000044] -AC--------- * ASG long [000043] *----------- +--* IND long [000042] ------------ | \--* ADDR byref [000041] ------------ | \--* LCL_VAR struct(P) V05 tmp3 | \--* long V05._00 (offs=0x00) -> V09 tmp7 [000038] --C-G------- \--* CALL long System.Runtime.Intrinsics.Vector64.Create [000037] ------------ arg0 \--* CNS_INT int -1 Initializing arg info for 38.CALL: ArgTable for 38.CALL after fgInitArgInfo: fgArgTabEntry[arg 0 37.CNS_INT int, 1 reg: rcx, align=1] Morphing args for 38.CALL: argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 Sorting the arguments: Deferred argument ('rcx'): [000037] -----+------ * CNS_INT int -1 Replaced with placeholder node: [000353] ----------L- * ARGPLACE int Shuffled argument table: rcx ArgTable for 38.CALL after fgMorphArgs: fgArgTabEntry[arg 0 37.CNS_INT int, 1 reg: rcx, align=1, lateArgInx=0, processed] fgMorphTree BB15, STMT00014 (after) [000044] -ACXG+------ * ASG long [000041] D----+-N---- +--* LCL_VAR long V09 tmp7 [000038] --CXG+------ \--* CALL long System.Runtime.Intrinsics.Vector64.Create [000037] -----+------ arg0 in rcx \--* CNS_INT int -1 fgMorphTree BB15, STMT00020 (before) [000163] -A---------- * ASG struct (copy) [000161] D----------- +--* LCL_VAR struct(P) V06 tmp4 +--* long V06._00 (offs=0x00) -> V10 tmp8 [000047] n----------- \--* OBJ struct [000046] ------------ \--* ADDR byref [000045] ------------ \--* LCL_VAR struct(P) V05 tmp3 \--* long V05._00 (offs=0x00) -> V09 tmp7 fgMorphCopyBlock:block assignment to morph: [000163] -A---------- * ASG struct (copy) [000161] D----+-N---- +--* LCL_VAR struct(P) V06 tmp4 +--* long V06._00 (offs=0x00) -> V10 tmp8 [000047] n----+------ \--* OBJ struct [000046] -----+------ \--* ADDR byref [000045] -----+-N---- \--* LCL_VAR struct(P) V05 tmp3 \--* long V05._00 (offs=0x00) -> V09 tmp7 (destDoFldAsg=true) (srcDoFldAsg=true) using field by field assignments. GenTreeNode creates assertion: [000356] -A---------- * ASG long In BB15 New Local Copy Assertion: V10 == V09 index=#01, mask=0000000000000001 fgMorphCopyBlock (after): [000356] -A---+------ * ASG long [000354] D------N---- +--* LCL_VAR long V10 tmp8 [000355] -------N---- \--* LCL_VAR long V09 tmp7 The assignment [000356] using V10 removes: Copy Assertion: V10 == V09 GenTreeNode creates assertion: [000356] -A---+------ * ASG long In BB15 New Local Copy Assertion: V10 == V09 index=#01, mask=0000000000000001 fgMorphTree BB15, STMT00020 (after) [000356] -A---+------ * ASG long [000354] D------N---- +--* LCL_VAR long V10 tmp8 [000355] -------N---- \--* LCL_VAR long V09 tmp7 Morphing BB23 of 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' fgMorphTree BB23, STMT00021 (before) [000327] --C-G------- * CALL void System.ThrowHelper.ThrowNotSupportedException [000326] ------------ arg0 \--* CNS_INT int 63 Initializing arg info for 327.CALL: ArgTable for 327.CALL after fgInitArgInfo: fgArgTabEntry[arg 0 326.CNS_INT int, 1 reg: rcx, align=1] Morphing args for 327.CALL: argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 Sorting the arguments: Deferred argument ('rcx'): [000326] -----+------ * CNS_INT int 63 Replaced with placeholder node: [000357] ----------L- * ARGPLACE int Shuffled argument table: rcx ArgTable for 327.CALL after fgMorphArgs: fgArgTabEntry[arg 0 326.CNS_INT int, 1 reg: rcx, align=1, lateArgInx=0, processed] fgMorphTree BB23, STMT00021 (after) [000327] --CXG+------ * CALL void System.ThrowHelper.ThrowNotSupportedException [000326] -----+------ arg0 in rcx \--* CNS_INT int 63 Converting BB23 to BBJ_THROW Morphing BB36 of 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' fgMorphTree BB36, STMT00002 (before) [000010] -AC--------- * ASG long [000009] *----------- +--* IND long [000008] ------------ | \--* ADDR byref [000007] ------------ | \--* LCL_VAR struct(P) V01 loc1 | \--* long V01._00 (offs=0x00) -> V08 tmp6 [000160] *-CXG------- \--* IND long [000329] ------------ \--* ADDR byref [000330] ------------ \--* LCL_VAR struct(P) V06 tmp4 \--* long V06._00 (offs=0x00) -> V10 tmp8 GenTreeNode creates assertion: [000010] -A---------- * ASG long In BB36 New Local Copy Assertion: V08 == V10 index=#01, mask=0000000000000001 fgMorphTree BB36, STMT00002 (after) [000010] -A---+------ * ASG long [000007] D----+-N---- +--* LCL_VAR long V08 tmp6 [000330] -----+------ \--* LCL_VAR long V10 tmp8 Morphing BB37 of 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' fgMorphTree BB37, STMT00010 (before) [000031] -A---O------ * ASG ref [000030] D------N---- +--* LCL_VAR ref V04 tmp2 [000004] -----O------ \--* CATCH_ARG ref fgMorphTree BB37, STMT00011 (before) [000035] -A---------- * ASG int [000034] D------N---- +--* LCL_VAR int V00 loc0 [000033] ------------ \--* CNS_INT int 1 GenTreeNode creates assertion: [000035] -A---------- * ASG int In BB37 New Local Constant Assertion: V00 == 1 index=#01, mask=0000000000000001 Morphing BB38 of 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' fgMorphTree BB38, STMT00003 (before) [000014] ------------ * JTRUE void [000013] ------------ \--* NE int [000011] ------------ +--* LCL_VAR int V00 loc0 [000012] ------------ \--* CNS_INT int 0 Morphing BB39 of 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' fgMorphTree BB39, STMT00023 (before) [000336] --C-G------- * CALL void System.Console.WriteLine [000335] ------------ arg0 \--* CNS_STR ref Initializing arg info for 336.CALL: ArgTable for 336.CALL after fgInitArgInfo: fgArgTabEntry[arg 0 335.CNS_STR ref, 1 reg: rcx, align=1] Morphing args for 336.CALL: Initializing arg info for 361.CALL: ArgTable for 361.CALL after fgInitArgInfo: fgArgTabEntry[arg 0 360.CNS_INT int, 1 reg: rcx, align=1] fgArgTabEntry[arg 1 359.CNS_INT long, 1 reg: rdx, align=1] Morphing args for 361.CALL: argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 Sorting the arguments: Deferred argument ('rcx'): [000360] -----+------ * CNS_INT int 0x5F25 Replaced with placeholder node: [000362] ----------L- * ARGPLACE int Deferred argument ('rdx'): [000359] -----+------ * CNS_INT(h) long 0x7ffbbb7d9200 scope Replaced with placeholder node: [000363] ----------L- * ARGPLACE long Shuffled argument table: rcx rdx ArgTable for 361.CALL after fgMorphArgs: fgArgTabEntry[arg 0 360.CNS_INT int, 1 reg: rcx, align=1, lateArgInx=0, processed] fgArgTabEntry[arg 1 359.CNS_INT long, 1 reg: rdx, align=1, lateArgInx=1, processed] argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 Sorting the arguments: Deferred argument ('rcx'): [000361] --C-G+------ * CALL help ref HELPER.CORINFO_HELP_STRCNS [000360] -----+------ arg0 in rcx +--* CNS_INT int 0x5F25 [000359] -----+------ arg1 in rdx \--* CNS_INT(h) long 0x7ffbbb7d9200 scope Replaced with placeholder node: [000364] ----------L- * ARGPLACE ref Shuffled argument table: rcx ArgTable for 336.CALL after fgMorphArgs: fgArgTabEntry[arg 0 361.CALL ref, 1 reg: rcx, align=1, lateArgInx=0, processed] fgMorphTree BB39, STMT00023 (after) [000336] --CXG+------ * CALL void System.Console.WriteLine [000361] --C-G+------ arg0 in rcx \--* CALL help ref HELPER.CORINFO_HELP_STRCNS [000360] -----+------ arg0 in rcx +--* CNS_INT int 0x5F25 [000359] -----+------ arg1 in rdx \--* CNS_INT(h) long 0x7ffbbb7d9200 scope fgMorphTree BB39, STMT00025 (before) [000341] -A--G------- * ASG ref [000340] D------N---- +--* LCL_VAR ref V07 tmp5 [000019] n---G------- \--* IND ref [000018] ------------ \--* CNS_INT(h) long 0xAD143060 "" fgMorphTree BB39, STMT00026 (before) [000343] --C-G------- * CALL void System.Console.WriteLine [000338] ------------ arg0 \--* LCL_VAR ref V07 tmp5 Initializing arg info for 343.CALL: ArgTable for 343.CALL after fgInitArgInfo: fgArgTabEntry[arg 0 338.LCL_VAR ref, 1 reg: rcx, align=1] Morphing args for 343.CALL: argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 Sorting the arguments: Deferred argument ('rcx'): [000338] -----+------ * LCL_VAR ref V07 tmp5 Replaced with placeholder node: [000365] ----------L- * ARGPLACE ref Shuffled argument table: rcx ArgTable for 343.CALL after fgMorphArgs: fgArgTabEntry[arg 0 338.LCL_VAR ref, 1 reg: rcx, align=1, lateArgInx=0, processed] fgMorphTree BB39, STMT00026 (after) [000343] --CXG+------ * CALL void System.Console.WriteLine [000338] -----+------ arg0 in rcx \--* LCL_VAR ref V07 tmp5 fgMorphTree BB39, STMT00007 (before) [000025] -AC--------- * ASG ref [000024] D------N---- +--* LCL_VAR ref V03 tmp1 [000023] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST [000022] ------------ arg0 \--* CNS_INT(h) long 0x7ffbbb6dfd60 token Initializing arg info for 23.CALL: ArgTable for 23.CALL after fgInitArgInfo: fgArgTabEntry[arg 0 22.CNS_INT long, 1 reg: rcx, align=1] Morphing args for 23.CALL: argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 Sorting the arguments: Deferred argument ('rcx'): [000022] -----+------ * CNS_INT(h) long 0x7ffbbb6dfd60 token Replaced with placeholder node: [000366] ----------L- * ARGPLACE long Shuffled argument table: rcx ArgTable for 23.CALL after fgMorphArgs: fgArgTabEntry[arg 0 22.CNS_INT long, 1 reg: rcx, align=1, lateArgInx=0, processed] fgMorphTree BB39, STMT00007 (after) [000025] -AC--+------ * ASG ref [000024] D----+-N---- +--* LCL_VAR ref V03 tmp1 [000023] --C--+------ \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST [000022] -----+------ arg0 in rcx \--* CNS_INT(h) long 0x7ffbbb6dfd60 token fgMorphTree BB39, STMT00027 (before) [000345] --C-G------- * CALL void System.Exception..ctor [000026] ------------ this in rcx \--* LCL_VAR ref V03 tmp1 Initializing arg info for 345.CALL: ArgTable for 345.CALL after fgInitArgInfo: fgArgTabEntry[arg 0 26.LCL_VAR ref, 1 reg: rcx, align=1] Morphing args for 345.CALL: argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 Sorting the arguments: Deferred argument ('rcx'): [000026] -----+------ * LCL_VAR ref V03 tmp1 Replaced with placeholder node: [000367] ----------L- * ARGPLACE ref Shuffled argument table: rcx ArgTable for 345.CALL after fgMorphArgs: fgArgTabEntry[arg 0 26.LCL_VAR ref, 1 reg: rcx, align=1, lateArgInx=0, processed] fgMorphTree BB39, STMT00027 (after) [000345] --CXG+------ * CALL void System.Exception..ctor [000026] -----+------ this in rcx \--* LCL_VAR ref V03 tmp1 fgMorphTree BB39, STMT00028 (before) [000349] -A-XG------- * ASG ref [000348] ---XG--N---- +--* FIELD ref _message [000346] ------------ | \--* LCL_VAR ref V03 tmp1 [000347] ------------ \--* CNS_STR ref Final value of Compiler::fgMorphField after calling fgMorphSmpOp: [000348] ---XG--N---- * IND ref [000369] -----+------ \--* ADD byref [000346] -----+------ +--* LCL_VAR ref V03 tmp1 [000368] -----+------ \--* CNS_INT long 16 field offset Fseq[_message] GenTreeNode creates assertion: [000348] ---XG--N---- * IND ref In BB39 New Local Constant Assertion: V03 != null index=#01, mask=0000000000000001 Initializing arg info for 372.CALL: ArgTable for 372.CALL after fgInitArgInfo: fgArgTabEntry[arg 0 371.CNS_INT int, 1 reg: rcx, align=1] fgArgTabEntry[arg 1 370.CNS_INT long, 1 reg: rdx, align=1] Morphing args for 372.CALL: argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 Sorting the arguments: Deferred argument ('rcx'): [000371] -----+------ * CNS_INT int 0x1D66 Replaced with placeholder node: [000373] ----------L- * ARGPLACE int Deferred argument ('rdx'): [000370] -----+------ * CNS_INT(h) long 0x7ffbbb7d9200 scope Replaced with placeholder node: [000374] ----------L- * ARGPLACE long Shuffled argument table: rcx rdx ArgTable for 372.CALL after fgMorphArgs: fgArgTabEntry[arg 0 371.CNS_INT int, 1 reg: rcx, align=1, lateArgInx=0, processed] fgArgTabEntry[arg 1 370.CNS_INT long, 1 reg: rdx, align=1, lateArgInx=1, processed] fgMorphTree BB39, STMT00028 (after) [000349] -ACXG+------ * ASG ref [000348] ---XG+-N---- +--* IND ref [000369] -----+------ | \--* ADD byref [000346] -----+------ | +--* LCL_VAR ref V03 tmp1 [000368] -----+------ | \--* CNS_INT long 16 field offset Fseq[_message] [000372] --C-G+------ \--* CALL help ref HELPER.CORINFO_HELP_STRCNS [000371] -----+------ arg0 in rcx +--* CNS_INT int 0x1D66 [000370] -----+------ arg1 in rdx \--* CNS_INT(h) long 0x7ffbbb7d9200 scope fgMorphTree BB39, STMT00009 (before) [000029] --CXG------- * CALL help void HELPER.CORINFO_HELP_THROW [000028] ------------ arg0 \--* LCL_VAR ref V03 tmp1 Initializing arg info for 29.CALL: ArgTable for 29.CALL after fgInitArgInfo: fgArgTabEntry[arg 0 28.LCL_VAR ref, 1 reg: rcx, align=1] Morphing args for 29.CALL: argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 Sorting the arguments: Deferred argument ('rcx'): [000028] -----+------ * LCL_VAR ref V03 tmp1 Replaced with placeholder node: [000375] ----------L- * ARGPLACE ref Shuffled argument table: rcx ArgTable for 29.CALL after fgMorphArgs: fgArgTabEntry[arg 0 28.LCL_VAR ref, 1 reg: rcx, align=1, lateArgInx=0, processed] fgMorphTree BB39, STMT00009 (after) [000029] --CXG+------ * CALL help void HELPER.CORINFO_HELP_THROW [000028] -----+------ arg0 in rcx \--* LCL_VAR ref V03 tmp1 Morphing BB40 of 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' fgMorphTree BB40, STMT00004 (before) [000015] ------------ * RETURN void Method has EH, marking method as fully interruptible *************** Finishing PHASE Morph - Global *************** 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 lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i label target BB02 [0001] 1 0 BB01 0 [002..00A) (throw ) T0 try { keep i try rare label gcsafe BB15 [0019] 0 0 1 [002..003) T0 keep i label gcsafe BB23 [0033] 1 0 BB15 0 [002..003) (throw ) T0 keep i rare label gcsafe BB36 [0046] 0 0 1 [???..???)-> BB38 (always) T0 } keep i internal label BB37 [0002] 1 0 1 [00A..00F)-> BB38 ( cret ) H0 catch { } keep i label target BB38 [0003] 2 BB36,BB37 1 [00F..012)-> BB40 ( cond ) i label target BB39 [0004] 1 BB38 0 [012..031) (throw ) i rare gcsafe newobj BB40 [0005] 1 BB38 1 [031..032) (return) i label target ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB36 [002..00A), Handler at BB37..BB37 [00A..00F) Renumber BB15 to BB03 Renumber BB23 to BB04 Renumber BB36 to BB05 Renumber BB37 to BB06 Renumber BB38 to BB07 Renumber BB39 to BB08 Renumber BB40 to BB09 *************** After renumbering the basic blocks ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i label target BB02 [0001] 1 0 BB01 0 [002..00A) (throw ) T0 try { keep i try rare label gcsafe BB03 [0019] 0 0 1 [002..003) T0 keep i label gcsafe BB04 [0033] 1 0 BB03 0 [002..003) (throw ) T0 keep i rare label gcsafe BB05 [0046] 0 0 1 [???..???)-> BB07 (always) T0 } keep i internal label BB06 [0002] 1 0 1 [00A..00F)-> BB07 ( cret ) H0 catch { } keep i label target BB07 [0003] 2 BB05,BB06 1 [00F..012)-> BB09 ( cond ) i label target BB08 [0004] 1 BB07 0 [012..031) (throw ) i rare gcsafe newobj BB09 [0005] 1 BB07 1 [031..032) (return) i label target ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB05 [002..00A), Handler at BB06..BB06 [00A..00F) New BlockSet epoch 3, # of blocks (including unused BB00): 10, 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 lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i label target BB02 [0001] 1 0 BB01 0 [002..00A) (throw ) T0 try { keep i try rare label gcsafe BB03 [0019] 0 0 1 [002..003) T0 keep i label gcsafe BB04 [0033] 1 0 BB03 0 [002..003) (throw ) T0 keep i rare label gcsafe BB05 [0046] 0 0 1 [???..???)-> BB07 (always) T0 } keep i internal label BB06 [0002] 1 0 1 [00A..00F)-> BB07 ( cret ) H0 catch { } keep i label target BB07 [0003] 2 BB05,BB06 1 [00F..012)-> BB09 ( cond ) i label target BB08 [0004] 1 BB07 0 [012..031) (throw ) i rare gcsafe newobj BB09 [0005] 1 BB07 1 [031..032) (return) i label target ----------------------------------------------------------------------------------------------------------------------------------------- -- no profile data, so using default called count fgComputeEdgeWeights() found inconsistent profile data, not using the edge weights *************** Finishing PHASE Compute edge weights (1, false) *************** Starting PHASE Create EH funclets *************** In fgCreateFunclets() Relocating handler range BB06..BB06 (EH#0) to end of BBlist ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i label target BB02 [0001] 1 0 BB01 0 [002..00A) (throw ) T0 try { keep i try rare label gcsafe BB03 [0019] 0 0 1 [002..003) T0 keep i label gcsafe BB04 [0033] 1 0 BB03 0 [002..003) (throw ) T0 keep i rare label gcsafe BB05 [0046] 0 0 1 [???..???)-> BB07 (always) T0 } keep i internal label BB06 [0002] 1 0 1 [00A..00F)-> BB07 ( cret ) H0 catch { } keep i label target BB07 [0003] 2 BB05,BB06 1 [00F..012)-> BB09 ( cond ) i label target BB08 [0004] 1 BB07 0 [012..031) (throw ) i rare gcsafe newobj BB09 [0005] 1 BB07 1 [031..032) (return) i label target ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB05 [002..00A), Handler at BB06..BB06 [00A..00F) Relocated block [BB06..BB06] inserted after BB09 at the end of method Create funclets: moved region *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB05 [002..00A), Handler at BB06..BB06 [00A..00F) After fgCreateFunclets() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i label target BB02 [0001] 1 0 BB01 0 [002..00A) (throw ) T0 try { keep i try rare label gcsafe BB03 [0019] 0 0 1 [002..003) T0 keep i label gcsafe BB04 [0033] 1 0 BB03 0 [002..003) (throw ) T0 keep i rare label gcsafe BB05 [0046] 0 0 1 [???..???)-> BB07 (always) T0 } keep i internal label BB07 [0003] 2 BB05,BB06 1 [00F..012)-> BB09 ( cond ) i label target BB08 [0004] 1 BB07 0 [012..031) (throw ) i rare gcsafe newobj BB09 [0005] 1 BB07 1 [031..032) (return) i label target +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow BB06 [0002] 1 0 1 [00A..00F)-> BB07 ( cret ) H0 F catch { } keep i label target flet ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table index eTry, eHnd 0 :: - Try at BB02..BB05 [002..00A), Handler at BB06..BB06 [00A..00F) *************** In fgDebugCheckBBlist *************** Finishing PHASE Create EH funclets *************** Starting PHASE Merge throw blocks *************** In fgTailMergeThrows *** Does not return call [000327] --CXG+------ * CALL void System.ThrowHelper.ThrowNotSupportedException [000326] -----+------ arg0 in rcx \--* CNS_INT int 63 in BB04 is unique, marking it as canonical *** Does not return call [000151] --CXG+------ * CALL void System.ThrowHelper.ThrowNotSupportedException [000150] -----+------ arg0 in rcx \--* CNS_INT int 63 in BB02 can be dup'd to canonical BB04 *** found 1 merge candidates, rewriting flow New Basic Block BB10 [0053] created. *** BB01 now falling through to empty BB10 and then to BB04 *************** After fgTailMergeThrows(1 updates) ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..002) i label target BB10 [0053] 1 BB01 1 [???..???)-> BB04 (always) internal BB02 [0001] 0 0 0 [002..00A) (throw ) T0 try { keep i try rare label gcsafe BB03 [0019] 0 0 1 [002..003) T0 keep i label gcsafe BB04 [0033] 2 0 BB03,BB10 0 [002..003) (throw ) T0 keep i rare label target gcsafe BB05 [0046] 0 0 1 [???..???)-> BB07 (always) T0 } keep i internal label BB07 [0003] 2 BB05,BB06 1 [00F..012)-> BB09 ( cond ) i label target BB08 [0004] 1 BB07 0 [012..031) (throw ) i rare gcsafe newobj BB09 [0005] 1 BB07 1 [031..032) (return) i label target +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow BB06 [0002] 1 0 1 [00A..00F)-> BB07 ( cret ) H0 F catch { } keep i label target flet ----------------------------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist Jump into the middle of try region: BB10 branches to BB04 Assert failure(PID 11372 [0x00002c6c], Thread: 3996 [0x0f9c]): Assertion failed '!"Jump into middle of try region"' in 'JIT.HardwareIntrinsics.General.Program:Vector64AllBitsSet()' during 'Merge throw blocks' (IL size 50) File: C:\Users\gotos\source\repos\runtime\src\coreclr\src\jit\flowgraph.cpp Line: 20738 Image: c:\users\gotos\source\repos\runtime\artifacts\tests\coreclr\windows_nt.x64.checked\tests\core_root\corerun.exe