   0  int_copy $0 -> %i1
   3  ref_copy $<* None> -> %r4
   6  L1:
   6  getfield_gc_r_pure %r0, FieldDescr<pypy.objspace.std.mapdict.AbstractAttribute.inst_terminator> -> %r5
  11  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r4, %r5
  11  record_quasiimmut_field %r5, FieldDescr<pypy.objspace.std.mapdict.Terminator.inst_allow_unboxing>, FieldDescr<pypy.objspace.std.mapdict.Terminator.mutate_allow_unboxing>
  17  getfield_gc_i_pure %r5, FieldDescr<pypy.objspace.std.mapdict.Terminator.inst_allow_unboxing> -> %i2
  22  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4
  22  goto_if_not %i2, L2
  26  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r4
  26  goto_if_not_ptr_nonzero %r3, L3
  30  ref_copy %r3 -> %r5
  33  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r4, %r5
  33  guard_class %r5 -> %i2
  36  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4
  36  goto_if_not_int_eq %i2, $<* struct object_vtable>, L4
  41  int_copy $<* struct object_vtable> -> %i2
  44  L5:
  44  residual_call_ir_r $<* fn AbstractAttribute._find_branch_to_move_into>, I[%i0, %i2], R[%r0, %r2], <CallDescr(rrii) EF=4> -> %r5
  55  -live- %i1, %i2, %r0, %r1, %r3, %r4, %r5
  55  getfield_gc_i_pure %r5, FieldDescr<tuple2.item0> -> %i0
  60  getfield_gc_r_pure %r5, FieldDescr<tuple2.item1> -> %r5
  65  inline_call_ir_r <JitCode 'CachedAttributeHolder.pick_attr'>, I[%i2], R[%r5] -> %r6
  73  -live- %i0, %i1, %r0, %r1, %r3, %r4, %r6
  73  -live- %i0, %i1, %r0, %r1, %r3, %r4, %r6
  73  goto_if_not_int_is_true %i0, L6
  77  -live- %i0, %i1, %r0, %r1, %r3, %r4, %r6
  77  goto_if_not_ptr_iszero %r4, L7
  81  -live- %i0, %i1, %r0, %r1, %r3, %r6
  81  guard_class %r0 -> %i2
  84  getfield_raw_i %i2, FieldDescr<pypy.objspace.std.mapdict.AbstractAttribute_vtable.cls_num_attributes> -> %i2
  89  -live- %i0, %i1, %i2, %r0, %r1, %r3, %r6
  89  switch %i2, <SwitchDictDescr 0:L8, 1:L9, 2:L10>
  93  unreachable
  94  ---
  94  L8:
  94  -live- %i0, %i1, %r0, %r1, %r3, %r6
  94  ref_copy $<* struct pypy.objspace.std.mapdict.PlainAttribute> -> %r5
  97  getfield_gc_i_pure %r0, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.inst__num_attributes> -> %i2
 102  int_mul %i2, $2 -> %i2
 106  L11:
 106  inline_call_ir_r <JitCode 'll_alloc_and_set__GcArray_Ptr_GCREF__gcopaque_Ll_Signed_GCREFPtr'>, I[%i2], R[%r5] -> %r4
 114  -live- %i0, %i1, %r0, %r1, %r3, %r4, %r6
 114  int_copy $0 -> %i3
 117  L12:
 117  -live- %i0, %i1, %i3, %r0, %r1, %r3, %r4, %r6
 117  goto_if_not_int_ge %i3, %i0, L13
 122  L14:
 122  -live- %i1, %r1, %r3, %r4, %r6
 122  guard_class %r6 -> %i2
 125  getfield_raw_i %i2, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute_vtable.cls__switch_map_and_write_storage> -> %i2
 130  -live- %i1, %i2, %r1, %r3, %r4, %r6
 130  switch %i2, <SwitchDictDescr 0:L15, 1:L16>
 134  unreachable
 135  ---
 135  L15:
 135  -live- %i1, %r1, %r3, %r4, %r6
 135  inline_call_r_v <JitCode 'UnboxedPlainAttribute._switch_map_and_write_storage'>, R[%r6, %r1, %r3]
 142  -live- %i1, %r1, %r4
 142  L17:
 142  -live- %i1, %r1, %r4
 142  goto_if_not_int_is_true %i1, L18
 146  int_sub %i1, $2 -> %i2
 150  -live- %i2, %r1, %r4
 150  goto_if_not_int_lt %i2, $0, L19
 155  int_copy %i2 -> %i1
 158  arraylen_gc %r4, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000000019e85bf30> -> %i2
 163  int_add %i1, %i2 -> %i2
 167  L20:
 167  getarrayitem_gc_r %r4, %i2, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000000019e85bf30> -> %r5
 173  int_add %i1, $1 -> %i0
 177  -live- %i0, %i1, %r1, %r4, %r5
 177  goto_if_not_int_lt %i0, $0, L21
 182  arraylen_gc %r4, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000000019e85bf30> -> %i2
 187  int_add %i0, %i2 -> %i0
 191  L22:
 191  getarrayitem_gc_r %r4, %i0, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000000019e85bf30> -> %r3
 197  getfield_gc_r_pure %r5, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.inst_name> -> %r2
 202  getfield_gc_i_pure %r5, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.inst_attrkind> -> %i0
 207  -live- %i0, %i1, %r1, %r2, %r3, %r4
 207  guard_class %r1 -> %i2
 210  getfield_raw_i %i2, FieldDescr<pypy.interpreter.baseobjspace.W_Root_vtable.cls__get_mapdict_map> -> %i2
 215  -live- %i0, %i1, %i2, %r1, %r2, %r3, %r4
 215  int_guard_value %i2
 217  residual_call_r_r %i2, <IndirectCallTargets>, R[%r1], <CallDescr(r) EF=2> -> %r0
 224  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r4
 224  goto L1
 227  ---
 227  L21:
 227  goto L22
 230  ---
 230  L19:
 230  int_copy %i2 -> %i1
 233  goto L20
 236  ---
 236  L18:
 236  void_return
 237  ---
 237  L16:
 237  -live- %i1, %r1, %r3, %r4, %r6
 237  inline_call_r_v <JitCode 'PlainAttribute._switch_map_and_write_storage'>, R[%r6, %r1, %r3]
 244  -live- %i1, %r1, %r4
 244  goto L17
 247  ---
 247  L13:
 247  int_add %i3, $1 -> %i3
 251  -live- %i0, %i1, %i3, %r0, %r1, %r3, %r4, %r6
 251  guard_class %r0 -> %i2
 254  getfield_raw_i %i2, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute_vtable.cls__prim_direct_read> -> %i2
 259  -live- %i0, %i1, %i2, %i3, %r0, %r1, %r3, %r4, %r6
 259  switch %i2, <SwitchDictDescr 0:L23, 1:L24>
 263  unreachable
 264  ---
 264  L23:
 264  -live- %i0, %i1, %i3, %r0, %r1, %r3, %r4, %r6
 264  inline_call_r_r <JitCode 'UnboxedPlainAttribute._prim_direct_read'>, R[%r0, %r1] -> %r5
 271  -live- %i0, %i1, %i3, %r0, %r1, %r3, %r4, %r5, %r6
 271  L25:
 271  -live- %i0, %i1, %i3, %r0, %r1, %r3, %r4, %r5, %r6
 271  goto_if_not_int_lt %i1, $0, L26
 276  int_copy %i1 -> %i2
 279  ref_copy %r0 -> %r2
 282  arraylen_gc %r4, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000000019e85bf30> -> %i1
 287  int_add %i2, %i1 -> %i1
 291  L27:
 291  setarrayitem_gc_r %r4, %i1, %r0, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000000019e85bf30>
 297  int_add %i2, $1 -> %i4
 301  -live- %i0, %i2, %i3, %i4, %r1, %r2, %r3, %r4, %r5, %r6
 301  goto_if_not_int_lt %i4, $0, L28
 306  arraylen_gc %r4, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000000019e85bf30> -> %i1
 311  int_add %i4, %i1 -> %i4
 315  L29:
 315  setarrayitem_gc_r %r4, %i4, %r5, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000000019e85bf30>
 321  int_add %i2, $2 -> %i1
 325  getfield_gc_r_pure %r2, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.inst_back> -> %r0
 330  goto L12
 333  ---
 333  L28:
 333  goto L29
 336  ---
 336  L26:
 336  int_copy %i1 -> %i2
 339  ref_copy %r0 -> %r2
 342  goto L27
 345  ---
 345  L24:
 345  -live- %i0, %i1, %i3, %r0, %r1, %r3, %r4, %r6
 345  getfield_gc_i_pure %r0, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.inst_storageindex> -> %i2
 350  -live- %i0, %i1, %i2, %i3, %r0, %r1, %r3, %r4, %r6
 350  guard_class %r1 -> %i4
 353  getfield_raw_i %i4, FieldDescr<pypy.interpreter.baseobjspace.W_Root_vtable.cls__mapdict_read_storage> -> %i4
 358  -live- %i0, %i1, %i2, %i3, %i4, %r0, %r1, %r3, %r4, %r6
 358  int_guard_value %i4
 360  residual_call_ir_r %i4, <IndirectCallTargets>, I[%i2], R[%r1], <CallDescr(ri) EF=5> -> %r5
 369  -live- %i0, %i1, %i3, %r0, %r1, %r3, %r4, %r5, %r6
 369  goto L25
 372  ---
 372  L9:
 372  -live- %i0, %i1, %r0, %r1, %r3, %r6
 372  int_copy $0 -> %i2
 375  ref_copy $<* struct pypy.objspace.std.mapdict.PlainAttribute> -> %r5
 378  goto L11
 381  ---
 381  L10:
 381  -live-
 381  raise $<* struct object>
 383  ---
 383  L7:
 383  int_copy $0 -> %i3
 386  goto L12
 389  ---
 389  L6:
 389  goto L14
 392  ---
 392  L4:
 392  L30:
 392  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r4
 392  goto_if_not_ptr_nonzero %r3, L31
 396  ref_copy %r3 -> %r5
 399  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r4, %r5
 399  guard_class %r5 -> %i2
 402  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4
 402  goto_if_not_int_eq %i2, $<* struct object_vtable>, L32
 407  int_copy $<* struct object_vtable> -> %i2
 410  goto L5
 413  ---
 413  L32:
 413  int_copy $<* struct object_vtable> -> %i2
 416  goto L5
 419  ---
 419  L31:
 419  int_copy $<* struct object_vtable> -> %i2
 422  goto L5
 425  ---
 425  L3:
 425  goto L30
 428  ---
 428  L2:
 428  int_copy $<* struct object_vtable> -> %i2
 431  goto L5
