Aaaaa xD Widzisz :D Wybacz, naprawdę źle przeczytałem.
gcc -S -O3 plik.cpp
Pierwszy kod
.file "ala.cpp"
.def ___main; .scl 2; .type 32; .endef
.text
.align 2
.p2align 4,,15
.globl _main
.def _main; .scl 2; .type 32; .endef
_main:
pushl %ebp
movl $16, %eax
movl %esp, %ebp
subl $8, %esp
andl $-16, %esp
call __alloca
call ___main
leave
xorl %eax, %eax
ret
Linii: 18!
Drugi kod
.file "ala.cpp"
.def ___main; .scl 2; .type 32; .endef
.text
.align 2
.p2align 4,,15
.globl _main
.def _main; .scl 2; .type 32; .endef
_main:
pushl %ebp
movl $16, %eax
movl %esp, %ebp
subl $8, %esp
andl $-16, %esp
call __alloca
call ___main
leave
xorl %eax, %eax
ret
Linii: 18!
Trzeci kod:
.file "ala.cpp"
.def ___main; .scl 2; .type 32; .endef
.text
.align 2
.p2align 4,,15
.globl _main
.def _main; .scl 2; .type 32; .endef
_main:
pushl %ebp
movl $16, %eax
movl %esp, %ebp
subl $8, %esp
andl $-16, %esp
call __alloca
call ___main
leave
xorl %eax, %eax
ret
Linii: 18!
Kod pekfosa
.file "ala.cpp"
.def ___main; .scl 2; .type 32; .endef
.section .rdata,"dr"
LC0:
.ascii "%d\0"
.text
.align 2
.p2align 4,,15
.globl _main
.def _main; .scl 2; .type 32; .endef
_main:
pushl %ebp
movl $16, %eax
movl %esp, %ebp
subl $8, %esp
andl $-16, %esp
call __alloca
call ___main
movl $LC0, (%esp)
movl $5, %eax
movl %eax, 4(%esp)
call _printf
leave
xorl %eax, %eax
ret
.def _printf; .scl 2; .type 32; .endef
Linii: 25 :)
Dlaczego w obecnych czasach kiedy jest więcej RAMu niż czasu kompilatory nie ustawiają optymalizacji wysokiej?
// edit
a tak z ciekawości, gdyby wartość zmiennej była nieznana, to optymalizacja przebiegła by zupełnie inaczej przecież :P ?