LINUX.ORG.RU

Подскажите на каких компилерах -g опускает оптимизацию до нуля?

 ,


0

1

До недавнего времени я свято верил что опции -g и -O не взаимодействуют но тут мне сказали что icc при указании -g опускает оптимизацию до нуля.

Как ведет себя clang в этой же ситуации? А другие компилеры?

★★★★★

http://www.physics.udel.edu/~bnikolic/QTTG/shared/docs/intel_c_user_and_refer...

Description 
This option tells the compiler to generate symbolic debugging information in the  object file for use by debuggers.  
The compiler does not support the  generation of debugging information in  assemblable files. If you specify this opt
ion, the resulting obj ect file will contain  debugging information, but the  assemblable file will not.

This option turns off O2 and makes O0 (Linux and Mac OS X)
or Od (Windows) the default

unless O2 (or another O option) is explicitly specified in the same command line. 

-g не должен менять кодогенерацию. Только добавлять отладочную секцию.

gcc и clang имеют умолчание оптимизации -O0.

$ gcc -Q --help=optimizers > gcc
$ gcc -Q -g --help=optimizers > gcc-g
$ gcc -Q -O2 --help=optimizers > gcc-O2
$ gcc -Q -O2 -g --help=optimizers > gcc-O2-g

$ sha1sum gcc*
e6e22f7888478cbc2344a9fe978c2ee84fbf10fd  gcc
e6e22f7888478cbc2344a9fe978c2ee84fbf10fd  gcc-g
02ed5bcc449768a410be21340862f8762a1b7d3e  gcc-O2
02ed5bcc449768a410be21340862f8762a1b7d3e  gcc-O2-g

Судя по всему icc имеет умолчание оптимизации -O2, но -g возвращает умолчание в -O0.

sf ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.