https://gcc.godbolt.org
int addx(int a){
return a + 2;
}
int gooo(){
return addx(3) + addx(4) + addx(5);
}
int gooox(){
int x = addx(3);
int y = addx(4);
return x + y;
}
addx(int):
push rbp
mov rbp, rsp
mov DWORD PTR [rbp-4], edi
mov eax, DWORD PTR [rbp-4]
add eax, 2
pop rbp
ret
gooo():
push rbp
mov rbp, rsp
push rbx
mov edi, 3
call addx(int)
mov ebx, eax
mov edi, 4
call addx(int)
add ebx, eax
mov edi, 5
call addx(int)
add eax, ebx
pop rbx
pop rbp
ret
gooox():
push rbp
mov rbp, rsp
sub rsp, 16
mov edi, 3
call addx(int)
mov DWORD PTR [rbp-4], eax
mov edi, 4
call addx(int)
mov DWORD PTR [rbp-8], eax
mov edx, DWORD PTR [rbp-4]
mov eax, DWORD PTR [rbp-8]
add eax, edx
leave
ret