Я добавил байткодеризацию для while, но без do, else, post instruction, break и continue. Всё-таки пришлось переписать кое-что, но это оказалось много легче, чем я думал.
u8 a := 33;

func (u8,[u32 c0,f32e8 c1]) main := {
	u8 b := 8 + 5;
	while 1 {
		b := 3;
	};
	return a + 57;
};
преобразуется в:
u8 @0 'a' := 0x21

func(u8,[u32 %0,f32e8 %1]) @1 'main' := {
.0:
        %2 := alloca u8;
        %3 := 0x8 + 0x5;
        %2 := %3;
.3:
        branch 0x1 .4,.6;
.4:
        {
        .0:
                %2 := 0x3;
        };
        goto .3;
.6:
        %4 := @0 + 0x39;
        return %4;
}
В итоге я засомневался в goto в laisi. Дело в том, что если написать такое:
{a := b + c;
d := e + f;},,
{lbl: g := h + i;
j := k + l;};
goto lbl;
?????
Верхние 2 комплекса ({}) инструкций исполняются в неопределённом порядке, потенцаильно параллельно, но при это внутри комплексов инструкции исполняются по порядку. И что сделает goto lbl; — неясно.

 >>/2098/
https://ru.wikipedia.org/wiki/События_на_площади_Тяньаньмэнь_(1989)