move-stackless-bytecode 0.3.2

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

[variant baseline]
fun TestBranching::branching($t0|cond: bool): u64 {
     var $t1|tmp#$1: u64
     var $t2|x: u64
     var $t3: bool
     var $t4: u64
     var $t5: u64
     var $t6: u64
     var $t7: u64
  0: $t3 := move($t0)
  1: if ($t3) goto 2 else goto 6
  2: label L0
  3: $t4 := 3
  4: $t1 := $t4
  5: goto 10
  6: label L2
  7: $t5 := 4
  8: $t1 := $t5
  9: goto 10
 10: label L3
 11: $t6 := move($t1)
 12: $t2 := $t6
 13: $t7 := move($t2)
 14: return $t7
}

============ after pipeline `reaching_def` ================

[variant baseline]
fun TestBranching::branching($t0|cond: bool): u64 {
     var $t1|tmp#$1: u64
     var $t2|x: u64
     var $t3: bool
     var $t4: u64
     var $t5: u64
     var $t6: u64
     var $t7: u64
  0: $t3 := move($t0)
  1: if ($t0) goto 2 else goto 6
  2: label L0
  3: $t4 := 3
  4: $t1 := $t4
  5: goto 9
  6: label L2
  7: $t5 := 4
  8: $t1 := $t5
  9: label L3
 10: $t6 := move($t1)
 11: $t2 := $t1
 12: $t7 := move($t1)
 13: return $t1
}