   0  strlen %r0 -> %i2
   3  int_add %i2, $1 -> %i2
   7  residual_call_ir_i $<* fn _ll_1_raw_malloc_varsize__Signed>, I[%i2], R[], <CallDescr(i) EF=5 OS_RAW_MALLOC_VARSIZE_CHAR> -> %i2
  15  -live- %i0, %i1, %i2, %r0
  15  strlen %r0 -> %i3
  18  residual_call_ir_v $<* fn copy_string_to_raw>, I[%i2, $0, %i3], R[%r0], <CallDescr(riii) EF=0 OS_STR_COPY_TO_RAW>
  28  setarrayitem_raw_i %i2, %i3, $'\x00', <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000001008f481478>
  34  int_signext %i0, $4 -> %i0
  38  int_signext %i1, $4 -> %i1
  42  residual_call_ir_i $<* fn ccall_open__arrayPtr_INT_INT>, I[%i2, %i0, %i1], R[], <CallDescr(iii) EF=7> -> %i0
  52  -live- %i0, %i2
  52  -live- %i0, %i2
  52  goto_if_not_int_is_true %i2, L1
  56  residual_call_ir_v $<* fn _ll_1_raw_free__arrayPtr>, I[%i2], R[], <CallDescr(i) EF=2 OS_RAW_FREE>
  63  L2:
  63  -live- %i0
  63  goto_if_not_int_lt %i0, $0, L3
  68  residual_call_ir_i $<* fn _ll_1_threadlocalref_get__INTLlT_Signed>, I[$CDefinedIntSymbolic('RPY_TLOFS_rpy_errno')], R[], <CallDescr(i) EF=2 OS_THREADLOCALREF_GET> -> %i1
  76  new_array_clear $2, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x0000010081672170> -> %r0
  81  setarrayitem_gc_r %r0, $0, $<* struct rpy_string>, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x0000010081672170>
  87  setarrayitem_gc_r %r0, $1, $<* struct rpy_string>, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x0000010081672170>
  93  ref_isvirtual %r0 -> %i0
  96  -live- %i0, %i1, %r0
  96  goto_if_not %i0, L4
 100  L5:
 100  inline_call_ir_r <JitCode 'll_join_strs__v1076___simple_call__function_'>, I[$2], R[%r0] -> %r1
 108  -live- %i1, %r1
 108  L6:
 108  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000001004e722790> -> %r0
 112  setfield_gc_r %r0, %r1, FieldDescr<exceptions.EnvironmentError.inst_strerror>
 117  setfield_gc_i %r0, %i1, FieldDescr<exceptions.EnvironmentError.inst_errno>
 122  -live- %r0
 122  raise %r0
 124  ---
 124  L4:
 124  int_isconstant $2 -> %i0
 127  -live- %i0, %i1, %r0
 127  goto_if_not %i0, L7
 131  goto L5
 134  ---
 134  L7:
 134  residual_call_ir_r $<* fn ll_join_strs_trampoline__v1072___simple_call__function_>, I[$2], R[%r0], <CallDescr(ir) EF=5> -> %r1
 143  -live- %i1, %r1
 143  goto L6
 146  ---
 146  L3:
 146  int_return %i0
 148  ---
 148  L1:
 148  goto L2
