move-stackless-bytecode 0.1.5

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

[variant baseline]
public intrinsic fun Vector::contains<#0>($t0|v: &vector<#0>, $t1|e: &#0): bool;


[variant baseline]
public intrinsic fun Vector::index_of<#0>($t0|v: &vector<#0>, $t1|e: &#0): (bool, u64);


[variant baseline]
public intrinsic fun Vector::append<#0>($t0|lhs: &mut vector<#0>, $t1|other: vector<#0>);


[variant baseline]
public native fun Vector::borrow<#0>($t0|v: &vector<#0>, $t1|i: u64): &#0;


[variant baseline]
public native fun Vector::borrow_mut<#0>($t0|v: &mut vector<#0>, $t1|i: u64): &mut #0;


[variant baseline]
public native fun Vector::destroy_empty<#0>($t0|v: vector<#0>);


[variant baseline]
public native fun Vector::empty<#0>(): vector<#0>;


[variant baseline]
public intrinsic fun Vector::is_empty<#0>($t0|v: &vector<#0>): bool;


[variant baseline]
public native fun Vector::length<#0>($t0|v: &vector<#0>): u64;


[variant baseline]
public native fun Vector::pop_back<#0>($t0|v: &mut vector<#0>): #0;


[variant baseline]
public native fun Vector::push_back<#0>($t0|v: &mut vector<#0>, $t1|e: #0);


[variant baseline]
public intrinsic fun Vector::remove<#0>($t0|v: &mut vector<#0>, $t1|i: u64): #0;


[variant baseline]
public intrinsic fun Vector::reverse<#0>($t0|v: &mut vector<#0>);


[variant baseline]
public fun Vector::singleton<#0>($t0|e: #0): vector<#0> {
     var $t1|v: vector<#0>
     var $t2: vector<#0>
     var $t3: &mut vector<#0>
     var $t4: #0
     var $t5: vector<#0>
  0: $t2 := Vector::empty<#0>()
  1: $t1 := $t2
  2: $t3 := borrow_local($t1)
  3: $t4 := move($t0)
  4: Vector::push_back<#0>($t3, $t4)
  5: $t5 := move($t1)
  6: return $t5
}


[variant baseline]
public native fun Vector::swap<#0>($t0|v: &mut vector<#0>, $t1|i: u64, $t2|j: u64);


[variant baseline]
public intrinsic fun Vector::swap_remove<#0>($t0|v: &mut vector<#0>, $t1|i: u64): #0;


[variant baseline]
fun Borrow::borrow_s($t0|a: address) {
     var $t1: address
     var $t2: &Borrow::S
  0: $t1 := move($t0)
  1: $t2 := borrow_global<Borrow::S>($t1)
  2: destroy($t2)
  3: return ()
}


[variant baseline]
fun Borrow::borrow_s_mut($t0|a: address) {
     var $t1: address
     var $t2: &mut Borrow::S
  0: $t1 := move($t0)
  1: $t2 := borrow_global<Borrow::S>($t1)
  2: destroy($t2)
  3: return ()
}


[variant baseline]
fun Borrow::borrow_vec($t0|v: &vector<u64>) {
     var $t1: &vector<u64>
     var $t2: u64
     var $t3: &u64
  0: $t1 := move($t0)
  1: $t2 := 7
  2: $t3 := Vector::borrow<u64>($t1, $t2)
  3: destroy($t3)
  4: return ()
}


[variant baseline]
fun Borrow::borrow_vec_mut($t0|v: &mut vector<u64>) {
     var $t1: &mut vector<u64>
     var $t2: u64
     var $t3: &mut u64
  0: $t1 := move($t0)
  1: $t2 := 7
  2: $t3 := Vector::borrow_mut<u64>($t1, $t2)
  3: destroy($t3)
  4: return ()
}

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

[variant baseline]
public intrinsic fun Vector::contains<#0>($t0|v: &vector<#0>, $t1|e: &#0): bool;


[variant baseline]
public intrinsic fun Vector::index_of<#0>($t0|v: &vector<#0>, $t1|e: &#0): (bool, u64);


[variant baseline]
public intrinsic fun Vector::append<#0>($t0|lhs: &mut vector<#0>, $t1|other: vector<#0>);


[variant baseline]
public native fun Vector::borrow<#0>($t0|v: &vector<#0>, $t1|i: u64): &#0;


[variant baseline]
public native fun Vector::borrow_mut<#0>($t0|v: &mut vector<#0>, $t1|i: u64): &mut #0;


[variant baseline]
public native fun Vector::destroy_empty<#0>($t0|v: vector<#0>);


[variant baseline]
public native fun Vector::empty<#0>(): vector<#0>;


[variant baseline]
public intrinsic fun Vector::is_empty<#0>($t0|v: &vector<#0>): bool;


[variant baseline]
public native fun Vector::length<#0>($t0|v: &vector<#0>): u64;


[variant baseline]
public native fun Vector::pop_back<#0>($t0|v: &mut vector<#0>): #0;


[variant baseline]
public native fun Vector::push_back<#0>($t0|v: &mut vector<#0>, $t1|e: #0);


[variant baseline]
public intrinsic fun Vector::remove<#0>($t0|v: &mut vector<#0>, $t1|i: u64): #0;


[variant baseline]
public intrinsic fun Vector::reverse<#0>($t0|v: &mut vector<#0>);


[variant baseline]
public fun Vector::singleton<#0>($t0|e: #0): vector<#0> {
     var $t1|v: vector<#0>
     var $t2: vector<#0>
     var $t3: &mut vector<#0>
     var $t4: #0
     var $t5: vector<#0>
     # Accesses:
     # Formal(0): Read
     #
     # Locals:
     #
  0: $t2 := Vector::empty<#0>()
  1: $t1 := $t2
  2: $t3 := borrow_local($t1)
  3: $t4 := move($t0)
  4: Vector::push_back<#0>($t3, $t4)
  5: $t5 := move($t1)
  6: return $t5
}


[variant baseline]
public native fun Vector::swap<#0>($t0|v: &mut vector<#0>, $t1|i: u64, $t2|j: u64);


[variant baseline]
public intrinsic fun Vector::swap_remove<#0>($t0|v: &mut vector<#0>, $t1|i: u64): #0;


[variant baseline]
fun Borrow::borrow_s($t0|a: address) {
     var $t1: address
     var $t2: &Borrow::S
     # Accesses:
     # Formal(0): Read
     #
     # Locals:
     #
  0: $t1 := move($t0)
  1: $t2 := borrow_global<Borrow::S>($t1)
  2: destroy($t2)
  3: return ()
}


[variant baseline]
fun Borrow::borrow_s_mut($t0|a: address) {
     var $t1: address
     var $t2: &mut Borrow::S
     # Accesses:
     # Formal(0): Read
     #
     # Locals:
     #
  0: $t1 := move($t0)
  1: $t2 := borrow_global<Borrow::S>($t1)
  2: destroy($t2)
  3: return ()
}


[variant baseline]
fun Borrow::borrow_vec($t0|v: &vector<u64>) {
     var $t1: &vector<u64>
     var $t2: u64
     var $t3: &u64
     # Accesses:
     # Formal(0): Read
     # Formal(0)/[_]: Read
     #
     # Locals:
     #
  0: $t1 := move($t0)
  1: $t2 := 7
  2: $t3 := Vector::borrow<u64>($t1, $t2)
  3: destroy($t3)
  4: return ()
}


[variant baseline]
fun Borrow::borrow_vec_mut($t0|v: &mut vector<u64>) {
     var $t1: &mut vector<u64>
     var $t2: u64
     var $t3: &mut u64
     # Accesses:
     # Formal(0): Read
     # Formal(0)/[_]: Read
     #
     # Locals:
     #
  0: $t1 := move($t0)
  1: $t2 := 7
  2: $t3 := Vector::borrow_mut<u64>($t1, $t2)
  3: destroy($t3)
  4: return ()
}