   0  inline_call_r_r <JitCode 'finditem_str'>, R[%r1, $<* struct rpy_string>] -> %r2
   7  -live- %i0, %r0, %r1, %r2
   7  -live- %i0, %r0, %r1, %r2
   7  ref_guard_value %r2
   9  -live- %i0, %r0, %r1, %r2
   9  int_guard_value %i0
  11  -live- %i0, %r0, %r1, %r2
  11  goto_if_not_ptr_iszero %r2, L1
  15  L2:
  15  inline_call_r_r <JitCode 'finditem_str'>, R[%r1, $<* struct rpy_string>] -> %r3
  22  -live- %i0, %r0, %r1, %r3
  22  inline_call_r_r <JitCode 'finditem_str'>, R[%r1, $<* struct rpy_string>] -> %r5
  29  -live- %i0, %r0, %r1, %r3, %r5
  29  -live- %i0, %r0, %r1, %r3, %r5
  29  ref_guard_value %r3
  31  -live- %i0, %r0, %r1, %r3, %r5
  31  goto_if_not_ptr_iszero %r3, L3
  35  ref_return $<* struct tuple2>
  37  ---
  37  L3:
  37  inline_call_r_r <JitCode 'ObjSpace.text0_w'>, R[%r3] -> %r2
  43  -live- %i0, %r0, %r1, %r2, %r3, %r5
  43  catch_exception L4
  46  strlen %r2 -> %i1
  49  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r5
  49  goto_if_not_int_is_true %i1, L5
  53  int_sub %i0, $1 -> %i1
  57  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r5
  57  goto_if_not_int_gt %i1, $0, L6
  62  L7:
  62  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r5
  62  goto_if_not_ptr_iszero %r5, L8
  66  int_add %i1, $1 -> %i1
  70  ref_copy $<* struct pypy.interpreter.baseobjspace.W_Root> -> %r5
  73  L9:
  73  residual_call_ir_i $<* fn _get_dot_position>, I[%i1], R[%r2], <CallDescr(ri) EF=0> -> %i1
  82  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r5
  82  goto_if_not_int_lt %i1, $0, L10
  87  -live- %i0, %r0, %r1, %r2, %r3, %r5
  87  goto_if_not_int_gt %i0, $0, L11
  92  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000002aabbb1b8a0> -> %r3
  96  setfield_gc_r %r3, $<* struct rpy_string>, FieldDescr<pypy.interpreter.error.OpErrFmtNoArgs.inst__value>
 101  setfield_gc_r %r3, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type>
 106  assert_not_none %r3
 108  -live- %r3
 108  guard_class %r3 -> %i3
 111  -live- %r3
 111  raise %r3
 113  ---
 113  L11:
 113  int_copy $0 -> %i0
 116  ref_copy $<* struct rpy_string> -> %r4
 119  L12:
 119  -live- %i0, %r0, %r1, %r2, %r3, %r4, %r5
 119  goto_if_not_ptr_iszero %r5, L13
 123  strlen %r2 -> %i1
 126  residual_call_ir_i $<* fn ll_rfind_char__rpy_stringPtr_Char_Signed_Signed>, I[$'.', $0, %i1], R[%r2], <CallDescr(riii) EF=0> -> %i2
 137  -live- %i0, %i2, %r0, %r1, %r2, %r4
 137  goto_if_not_int_lt %i2, $0, L14
 142  inline_call_r_r <JitCode 'setitem'>, R[%r1, $<* struct pypy.interpreter.baseobjspace.W_Root>, $<* struct pypy.interpreter.baseobjspace.W_Root>] -> %r2
 150  -live- %i0, %r0, %r4
 150  L15:
 150  strlen %r0 -> %i1
 153  -live- %i0, %i1, %r0, %r4
 153  goto_if_not_int_is_true %i1, L16
 157  ref_copy %r4 -> %r2
 160  ref_copy %r0 -> %r4
 163  strlen %r2 -> %i1
 166  -live- %i0, %i1, %r2, %r4
 166  goto_if_not_int_is_true %i1, L17
 170  residual_call_r_r $<* fn ll_strconcat__rpy_stringPtr_rpy_stringPtr>, R[$<* struct rpy_string>, %r4], <CallDescr(rr) EF=3 OS_STR_CONCAT> -> %r1
 178  -live- %i0, %r1, %r2
 178  residual_call_r_r $<* fn ll_strconcat__rpy_stringPtr_rpy_stringPtr>, R[%r2, %r1], <CallDescr(rr) EF=3 OS_STR_CONCAT> -> %r4
 186  -live- %i0, %r4
 186  L18:
 186  new <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000002aab501bd00> -> %r2
 190  setfield_gc_r %r2, %r4, FieldDescr<tuple2.item0>
 195  setfield_gc_i %r2, %i0, FieldDescr<tuple2.item1>
 200  ref_return %r2
 202  ---
 202  L17:
 202  goto L18
 205  ---
 205  L16:
 205  goto L18
 208  ---
 208  L14:
 208  strlen %r2 -> %i1
 211  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r4
 211  goto_if_not_int_gt %i2, %i1, L19
 216  strlen %r2 -> %i2
 219  L20:
 219  residual_call_ir_r $<* fn _ll_stringslice__rpy_stringPtr_Signed_Signed>, I[$0, %i2], R[%r2], <CallDescr(rii) EF=3 OS_STR_SLICE> -> %r2
 229  -live- %i0, %r0, %r1, %r2, %r4
 229  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000002aac5501f30> -> %r3
 233  setfield_gc_r %r3, %r2, FieldDescr<pypy.objspace.std.bytesobject.W_BytesObject.inst__value>
 238  inline_call_r_r <JitCode 'setitem'>, R[%r1, $<* struct pypy.interpreter.baseobjspace.W_Root>, %r3] -> %r2
 246  -live- %i0, %r0, %r4
 246  goto L15
 249  ---
 249  L19:
 249  goto L20
 252  ---
 252  L13:
 252  inline_call_r_r <JitCode 'setitem'>, R[%r1, $<* struct pypy.interpreter.baseobjspace.W_Root>, %r3] -> %r2
 260  -live- %i0, %r0, %r4
 260  goto L15
 263  ---
 263  L10:
 263  strlen %r2 -> %i0
 266  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r5
 266  goto_if_not_int_gt %i1, %i0, L21
 271  strlen %r2 -> %i1
 274  L22:
 274  residual_call_ir_r $<* fn _ll_stringslice__rpy_stringPtr_Signed_Signed>, I[$0, %i1], R[%r2], <CallDescr(rii) EF=3 OS_STR_SLICE> -> %r4
 284  -live- %r0, %r1, %r2, %r3, %r4, %r5
 284  strlen %r4 -> %i1
 287  residual_call_ir_i $<* fn ll_count_char__rpy_stringPtr_Char_Signed_Signed>, I[$'.', $0, %i1], R[%r4], <CallDescr(riii) EF=0> -> %i1
 298  int_add %i1, $1 -> %i0
 302  goto L12
 305  ---
 305  L21:
 305  goto L22
 308  ---
 308  L8:
 308  goto L9
 311  ---
 311  L6:
 311  int_copy $0 -> %i1
 314  goto L7
 317  ---
 317  L5:
 317  ref_return $<* struct tuple2>
 319  ---
 319  L4:
 319  goto_if_exception_mismatch $<* struct object_vtable>, L23
 323  last_exception -> %i3
 325  last_exc_value -> %r3
 327  getfield_gc_r %r3, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type> -> %r2
 332  inline_call_r_i <JitCode 'exception_match'>, R[%r2, $<* struct pypy.interpreter.baseobjspace.W_Root>] -> %i1
 339  -live- %i1, %r3
 339  -live- %i1, %r3
 339  goto_if_not %i1, L24
 343  ref_return $<* struct tuple2>
 345  ---
 345  L24:
 345  -live- %r3
 345  raise %r3
 347  ---
 347  L23:
 347  reraise
 348  ---
 348  L1:
 348  instance_ptr_eq %r2, $<* struct pypy.interpreter.baseobjspace.W_Root> -> %i1
 352  -live- %i0, %i1, %r0, %r1, %r2
 352  goto_if_not %i1, L25
 356  goto L2
 359  ---
 359  L25:
 359  inline_call_r_r <JitCode 'ObjSpace.text0_w'>, R[%r2] -> %r1
 365  -live- %i0, %r0, %r1
 365  catch_exception L26
 368  residual_call_r_i $<* fn ll_streq__rpy_stringPtr_rpy_stringPtr>, R[%r1, $<* struct rpy_string>], <CallDescr(rr) EF=0 OS_STR_EQUAL> -> %i1
 376  -live- %i0, %i1, %r0, %r1
 376  goto_if_not %i1, L27
 380  -live- %i0, %r0, %r1
 380  goto_if_not_int_lt %i0, $0, L28
 385  ref_return $<* struct tuple2>
 387  ---
 387  L28:
 387  L29:
 387  int_sub %i0, $1 -> %i1
 391  residual_call_ir_i $<* fn _get_dot_position>, I[%i1], R[%r1], <CallDescr(ri) EF=0> -> %i2
 400  -live- %i0, %i2, %r0, %r1
 400  goto_if_not_int_lt %i2, $0, L30
 405  strlen %r1 -> %i1
 408  -live- %i1
 408  goto_if_not_int_is_zero %i1, L31
 412  ref_copy $<* struct rpy_string> -> %r2
 415  L32:
 415  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000002aabebdd5c8> -> %r3
 419  setfield_gc_r %r3, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type>
 424  setfield_gc_r %r3, $<* struct tuple2>, FieldDescr<pypy.interpreter.error.OpErrFmt.inst_xstrings>
 429  setfield_gc_r %r3, %r2, FieldDescr<pypy.interpreter.error.OpErrFmt.inst_x0>
 434  assert_not_none %r3
 436  -live- %r3
 436  guard_class %r3 -> %i3
 439  -live- %r3
 439  raise %r3
 441  ---
 441  L31:
 441  ref_copy $<* struct rpy_string> -> %r2
 444  goto L32
 447  ---
 447  L30:
 447  inline_call_ir_r <JitCode 'absolute_import'>, I[$0, $0], R[%r1, $<* struct pypy.interpreter.baseobjspace.W_Root>] -> %r2
 457  -live- %i0, %i2, %r0, %r1
 457  catch_exception L33
 460  L34:
 460  strlen %r1 -> %i1
 463  -live- %i1, %i2, %r0, %r1
 463  goto_if_not_int_gt %i2, %i1, L35
 468  strlen %r1 -> %i2
 471  L36:
 471  residual_call_ir_r $<* fn _ll_stringslice__rpy_stringPtr_Signed_Signed>, I[$0, %i2], R[%r1], <CallDescr(rii) EF=3 OS_STR_SLICE> -> %r4
 481  -live- %r0, %r4
 481  strlen %r4 -> %i1
 484  residual_call_ir_i $<* fn ll_count_char__rpy_stringPtr_Char_Signed_Signed>, I[$'.', $0, %i1], R[%r4], <CallDescr(riii) EF=0> -> %i1
 495  int_add %i1, $1 -> %i0
 499  strlen %r0 -> %i1
 502  -live- %i0, %i1, %r0, %r4
 502  goto_if_not_int_is_true %i1, L37
 506  residual_call_r_r $<* fn ll_strconcat__rpy_stringPtr_rpy_stringPtr>, R[$<* struct rpy_string>, %r0], <CallDescr(rr) EF=3 OS_STR_CONCAT> -> %r2
 514  -live- %i0, %r2, %r4
 514  residual_call_r_r $<* fn ll_strconcat__rpy_stringPtr_rpy_stringPtr>, R[%r4, %r2], <CallDescr(rr) EF=3 OS_STR_CONCAT> -> %r4
 522  -live- %i0, %r4
 522  goto L18
 525  ---
 525  L37:
 525  goto L18
 528  ---
 528  L35:
 528  goto L36
 531  ---
 531  L33:
 531  goto_if_exception_mismatch $<* struct object_vtable>, L38
 535  last_exception -> %i3
 537  last_exc_value -> %r3
 539  getfield_gc_r %r3, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type> -> %r2
 544  inline_call_r_i <JitCode 'exception_match'>, R[%r2, $<* struct pypy.interpreter.baseobjspace.W_Root>] -> %i1
 551  -live- %i0, %i1, %i2, %r0, %r1, %r3
 551  -live- %i0, %i1, %i2, %r0, %r1, %r3
 551  goto_if_not %i1, L39
 555  -live- %i0, %i2, %r0, %r1
 555  goto_if_not_int_gt %i0, $0, L40
 560  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000002aabebdd5c8> -> %r3
 564  setfield_gc_r %r3, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type>
 569  setfield_gc_r %r3, $<* struct tuple2>, FieldDescr<pypy.interpreter.error.OpErrFmt.inst_xstrings>
 574  setfield_gc_r %r3, %r1, FieldDescr<pypy.interpreter.error.OpErrFmt.inst_x0>
 579  assert_not_none %r3
 581  -live- %r3
 581  guard_class %r3 -> %i3
 584  -live- %r3
 584  raise %r3
 586  ---
 586  L40:
 586  new_array_clear $3, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000002aa8c8e1ec0> -> %r3
 591  setarrayitem_gc_r %r3, $0, $<* struct rpy_string>, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000002aa8c8e1ec0>
 597  -live- %i2, %r0, %r1, %r3
 597  goto_if_not_ptr_nonzero %r1, L41
 601  ref_copy %r1 -> %r2
 604  L42:
 604  setarrayitem_gc_r %r3, $1, %r2, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000002aa8c8e1ec0>
 610  setarrayitem_gc_r %r3, $2, $<* struct rpy_string>, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000002aa8c8e1ec0>
 616  ref_isvirtual %r3 -> %i1
 619  -live- %i1, %i2, %r0, %r1, %r3
 619  goto_if_not %i1, L43
 623  inline_call_ir_r <JitCode 'll_join_strs__v1222___simple_call__function_'>, I[$3], R[%r3] -> %r3
 631  -live- %i2, %r0, %r1, %r3
 631  L44:
 631  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000002aac5501f30> -> %r2
 635  setfield_gc_r %r2, %r3, FieldDescr<pypy.objspace.std.bytesobject.W_BytesObject.inst__value>
 640  inline_call_ir_v <JitCode 'ObjSpace.warn'>, I[$2], R[%r2, $<* struct pypy.objspace.std.typeobject.W_TypeObject>]
 648  -live- %i2, %r0, %r1
 648  goto L34
 651  ---
 651  L43:
 651  int_isconstant $3 -> %i1
 654  -live- %i1, %i2, %r0, %r1, %r3
 654  goto_if_not %i1, L45
 658  L46:
 658  residual_call_ir_r $<* fn ll_join_strs_trampoline__v1224___simple_call__function_>, I[$3], R[%r3], <CallDescr(ir) EF=5> -> %r3
 667  -live- %i2, %r0, %r1, %r3
 667  goto L44
 670  ---
 670  L45:
 670  goto L46
 673  ---
 673  L41:
 673  ref_copy $<* struct rpy_string> -> %r2
 676  goto L42
 679  ---
 679  L39:
 679  -live- %r3
 679  raise %r3
 681  ---
 681  L38:
 681  reraise
 682  ---
 682  L27:
 682  goto L29
 685  ---
 685  L26:
 685  goto_if_exception_mismatch $<* struct object_vtable>, L47
 689  last_exception -> %i3
 691  last_exc_value -> %r3
 693  getfield_gc_r %r3, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type> -> %r2
 698  inline_call_r_i <JitCode 'exception_match'>, R[%r2, $<* struct pypy.interpreter.baseobjspace.W_Root>] -> %i1
 705  -live- %i1, %r3
 705  -live- %i1, %r3
 705  goto_if_not %i1, L48
 709  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000002aabbb1b8a0> -> %r3
 713  setfield_gc_r %r3, $<* struct rpy_string>, FieldDescr<pypy.interpreter.error.OpErrFmtNoArgs.inst__value>
 718  setfield_gc_r %r3, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type>
 723  assert_not_none %r3
 725  -live- %r3
 725  guard_class %r3 -> %i3
 728  -live- %r3
 728  raise %r3
 730  ---
 730  L48:
 730  -live- %r3
 730  raise %r3
 732  ---
 732  L47:
 732  reraise
