move-stackless-bytecode 0.3.2

Move stackless bytecode
Documentation
============ initial translation from Move ================

[variant baseline]
public fun BoolFootprint::call_get($t0|a: address) {
     var $t1: address
     var $t2: bool
     var $t3: u64
  0: $t1 := move($t0)
  1: $t2 := BoolFootprint::global_get($t1)
  2: if ($t2) goto 6 else goto 3
  3: label L1
  4: $t3 := 22
  5: abort($t3)
  6: label L0
  7: return ()
}


[variant baseline]
public fun BoolFootprint::global_get($t0|a: address): bool {
     var $t1|tmp#$1: bool
     var $t2: address
     var $t3: bool
     var $t4: address
     var $t5: &BoolFootprint::B
     var $t6: &bool
     var $t7: bool
     var $t8: bool
     var $t9: bool
  0: $t2 := copy($t0)
  1: $t3 := exists<BoolFootprint::B>($t2)
  2: if ($t3) goto 3 else goto 10
  3: label L0
  4: $t4 := move($t0)
  5: $t5 := borrow_global<BoolFootprint::B>($t4)
  6: $t6 := borrow_field<BoolFootprint::B>.b($t5)
  7: $t7 := read_ref($t6)
  8: $t1 := $t7
  9: goto 14
 10: label L2
 11: $t8 := false
 12: $t1 := $t8
 13: goto 14
 14: label L3
 15: $t9 := move($t1)
 16: return $t9
}

============ after pipeline `read_write_set` ================

[variant baseline]
public fun BoolFootprint::call_get($t0|a: address) {
     var $t1: address
     var $t2: bool
     var $t3: u64
     # Accesses:
     # Formal(0): Read
     # Formal(0)/0x1::BoolFootprint::B: Read
     # Formal(0)/0x1::BoolFootprint::B/b: Read
     #
     # Locals:
     #
  0: $t1 := move($t0)
  1: $t2 := BoolFootprint::global_get($t1)
  2: if ($t2) goto 6 else goto 3
  3: label L1
  4: $t3 := 22
  5: abort($t3)
  6: label L0
  7: return ()
}


[variant baseline]
public fun BoolFootprint::global_get($t0|a: address): bool {
     var $t1|tmp#$1: bool
     var $t2: address
     var $t3: bool
     var $t4: address
     var $t5: &BoolFootprint::B
     var $t6: &bool
     var $t7: bool
     var $t8: bool
     var $t9: bool
     # Accesses:
     # Formal(0): Read
     # Formal(0)/0x1::BoolFootprint::B: Read
     # Formal(0)/0x1::BoolFootprint::B/b: Read
     #
     # Locals:
     # Ret(0): Formal(0)/0x1::BoolFootprint::B/b
     #
  0: $t2 := copy($t0)
  1: $t3 := exists<BoolFootprint::B>($t2)
  2: if ($t3) goto 3 else goto 10
  3: label L0
  4: $t4 := move($t0)
  5: $t5 := borrow_global<BoolFootprint::B>($t4)
  6: $t6 := borrow_field<BoolFootprint::B>.b($t5)
  7: $t7 := read_ref($t6)
  8: $t1 := $t7
  9: goto 14
 10: label L2
 11: $t8 := false
 12: $t1 := $t8
 13: goto 14
 14: label L3
 15: $t9 := move($t1)
 16: return $t9
}