Skip to content

Instantly share code, notes, and snippets.

@gskachkov
Created July 30, 2015 20:24
Show Gist options
  • Save gskachkov/7e7afc08c3654b8bf6cc to your computer and use it in GitHub Desktop.
Save gskachkov/7e7afc08c3654b8bf6cc to your computer and use it in GitHub Desktop.
Arrow function #2
>>> load('LayoutTests/js/regress/script-tests/arrowfunction-afcall.js')
DFG(Driver) compiling #BUN2VQ:[0x104edf708->0x104edf4b0->0x104c43e00, NoneFunctionCall, 12 (NeverInline)] with DFGMode, number of instructions = 12
Deferring DFG compilation of #BUN2VQ:[0x104edf708->0x104edf4b0->0x104c43e00, NoneFunctionCall, 12 (NeverInline)] with queue length 0.
DFG(Plan) compiling #BUN2VQ:[0x104edf708->0x104edf4b0->0x104c43e00, NoneFunctionCall, 12 (NeverInline)] with DFGMode, number of instructions = 12
Compiler must handle OSR entry from bc#0 with values: arg2:Int32: 2 arg1:Int32: 1 arg0:Cell: 0x104c3f800 (0x104c708e0:[global, {parseInt:100, Object:101, Function:102, Array:103, RegExp:104, EvalError:105, RangeError:106, ReferenceError:107, SyntaxError:108, TypeError:109, URIError:110, Promise:111, Set:112, Map:113, Date:114, String:115, Symbol:116, Boolean:117, Number:118, Error:119, ArrayBuffer:120, WeakMap:121, WeakSet:122, eval:123DFG(Driver) compiling , <global>Intl#:Cih8E0124:[, 0x104edf960JSON->:0x104edf258125->, 0x104c60100Math, :None126Global, , Reflect234:]127 with , DFGModeDataView, number of instructions = :234128
, Deferring DFG compilation of Float64Array<global>:#129Cih8E0, :[Float32Array0x104edf960:->1300x104edf258, ->Uint32Array0x104c60100:, 131None, GlobalInt32Array, :234132], with queue length Uint16Array0:.
133, Int16Array:134, Uint8ClampedArray:135, Uint8Array:136, Int8Array:137, console:138, debug:139, describe:140, describeArray:141, print:142, quit:143, gc:144, fullGC:145, edenGC:146, gcHeapSize:147, deleteAllCompiledCode:148, addressOf:149, version:150, run:151, load:152, readFile:153, checkSyntax:154, jscStack:155, readline:156, preciseTime:157, neverInlineFunction:158, noInline:159, numberOfDFGCompiles:160, optimizeNextInvocation:161, reoptimizationRetryCount:162, transferArrayBuffer:163, Root:164, Element:165, getElement:166, setElementRoot:167, DFGTrue:168, OSRExit:169, isFinalTier:170, predictInt32:171, isInt32:172, fiatInt52:173, effectful42:174, makeMasquerader:175, hasCustomProperties:176, createProxy:177, createRuntimeArray:178, createImpureGetter:179, setImpureGetterDelegate:180, dumpTypesForAllVariables:181, findTypeForExpression:182, returnTypeFor:183, dumpBasicBlockExecutionRanges:184, hasBasicBlockExecuted:185, enableExceptionFuzz:186, arguments:187}, NonArray, Proto:0x104c5fff0]), ID: 414
Allocating another allocator region.
Phase CPS rethreading changed the IR.
Phase unification changed the IR.
Phase prediction injection changed the IR.
Phase static execution count estimation changed the IR.
Phase backwards propagation changed the IR.
Phase prediction propagation changed the IR.
Phase fixup changed the IR.
Phase structure registration changed the IR.
Phase invalidation point injection changed the IR.
Phase control flow analysis changed the IR.
Phase tier-up check injection changed the IR.
Phase fast store barrier insertion changed the IR.
Phase dead code elimination changed the IR.
Phase phantom insertion changed the IR.
Phase stack layout changed the IR.
Phase virtual register allocation changed the IR.
Phase watchpoint collection changed the IR.
Graph after optimization:
DFG for #BUN2VQ:[0x104edf708->0x104edf4b0->0x104c43e00, DFGFunctionCall, 12 (NeverInline)]:
Fixpoint state: FixpointConverged; Form: ThreadedCPS; Unification state: GloballyUnified; Ref count state: ExactRefCount
Arguments: -, @1, @2
Block #0 (bc#0): (OSR target)
Execution count: 1.000000
Predecessors:
Successors:
Dominated by: #0
Dominates: #0
Dominance Frontier:
Iterated Dominance Frontier:
States: StructuresAreWatched
Vars Before: arg2:(Int32) arg1:(Int32) arg0:(Top, TOP, TOP)
Intersected Vars Before: arg2:(Int32) arg1:(Int32) arg0:(Top, TOP, TOP)
Var Links: arg2:@2 arg1:@1
1:< 2:-> SetArgument(IsFlushed, arg1(B<BoolInt32>/FlushedInt32), machine:arg1, W:SideState, bc#0) predicting Boolint32
2:< 2:-> SetArgument(IsFlushed, arg2(C<Int32>/FlushedInt32), machine:arg2, W:SideState, bc#0) predicting Nonboolint32
3:< 2:loc0> JSConstant(JS|PureInt, Other, Undefined, bc#0)
4:<!0:-> MovHint(@3, MustGen, loc0, W:SideState, bc#0)
6:<!0:-> MovHint(@3, MustGen, loc1, W:SideState, bc#0)
9:< 1:loc0> JSConstant(JS|PureInt, Otherobj, Weak:Cell: 0x104c3f800 (%Dl:global), ID: 414, bc#1)
10:<!0:-> MovHint(@9, MustGen, loc0, W:SideState, bc#1)
12:<!1:loc0> GetLocal(@1, JS|MustGen|UseAsOther, Boolint32, arg1(B<BoolInt32>/FlushedInt32), machine:arg1, R:Stack(6), bc#3) predicting Boolint32
13:<!1:loc1> GetLocal(@2, JS|MustGen|UseAsOther, Nonboolint32, arg2(C<Int32>/FlushedInt32), machine:arg2, R:Stack(7), bc#3) predicting Nonboolint32
14:<!2:loc1> ArithAdd(Int32:@12, Int32:@13, JS|MustGen|UseAsOther, Int32, CheckOverflow, bc#3)
15:<!0:-> MovHint(@14, MustGen, loc2, W:SideState, bc#3)
24:<!0:-> CheckTierUpAtReturn(MustGen, W:SideState, bc#8)
17:<!0:-> Return(@14, MustGen, W:SideState, bc#8)
18:<!0:-> Flush(@2, MustGen|IsFlushed, arg2(C<Int32>/FlushedInt32), machine:arg2, R:Stack(7), W:SideState, bc#8) predicting Nonboolint32
19:<!0:-> Flush(@1, MustGen|IsFlushed, arg1(B<BoolInt32>/FlushedInt32), machine:arg1, R:Stack(6), W:SideState, bc#8) predicting Boolint32
States: InvalidBranchDirection, StructuresAreWatched, CFAInvalidated
Vars After:
Var Links: arg2:@13 arg1:@12
GC Values:
Weak:Cell: 0x104c3f800 (%Dl:global), ID: 414
Weak:Cell: 0x104c58d00 (%EH:ArrowFunction), ID: 415
Structures:
%Dl:global = 0x104c708e0:[global, {parseInt:100, Object:101, Function:102, Array:103, RegExp:104, EvalError:105, RangeError:106, ReferenceError:107, SyntaxError:108, TypeError:109, URIError:110, Promise:111, Set:112, Map:113, Date:114, String:115, Symbol:116, Boolean:117, Number:118, Error:119, ArrayBuffer:120, WeakMap:121, WeakSet:122, eval:123, Intl:124, JSON:125, Math:126, Reflect:127, DataView:128, Float64Array:129, Float32Array:130, Uint32Array:131, Int32Array:132, Uint16Array:133, Int16Array:134, Uint8ClampedArray:135, Uint8Array:136, Int8Array:137, console:138, debug:139, describe:140, describeArray:141, print:142, quit:143, gc:144, fullGC:145, edenGC:146, gcHeapSize:147, deleteAllCompiledCode:148, addressOf:149, version:150, run:151, load:152, readFile:153, checkSyntax:154, jscStack:155, readline:156, preciseTime:157, neverInlineFunction:158, noInline:159, numberOfDFGCompiles:160, optimizeNextInvocation:161, reoptimizationRetryCount:162, transferArrayBuffer:163, Root:164, Element:165, getElement:166, setElementRoot:167, DFGTrue:168, OSRExit:169, isFinalTier:170, predictInt32:171, isInt32:172, fiatInt52:173, effectful42:174, makeMasquerader:175, hasCustomProperties:176, createProxy:177, createRuntimeArray:178, createImpureGetter:179, setImpureGetterDelegate:180, dumpTypesForAllVariables:181, findTypeForExpression:182, returnTypeFor:183, dumpBasicBlockExecutionRanges:184, hasBasicBlockExecuted:185, enableExceptionFuzz:186, arguments:187}, NonArray, Proto:0x104c5fff0]
%EH:ArrowFunction = 0x104c70870:[ArrowFunction, {prototype:100}, NonArray, Proto:0x104c31e20]
SpeculativeJIT generating Node @1 (bc#0) at JIT offset 0x41
SpeculativeJIT generating Node @2 (bc#0) at JIT offset 0x41
SpeculativeJIT generating Node @3 (bc#0) at JIT offset 0x41
SpeculativeJIT generating Node @4 (bc#0) at JIT offset 0x41
SpeculativeJIT generating Node @6 (bc#0) at JIT offset 0x41
SpeculativeJIT generating Node @9 (bc#1) at JIT offset 0x41
SpeculativeJIT generating Node @10 (bc#1) at JIT offset 0x41
SpeculativeJIT generating Node @12 (bc#3) at JIT offset 0x41
SpeculativeJIT generating Node @13 (bc#3) at JIT offset 0x44
SpeculativeJIT generating Node @14 (bc#3) at JIT offset 0x47
SpeculativeJIT generating Node @15 (bc#3) at JIT offset 0x4f
SpeculativeJIT generating Node @24 (bc#8) at JIT offset 0x4f
SpeculativeJIT generating Node @17 (bc#8) at JIT offset 0x80
Bailing compilation.
OSR Entries:
bc#0, machine code offset = 65, stack rules = [arg2:(Int32) (maps to arg2), arg1:(Int32) (maps to arg1), arg0:(Top, TOP, TOP) (maps to this), loc0:(Top, TOP, TOP) (ignored), loc1:(Top, TOP, TOP) (ignored), loc2:(Top, TOP, TOP) (ignored), loc3:(Top, TOP, TOP) (ignored)], machine stack used = ---------------------------------------------------------------
DFG(Plan) compiling <global>#Cih8E0:[0x104edf960->0x104edf258->0x104c60100, NoneGlobal, 234] with DFGMode, number of instructions = 234
Compiler must handle OSR entry from bc#97 with values: arg0:Cell: 0x104c82ba0 (0x104c71520:[JSProxy, {}, NonArray, Proto:0x104c5fff0]), ID: 386 loc0:Cell: 0x104c3f800 (0x104c708e0:[global, {parseInt:100, Object:DFG(Driver) compiling 101, #FunctionBUN2VQ::[1020x104edfbb8, ->Array0x104edf4b0:->1030x104c43e00, , RegExpNone:Function104Call, , EvalError12: (NeverInline)105], with RangeErrorFTLMode:, number of instructions = 10612,
ReferenceError:107, SyntaxError:108, TypeError:109, URIError:110, Promise:111, Set:112, Map:113, Date:114, Deferring DFG compilation of String:#115BUN2VQ, :[Symbol0x104edfbb8:->1160x104edf4b0, ->Boolean0x104c43e00:, 117None, FunctionNumberCall:, 11812, (NeverInline)Error]: with queue length 1190, .
ArrayBuffer:120, WeakMap:DFG(Plan) compiling 121, #WeakSetBUN2VQ::[1220x104edfbb8, ->eval0x104edf4b0:->1230x104c43e00, , IntlNone:Function124Call, , JSON12: (NeverInline)125], with MathFTLMode:, number of instructions = 12612,
Reflect:127, DataView:128, Float64ArrayAllocating another allocator region.
:129, Float32Array:130, Uint32Array:131, Phase CPS rethreading changed the IR.
Int32ArrayPhase unification changed the IR.
:Phase prediction injection changed the IR.
132, Uint16Array:Phase static execution count estimation changed the IR.
133Phase backwards propagation changed the IR.
, Phase prediction propagation changed the IR.
Int16ArrayPhase fixup changed the IR.
:Phase structure registration changed the IR.
134Phase invalidation point injection changed the IR.
, Uint8ClampedArray:135, Uint8Array:136, Int8Array:137Phase control flow analysis changed the IR.
, console:138, debug:139, describe:140, describeArray:141, print:142, quit:143, Phase SSA conversion changed the IR.
gcPhase SSA lowering changed the IR.
:144, fullGC:145, edenGC:146, gcHeapSize:147, deleteAllCompiledCode:148, addressOf:149, version:Phase PutStack sinking changed the IR.
150Phase constant hoisting changed the IR.
, run:151, load:152, readFile:153, checkSyntax:154, jscStack:Phase liveness analysis changed the IR.
155, readline:156, preciseTime:157, Phase liveness analysis changed the IR.
neverInlineFunction:158Phase control flow analysis changed the IR.
, Phase liveness analysis changed the IR.
noInline:159Phase OSR availability analysis changed the IR.
, numberOfDFGCompiles:160, optimizeNextInvocation:161, reoptimizationRetryCount:162, transferArrayBuffer:163, Root:164, Element:165, getElement:166, setElementRoot:167, DFGTrue:168, OSRExit:169, isFinalTier:170, predictInt32:Phase liveness analysis changed the IR.
171Phase control flow analysis changed the IR.
, Phase global store barrier insertion changed the IR.
isInt32Phase MovHint removal changed the IR.
:Phase dead code elimination changed the IR.
172Phase stack layout changed the IR.
, Phase liveness analysis changed the IR.
fiatInt52Phase OSR availability analysis changed the IR.
:Phase watchpoint collection changed the IR.
173Graph just before FTL lowering:,
effectful42
:DFG for 174, #makeMasqueraderBUN2VQ::[1750x104edfbb8, ->hasCustomProperties0x104edf4b0:->1760x104c43e00, , createProxyDFG:Function177Call, , createRuntimeArray12: (NeverInline)178], :
createImpureGetter Fixpoint state: :FixpointConverged179; Form: , SSAsetImpureGetterDelegate; Unification state: :GloballyUnified180; Ref count state: , ExactRefCountdumpTypesForAllVariables
: Argument formats: 181FlushedJSValue, , findTypeForExpressionFlushedInt32:, 182FlushedInt32,
returnTypeFor
:183Block , #dumpBasicBlockExecutionRanges0: (184bc#, 0hasBasicBlockExecuted)::185 (OSR target),
enableExceptionFuzz: Execution count: 1861.000000,
arguments: Predecessors:187
}, NonArray Successors:, Proto:
0x104c5fff0] Dominated by: )#, ID: 0414
Dominates: #0
Dominance Frontier:
Iterated Dominance Frontier:
States: StructuresAreWatched
Availability: {locals = arg2:arg2:FlushedInt32/Unavailable arg1:arg1:FlushedInt32/Unavailable arg0:this:FlushedJSValue/Unavailable; heap = }
Live:
Values:
25:< 1:-> GetStack(JS|PureInt, Boolint32, arg1, machine:arg1, FlushedInt32, R:Stack(6), bc#0)
26:< 1:-> GetStack(JS|PureInt, Nonboolint32, arg2, machine:argPhase CPS rethreading changed the IR.
2Phase unification changed the IR.
, Phase prediction injection changed the IR.
FlushedInt32Phase static execution count estimation changed the IR.
, Phase backwards propagation changed the IR.
R:Stack(7), bc#0)
Phase prediction propagation changed the IR.
27:<!0:-> KillStack(MustGen, loc0Phase fixup changed the IR.
Phase structure registration changed the IR.
Phase invalidation point injection changed the IR.
, W:SideState, bc#0)
4:<!0:Phase local common subexpression elimination changed the IR.
-> ZombieHint(MustGenPhase control flow analysis changed the IR.
, Phase constant folding changed the IR.
locFTL rejecting 0<global>, #W:Cih8E0SideState:[, 0x104edf960bc#->00x104edf258)->
0x104c60100, 28:<!0:None-Global> , KillStack234(]MustGen because it doesn't belong to a function.
, locPhase fast store barrier insertion changed the IR.
1Phase dead code elimination changed the IR.
, W:SideState, bc#0)
6:<!0:-> ZombieHint(MustGenPhase phantom insertion changed the IR.
, Phase stack layout changed the IR.
locPhase virtual register allocation changed the IR.
1Phase watchpoint collection changed the IR.
, Graph after optimization:W:
SideState
, DFG for bc#<global>0#)Cih8E0
:[0x104edf960 29:<!0:->-0x104edf258> ->KillStack0x104c60100(, MustGenDFG, Globalloc, 0234, ]W::
SideState Fixpoint state: , FixpointConvergedbc#; Form: 1ThreadedCPS); Unification state:
GloballyUnified; Ref count state: 10:<!0:ExactRefCount-
> Arguments: ZombieHint@(0MustGen
,
loc0Block , #W:0SideState (, bc#bc#01):)
(OSR target)
14:<!2:- Execution count: > 1.000000ArithAdd
(Int32 Predecessors::
Kill:@ Successors:25 , #Int321: Kill:#@426
, JS|MustGen|UseAsOther Dominated by: , #Int320,
CheckOverflow, Dominates: bc##30)
#1 30:<!0: -#> 2KillStack (#MustGen3, loc#24
Dominance Frontier:
Iterated Dominance Frontier:
States: StructuresAreWatched
Vars Before: arg0:(Top, TOP, TOP)
Intersected Vars Before: arg0:(Top, TOP, TOP)
Var Links: arg0:@0
0:< 1:-> SetArgument(this(a), machine:this, W:SideState, bc#0) predicting None
1:< 2:loc1> JSConstant(JS|PureInt, Other, Undefined, bc#0)
2:<!0:-> MovHint(@1, MustGen, loc0, W:SideState, bc#0)
4:< 1:loc2> GetCallee(JS|UseAsOther, Function, R:, Stack(3)W:, SideStatebc#, 1bc#)3
)
5:< 3:loc 15:<!0:2-> > GetScopeMovHint((KnownCell@:14@, 4MustGen, , JS|UseAsOtherloc, 2Otherobj, , W:bc#SideState1, )
6:<!0:-> MovHint(bc#@35),
MustGen, 17:<!0:loc-0> Return(Kill:@14, MustGen, W:SideState, bc#8)
States: InvalidBranchDirection, StructuresAreWatched, CFAInvalidated
Availability: {locals = arg2:arg, 2W::SideStateFlushedInt32, /bc#@126)
9:<!0:-> MovHint(@1, MustGen, loc1, W:SideState, bc#3)
11:< 11:loc1> JSConstant(JS|UseAsOther, Otherobj, Weak:Cell: 0x104c3f800 (%Dl:global), ID: 414, bc#6)
12:<!0:-> MovHint(@11, MustGen, loc2, W:SideState, bc#6)
14:<!2:loc3> GetLocal(@0, JS|MustGen|UseAsOther, this(a), machine:this, R:Stack(5), bc#13) predicting None
140:<!0:-> Checkarg(1Check::Otherarg:@14, MustGen, bc#13)
15:< 3:loc13:> FlushedInt32NewArrowFunction/(@Cell25: @arg50, :Check:thisCell::FlushedJSValue@/14Unavailable, JS|UseAsOtherloc, 2Function:ConflictingFlush/, @R:14HeapObjectCount; heap = , }W:
HeapObjectCount,Watchpoint_fire Live: , bc#
13 Values: )
16:<!0:GC Values:
- > WeakMovHint:(Cell: @0x104c3f80015 (, MustGen, loc3, W:SideState, bc#13)
149:<!0:-> InvalidationPoint(MustGen, W:SideState, bc#13, exit: bc#18)
152:<!0:-> StoreBarrier(Check:Cell:@11, MustGen, W:SideState, bc#18)
19:<!0:-> PutGlobalVar(Check:Cell:@11, @15, MustGen%, Dlglobal:scopeglobal38)(, ID: 0x104fe65b0414)
Weak, :W:Cell: Absolute(4378748336)0x104c58d00, (bc#18%)EH
:ArrowFunction 20:<!0:)-, ID: > 415NotifyWrite
(MustGenStructures:,
0x104ffca00, W:%Dl:globalWatchpoint_fire,SideState , bc# 18 )
154:<!0: = -0x104c708e0> :[Phantomglobal(, {@parseInt15:, 100MustGen, , Objectbc#:18101),
Function: 155:<!0:102-, > ArrayPhantom:(103@, 11RegExp, :MustGen104, , bc#EvalError18:)105
, RangeError 150:<!0::-106> , InvalidationPointReferenceError(:MustGen107, , W:SyntaxErrorSideState:, 108bc#, 25TypeError):
109, 23:<!0:URIError-:> 110MovHint, (Promise@:11111, , MustGenSet, :loc1124, , MapW::SideState113, , bc#Date25:)114
, String 26:<!0::-115> , CheckStructureSymbol(:Check:116Cell, :Boolean@:11117, , MustGenNumber, :[118%, DlError::global119], , ArrayBufferR::JSCell_structureID120, , bc#WeakMap32:)
29:< 2:loc3> JSConstant121(, JS|UseAsOtherWeakSet, :Function122, , Weakeval::Cell: 1230x104c59240, (Intl:%124D1, :JSONFunction:)125, ID: , 44Math, :bc#12632, )Reflect
:127 30:<!0:, -DataView> :MovHint128(, @Float64Array29:, 129MustGen, , Float32Arrayloc:2130, , W:Uint32ArraySideState:, 131bc#, 32Int32Array):
132, 33:<!0:Uint16Array-:> 133MovHint, (Int16Array@:11134, , MustGenUint8ClampedArray, :loc1353, , Uint8ArrayW::SideState136, , bc#Int8Array40:)137
, console 36:< 2::loc1384, debug:139, describe:140, describeArray:141> , JSConstantprint(:JS|UseAsOther142, , Functionquit, :Weak143:, Cell: gc0x104c58d00: (144%, EHfullGC::ArrowFunction145), , ID: edenGC415:, 146bc#, 47gcHeapSize):
147, 37:<!0:deleteAllCompiledCode-:> 148MovHint, (addressOf@:36149, , version:150, run:151, MustGenload, :loc1523, , readFile:153, checkSyntax:154, W:jscStackSideState:155, readline:156, preciseTime:157, , bc#neverInlineFunction47:)158
, noInline 39:<!2::loc1594, > numberOfDFGCompilesCall:(160@, 29optimizeNextInvocation, :@16111, , reoptimizationRetryCount@:36162, , JS|MustGen|VarArgs|UseAsOthertransferArrayBuffer, :Other163, , R:RootWorld:, 164W:, HeapElement, :bc#16555, )getElement predicting :Other166
, setElementRoot 40:<!0::-167> , MovHintDFGTrue(:@16839, , OSRExitMustGen:, 169loc, 1isFinalTier, :W:170SideState, , predictInt32bc#:55171),
isInt32: 151:<!0:172-, > fiatInt52InvalidationPoint:(173MustGen, , effectful42W::SideState174, , bc#makeMasquerader55:, 175exit: , bc#hasCustomProperties64:)176
, createProxy 41:< 2::-177> , SetLocalcreateRuntimeArray(:@17839, , createImpureGetterloc:1179(, KsetImpureGetterDelegate~:<Other>180/, FlushedJSValuedumpTypesForAllVariables):, 181machine:, locfindTypeForExpression0:, 182W:, Stack(-2)returnTypeFor, :bc#18355, , dumpBasicBlockExecutionRangesexit: :bc#18464, )hasBasicBlockExecuted predicting :Other185
, enableExceptionFuzz 43:<!0::-186> , MovHintarguments(:@18711}, , NonArrayMustGen, Proto:, 0x104c5fff0loc]2
, W: SideState%EH:ArrowFunction, = bc#0x104c7087064:[)ArrowFunction
, {prototype 45:< 5::loc1004}, > NonArrayJSConstant, Proto:(0x104c31e20JS|UseAsOther],
Boolint32
, Int32: 0, bc#71)
141:<!0:-> Check(Check:Int32:@45, MustGen, bc#71)
47:<!0:-> PutGlobalVar(Check:Cell:@11, @45, MustGen, globalscope39(0x104fe65b8), W:Absolute(4378748344), bc#71)
50:<!0:-> MovHint(@11, MustGen, loc2, W:SideState, bc#78)
54:<!0:-> MovHint(@45, MustGen, loc3, W:SideState, bc#85)
56:< 1:loc1> JSConstant(JS|UseAsOther, Nonboolint32, Int32: 1000000, bc#93)
57:< 1:loc1> CompareLess(Check:Int32:@45, Check:Int32:@56, Boolean|UseAsOther, Bool, bc#93)
58:<!0:-> Branch(Check:Boolean:@57, MustGen, T:#1/w:10.000000, F:#4/w:1.000000, W:SideState, bc#93)
156:<!0:-> Phantom(@45, MustGen, bc#93)
157:<!0:-> Phantom(@5, MustGen, bc#93)
States: InvalidBranchDirection, StructuresAreWatched, CFAInvalidated
Vars After:
Var Links: arg0:@14 loc1:@41
Block #1 (bc#97): (OSR target)
Execution count: 10.000000
Predecessors: #0 #3
Successors: #2 #3
Dominated by: #0 #1
Dominates: #1 #2 #3
Dominance Frontier: #1 #4
Iterated Dominance Frontier: #1 #4
Loop header, contains: #1 #3
Containing loop headers: #1
Phi Nodes: @139<loc1,1>->(@138, @41)
States: StructuresAreWatched
Vars Before:
Intersected Vars Before:
Var Links: loc1:@139
59:<!0:-> LoopHint(MustGen, W:SideState, bc#97)
60:< 6:loc2> JSConstant(JS|UseAsOther, Otherobj, Weak:Cell: 0x104c3f800 (%Dl:global), ID: 414, bc#98)
61:<!0:-> MovHint(@60, MustGen, loc2, W:SideState, bc#98)
64:<!0:-> MovHint(@60, MustGen, loc6, W:SideState, bc#105)
67:< 2:loc4> JSConstant(JS|UseAsOther, Function, Weak:Cell: 0x104c58d00 (%EH:ArrowFunction), ID: 415, bc#112)
68:<!0:-> MovHint(@67, MustGen, loc3, W:SideState, bc#112)
70:< 2:loc1> JSConstant(JS|UseAsOther, Boolint32, Int32: 1, bc#120)
71:<!0:-> MovHint(@70, MustGen, loc5, W:SideState, bc#120)
73:< 2:loc3> JSConstant(JS|UseAsOther, Nonboolint32, Int32: 2, bc#123)
74:<!0:-> MovHint(@73, MustGen, loc4, W:SideState, bc#123)
76:<!6:loc3> Call(@67, @60, @70, @73, JS|MustGen|VarArgs|UseAsOther, Nonboolint32, R:World, W:Heap, bc#126) predicting Nonboolint32
77:<!0:-> MovHint(@76, MustGen, loc3, W:SideState, bc#126)
148:<!0:-> InvalidationPoint(MustGen, W:SideState, bc#126, exit: bc#135)
142:<!0:-> Check(Check:Int32:@76, MustGen, bc#135)
153:<!0:-> StoreBarrier(Check:Cell:@60, MustGen, W:SideState, bc#135)
80:<!0:-> PutGlobalVar(Cell:@60, @76, MustGen, globalscope40(0x104fe65c0), W:Absolute(4378748352), bc#135)
83:<!0:-> MovHint(@60, MustGen, loc2, W:SideState, bc#142)
87:<!0:-> MovHint(@76, MustGen, loc3, W:SideState, bc#149)
89:< 1:loc2> JSConstant(JS|UseAsOther, Nonboolint32, Int32: 3, bc#157)
90:< 1:loc2> CompareEq(Int32:@76, Int32:@89, Boolean|UseAsOther, Bool, bc#157)
91:< 2:loc2> LogicalNot(Boolean:@90, Boolean|UseAsOther, Bool, bc#157)
158:<!0:-> Phantom(@76, MustGen, bc#157)
92:<!0:-> MovHint(@91, MustGen, loc3, W:SideState, bc#157)
94:<!0:-> Branch(Boolean:@91, MustGen, T:#2/w:1.000000, F:#3/w:10.000000, W:SideState, bc#161)
States: TakeBoth, StructuresAreWatched
Vars After: loc2:(Otherobj, TOP, TOP, Cell: 0x104c3f800 (%Dl:global), ID: 414) loc3:(Bool) loc4:(Nonboolint32, Int32: 2) loc5:(Boolint32, Int32: 1) loc6:(Otherobj, TOP, TOP, Cell: 0x104c3f800 (%Dl:global), ID: 414)
Var Links: loc1:@139
Block #2 (bc#164):
Execution count: 1.000000
Predecessors: #1
Successors:
Dominated by: #0 #1 #2
Dominates: #2
Dominance Frontier:
Iterated Dominance Frontier:
States: StructuresAreWatched
Vars Before:
Intersected Vars Before:
Var Links:
95:< 3:loc2> JSConstant(JS|UseAsOther, Stringident, Strong:String (atomic) (identifier): Error: bad result: , ID: 4, bc#164)
96:<!0:-> MovHint(@95, MustGen, loc2, W:SideState, bc#164)
98:< 2:loc3> JSConstant(JS|UseAsOther, Otherobj, Weak:Cell: 0x104c3f800 (%Dl:global), ID: 414, bc#167)
99:<!0:-> MovHint(@98, MustGen, loc3, W:SideState, bc#167)
102:<!0:-> ForceOSRExit(MustGen, W:SideState, bc#174)
103:< 3:loc1> GetGlobalVar(JS|UseAsOther, globalscope40(0x104fe65c0), R:Absolute(4378748352), bc#174) predicting None
159:<!0:-> Phantom(@98, MustGen, bc#174)
104:<!0:-> MovHint(@103, MustGen, loc4, W:SideState, bc#174)
143:<!0:-> Check(Check:String:@95, MustGen, bc#182)
144:<!1:loc3> ToPrimitive(@103, JS|MustGen|PureInt, R:World, W:Heap, bc#182)
145:<!1:loc3> ToString(@144, JS|MustGen|PureInt, String, R:World, W:Heap, bc#182)
106:< 2:loc3> MakeRope(Check:KnownString:@95, Check:KnownString:@145, JS|PureInt, bc#182)
160:<!0:-> Phantom(@103, MustGen, bc#182)
107:<!0:-> MovHint(@106, MustGen, loc2, W:SideState, bc#182)
147:<!0:-> InvalidationPoint(MustGen, W:SideState, bc#182, exit: bc#187)
109:<!0:-> Throw(@106, MustGen, W:SideState, bc#187)
110:<!0:-> Unreachable(MustGen, W:SideState, bc#187)
States: InvalidBranchDirection, StructuresAreWatched, CFAInvalidated
Vars After:
Var Links:
Block #3 (bc#189):
Execution count: 10.000000
Predecessors: #1
Successors: #1 #4
Dominated by: #0 #1 #3
Dominates: #3
Dominance Frontier: #1 #4
Iterated Dominance Frontier: #1 #4
Containing loop headers: #1
Phi Nodes: @138<loc1,2>->(@139)
States: StructuresAreWatched
Vars Before:
Intersected Vars Before:
Var Links: loc1:@138
111:< 3:loc3> JSConstant(JS|UseAsOther, Otherobj, Weak:Cell: 0x104c3f800 (%Dl:global), ID: 414, bc#189)
112:<!0:-> MovHint(@111, MustGen, loc2, W:SideState, bc#189)
115:< 2:loc1> GetGlobalVar(JS|PureNum|UseAsOther, Nonboolint32, globalscope39(0x104fe65b8), R:Absolute(4378748344), bc#196) predicting Nonboolint32
116:<!0:-> MovHint(@115, MustGen, loc3, W:SideState, bc#196)
118:< 1:loc2> JSConstant(JS|PureNum|UseAsOther, Boolint32, Int32: 1, bc#204)
119:<!4:loc2> ArithAdd(Check:Int32:@115, Int32:@118, Number|MustGen|UseAsOther, Int32, CheckOverflow, bc#204)
120:<!0:-> MovHint(@119, MustGen, loc3, W:SideState, bc#204)
123:<!0:-> PutGlobalVar(Cell:@111, @119, MustGen, globalscope39(0x104fe65b8), W:Absolute(4378748344), bc#206)
126:<!0:-> MovHint(@111, MustGen, loc2, W:SideState, bc#213)
130:<!0:-> MovHint(@119, MustGen, loc3, W:SideState, bc#220)
132:< 1:loc3> JSConstant(JS|UseAsOther, Nonboolint32, Int32: 1000000, bc#228)
133:< 1:loc3> CompareLess(Int32:@119, Int32:@132, Boolean|UseAsOther, Bool, bc#228)
134:<!0:-> Branch(Boolean:@133, MustGen, T:#1/w:10.000000, F:#4/w:1.000000, W:SideState, bc#228)
States: TakeBoth, StructuresAreWatched
Vars After: loc2:(Otherobj, TOP, TOP, Cell: 0x104c3f800 (%Dl:global), ID: 414) loc3:(Int32)
Var Links: loc1:@138
Block #4 (bc#232):
Execution count: 1.000000
Predecessors: #0 #3
Successors:
Dominated by: #0 #4
Dominates: #4
Dominance Frontier:
Iterated Dominance Frontier:
Phi Nodes: @137<loc1,1>->(@138, @41)
States: StructuresAreWatched
Vars Before:
Intersected Vars Before:
Var Links: loc1:@137
135:<!1:loc3> GetLocal(@137, JS|MustGen|UseAsOther, Other, loc1(K~<Other>/FlushedJSValue), machine:loc0, R:Stack(-2), bc#232) predicting Other
136:<!0:-> Return(@135, MustGen, W:SideState, bc#232)
States: InvalidBranchDirection, StructuresAreWatched, CFAInvalidated
Vars After:
Var Links: loc1:@135
GC Values:
Strong:String (atomic) (identifier): Error: bad result: , ID: 4
Weak:Cell: 0x104c58d00 (%EH:ArrowFunction), ID: 415
Weak:Cell: 0x104c59240 (%D1:Function), ID: 44
Strong:Cell: 0x104c43e00 (%Ax:FunctionExecutable), ID: 16
Weak:Cell: 0x104c3f800 (Function ready, beginning lowering.
%Dl:global), ID: 414
Structures:
%Ax:FunctionExecutable = 0x104c23900:[FunctionExecutable, {}, NonArray]
%D1:Function = 0x104c22cc0:[Function, { OSR exit #name0: with availability: 100{locals = , arglength2::101arg}, 2NonArray:, Proto:FlushedJSValue0x104c31e20/]Unavailable
arg 1%Dl:global: arg 1 : FlushedJSValue / Unavailable arg 0 : this : = FlushedJSValue0x104c708e0/:[Unavailableglobal; heap = , {}parseInt
: Exit values: 100arg, 2Object::InJSStack:101arg, 2Function :arg1021, :ArrayInJSStack::arg1031, RegExparg:0104:, InJSStack:EvalErrorthis:
105, OSR exit #RangeError1: with availability: 106{locals = , argReferenceError2::107arg, 2SyntaxError::FlushedJSValue108/, UnavailableTypeError :arg1091, :URIErrorarg:1110:, FlushedJSValuePromise/:Unavailable111 , argSet0::112this, :MapFlushedJSValue:/113Unavailable, ; heap = Date}:
114, String:115 Exit values: , argSymbol2::116InJSStack:, argBoolean2: 117arg, 1Number::InJSStack:118arg, 1Error :arg1190, :ArrayBufferInJSStack::this120
, WeakMap:Compiling block 121#, 0WeakSet
:Lowering 122@, 25eval
:123, Intl:Lowering 124@, 26JSON
:Lowering 125@, 27Math
:Lowering 126@, 4Reflect
:Lowering 127@, 28DataView
:Lowering 128@, 6Float64Array
:Lowering 129@, 29Float32Array
:Lowering 130@, 10Uint32Array
:Lowering 131@, 14Int32Array
: OSR exit #1322, with availability: Uint16Array{locals = :arg1332, :Int16Arrayarg:2134:, FlushedInt32Uint8ClampedArray/:@13526, Uint8Arrayarg:1136:, argInt8Array1::137FlushedInt32, /console@:25138 , argdebug0::139this, :describeFlushedJSValue:/140Unavailable, ; heap = describeArray}:
141 Available recoveries: , @print26: => 142Sub, , quit0x7fd7c16048c8:, 1430x7fd7c16046a8, , gcInt32:
144 Exit values: , argfullGC2::145InJSStackAsInt32:, argedenGC2: 146arg, 1gcHeapSize::InJSStackAsInt32:147arg, 1deleteAllCompiledCode :arg1480, :addressOfInJSStack::this149 , locversion0::150Dead, runloc:1151:, Deadload :loc1522, :readFileDead: 153loc, 3checkSyntax::Dead154
, Lowering jscStack@:30155
, Lowering readline@:15156
, Lowering preciseTime@:17157
, LLVM IR for neverInlineFunction:#158BUN2VQ, :[noInline0x104edfbb8:->1590x104edf4b0, ->numberOfDFGCompiles0x104c43e00:, 160FTL, FunctionoptimizeNextInvocationCall:, 16112, (NeverInline)reoptimizationRetryCount]: 162after lowering, :
; ModuleID = 'jsBody_1__BUN2VQ'
define i64 @jsBody_1__BUN2VQ() #0 {
Prologue:
%0 = alloca [0 x i64]
%1 = ptrtoint [0 x i64]* %0 to i64
%2 = add i64 %1, 0
call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 0, i32 0, [0 x i64]* %0)
%3 = call i8* @llvm.frameaddress(i32 0)
%4 = ptrtoint i8* %3 to i64
%5 = add i64 %4, 16
%6 = inttoptr i64 %5 to i64*
store i64 4377672632, i64* %6, !tbaa !0
br i1 false, label %"Stack overflow", label %"Check arguments", !prof !3
"Stack overflow": ; preds = %Prologue
call void inttoptr (i64 4365721504 to void (i64, i64)*)(i64 %4, i64 4377672632)
call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 1, i32 5)
unreachable
"Handle Exceptions": ; No predecessors!
call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 2, i32 5)
unreachable
"Check arguments": ; preds = %Prologue
%7 = add i64 %4, 56
%8 = inttoptr i64 %7 to i64*
%9 = load i64* %8, !tbaa !4
%10 = icmp ult i64 %9, -281474976710656
br i1 %10, label %"OSR exit failCase for -", label %"OSR exit continuation for -", !prof !3
"OSR exit failCase for -": ; preds = %"Check arguments"
call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 3, i32 5, i64 %9)
unreachable
"OSR exit continuation for -": ; preds = %"Check arguments"
%11 = add i64 %4, 48
%12 = inttoptr i64 %11 to i64*
%13 = load i64* %12, !tbaa !5
%14 = icmp ult i64 %13, -281474976710656
br i1 %14, label %"OSR exit failCase for -1", label %"OSR exit continuation for -2", !prof !3
"OSR exit failCase for -1": ; preds = %"OSR exit continuation for -"
call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 4, i32 5, i64 %13)
unreachable
"OSR exit continuation for -2": ; preds = %"OSR exit continuation for -"
%15 = add i64 %4, 40
%16 = inttoptr i64 %15 to i64*
%17 = load i64* %16, !tbaa !6
br label %"Block #0"
"Block #0": ; preds = %"OSR exit continuation for -2"
%18 = trunc i64 %13 to i32
%19 = trunc i64 %9 to i32
%20 = call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 %18, i32 %19)
%21 = extractvalue { i32, i1 } %20, 0
%22 = extractvalue { i32, i1 } %20, 1
br i1 %22, label %"OSR exit failCase for @14", label %"OSR exit continuation for @14", !prof !3
"OSR exit failCase for @14": ; preds = %"Block #0"
call void (i64, i32, ...)* @llvm.experimental.stackmap(i64 5, i32 5)
unreachable
"OSR exit continuation for @14": ; preds = %"Block #0"
%23 = extractvalue { i32, i1 } %20, 0
%24 = zext i32 %23 to i64
%25 = add i64 %24, -281474976710656
ret i64 %25
}
declare void @llvm.experimental.stackmap(i64, i32, ...)
; Function Attrs: nounwind readnone
declare i8* @llvm.frameaddress(i32) #1
; Function Attrs: nounwind readnone
declare { i32, i1 } @llvm.sadd.with.overflow.i32(i32, i32) #1
attributes #0 = { "target-features"="-avx" }
attributes #1 = { nounwind readnone }
!0 = metadata !{metadata !"variables_2", metadata !1}
!1 = metadata !{metadata !"variables", metadata !2}
!2 = metadata !{metadata !"jscRoot"}
!3 = metadata !{metadata !"branch_weights", i32 0, i32 2147483647}
!4 = metadata !{metadata !"variables_7", metadata !1}
!5 = metadata !{metadata !"variables_6", metadata !1}
!6 = metadata !{metadata !"variables_5", metadata !1}
transferArrayBuffer:163, Root:164, Element:165, getElement:166, setElementRoot:167, DFGTrue:168, OSRExit:169, isFinalTier:170, predictInt32:171, isInt32:172, fiatInt52:173, effectful42:174, makeMasquerader:175, hasCustomProperties:176, createProxy:177, createRuntimeArray:178, createImpureGetter:179, setImpureGetterDelegate:180, dumpTypesForAllVariables:181, findTypeForExpression:182, returnTypeFor:183, dumpBasicBlockExecutionRanges:184, hasBasicBlockExecuted:185, enableExceptionFuzz:186, arguments:187}, NonArray, Proto:0x104c5fff0]
%EH:ArrowFunction = 0x104c70870LLVM IR for :[ArrowFunction#, {BUN2VQprototype:[:0x104edfbb8100->}, 0x104edf4b0NonArray->, Proto:0x104c43e000x104c31e20, ]FTL
Function
CallSpeculativeJIT generating Node @0 (bc#0) at JIT offset 0x2d,
12SpeculativeJIT generating Node @1 (bc#0) at JIT offset 0x2d (NeverInline)
]SpeculativeJIT generating Node @2 (bc#0) at JIT offset 0x2d
after optimizationSpeculativeJIT generating Node @4 (bc#1) at JIT offset 0x2d:
SpeculativeJIT generating Node @5 (bc#1) at JIT offset 0x31; ModuleID = '
jsBody_1__BUN2VQ'
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
define iundefined
64 @jsBody_1__BUN2VQ() #SpeculativeJIT generating Node @6 (bc#1) at JIT offset 0x350
{
PrologueSpeculativeJIT generating Node @9 (bc#3) at JIT offset 0x35:>>>
SpeculativeJIT generating Node @11 (bc#6) at JIT offset 0x35%
0 = SpeculativeJIT generating Node @12 (bc#6) at JIT offset 0x35alloca
SpeculativeJIT generating Node @14 (bc#13) at JIT offset 0x35[0
x i64SpeculativeJIT generating Node @140 (bc#13) at JIT offset 0x39]
, align 8
call void (iSpeculativeJIT generating Node @15 (bc#13) at JIT offset 0x5364
, i32, ...Bailing compilation.
)* @llvm.experimental.stackmap(i64 0, iBailing compilation.
32 0, SpeculativeJIT generating Node @59 (bc#97) at JIT offset 0xab[0
x iSpeculativeJIT generating Node @60 (bc#98) at JIT offset 0xab64
]SpeculativeJIT generating Node @61 (bc#98) at JIT offset 0xab*
%0SpeculativeJIT generating Node @64 (bc#105) at JIT offset 0xab)
%1 = call SpeculativeJIT generating Node @67 (bc#112) at JIT offset 0xabi8
* @SpeculativeJIT generating Node @68 (bc#112) at JIT offset 0xabllvm.frameaddress
(iSpeculativeJIT generating Node @70 (bc#120) at JIT offset 0xab32
0SpeculativeJIT generating Node @71 (bc#120) at JIT offset 0xab
)
SpeculativeJIT generating Node @73 (bc#123) at JIT offset 0xab
%2SpeculativeJIT generating Node @74 (bc#123) at JIT offset 0xab =
ptrtoint SpeculativeJIT generating Node @76 (bc#126) at JIT offset 0xabi
8* %1 to i64
%3 = SpeculativeJIT generating Node @77 (bc#126) at JIT offset 0x125add
iSpeculativeJIT generating Node @148 (bc#126) at JIT offset 0x12564
%2, SpeculativeJIT generating Node @142 (bc#135) at JIT offset 0x12516
%4 = SpeculativeJIT generating Node @153 (bc#135) at JIT offset 0x12einttoptr
i64 %3 to i64*
SpeculativeJIT generating Node @80 (bc#135) at JIT offset 0x1bf
store i64SpeculativeJIT generating Node @83 (bc#142) at JIT offset 0x1c9
4377672632, SpeculativeJIT generating Node @87 (bc#149) at JIT offset 0x1c9i64
*SpeculativeJIT generating Node @89 (bc#157) at JIT offset 0x1c9
%4SpeculativeJIT generating Node @90 (bc#157) at JIT offset 0x1c9, align
8, !tbaa !0
%5 = addSpeculativeJIT generating Node @91 (bc#157) at JIT offset 0x1d9
i64 %2, 56
%6SpeculativeJIT generating Node @158 (bc#157) at JIT offset 0x1dd = inttoptr
SpeculativeJIT generating Node @92 (bc#157) at JIT offset 0x1ddi64
%SpeculativeJIT generating Node @94 (bc#161) at JIT offset 0x1dd5 to
i64*
SpeculativeJIT generating Node @95 (bc#164) at JIT offset 0x1e6 %
7 = SpeculativeJIT generating Node @96 (bc#164) at JIT offset 0x1e6load
i64* SpeculativeJIT generating Node @98 (bc#167) at JIT offset 0x1e6%
6, align SpeculativeJIT generating Node @99 (bc#167) at JIT offset 0x1e68
, !tbaa SpeculativeJIT generating Node @102 (bc#174) at JIT offset 0x1e6!
3
%Bailing compilation.
8Bailing compilation.
= icmp SpeculativeJIT generating Node @111 (bc#189) at JIT offset 0x1fcult
iSpeculativeJIT generating Node @112 (bc#189) at JIT offset 0x1fc64
%SpeculativeJIT generating Node @115 (bc#196) at JIT offset 0x1fc7
, -281474976710656SpeculativeJIT generating Node @116 (bc#196) at JIT offset 0x206
brSpeculativeJIT generating Node @118 (bc#204) at JIT offset 0x206
iSpeculativeJIT generating Node @119 (bc#204) at JIT offset 0x2061
%8, label SpeculativeJIT generating Node @120 (bc#204) at JIT offset 0x21a%
"OSpeculativeJIT generating Node @123 (bc#206) at JIT offset 0x21aS
R eSpeculativeJIT generating Node @126 (bc#213) at JIT offset 0x22ax
itSpeculativeJIT generating Node @130 (bc#220) at JIT offset 0x22a
faSpeculativeJIT generating Node @132 (bc#228) at JIT offset 0x22ai
lCSpeculativeJIT generating Node @133 (bc#228) at JIT offset 0x22aa
se for SpeculativeJIT generating Node @135 (bc#232) at JIT offset 0x236-
", Bailing compilation.
label %"OSR exit continuationOSR Entries:
fobc#r0 , machine code offset = -"45, stack rules = [, !profarg 0!:4
(
"OTopSR, eTOPx, itTOP )fa (imaps to lCthisas)e, locfo0r: -(":Top , ;TOP preds = , %TOPPrologue
) (callignored )void, (iloc641, :i32(, ...)Top*, TOP@, llvm.experimental.stackmapTOP()i64 ( ignored3), , i32loc 25:, i(64 Top%, 7TOP),
TOPunreachable)
(
ignored")OS, Rloc 3ex:i(t Topc, onTOPt, iTOPnu)a (tiignoredo)n , folocr4 -:"(: Top; preds = , %TOPPrologue,
TOP%)9 = (addignored )i64, loc%52, :48(
Top%10, = TOPinttoptr, TOPi)64 (%ignored9 to )i, 64loc*
6 :%(11 = Topload, TOPi, 64TOP*) (%10ignored, align )8, , !tbaaloc 7!:5
( %Top12 = , icmpTOP , ultTOP i)64 ( ignored%11), , -281474976710656
loc 8br: i(1 Top%12, , TOPlabel, TOP%)" (OSignoredR) , elocx9it: (faiTopl, CTOPas, eTOP f)o (r ignored-1)", , loclabel 10%:"(OSTopR , eTOPx, itTOP )c (onignoredt)i, nuloca11ti:o(n fTopo, r TOP-, 2"TOP, !prof) (!ignored4
)
], machine stack used = "-O-SR- -e-x-i-t- -f-a-i-l-Ca-s-e- -f-o-r- --1-"-:- -;- preds = -%-"-O-S-R- -e-x-i-t- -co-n-t-i-n-u-a-t-io-n- -f-o-r- --"-
- -call -void- (-i-64-, -i32-,
...) *bc# @97, machine code offset = llvm.experimental.stackmap171(i, stack rules = [64arg 04:, i(32 Top5, , iTOP64 , %TOP11)) (
maps to unreachablethis
)
, "OlocS0R: e(xiTopt , cTOPon, tTOPi)nu (aoverwrittent)i, onloc 1f:or( None-2)" (: maps to ;loc preds = %0")OS, Rloc 2ex:it( cTopo, ntTOPin, uTOPat)i (onignored f)o, r loc-3":
(%13Top = trunc, TOPi, 64TOP )%11 ( to ignoredi)32
, loc%414 = :trunc( i64Top , %7TOP to , iTOP32)
( %ignored15) = , callloc { 5i:32(, iTop1 }, TOP@, llvm.sadd.with.overflow.i32TOP()i (32 ignored%)13, , loci632 :%(14)Top
, TOP%16, = TOPextractvalue) ({ ignoredi)32, , iloc17 }: (%15, Top1,
TOP , brTOP )i1 ( ignored%)16, , loclabel 8%:"(OSRTop , eTOPx, iTOPt) (fignoreda)il, Clocas9e: (forTop @, 1TOP4", , TOPlabel) (%ignored")OS, Rloc e10x:it( cTopon, tTOPi, nuTOPat)i (onignored )fo, r loc@111:4"(, !profTop , !TOP4
,
TOP"O)S (R ignorede)xi], machine stack used = t1 -f-a-i-l-C-a-s-e -f-o-r- -@-1-4-"-:- -;- preds = -%-"-O-S-R- -e-xi-t- -c-o-n-t-i-n-u-at-i-o-n- -f-o-r- ---2-"-
- -call -void- (-i-64, -i-32-, -...-)-*
@llvm.experimental.stackmap(i64 5, i32 5)
unreachable
"OSR exit continuation for @14": ; preds = %"OSR exit continuation for -2"
%17 = extractvalue { i32, i1 } %15, 0
%18 = zext i32 %17 to i64
%19 = or i64 %18, -281474976710656
ret i64 %19
}
declare void @llvm.experimental.stackmap(i64, i32, ...)
; Function Attrs: nounwind readnone
declare i8* @llvm.frameaddress(i32) #1
; Function Attrs: nounwind readnone
declare { i32, i1 } @llvm.sadd.with.overflow.i32(i32, i32) #1
attributes #0 = { "target-features"="-avx" }
attributes #1 = { nounwind readnone }
!0 = metadata !{metadata !"variables_2", metadata !1}
!1 = metadata !{metadata !"variables", metadata !2}
!2 = metadata !{metadata !"jscRoot"}
!3 = metadata !{metadata !"variables_7", metadata !1}
!4 = metadata !{metadata !"branch_weights", i32 0, i32 2147483647}
!5 = metadata !{metadata !"variables_6", metadata !1}
Handling OSR stackmap #3 for bc#0
Exit values: arg2:InJSStack:arg2 arg1:InJSStack:arg1 arg0:InJSStack:this
Handling OSR stackmap #4 for bc#0
Exit values: arg2:InJSStack:arg2 arg1:InJSStack:arg1 arg0:InJSStack:this
Handling OSR stackmap #5 for bc#3
Exit values: arg2:InJSStackAsInt32:arg2 arg1:InJSStackAsInt32:arg1 arg0:InJSStack:this loc0:Dead loc1:Dead loc2:Dead loc3:Dead
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment