Created
July 30, 2015 20:24
-
-
Save gskachkov/7e7afc08c3654b8bf6cc to your computer and use it in GitHub Desktop.
Arrow function #2
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
>>> 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