|
GCC 5 оптимизация, полная багов |
|
|
|
Oct 17 2016, 21:23
|
Участник

Группа: Свой
Сообщений: 56
Регистрация: 5-07-05
Пользователь №: 6 553

|
Хотел бы поинтересоваться у людей - использует ли кто-нибудь GCC 5 при полной оптимизации в проектах ? В gcc 5 (последний от launchpad) полно багов. Вот ссылка на баг-репорт. Есть ли смысл пробывать 4ю версию (или, может, другую 5ю ?). Переехал недавно с IAR - просто в шоке.
|
|
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 14)
|
Oct 17 2016, 21:51
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
Использую последнюю ланчпадовскую сборку и с -Os и c -Ofast, cortex M3, M7, A9 (с TDM7 давно тестировал). Везде проект ведёт себя предсказуемо... Цитата arm-none-eabi-gcc -c -mcpu=cortex-m7 -mthumb -mfloat-abi=hard -mfpu=fpv5-sp-d16 -fno-math-errno -funroll-loops -fgraphite -ffunction-sections -fdata-sections -ffat-lto-objects -Ofast -flto -gdwarf-2 -fomit-frame-pointer -Wall -Wstrict-prototypes - DNDEBUG=1 -DCPUSTYLE_STM32F7XX=1 -DSTM32F746xx=1 -MD -MP -MF ./dep/bandfilters.o.d -I../../CMSIS-SP-00300-r4p5-00rel0/CMSIS/Include -I../ ../bandfilters.c -o bandfilters.o Цитата arm-none-eabi-gcc -c -mcpu=cortex-a9 -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -fno-math-errno -funroll-loops -fgraphite -ffunction-sections -fdata-sections -ffat-lto-objects -Ofast -flto -gdwarf-2 -fomit-frame-pointer -Wall -Wstrict-prototype s -DNDEBUG=1 -DCPUSTYLE_R7S721=1 -DCPUSTYLE_R7S721020=1 -MD -MP -MF ./dep/bandfilters.o.d -I../ -I../rza1x_inc ../bandfilters.c -o bandfilters.o Например так вызывается.
Сообщение отредактировал Genadi Zawidowski - Oct 17 2016, 21:57
|
|
|
|
|
Oct 17 2016, 21:53
|
Участник

Группа: Свой
Сообщений: 56
Регистрация: 5-07-05
Пользователь №: 6 553

|
Цитата(aaarrr @ Oct 18 2016, 00:36)  Собирал ряд проектов для Cortex-M3/M4 и ARM926EJ. Всюду оптимизация -O2, багов нет. Не могли бы Вы протестить ' gcc_bug2.tar' (с баг-репорта) у себя ? Собственно, это я баг-репорты запостил.
|
|
|
|
|
Oct 17 2016, 22:01
|
Участник

Группа: Свой
Сообщений: 56
Регистрация: 5-07-05
Пользователь №: 6 553

|
Цитата(aaarrr @ Oct 18 2016, 00:58)  Уже  Таки да, воспроизводятся оба. Мне на этой неделе продукцию отгружать. С виду все работает (опустился до -O1), но коленки дрожат. Если ли смысл в срочном порядке переходить на 4.9 ?
|
|
|
|
|
Oct 18 2016, 13:36
|
Участник

Группа: Свой
Сообщений: 56
Регистрация: 5-07-05
Пользователь №: 6 553

|
Оказался сам дурак (давненько не было проблем с оптимизацией). Смотрите ответы. Придется весь сторонний код как-то тестить и проверять и самому быть гораздо аккуратнее (оптимизация очень жесткой оказалась).
|
|
|
|
|
Oct 18 2016, 15:09
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(Kabdim @ Oct 18 2016, 17:05)  Качество кода lwip во всей красе, UB на UB и UB погоняет. ЗЫ А варнинги это тоже пропустили? Я бы не стал вот так огульно. Этот баг был исправлен 3 мая 2012 года, то есть после выхода версии 1.4.0, но перед выходом 1.4.1. Кроме того, в обсуждении было сказано, что этот баг может вылезти только в том случае, если лёгкий выход за границу массива вдруг попадёт в защищённую область памяти и вызовет срабатывание защиты. Кто же мог предположить, что компилятор, увидев такое, воспримет это как индульгенцию генерировать чудо-юдо код? Я бы сказал, что это минус авторам gcc - в такой ситуации неплохо было бы хотя бы предупреждение выдать. Кроме того, это говорит о пользе обновления до последнего релиза. В конце концов, есть надежда, что будет исправлено больше старых багов, чем добавлено новых
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|