@Mercury13
Программист на «си с крестами» и не только

Какой набор опций оптимизации в MinGW даёт быструю линковку и отсутствие «optimized out»?

MinGW x64 9.1.0, установленный через MSYS. Проект из трёхсот файлов.
-O1 даёт линковку за 50 секунд, но очень сложно отлаживать, всё превращается в <optimized out>.
-O0 даёт линковку за 2,5 минуты.

QMAKE_CXXFLAGS_DEBUG += -finline \
        -fauto-inc-dec  \
        -fbranch-count-reg  \
        -fcombine-stack-adjustments \
        -fcompare-elim \
        -fcprop-registers \
        -fdce \
        -fdefer-pop \
        -fdse \
        -fforward-propagate \
        -fguess-branch-probability \
        -fif-conversion \
        -fif-conversion2 \
        -finline-functions-called-once \
        -fipa-profile \
        -fipa-pure-const \
        -fipa-reference \
        -fipa-reference-addressable \
        -fmerge-constants \
        -fmove-loop-invariants \
        -fomit-frame-pointer \
        -freorder-blocks \
        -fshrink-wrap \
        -fshrink-wrap-separate \
        -fsplit-wide-types \
        -fssa-backprop \
        -fssa-phiopt \
        -ftree-bit-ccp \
        -ftree-ccp \
        -ftree-ch \
        -ftree-coalesce-vars \
        -ftree-copy-prop \
        -ftree-dce \
        -ftree-dominator-opts \
        -ftree-dse \
        -ftree-forwprop \
        -ftree-fre \
        -ftree-phiprop \
        -ftree-pta \
        -ftree-scev-cprop \
        -ftree-sink \
        -ftree-slsr \
        -ftree-sra \
        -ftree-ter \
        -funit-at-a-time \
        -static-libstdc++

Этот монстр, который, по идее, должен быть эквивалентен -O1, линкует за те же 2,5 минуты.
Вот как отлаживать?
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
@Mercury13 Автор вопроса
Программист на «си с крестами» и не только
Сейчас куда лучше для отладки использовать линкер LLD. Он В ДЕСЯТКИ раз быстрее, чем LD.
Разумеется, настройки компиляции надо ставить в «самое отлаживаемое» -O0.
Я так и не понял, как ставить иконку и что с LTO — потому выпуск идёт всё ещё через LD.

UPD 2022. А сейчас LD достаточно крут и ничего не нужно!
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы