   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.str0_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 0x3fff66b922d0> -> %r3
  96  setfield_gc_r %r3, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type>
 101  setfield_gc_r %r3, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst__w_value>
 106  setfield_gc_r %r3, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst__application_traceback>
 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 0x3fff42017650> -> %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 0x3fff5b593550> -> %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.str0_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> -> %r1
 415  L32:
 415  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x3fff5b593550> -> %r2
 419  setfield_gc_r %r2, %r1, FieldDescr<pypy.objspace.std.bytesobject.W_BytesObject.inst__value>
 424  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x3fff66b922d0> -> %r3
 428  setfield_gc_r %r3, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type>
 433  setfield_gc_r %r3, %r2, FieldDescr<pypy.interpreter.error.OperationError.inst__w_value>
 438  setfield_gc_r %r3, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst__application_traceback>
 443  -live- %r3
 443  raise %r3
 445  ---
 445  L31:
 445  ref_copy $<* struct rpy_string> -> %r1
 448  goto L32
 451  ---
 451  L30:
 451  inline_call_ir_r <JitCode 'absolute_import'>, I[$0, $0], R[%r1, $<* None>] -> %r2
 461  -live- %i0, %i2, %r0, %r1
 461  catch_exception L33
 464  L34:
 464  strlen %r1 -> %i1
 467  -live- %i1, %i2, %r0, %r1
 467  goto_if_not_int_gt %i2, %i1, L35
 472  strlen %r1 -> %i2
 475  L36:
 475  residual_call_ir_r $<* fn _ll_stringslice__rpy_stringPtr_Signed_Signed>, I[$0, %i2], R[%r1], <CallDescr(rii) EF=3 OS_STR_SLICE> -> %r4
 485  -live- %r0, %r4
 485  strlen %r4 -> %i1
 488  residual_call_ir_i $<* fn ll_count_char__rpy_stringPtr_Char_Signed_Signed>, I[$'.', $0, %i1], R[%r4], <CallDescr(riii) EF=0> -> %i1
 499  int_add %i1, $1 -> %i0
 503  strlen %r0 -> %i1
 506  -live- %i0, %i1, %r0, %r4
 506  goto_if_not_int_is_true %i1, L37
 510  residual_call_r_r $<* fn ll_strconcat__rpy_stringPtr_rpy_stringPtr>, R[$<* struct rpy_string>, %r0], <CallDescr(rr) EF=3 OS_STR_CONCAT> -> %r2
 518  -live- %i0, %r2, %r4
 518  residual_call_r_r $<* fn ll_strconcat__rpy_stringPtr_rpy_stringPtr>, R[%r4, %r2], <CallDescr(rr) EF=3 OS_STR_CONCAT> -> %r4
 526  -live- %i0, %r4
 526  goto L18
 529  ---
 529  L37:
 529  goto L18
 532  ---
 532  L35:
 532  goto L36
 535  ---
 535  L33:
 535  goto_if_exception_mismatch $<* struct object_vtable>, L38
 539  last_exception -> %i3
 541  last_exc_value -> %r3
 543  getfield_gc_r %r3, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type> -> %r2
 548  inline_call_r_i <JitCode 'exception_match'>, R[%r2, $<* struct pypy.interpreter.baseobjspace.W_Root>] -> %i1
 555  -live- %i0, %i1, %i2, %r0, %r1, %r3
 555  -live- %i0, %i1, %i2, %r0, %r1, %r3
 555  goto_if_not %i1, L39
 559  -live- %i0, %i2, %r0, %r1
 559  goto_if_not_int_gt %i0, $0, L40
 564  new_array_clear $3, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x3fff42bb8b50> -> %r2
 569  setarrayitem_gc_r %r2, $0, $<* struct rpy_string>, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x3fff42bb8b50>
 575  -live- %r1, %r2
 575  goto_if_not_ptr_nonzero %r1, L41
 579  L42:
 579  setarrayitem_gc_r %r2, $1, %r1, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x3fff42bb8b50>
 585  setarrayitem_gc_r %r2, $2, $<* struct rpy_string>, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x3fff42bb8b50>
 591  ref_isvirtual %r2 -> %i1
 594  -live- %i1, %r2
 594  goto_if_not %i1, L43
 598  inline_call_ir_r <JitCode 'll_join_strs__v977___simple_call__function_l'>, I[$3], R[%r2] -> %r1
 606  -live- %r1
 606  L44:
 606  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x3fff5b593550> -> %r2
 610  setfield_gc_r %r2, %r1, FieldDescr<pypy.objspace.std.bytesobject.W_BytesObject.inst__value>
 615  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x3fff66b922d0> -> %r3
 619  setfield_gc_r %r3, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type>
 624  setfield_gc_r %r3, %r2, FieldDescr<pypy.interpreter.error.OperationError.inst__w_value>
 629  setfield_gc_r %r3, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst__application_traceback>
 634  -live- %r3
 634  raise %r3
 636  ---
 636  L43:
 636  int_isconstant $3 -> %i1
 639  -live- %i1, %r2
 639  goto_if_not %i1, L45
 643  L46:
 643  residual_call_ir_r $<* fn ll_join_strs_trampoline__v982___simple_call__function_l>, I[$3], R[%r2], <CallDescr(ir) EF=5> -> %r1
 652  -live- %r1
 652  goto L44
 655  ---
 655  L45:
 655  goto L46
 658  ---
 658  L41:
 658  ref_copy $<* struct rpy_string> -> %r1
 661  goto L42
 664  ---
 664  L40:
 664  new_array_clear $3, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x3fff42bb8b50> -> %r3
 669  setarrayitem_gc_r %r3, $0, $<* struct rpy_string>, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x3fff42bb8b50>
 675  -live- %i2, %r0, %r1, %r3
 675  goto_if_not_ptr_nonzero %r1, L47
 679  ref_copy %r1 -> %r2
 682  L48:
 682  setarrayitem_gc_r %r3, $1, %r2, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x3fff42bb8b50>
 688  setarrayitem_gc_r %r3, $2, $<* struct rpy_string>, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x3fff42bb8b50>
 694  ref_isvirtual %r3 -> %i1
 697  -live- %i1, %i2, %r0, %r1, %r3
 697  goto_if_not %i1, L49
 701  inline_call_ir_r <JitCode 'll_join_strs__v977___simple_call__function_l'>, I[$3], R[%r3] -> %r3
 709  -live- %i2, %r0, %r1, %r3
 709  L50:
 709  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x3fff5b593550> -> %r2
 713  setfield_gc_r %r2, %r3, FieldDescr<pypy.objspace.std.bytesobject.W_BytesObject.inst__value>
 718  inline_call_ir_v <JitCode 'warn'>, I[$2], R[%r2, $<* struct pypy.objspace.std.typeobject.W_TypeObject>]
 726  -live- %i2, %r0, %r1
 726  goto L34
 729  ---
 729  L49:
 729  int_isconstant $3 -> %i1
 732  -live- %i1, %i2, %r0, %r1, %r3
 732  goto_if_not %i1, L51
 736  L52:
 736  residual_call_ir_r $<* fn ll_join_strs_trampoline__v982___simple_call__function_l>, I[$3], R[%r3], <CallDescr(ir) EF=5> -> %r3
 745  -live- %i2, %r0, %r1, %r3
 745  goto L50
 748  ---
 748  L51:
 748  goto L52
 751  ---
 751  L47:
 751  ref_copy $<* struct rpy_string> -> %r2
 754  goto L48
 757  ---
 757  L39:
 757  -live- %r3
 757  raise %r3
 759  ---
 759  L38:
 759  reraise
 760  ---
 760  L27:
 760  goto L29
 763  ---
 763  L26:
 763  goto_if_exception_mismatch $<* struct object_vtable>, L53
 767  last_exception -> %i3
 769  last_exc_value -> %r3
 771  getfield_gc_r %r3, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type> -> %r2
 776  inline_call_r_i <JitCode 'exception_match'>, R[%r2, $<* struct pypy.interpreter.baseobjspace.W_Root>] -> %i1
 783  -live- %i1, %r3
 783  -live- %i1, %r3
 783  goto_if_not %i1, L54
 787  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x3fff66b922d0> -> %r3
 791  setfield_gc_r %r3, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst_w_type>
 796  setfield_gc_r %r3, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst__w_value>
 801  setfield_gc_r %r3, $<* struct pypy.interpreter.baseobjspace.W_Root>, FieldDescr<pypy.interpreter.error.OperationError.inst__application_traceback>
 806  -live- %r3
 806  raise %r3
 808  ---
 808  L54:
 808  -live- %r3
 808  raise %r3
 810  ---
 810  L53:
 810  reraise
