   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
  14  record_quasiimmut_field %r5, FieldDescr<pypy.objspace.std.mapdict.Terminator.inst_allow_unboxing>, FieldDescr<pypy.objspace.std.mapdict.Terminator.mutate_allow_unboxing>
  20  getfield_gc_i_pure %r5, FieldDescr<pypy.objspace.std.mapdict.Terminator.inst_allow_unboxing> -> %i2
  25  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4
  28  goto_if_not %i2, L2
  32  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r4
  35  goto_if_not_ptr_nonzero %r3, L3
  39  ref_copy %r3 -> %r5
  42  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r4, %r5
  45  guard_class %r5 -> %i2
  48  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4
  51  goto_if_not_int_eq %i2, $<* struct object_vtable>, L4
  56  int_copy $<* struct object_vtable> -> %i2
  59  L5:
  59  residual_call_ir_r $<* fn AbstractAttribute._find_branch_to_move_into>, I[%i0, %i2], R[%r0, %r2], <CallDescr(rrii) EF=4> -> %r5
  70  -live- %i1, %i2, %r0, %r1, %r3, %r4, %r5
  73  getfield_gc_i_pure %r5, FieldDescr<tuple2.item0> -> %i0
  78  getfield_gc_r_pure %r5, FieldDescr<tuple2.item1> -> %r5
  83  inline_call_ir_r <JitCode 'CachedAttributeHolder.pick_attr'>, I[%i2], R[%r5] -> %r6
  91  -live- %i0, %i1, %r0, %r1, %r3, %r4, %r6
  94  goto_if_not_int_is_true %i0, L6
  98  -live- %i0, %i1, %r0, %r1, %r3, %r4, %r6
 101  goto_if_not_ptr_iszero %r4, L7
 105  -live- %i0, %i1, %r0, %r1, %r3, %r6
 108  guard_class %r0 -> %i2
 111  getfield_raw_i %i2, FieldDescr<pypy.objspace.std.mapdict.AbstractAttribute_vtable.cls_num_attributes> -> %i2
 116  -live- %i0, %i1, %i2, %r0, %r1, %r3, %r6
 119  switch %i2, <SwitchDictDescr 0:L8, 1:L9, 2:L10>
 123  unreachable
 124  ---
 124  L8:
 124  -live- %i0, %i1, %r0, %r1, %r3, %r6
 127  int_copy $0 -> %i2
 130  ref_copy $<* struct pypy.objspace.std.mapdict.PlainAttribute> -> %r5
 133  L11:
 133  inline_call_ir_r <JitCode 'll_alloc_and_set__GcArray_Ptr_GCREF__gcopaque_Ll_Signed_GCREFPtr'>, I[%i2], R[%r5] -> %r4
 141  -live- %i0, %i1, %r0, %r1, %r3, %r4, %r6
 144  int_copy $0 -> %i3
 147  L12:
 147  -live- %i0, %i1, %i3, %r0, %r1, %r3, %r4, %r6
 150  goto_if_not_int_ge %i3, %i0, L13
 155  L14:
 155  -live- %i1, %r1, %r3, %r4, %r6
 158  guard_class %r6 -> %i2
 161  getfield_raw_i %i2, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute_vtable.cls__switch_map_and_write_storage> -> %i2
 166  -live- %i1, %i2, %r1, %r3, %r4, %r6
 169  switch %i2, <SwitchDictDescr 0:L15, 1:L16>
 173  unreachable
 174  ---
 174  L15:
 174  -live- %i1, %r1, %r3, %r4, %r6
 177  inline_call_r_v <JitCode 'UnboxedPlainAttribute._switch_map_and_write_storage'>, R[%r6, %r1, %r3]
 184  L17:
 184  -live- %i1, %r1, %r4
 187  goto_if_not_int_is_true %i1, L18
 191  int_sub %i1, $2 -> %i2
 195  -live- %i2, %r1, %r4
 198  goto_if_not_int_lt %i2, $0, L19
 203  int_copy %i2 -> %i1
 206  arraylen_gc %r4, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000055d03907c5d0> -> %i2
 211  int_add %i1, %i2 -> %i2
 215  L20:
 215  getarrayitem_gc_r %r4, %i2, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000055d03907c5d0> -> %r5
 221  int_add %i1, $1 -> %i0
 225  -live- %i0, %i1, %r1, %r4, %r5
 228  goto_if_not_int_lt %i0, $0, L21
 233  arraylen_gc %r4, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000055d03907c5d0> -> %i2
 238  int_add %i0, %i2 -> %i0
 242  L22:
 242  getarrayitem_gc_r %r4, %i0, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000055d03907c5d0> -> %r3
 248  getfield_gc_r_pure %r5, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.inst_name> -> %r2
 253  getfield_gc_i_pure %r5, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.inst_attrkind> -> %i0
 258  -live- %i0, %i1, %r1, %r2, %r3, %r4
 261  guard_class %r1 -> %i2
 264  getfield_raw_i %i2, FieldDescr<pypy.interpreter.baseobjspace.W_Root_vtable.cls__get_mapdict_map> -> %i2
 269  -live- %i0, %i1, %i2, %r1, %r2, %r3, %r4
 272  int_guard_value %i2
 274  residual_call_r_r %i2, <IndirectCallTargets>, R[%r1], <CallDescr(r) EF=2> -> %r0
 281  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r4
 284  goto L1
 287  ---
 287  L21:
 287  goto L22
 290  ---
 290  L19:
 290  int_copy %i2 -> %i1
 293  goto L20
 296  ---
 296  L18:
 296  void_return
 297  ---
 297  L16:
 297  -live- %i1, %r1, %r3, %r4, %r6
 300  inline_call_r_v <JitCode 'PlainAttribute._switch_map_and_write_storage'>, R[%r6, %r1, %r3]
 307  -live- %i1, %r1, %r4
 310  goto L17
 313  ---
 313  L13:
 313  int_add %i3, $1 -> %i3
 317  -live- %i0, %i1, %i3, %r0, %r1, %r3, %r4, %r6
 320  guard_class %r0 -> %i2
 323  getfield_raw_i %i2, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute_vtable.cls__prim_direct_read> -> %i2
 328  -live- %i0, %i1, %i2, %i3, %r0, %r1, %r3, %r4, %r6
 331  switch %i2, <SwitchDictDescr 0:L23, 1:L24>
 335  unreachable
 336  ---
 336  L23:
 336  -live- %i0, %i1, %i3, %r0, %r1, %r3, %r4, %r6
 339  inline_call_r_r <JitCode 'UnboxedPlainAttribute._prim_direct_read'>, R[%r0, %r1] -> %r5
 346  L25:
 346  -live- %i0, %i1, %i3, %r0, %r1, %r3, %r4, %r5, %r6
 349  goto_if_not_int_lt %i1, $0, L26
 354  int_copy %i1 -> %i2
 357  ref_copy %r0 -> %r2
 360  arraylen_gc %r4, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000055d03907c5d0> -> %i1
 365  int_add %i2, %i1 -> %i1
 369  L27:
 369  setarrayitem_gc_r %r4, %i1, %r0, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000055d03907c5d0>
 375  int_add %i2, $1 -> %i4
 379  -live- %i0, %i2, %i3, %i4, %r1, %r2, %r3, %r4, %r5, %r6
 382  goto_if_not_int_lt %i4, $0, L28
 387  arraylen_gc %r4, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000055d03907c5d0> -> %i1
 392  int_add %i4, %i1 -> %i4
 396  L29:
 396  setarrayitem_gc_r %r4, %i4, %r5, <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x000055d03907c5d0>
 402  int_add %i2, $2 -> %i1
 406  getfield_gc_r_pure %r2, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.inst_back> -> %r0
 411  goto L12
 414  ---
 414  L28:
 414  goto L29
 417  ---
 417  L26:
 417  int_copy %i1 -> %i2
 420  ref_copy %r0 -> %r2
 423  goto L27
 426  ---
 426  L24:
 426  -live- %i0, %i1, %i3, %r0, %r1, %r3, %r4, %r6
 429  getfield_gc_i_pure %r0, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.inst_storageindex> -> %i2
 434  -live- %i0, %i1, %i2, %i3, %r0, %r1, %r3, %r4, %r6
 437  guard_class %r1 -> %i4
 440  getfield_raw_i %i4, FieldDescr<pypy.interpreter.baseobjspace.W_Root_vtable.cls__mapdict_read_storage> -> %i4
 445  -live- %i0, %i1, %i2, %i3, %i4, %r0, %r1, %r3, %r4, %r6
 448  int_guard_value %i4
 450  residual_call_ir_r %i4, <IndirectCallTargets>, I[%i2], R[%r1], <CallDescr(ri) EF=5> -> %r5
 459  -live- %i0, %i1, %i3, %r0, %r1, %r3, %r4, %r5, %r6
 462  goto L25
 465  ---
 465  L9:
 465  -live- %i0, %i1, %r0, %r1, %r3, %r6
 468  ref_copy $<* struct pypy.objspace.std.mapdict.PlainAttribute> -> %r5
 471  getfield_gc_i_pure %r0, FieldDescr<pypy.objspace.std.mapdict.PlainAttribute.inst__num_attributes> -> %i2
 476  int_mul %i2, $2 -> %i2
 480  goto L11
 483  ---
 483  L10:
 483  -live-
 486  raise $<* struct object>
 488  ---
 488  L7:
 488  int_copy $0 -> %i3
 491  goto L12
 494  ---
 494  L6:
 494  goto L14
 497  ---
 497  L4:
 497  L30:
 497  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r4
 500  goto_if_not_ptr_nonzero %r3, L31
 504  ref_copy %r3 -> %r5
 507  -live- %i0, %i1, %r0, %r1, %r2, %r3, %r4, %r5
 510  guard_class %r5 -> %i2
 513  -live- %i0, %i1, %i2, %r0, %r1, %r2, %r3, %r4
 516  goto_if_not_int_eq %i2, $<* struct object_vtable>, L32
 521  int_copy $<* struct object_vtable> -> %i2
 524  goto L5
 527  ---
 527  L32:
 527  int_copy $<* struct object_vtable> -> %i2
 530  goto L5
 533  ---
 533  L31:
 533  int_copy $<* struct object_vtable> -> %i2
 536  goto L5
 539  ---
 539  L3:
 539  goto L30
 542  ---
 542  L2:
 542  int_copy $<* struct object_vtable> -> %i2
 545  goto L5
