mirror of
https://github.com/Noratrieb/uwucc.git
synced 2026-01-14 08:35:08 +01:00
728 B
728 B
lowering
This C program
long main() {
long a = 0;
int b = 0;
return 0;
}
should lower into the following unoptimized IR
def main() {
bb0:
%a = alloca, size=8, align=8
store %a, 0, size=8, align=8
%b = alloca, size=4, align=4
store %b, 0, size=4, align=4
ret 0
}
this IR can then be lowered to very sane machine code ignoring stack alignment which also like matters
sub rbp, 8 ; a
mov [rbp], 0
sub rbp, 4 ; b
xor rax, rax
ret
int main()
{
int a = 1 + 3 * 4;
return 0;
}
def main() {
bb0:
%a = alloca, size=4, align=4
%1 = mul 3, 4
%2 = add 1, %1
store %a, %2, size=4, align=4
ret 0
}