   0  residual_call_r_r $<* fn ll_strconcat__rpy_stringPtr_rpy_stringPtr>, R[%r0, $<* struct rpy_string>], <CallDescr(rr) EF=3 OS_STR_CONCAT> -> %r2
   8  -live- %r0, %r1, %r2
   8  residual_call_r_r $<* fn ll_strconcat__rpy_stringPtr_rpy_stringPtr>, R[%r2, %r1], <CallDescr(rr) EF=3 OS_STR_CONCAT> -> %r1
  16  -live- %r0, %r1
  16  strlen %r1 -> %i0
  19  int_add %i0, $1 -> %i0
  23  residual_call_ir_i $<* fn _ll_1_raw_malloc_varsize__Signed>, I[%i0], R[], <CallDescr(i) EF=5 OS_RAW_MALLOC_VARSIZE_CHAR> -> %i1
  31  -live- %i1, %r0, %r1
  31  strlen %r1 -> %i0
  34  residual_call_ir_v $<* fn copy_string_to_raw>, I[%i1, $0, %i0], R[%r1], <CallDescr(riii) EF=0 OS_STR_COPY_TO_RAW>
  44  setarrayitem_raw_i %i1, %i0, $'\x00', <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000002aa65b280c8>
  50  residual_call_ir_i $<* fn ccall_putenv>, I[%i1], R[], <CallDescr(i) EF=2> -> %i0
  58  -live- %i0, %i1, %r0
  58  goto_if_not_int_is_true %i0, L1
  62  residual_call_ir_v $<* fn _ll_1_raw_free__arrayPtr>, I[%i1], R[], <CallDescr(i) EF=2 OS_RAW_FREE>
  69  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> -> %i0
  77  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x000002aabdec1d00> -> %r1
  81  setfield_gc_r %r1, $<* struct rpy_string>, FieldDescr<exceptions.EnvironmentError.inst_strerror>
  86  setfield_gc_i %r1, %i0, FieldDescr<exceptions.EnvironmentError.inst_errno>
  91  assert_not_none %r1
  93  -live- %r1
  93  guard_class %r1 -> %i0
  96  -live- %r1
  96  raise %r1
  98  ---
  98  L1:
  98  inline_call_ir_i <JitCode 'll_dict_get__dicttablePtr_rpy_stringPtr_arrayPtr'>, I[$<* None>], R[$<* struct dicttable>, %r0] -> %i3
 107  -live- %i1, %i3, %r0
 107  -live- %i1, %i3, %r0
 107  goto_if_not_ptr_nonzero %r0, L2
 111  strhash %r0 -> %i0
 114  conditional_call_value_ir_i %i0, $<* fn _ll_strhash__rpy_stringPtr>, I[], R[%r0], <CallDescr(r) EF=2> -> %i2
 123  L3:
 123  ref_isvirtual $<* struct dicttable> -> %i0
 126  -live- %i0, %i1, %i2, %i3, %r0
 126  goto_if_not %i0, L4
 130  inline_call_ir_i <JitCode 'll_call_lookup_function__v3663___simple_call__function_'>, I[%i2, $1], R[$<* struct dicttable>, %r0] -> %i0
 140  -live- %i0, %i1, %i2, %i3, %r0
 140  L5:
 140  inline_call_ir_v <JitCode '_ll_dict_setitem_lookup_done_look_inside_iff__dicttablePtr_rpy_stringPtr_arrayPtr_Signed_Signed'>, I[%i1, %i2, %i0], R[$<* struct dicttable>, %r0]
 150  -live- %i3
 150  -live- %i3
 150  goto_if_not_int_is_true %i3, L6
 154  residual_call_ir_v $<* fn _ll_1_raw_free__arrayPtr>, I[%i3], R[], <CallDescr(i) EF=2 OS_RAW_FREE>
 161  void_return
 162  ---
 162  L6:
 162  void_return
 163  ---
 163  L4:
 163  residual_call_ir_i $<* fn ll_call_lookup_function_trampoline__v3680___simple_call__function_>, I[%i2, $1], R[$<* struct dicttable>, %r0], <CallDescr(rrii) EF=5 OS_DICT_LOOKUP> -> %i0
 174  -live- %i0, %i1, %i2, %i3, %r0
 174  goto L5
 177  ---
 177  L2:
 177  int_copy $0 -> %i2
 180  goto L3
