move-stackless-bytecode 0.3.2

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 ReadVector::extract_addr_from_vec($t0|s: ReadVector::S): address {
     var $t1|a: vector<address>
     var $t2: ReadVector::S
     var $t3: vector<address>
     var $t4: &vector<address>
     var $t5: u64
     var $t6: &address
     var $t7: address
  0: $t2 := move($t0)
  1: $t3 := unpack ReadVector::S($t2)
  2: $t1 := $t3
  3: $t4 := borrow_local($t1)
  4: $t5 := 0
  5: $t6 := vector::borrow<address>($t4, $t5)
  6: $t7 := read_ref($t6)
  7: return $t7
}


[variant baseline]
fun ReadVector::read_addr_from_vec($t0|s: ReadVector::S): bool {
     var $t1|a: address
     var $t2: ReadVector::S
     var $t3: address
     var $t4: address
     var $t5: &ReadVector::Glob
     var $t6: &bool
     var $t7: bool
  0: $t2 := move($t0)
  1: $t3 := ReadVector::extract_addr_from_vec($t2)
  2: $t1 := $t3
  3: $t4 := move($t1)
  4: $t5 := borrow_global<ReadVector::Glob>($t4)
  5: $t6 := borrow_field<ReadVector::Glob>.b($t5)
  6: $t7 := read_ref($t6)
  7: return $t7
}

============ 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 ReadVector::extract_addr_from_vec($t0|s: ReadVector::S): address {
     var $t1|a: vector<address>
     var $t2: ReadVector::S
     var $t3: vector<address>
     var $t4: &vector<address>
     var $t5: u64
     var $t6: &address
     var $t7: address
     # Accesses:
     # Formal(0): Read
     # Formal(0)/a: Read
     # Formal(0)/a/[_]: Read
     #
     # Locals:
     # Ret(0): Formal(0)/a/[_]
     #
  0: $t2 := move($t0)
  1: $t3 := unpack ReadVector::S($t2)
  2: $t1 := $t3
  3: $t4 := borrow_local($t1)
  4: $t5 := 0
  5: $t6 := vector::borrow<address>($t4, $t5)
  6: $t7 := read_ref($t6)
  7: return $t7
}


[variant baseline]
fun ReadVector::read_addr_from_vec($t0|s: ReadVector::S): bool {
     var $t1|a: address
     var $t2: ReadVector::S
     var $t3: address
     var $t4: address
     var $t5: &ReadVector::Glob
     var $t6: &bool
     var $t7: bool
     # Accesses:
     # Formal(0): Read
     # Formal(0)/a: Read
     # Formal(0)/a/[_]: Read
     # Formal(0)/a/[_]/0x2::ReadVector::Glob/b: Read
     #
     # Locals:
     # Ret(0): Formal(0)/a/[_]/0x2::ReadVector::Glob/b
     #
  0: $t2 := move($t0)
  1: $t3 := ReadVector::extract_addr_from_vec($t2)
  2: $t1 := $t3
  3: $t4 := move($t1)
  4: $t5 := borrow_global<ReadVector::Glob>($t4)
  5: $t6 := borrow_field<ReadVector::Glob>.b($t5)
  6: $t7 := read_ref($t6)
  7: return $t7
}