-марш и режим отладки - PullRequest
1 голос
/ 20 июля 2011

Я знаю, что слишком много оптимизации не имеет особого смысла для кода отладки.
Но как насчет использования -march = native для лучшего использования набора команд?

EDIT: Давайте переформулируем это. Я знаю, что одновременное включение оптимизации и режима отладки может иметь такие недостатки, как:

GCC позволяет использовать -g с -O. Сочетания клавиш оптимизированы код может иногда давать неожиданные результаты: некоторые переменные вы объявленный может вообще не существовать; поток управления может ненадолго переместиться туда, где ты этого не ожидал; некоторые заявления не могут быть выполнены, потому что они вычисляют постоянные результаты или их значения уже были под рукой; некоторые операторы могут выполняться в разных местах, потому что они вышел из петель.

Итак, мой вопрос: -march = native имеет похожие побочные эффекты или целесообразно использовать его также в отладочном коде?

1 Ответ

2 голосов
/ 20 июля 2011

Проблема с оптимизацией заключается в агрессивных проходах оптимизации, которые изменяют поток управления, могут запутать отладчики. -march=native может включить дополнительные оптимизации (например, cmov) , если эти проходы были включены с параметром -O , но само по себе не будет путать отладчик.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...