[Webkit-unassigned] [Bug 117140] ASSERTION FAILED: m_isCheckingArgumentTypes || m_canExit in JSC::DFG::SpeculativeJIT::terminateSpeculativeExecution.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Jun 3 12:03:23 PDT 2013


https://bugs.webkit.org/show_bug.cgi?id=117140





--- Comment #5 from Oliver Hunt <oliver at apple.com>  2013-06-03 12:01:56 PST ---
Here the final dump prior to codegen:

Graph after optimization:
DFG for f#ECftdW:[0x106809800->0x1017ffd70, DFGFunctionCall]:
  Fixpoint state: FixpointConverged; Form: ThreadedCPS; Unification state: GloballyUnified; Ref count state: ExactRefCount
Block #0 (bc#0):  (OSR target)
  Predecessors:
  Phi Nodes:
  vars before: arg0:(Top, TOP, TOP, TOP) : r0:(None, 0:<empty>, [], []) r1:(None, 0:<empty>, [], [])
  var links: arg0:@0 : r0:- r1:-
   0:  skipped  < 0:->    SetArgument(arg0(a), bc#0)
   1:           < 2:1>    JSConstant(JS|UseAsOther, $2 = Undefined, bc#0)
   2:           < 1:->    SetLocal(@1<Other>, NodeExitsForward, r0(B~), bc#0)  predicting StringOther
   3:           < 2:2>    JSConstant(JS|UseAsOther, $0 = String: 
, bc#1)
  19:           <!0:->    Phantom(String:@3<String>, MustGen, bc#1)
  20:           <!1:1>    ToPrimitive(@1<Other>, JS|MustGen|Clobbers|PureInt, bc#1)
  21:           <!1:1>    ToString(@20<Other>, JS|MustGen|MightClobber|PureInt, bc#1)
   4:           < 1:1>    MakeRope(KnownString:@3<String>, KnownString:@21<String>, JS|PureInt, bc#1)
   5:  skipped  < 0:->    MovHint(@4<String>, r1(C~<String>), bc#1)
   6:           <!0:->    Branch(@4<String>, MustGen|CanExit, T:#1, F:#2, bc#6)
  vars after: arg0:(Top, TOP, TOP, TOP) : r0:(Other, 0:<empty>, [], [], Undefined) r1:(String, 1:NonArray, [0x1011efde0(string)], [0x1011efde0(string)])
  var links: arg0:@0 : r0:@2 r1:@5
Block #1 (bc#10):  (OSR target)
  Predecessors: #0 #1
  Phi Nodes:
  vars before: arg0:(Other, 0:<empty>, [], [], Undefined) : r0:(String, 1:NonArray, [0x1011efde0(string)], [0x1011efde0(string)], String: foo) r1:(None, 0:<empty>, [], [])
  var links: arg0:- : r0:- r1:-
   8:           < 4:1>    JSConstant(JS|UseAsOther, $1 = String: foo, bc#10)
   9:           < 1:->    SetLocal(@8<String>, NodeExitsForward, r0(B~), bc#10)  predicting StringOther
  10:           <!0:2>    ArithNegate(Check:Int32:@8<String>, Number|MustGen|PureInt|MayOverflow|CanExit, bc#13)
  11:  skipped  < 0:->    MovHint(@10<Int32>, r1(E~<Int32>), bc#13)
  12:           < 2:2>    JSConstant(JS|UseAsOther, $0 = String: 
, bc#16)
  22:           <!0:->    Phantom(String:@12<String>, MustGen, bc#16)
  23:           <!0:->    Phantom(String:@8<String>, MustGen, bc#16)
  13:           < 1:1>    MakeRope(KnownString:@12<String>, KnownString:@8<String>, JS|PureInt, bc#16)
  14:  skipped  < 0:->    MovHint(@13<String>, r1(F~<String>), bc#16)
  15:           <!0:->    Branch(@13<String>, MustGen|CanExit, T:#1, F:#2, bc#21)
  vars after: arg0:(None, 0:<empty>, [], []) : r0:(None, 0:<empty>, [], []) r1:(String, 1:NonArray, [0x1011efde0(string)], [0x1011efde0(string)])
  var links: arg0:- : r0:@9 r1:@14
Block #2 (bc#24): 
  Predecessors: #0 #1
  Phi Nodes: @25<1>->(@9, @2)
  vars before: arg0:(None, 0:<empty>, [], []) : r0:(Other, 0:<empty>, [], [], Undefined) r1:(None, 0:<empty>, [], [])
  var links: arg0:- : r0:@24 r1:-
  24:           <!0:->    PhantomLocal(@25, MustGen, r0(B~), bc#24)  predicting StringOther
  16:           < 1:1>    JSConstant(JS|UseAsOther, $2 = Undefined, bc#24)
  17:           <!0:->    Return(@16, MustGen, bc#24)
  vars after: arg0:(None, 0:<empty>, [], []) : r0:(None, 0:<empty>, [], []) r1:(None, 0:<empty>, [], [])
  var links: arg0:- : r0:@24 r1:-



The assertion fires trying to compile node 13 when loading op2, an edge pointing to node 8 (a string) but the edge claims its register format is JSInteger.  I don't understand how.why the makes sense - the assertion implies that it is unexpected.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the webkit-unassigned mailing list