move-stackless-bytecode 0.1.5

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

[variant baseline]
public fun Funtions::call_write_vec($t0|a: address, $t1|v: vector<u8>) {
     var $t2: address
     var $t3: &mut Funtions::R
     var $t4: vector<u8>
  0: $t2 := move($t0)
  1: $t3 := borrow_global<Funtions::R>($t2)
  2: $t4 := move($t1)
  3: Funtions::write_vec($t3, $t4)
  4: return ()
}


[variant baseline]
public fun Funtions::choice($t0|a: vector<address>, $t1|b: vector<address>, $t2|c: bool): vector<address> {
     var $t3|tmp#$3: vector<address>
     var $t4: bool
     var $t5: vector<address>
     var $t6: vector<address>
     var $t7: vector<address>
  0: $t4 := move($t2)
  1: if ($t4) goto 2 else goto 6
  2: label L0
  3: $t5 := move($t0)
  4: $t3 := $t5
  5: goto 10
  6: label L2
  7: $t6 := move($t1)
  8: $t3 := $t6
  9: goto 10
 10: label L3
 11: $t7 := move($t3)
 12: return $t7
}


[variant baseline]
public fun Funtions::id($t0|a: address): address {
     var $t1: address
  0: $t1 := move($t0)
  1: return $t1
}


[variant baseline]
public fun Funtions::id_generic<#0>($t0|t: #0): #0 {
     var $t1: #0
  0: $t1 := move($t0)
  1: return $t1
}


[variant baseline]
public fun Funtions::id_ref($t0|a: &address): &address {
     var $t1: &address
  0: $t1 := move($t0)
  1: return $t1
}


[variant baseline]
public fun Funtions::id_ref_generic<#0>($t0|t: &#0): &#0 {
     var $t1: &#0
  0: $t1 := move($t0)
  1: return $t1
}


[variant baseline]
public fun Funtions::write_vec($t0|r: &mut Funtions::R, $t1|v: vector<u8>) {
     var $t2: vector<u8>
     var $t3: &mut Funtions::R
     var $t4: &mut vector<u8>
  0: $t2 := move($t1)
  1: $t3 := move($t0)
  2: $t4 := borrow_field<Funtions::R>.v($t3)
  3: write_ref($t4, $t2)
  4: return ()
}

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

[variant baseline]
public fun Funtions::call_write_vec($t0|a: address, $t1|v: vector<u8>) {
     var $t2: address
     var $t3: &mut Funtions::R
     var $t4: vector<u8>
     # Accesses:
     # Formal(0): Read
     # Formal(0)/0x1::Funtions::R: Read
     # Formal(0)/0x1::Funtions::R/v: Write
     # Formal(1): Read
     #
     # Locals:
     #
  0: $t2 := move($t0)
  1: $t3 := borrow_global<Funtions::R>($t2)
  2: $t4 := move($t1)
  3: Funtions::write_vec($t3, $t4)
  4: return ()
}


[variant baseline]
public fun Funtions::choice($t0|a: vector<address>, $t1|b: vector<address>, $t2|c: bool): vector<address> {
     var $t3|tmp#$3: vector<address>
     var $t4: bool
     var $t5: vector<address>
     var $t6: vector<address>
     var $t7: vector<address>
     # Accesses:
     # Formal(0): Read
     # Formal(1): Read
     # Formal(2): Read
     #
     # Locals:
     # Ret(0): {Formal(0), Formal(1), }
     #
  0: $t4 := move($t2)
  1: if ($t4) goto 2 else goto 6
  2: label L0
  3: $t5 := move($t0)
  4: $t3 := $t5
  5: goto 10
  6: label L2
  7: $t6 := move($t1)
  8: $t3 := $t6
  9: goto 10
 10: label L3
 11: $t7 := move($t3)
 12: return $t7
}


[variant baseline]
public fun Funtions::id($t0|a: address): address {
     var $t1: address
     # Accesses:
     # Formal(0): Read
     #
     # Locals:
     # Ret(0): Formal(0)
     #
  0: $t1 := move($t0)
  1: return $t1
}


[variant baseline]
public fun Funtions::id_generic<#0>($t0|t: #0): #0 {
     var $t1: #0
     # Accesses:
     # Formal(0): Read
     #
     # Locals:
     # Ret(0): Formal(0)
     #
  0: $t1 := move($t0)
  1: return $t1
}


[variant baseline]
public fun Funtions::id_ref($t0|a: &address): &address {
     var $t1: &address
     # Accesses:
     # Formal(0): Read
     #
     # Locals:
     # Ret(0): Formal(0)
     #
  0: $t1 := move($t0)
  1: return $t1
}


[variant baseline]
public fun Funtions::id_ref_generic<#0>($t0|t: &#0): &#0 {
     var $t1: &#0
     # Accesses:
     # Formal(0): Read
     #
     # Locals:
     # Ret(0): Formal(0)
     #
  0: $t1 := move($t0)
  1: return $t1
}


[variant baseline]
public fun Funtions::write_vec($t0|r: &mut Funtions::R, $t1|v: vector<u8>) {
     var $t2: vector<u8>
     var $t3: &mut Funtions::R
     var $t4: &mut vector<u8>
     # Accesses:
     # Formal(0): Read
     # Formal(0)/v: Write
     # Formal(1): Read
     #
     # Locals:
     # Formal(0)/v: Formal(1)
     #
  0: $t2 := move($t1)
  1: $t3 := move($t0)
  2: $t4 := borrow_field<Funtions::R>.v($t3)
  3: write_ref($t4, $t2)
  4: return ()
}