Bug 22797

Summary: Dramatic g++4.4 compile speed regression with -g option
Product: Sisyphus Reporter: Victor Forsyuk <force>
Component: gcc4.4-c++Assignee: Kirill A. Shutemov <kas>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: major    
Priority: P3 CC: evg, glebfm, ldv
Version: unstable   
Hardware: all   
OS: Linux   
URL: http://lists.altlinux.org/pipermail/devel/2010-January/179282.html

Description Victor Forsyuk 2010-01-20 18:28:36 MSK
При компиляции исходного кода fwbuilder наблюдается значительное замедление компиляции c++ кода при добавлении в строку вызова компилятора опции "-g": общее время сборки пакета вырастает с 8 с копейками минут до более 2 часов.

Проблема не возникает на текущей сборке gcc4.3: 4.3.2-alt14.

Кроме того, судя по последнему отчету об успешной сборке пакета fwbuilder проблемы еще не было на текущей на тот момент (28 сентября 2009г) сборке gcc4.4: 4.4.1-alt1.
Comment 1 Victor Forsyuk 2010-01-21 19:53:03 MSK
Дополнительная информация (уже была в рассылке, тут повторяется для полноты и самодостаточности багрепорта):

- Проблема возникает при наличии в вызове компилятора опции "-g" и при этом отсутствии "-fomit-frame-pointer". Т.е., добавление "-fomit-frame-pointer" позволяет избежать замедления компиляции даже при наличии "-g".

- В среде Fedora Core 12 компиляция fwbuilder происходит нормально при том наборе опций, который вызывает проблему у нас: наличие "-g" + отсутствие "-fomit-frame-pointer".
Comment 2 Kirill A. Shutemov 2010-01-22 13:55:34 MSK
Судя по changelog'у gcc из федоры, это исправлено в 4.4.2-25. Я сегодня постараюсь сделать сборку основанную на 4.4.3-1.
Comment 3 Kirill A. Shutemov 2010-01-22 16:31:48 MSK
Синхронизированный с 4.4.3-1 gcc собирает wizard.cpp из q4wine за приемлимое время, но с ворнингом:

In file included from /usr/src/RPM/BUILD/q4wine-0.115/src/q4wine-gui/wizard.h:25,
                 from /usr/src/RPM/BUILD/q4wine-0.115/src/q4wine-ui/wizard.cpp:20:
/usr/src/RPM/BUILD/q4wine-0.115/BUILD/ui_Wizard.h: In member function 'void Ui_Wizard::setupUi(QDialog*)':
/usr/src/RPM/BUILD/q4wine-0.115/BUILD/ui_Wizard.h:446: note: variable tracking size limit exceeded with debug insns, retrying without

Вообщем, нагенерённый ui_Wizard.h ужасен.
Comment 4 Kirill A. Shutemov 2010-01-22 16:39:56 MSK
gcc-4.4.3-alt1 ушёл на сборку. task #19000
Comment 5 Dmitry V. Levin 2010-01-23 02:37:58 MSK
На i586 fwbuilder-3.0.7-alt1 собрался за 18 минут (в один поток), даже без "size limit exceeded with debug insns".