Вы можете скомпилировать код дважды, сначала с помощью:
$ gcc -O0 -S -o yourfile_o0.s
Затем с помощью:
$ gcc -O3 -S -o yourfile_o3.s
Затем вы можете diff
два результирующих файла сборки:
$ diff -u yourfile_o0.s yourfile_o3.s
$ vim -d yourfile_o0.s yourfile_o3.s
$ emacs --eval '(ediff "yourfile_o0.s" "yourfile_o3.s")'