Created
January 12, 2017 16:16
-
-
Save mskvortsov/351362a60937db7a975dafedb735d9d6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
****** START compiling Test:LongId(long):long (MethodHash=0f9627fe) | |
Generating code for Unix arm | |
OPTIONS: compCodeOpt = BLENDED_CODE | |
OPTIONS: compDbgCode = false | |
OPTIONS: compDbgInfo = true | |
OPTIONS: compDbgEnC = false | |
OPTIONS: compProcedureSplitting = false | |
OPTIONS: compProcedureSplittingEH = false | |
OPTIONS: Stack probing is DISABLED | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 2a ret | |
Set preferred register for V00 to [r0] | |
Additional preferred register for V00 from [r0] to [r0-r1] | |
Arg #0 passed in register(s) r0,r1 | |
; Initial local variable assignments | |
; | |
; V00 arg0 long | |
*************** In compInitDebuggingInfo() for Test:LongId(long):long | |
getVars() returned cVars = 0, extendOthers = true | |
info.compVarScopesCount = 1 | |
VarNum LVNum Name Beg End | |
0: 00h 00h V00 arg0 000h 002h | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for Test:LongId(long):long | |
Jump targets: | |
none | |
New Basic Block BB01 [0008F2EC] created. | |
BB01 [000..002) | |
IL Code Size,Instr 2, 2, Basic Block count 1, Local Variable Num,Ref count 1, 1 for method Test:LongId(long):long | |
OPTIONS: opts.MinOpts() == false | |
Basic block list for 'Test:LongId(long):long' | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum descAddr ref try hnd weight [IL range] [jump] [EH region] [flags] | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0008F2EC] 1 1 [000..002) (return) | |
------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for Test:LongId(long):long | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'Test:LongId(long):long' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ret | |
[000003] ------------- ▌ stmtExpr void (IL 0x000... ???) | |
[000002] ------------- └──▌ return long | |
[000001] ------------- └──▌ lclVar long V00 arg0 | |
New BlockSet epoch 1, # of blocks (including unused BB00): 2, bitset array size: 1 (short) | |
*************** In fgMorph() | |
*************** In fgDebugCheckBBlist | |
*************** In fgInline() | |
*************** After fgInline() | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum descAddr ref try hnd weight [IL range] [jump] [EH region] [flags] | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0008F2EC] 1 1 [000..002) (return) i | |
------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..002) (return), preds={} succs={} | |
***** BB01, stmt 1 | |
[000003] ------------- ▌ stmtExpr void (IL 0x000...0x001) | |
[000002] ------------- └──▌ return long | |
[000001] ------------- └──▌ lclVar long V00 arg0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
**************** Inline Tree | |
Inlines into 06000001 Test:LongId(long):long | |
Budget: initialTime=66, finalTime=66, initialBudget=660, currentBudget=660 | |
Budget: initialSize=176, finalSize=176 | |
*************** After fgAddInternal() | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum descAddr ref try hnd weight [IL range] [jump] [EH region] [flags] | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0008F2EC] 1 1 [000..002) (return) i | |
------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
*************** In fgDebugCheckBBlist | |
*************** In fgPromoteStructs() | |
*************** In fgMarkAddressExposedLocals() | |
*************** In fgMorphBlocks() | |
Morphing BB01 of 'Test:LongId(long):long' | |
fgMorphTree BB01, stmt 1 (before) | |
[000002] ------------- ▌ return long | |
[000001] ------------- └──▌ lclVar long V00 arg0 | |
Renumbering the basic blocks for fgComputePred | |
*************** Before renumbering the basic blocks | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum descAddr ref try hnd weight [IL range] [jump] [EH region] [flags] | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0008F2EC] 1 1 [000..002) (return) i | |
------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
*************** After renumbering the basic blocks | |
=============== No blocks renumbered! | |
*************** In fgComputePreds() | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum descAddr ref try hnd weight [IL range] [jump] [EH region] [flags] | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0008F2EC] 1 1 [000..002) (return) i | |
------------------------------------------------------------------------------------------------------------------------------------- | |
*************** After fgComputePreds() | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0008F2EC] 1 1 [000..002) (return) i label target | |
------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgComputeEdgeWeights() | |
fgComputeEdgeWeights() we do not have any profile data so we are not using the edge weights | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0008F2EC] 1 1 [000..002) (return) i label target | |
------------------------------------------------------------------------------------------------------------------------------------- | |
fgComputeEdgeWeights() was able to compute exact edge weights for all of the 0 edges, using 1 passes. | |
*************** In fgCreateFunclets() | |
After fgCreateFunclets() | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0008F2EC] 1 1 [000..002) (return) i label target | |
------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
*************** In fgDebugCheckBBlist | |
*************** In optOptimizeLayout() | |
*************** Exception Handling table is empty | |
*************** In fgDebugCheckBBlist | |
*************** In fgUpdateFlowGraph() | |
Before updating the flow graph: | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0008F2EC] 1 1 [000..002) (return) i label target | |
------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** In fgUpdateFlowGraph() | |
Before updating the flow graph: | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0008F2EC] 1 1 [000..002) (return) i label target | |
------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** In fgComputeReachability | |
*************** In fgDebugCheckBBlist | |
Renumbering the basic blocks for fgComputeReachability pass #1 | |
*************** Before renumbering the basic blocks | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0008F2EC] 1 1 [000..002) (return) i label target | |
------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
*************** After renumbering the basic blocks | |
=============== No blocks renumbered! | |
Enter blocks: BB01 | |
After computing reachability sets: | |
------------------------------------------------ | |
BBnum Reachable by | |
------------------------------------------------ | |
BB01 : BB01 | |
After computing reachability: | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0008F2EC] 1 1 [000..002) (return) i label target | |
------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** In fgComputeDoms | |
*************** In fgDebugCheckBBlist | |
Dominator computation start blocks (those blocks with no incoming edges): | |
BB01 | |
------------------------------------------------ | |
BBnum Dominated by | |
------------------------------------------------ | |
BB01: BB01 | |
Inside fgBuildDomTree | |
After computing the Dominance Tree: | |
*************** In Allocate Objects | |
Trees before Allocate Objects | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0008F2EC] 1 1 [000..002) (return) i label target | |
------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..002) (return), preds={} succs={} | |
***** BB01, stmt 1 | |
[000003] ------------- ▌ stmtExpr void (IL 0x000...0x001) | |
[000002] -----+------- └──▌ return long | |
[000001] -----+------- └──▌ lclVar long V00 arg0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** Exiting Allocate Objects | |
Trees after Allocate Objects | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0008F2EC] 1 1 [000..002) (return) i label target | |
------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..002) (return), preds={} succs={} | |
***** BB01, stmt 1 | |
[000003] ------------- ▌ stmtExpr void (IL 0x000...0x001) | |
[000002] -----+------- └──▌ return long | |
[000001] -----+------- └──▌ lclVar long V00 arg0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** In optOptimizeLoops() | |
*************** In fgDebugCheckBBlist | |
*************** In optCloneLoops() | |
*************** In lvaMarkLocalVars() | |
lvaGrabTemp returning 1 (V01 tmp0) (a long lifetime temp) called for OutgoingArgSpace. | |
*** marking local variables in block BB01 (weight= 1 ) | |
[000003] ------------- ▌ stmtExpr void (IL 0x000...0x001) | |
[000002] -----+------- └──▌ return long | |
[000001] -----+------- └──▌ lclVar long V00 arg0 | |
New refCnts for V00: refCnt = 1, refCntWtd = 1 | |
New refCnts for V00: refCnt = 2, refCntWtd = 2 | |
New refCnts for V00: refCnt = 3, refCntWtd = 3 | |
*************** In optAddCopies() | |
refCnt table for 'LongId': | |
V00 arg0 [ long]: refCnt = 3, refCntWtd = 3 pref [r0-r1] | |
V01 OutArgs [lclBlk]: refCnt = 1, refCntWtd = 1 | |
*************** In optOptimizeBools() | |
*************** In fgDebugCheckBBlist | |
*************** In fgFindOperOrder() | |
*************** In fgSetBlockOrder() | |
The biggest BB has 2 tree nodes | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0008F2EC] 1 1 [000..002) (return) i label target | |
------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..002) (return), preds={} succs={} | |
***** BB01, stmt 1 | |
( 7, 5) [000003] ------------- ▌ stmtExpr void (IL 0x000...0x001) | |
N002 ( 7, 5) [000002] ------------- └──▌ return long | |
N001 ( 6, 4) [000001] ------------- └──▌ lclVar long V00 arg0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In SsaBuilder::Build() | |
[SsaBuilder] Max block count is 2. | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0008F2EC] 1 1 [000..002) (return) i label target | |
------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
[SsaBuilder] Topologically sorted the graph. | |
[SsaBuilder::ComputeImmediateDom] | |
*************** In SsaBuilder::ComputeDominators(BasicBlock** postOrder, int count, ...) | |
*************** In SsaBuilder::InsertPhiFunctions() | |
*************** In fgLocalVarLiveness() | |
*************** In fgPerBlockLocalVarLiveness() | |
BB01 USE(1)={V00} | |
DEF(0)={ } | |
*************** In fgInterBlockLocalVarLiveness() | |
BB liveness after fgLiveVarAnalysis(): | |
BB01 IN (1)={V00} | |
OUT(0)={ } | |
Inserting phi functions: | |
*************** In SsaBuilder::RenameVariables() | |
After fgSsaBuild: | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0008F2EC] 1 1 [000..002) (return) i label target | |
------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..002) (return), preds={} succs={} | |
***** BB01, stmt 1 | |
( 7, 5) [000003] ------------- ▌ stmtExpr void (IL 0x000...0x001) | |
N002 ( 7, 5) [000002] ------------- └──▌ return long | |
N001 ( 6, 4) [000001] ------------- └──▌ lclVar long V00 arg0 u:2 (last use) | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In optEarlyProp() | |
*************** In fgValueNumber() | |
Heap Initial Value in BB01 is: $c0 | |
The SSA definition for heap (#2) at start of BB01 is $c0 {InitVal($41)} | |
***** BB01, stmt 1 (before) | |
N002 ( 7, 5) [000002] ------------- ▌ return long | |
N001 ( 6, 4) [000001] ------------- └──▌ lclVar long V00 arg0 u:2 (last use) | |
N001 [000001] lclVar V00 arg0 u:2 (last use) => $80 {InitVal($40)} | |
N002 [000002] return => $100 {100} | |
***** BB01, stmt 1 (after) | |
N002 ( 7, 5) [000002] ------------- ▌ return long $100 | |
N001 ( 6, 4) [000001] ------------- └──▌ lclVar long V00 arg0 u:2 (last use) $80 | |
finish(BB01). | |
*************** In optVnCopyProp() | |
*************** In SsaBuilder::ComputeDominators(Compiler*, ...) | |
Copy Assertion for BB01 | |
Live vars: {V00} => {} | |
*************** In optOptimizeCSEs() | |
Blocks/Trees at start of optOptimizeCSE phase | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0008F2EC] 1 1 [000..002) (return) i label target | |
------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..002) (return), preds={} succs={} | |
***** BB01, stmt 1 | |
( 7, 5) [000003] ------------- ▌ stmtExpr void (IL 0x000...0x001) | |
N002 ( 7, 5) [000002] ------------- └──▌ return long $100 | |
N001 ( 6, 4) [000001] ------------- └──▌ lclVar long V00 arg0 u:2 (last use) $80 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In optOptimizeValnumCSEs() | |
*************** In optAssertionPropMain() | |
Blocks/Trees at start of phase | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0008F2EC] 1 1 [000..002) (return) i label target | |
------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..002) (return), preds={} succs={} | |
***** BB01, stmt 1 | |
( 7, 5) [000003] ------------- ▌ stmtExpr void (IL 0x000...0x001) | |
N002 ( 7, 5) [000002] ------------- └──▌ return long $100 | |
N001 ( 6, 4) [000001] ------------- └──▌ lclVar long V00 arg0 u:2 (last use) $80 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In OptimizeRangeChecks() | |
Blocks/trees before phase | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0008F2EC] 1 1 [000..002) (return) i label target | |
------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..002) (return), preds={} succs={} | |
***** BB01, stmt 1 | |
( 7, 5) [000003] ------------- ▌ stmtExpr void (IL 0x000...0x001) | |
N002 ( 7, 5) [000002] ------------- └──▌ return long $100 | |
N001 ( 6, 4) [000001] ------------- └──▌ lclVar long V00 arg0 u:2 (last use) $80 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDetermineFirstColdBlock() | |
No procedure splitting will be done for this method | |
*************** In fgLocalVarLiveness() | |
*************** In fgPerBlockLocalVarLiveness() | |
BB01 USE(1)={V00} | |
DEF(0)={ } | |
*************** In fgInterBlockLocalVarLiveness() | |
BB liveness after fgLiveVarAnalysis(): | |
BB01 IN (1)={V00} | |
OUT(0)={ } | |
*************** In fgDebugCheckBBlist | |
*************** In lvaAssignFrameOffsets(PRE_REGALLOC_FRAME_LAYOUT) | |
Assign V00 arg0, size=8, stkOffs=-0x50 | |
; Pre-RegAlloc local variable assignments | |
; | |
; V00 arg0 [V00,T00] ( 3, 3 ) long -> [sp+0x08] | |
;# V01 OutArgs [V01 ] ( 1, 1 ) lclBlk ( 0) [sp+0x00] | |
*************** In raAssignVars() | |
Clearing modified regs. | |
Var. interference graph for Test:LongId(long):long | |
V00,T00 and T00 | |
Compiler::rpPredictAssignRegVars pass #0 | |
Available registers = [r5-r10 f16-f31] | |
*************** In fgDebugCheckBBlist | |
; V00 arg0 T00 (refcnt= 3,refwtd= 3 ) predicted to be assigned to r6:r5 | |
; V01 OutArgs (refcnt= 1,refwtd= 1 ) not enregistered | |
; refCntStk = 1 | |
; Register predicting pass# 1 | |
Register predicting BB01, stmt 1 | |
N002 ( 7, 5) [000002] ------------- ▌ return long $100 | |
N001 ( 6, 4) [000001] ------------- └──▌ lclVar long V00 arg0 u:2 r6:r5 (last use) $80 | |
Live vars: {V00} => {} | |
Marking regs modified: [r0-r1] ([] => [r0-r1]) | |
Reg. interference graph for Test:LongId(long):long | |
V00,T00 and | |
Compiler::rpPredictAssignRegVars pass #1 | |
Available registers = [r0-r10 r12 lr f0-f31] | |
*************** In fgDebugCheckBBlist | |
; V00 arg0 T00 (refcnt= 3,refwtd= 3 ) predicted to be assigned to r1:r0 | |
; V01 OutArgs (refcnt= 1,refwtd= 1 ) not enregistered | |
; refCntStk = 1 | |
rpStkPredict is 0; previous feasible reg prediction is 0. | |
Clearing modified regs. | |
Marking regs modified: [r0-r1] ([] => [r0-r1]) | |
# rpPasses was 1 for Test:LongId(long):long | |
rpStkPredict was 0 | |
*************** In genGenerateCode() | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum descAddr ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0008F2EC] 1 1 [000..002) (return) i label target | |
------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** In lvaAssignFrameOffsets(TENTATIVE_FRAME_LAYOUT) | |
; Tentative local variable assignments | |
; | |
; V00 arg0 [V00,T00] ( 3, 3 ) long -> r1:r0 | |
;# V01 OutArgs [V01 ] ( 1, 1 ) lclBlk ( 0) [sp+0x00] | |
; | |
; Lcl frame size = 28 | |
=============== Generating BB01 [000..002) (return), preds={} succs={} flags=0x00000000.00030020: i label target | |
BB01 IN (1)={V00} | |
OUT(0)={ } | |
Change life 00000000 {} -> 00000001 {V00} | |
V00 in reg r1:r0 is becoming live [------] | |
Live regs: 0000 {} => 0003 {r0 r1} | |
Live regs: (unchanged) 0003 {r0 r1} | |
L_M55297_BB01: | |
Label: IG02, GCvars=00000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {} | |
Scope info: begin block BB01, IL range [000..002) | |
Scope info: open scopes = | |
0 (V00 arg0) [000..002) | |
Added IP mapping: 0x0000 STACK_EMPTY (G_M55297_IG02,ins#0,ofs#0) label | |
Generating BB01, stmt 1 Holding variables: [r0-r1] | |
( 7, 5) [000003] ------------- ▌ stmtExpr void (IL 0x000...0x001) | |
N002 ( 7, 5) [000002] ------------- └──▌ return long $100 | |
N001 ( 6, 4) [000001] ------------- └──▌ lclVar long V00 arg0 u:2 r1:r0 (last use) $80 | |
Execution Order: | |
N001 ( 6, 4) [000001] ------------- ▌ lclVar long V00 arg0 u:2 r1:r0 (last use) $80 | |
N002 ( 7, 5) [000002] ------------- ▌ return long $100 | |
V00 in reg r1:r0 is becoming dead [000001] | |
Live regs: 0003 {r0 r1} => 0000 {} | |
Live vars: {V00} => {} | |
The register r0 currently holds | |
[000001]/lo32 | |
The register r1 currently holds | |
[000001]/hi32 | |
The register r0 no longer holds [000001][------] | |
The register r1 no longer holds [000001][------] | |
Scope info: end block BB01, IL range [000..002) | |
Scope info: ending scope, LVnum=0 [000..002) | |
Scope info: open scopes = | |
<none> | |
Added IP mapping: EPILOG STACK_EMPTY (G_M55297_IG02,ins#0,ofs#0) label | |
Reserving epilog IG for block BB01 | |
*************** After placeholder IG creation | |
G_M55297_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=0000 {} <-- Prolog IG | |
G_M55297_IG02: ; epilog placeholder, next placeholder=<END>, BB=0008F2ECH (BB01), epilog <-- First placeholder <-- Last placeholder | |
; PrevGCVars=00000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0000 {} | |
; InitGCVars=00000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0000 {} | |
Liveness not changing: 00000000 {} | |
# totalCostEx = 700, totalCostSz = 5 Test:LongId(long):long | |
*************** Before prolog / epilog generation | |
G_M55297_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=0000 {} <-- Prolog IG | |
G_M55297_IG02: ; epilog placeholder, next placeholder=<END>, BB=0008F2ECH (BB01), epilog <-- First placeholder <-- Last placeholder | |
; PrevGCVars=00000000 {}, PrevGCrefRegs=0000 {}, PrevByrefRegs=0000 {} | |
; InitGCVars=00000000 {}, InitGCrefRegs=0000 {}, InitByrefRegs=0000 {} | |
*************** In genFnProlog() | |
Finalizing stack frame | |
Modified regs: [r0-r1] | |
Callee-saved registers pushed: 2 [r11 lr] | |
*************** In lvaAssignFrameOffsets(FINAL_FRAME_LAYOUT) | |
; Final local variable assignments | |
; | |
; V00 arg0 [V00,T00] ( 3, 3 ) long -> r1:r0 | |
;# V01 OutArgs [V01 ] ( 1, 1 ) lclBlk ( 0) [sp+0x00] | |
; | |
; Lcl frame size = 0 | |
Added IP mapping to front: PROLOG STACK_EMPTY (G_M55297_IG01,ins#0,ofs#0) label | |
__prolog: | |
IN0001: push {r11,lr} | |
IN0002: mov r11, sp | |
*************** In genFnPrologCalleeRegArgs() for int regs | |
*************** In genEnregisterIncomingStackArgs() | |
G_M55297_IG01: ; offs=000000H, funclet=00 | |
*************** In genFnEpilog() | |
__epilog: | |
gcVarPtrSetCur=00000000 {}, gcRegGCrefSetCur=0000 {}, gcRegByrefSetCur=0000 {} | |
IN0003: pop {r11,pc} | |
G_M55297_IG02: ; offs=000000H, funclet=00 | |
0 prologs, 1 epilogs, 0 funclet prologs, 0 funclet epilogs | |
*************** After prolog / epilog generation | |
G_M55297_IG01: ; func=00, offs=000000H, size=0006H, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG | |
G_M55297_IG02: ; offs=000006H, size=0004H, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc | |
*************** In emitJumpDistBind() | |
Hot code size = 0xA bytes | |
Cold code size = 0x0 bytes | |
reserveUnwindInfo(isFunclet=FALSE, isColdCode=FALSE, unwindSize=0x8) | |
*************** In emitEndCodeGen() | |
*************************************************************************** | |
Instructions as they come out of the scheduler | |
G_M55297_IG01: ; func=00, offs=000000H, size=0006H, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG | |
IN0001: 000000 E92D 4800 push {r11,lr} | |
IN0002: 000004 46EB mov r11, sp | |
G_M55297_IG02: ; func=00, offs=000006H, size=0004H, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc | |
IN0003: 000006 E8BD 8800 pop {r11,pc} | |
Allocated method code size = 10 , actual size = 10 | |
*************** After end code gen, before unwindEmit() | |
G_M55297_IG01: ; func=00, offs=000000H, size=0006H, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG | |
IN0001: 000000 push {r11,lr} | |
IN0002: 000004 mov r11, sp | |
G_M55297_IG02: ; offs=000006H, size=0004H, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc | |
IN0003: 000006 pop {r11,pc} | |
Unwind Info: | |
>> Start offset : 0x000000 (not in unwind data) | |
>> End offset : 0x00000a (not in unwind data) | |
Code Words : 1 | |
Epilog Count : 0 | |
F bit : 0 | |
E bit : 1 | |
X bit : 0 | |
Vers : 0 | |
Function Length : 5 (0x00005) Actual length = 10 (0x00000a) | |
--- One epilog, unwind codes at 0 | |
---- Unwind codes ---- | |
---- Epilog start at index 0 ---- | |
A8 00 pop {r11,lr} ; opsize 32 | |
FF end | |
FF end | |
allocUnwindInfo(pHotCode=0xB1DBB460, pColdCode=0x00000000, startOffset=0x0, endOffset=0xa, unwindSize=0x8, pUnwindBlock=0x000901C2, funKind=0 (main function)) | |
*************** In genIPmappingGen() | |
IP mapping count : 3 | |
IL offs PROLOG : 0x00000000 ( STACK_EMPTY ) | |
IL offs 0x0000 : 0x00000006 ( STACK_EMPTY ) | |
IL offs EPILOG : 0x00000006 ( STACK_EMPTY ) | |
*************** In genSetScopeInfo() | |
VarLocInfo count is 1 | |
*************** Variable debug info | |
1 vars | |
0( UNKNOWN) : From 00000000h to 00000006h, in r0 | |
*************** In gcInfoBlockHdrSave() | |
Set code length to 10. | |
Set ReturnKind to Scalar. | |
Set stack base register to r11. | |
Set Outgoing stack arg area size to 0. | |
Defining 0 call sites: | |
Allocations for Test:LongId(long):long (MethodHash=0f9627fe) | |
count: 142, size: 17688, max = 2560 | |
allocateMemory: 65536, nraUsed: 26588 | |
Alloc'd bytes by kind: | |
kind | size | pct | |
---------------------+------------+-------- | |
AssertionProp | 0 | 0.00% | |
ASTNode | 544 | 3.08% | |
InstDesc | 2056 | 11.62% | |
ImpStack | 0 | 0.00% | |
BasicBlock | 388 | 2.19% | |
fgArgInfo | 0 | 0.00% | |
fgArgInfoPtrArr | 0 | 0.00% | |
FlowList | 0 | 0.00% | |
TreeStatementList | 0 | 0.00% | |
SiScope | 84 | 0.47% | |
FlatFPStateX87 | 0 | 0.00% | |
DominatorMemory | 32 | 0.18% | |
LSRA | 0 | 0.00% | |
LSRA_Interval | 0 | 0.00% | |
LSRA_RefPosition | 0 | 0.00% | |
Reachability | 8 | 0.05% | |
SSA | 180 | 1.02% | |
ValueNumber | 4140 | 23.41% | |
LvaTable | 1544 | 8.73% | |
UnwindInfo | 16 | 0.09% | |
hashBv | 20 | 0.11% | |
bitset | 64 | 0.36% | |
FixedBitVect | 0 | 0.00% | |
AsIAllocator | 5916 | 33.45% | |
IndirAssignMap | 0 | 0.00% | |
FieldSeqStore | 0 | 0.00% | |
ZeroOffsetFieldMap | 0 | 0.00% | |
ArrayInfoMap | 0 | 0.00% | |
HeapPhiArg | 0 | 0.00% | |
CSE | 512 | 2.89% | |
GC | 912 | 5.16% | |
CorSig | 0 | 0.00% | |
Inlining | 56 | 0.32% | |
ArrayStack | 0 | 0.00% | |
DebugInfo | 88 | 0.50% | |
DebugOnly | 1100 | 6.22% | |
Codegen | 0 | 0.00% | |
LoopOpt | 0 | 0.00% | |
LoopHoist | 0 | 0.00% | |
Unknown | 28 | 0.16% | |
****** DONE compiling Test:LongId(long):long |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment