sway-ir 0.71.2

Sway intermediate representation.
Documentation
// all
//
// Based on this Sway:
//
// script;
//
// fn a(b: u64) -> u64 {
//     b
// }
//
// fn main() -> u64 {
//     a(11);
//     a(22)
// }

// regex: VAR=v\d+v\d+
// regex: LABEL=[[:alpha:]0-9_]+

script {
    fn a(b: u64) -> u64 {
        entry(b: u64):
        ret u64 b
    }


// check: fn main
    fn main() -> u64 {
        entry():

// check: $(arg0=$VAR) = const u64 11
        v0 = const u64 11
// not: call
        v1 = call a(v0)
// check: br $(lbl0=$LABEL)($arg0)

// check: $(lbl0)($(arg2=$VAR): u64)
// check: $(arg1=$VAR) = const u64 22
        v2 = const u64 22
// not: call
        v3 = call a(v2)
// check: br $(lbl1=$LABEL)($arg1)

// check: $(lbl1)($(arg3=$VAR): u64)

        ret u64 v3
    }
}