реклама на сайте
подробности

 
 
> GCC 5 оптимизация, полная багов
Concorde
сообщение Oct 17 2016, 21:23
Сообщение #1


Участник
*

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



Хотел бы поинтересоваться у людей - использует ли кто-нибудь GCC 5 при полной оптимизации в проектах ?
В gcc 5 (последний от launchpad) полно багов.
Вот ссылка на баг-репорт.
Есть ли смысл пробывать 4ю версию (или, может, другую 5ю ?).
Переехал недавно с IAR - просто в шоке.
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 14)
aaarrr
сообщение Oct 17 2016, 21:36
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 5.4.1 20160609 (release) [ARM/embedded-5-branch revision 237715]

Собирал ряд проектов для Cortex-M3/M4 и ARM926EJ. Всюду оптимизация -O2, багов нет.
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Oct 17 2016, 21:51
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
Concorde
сообщение Oct 17 2016, 21:53
Сообщение #4


Участник
*

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



Цитата(aaarrr @ Oct 18 2016, 00:36) *
Собирал ряд проектов для Cortex-M3/M4 и ARM926EJ. Всюду оптимизация -O2, багов нет.

Не могли бы Вы протестить 'gcc_bug2.tar' (с баг-репорта) у себя ? Собственно, это я баг-репорты запостил.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 17 2016, 21:58
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Concorde @ Oct 18 2016, 00:53) *
Не могли бы Вы протестить 'gcc_bug2.tar' (с баг-репорта) у себя ? Собственно, это я баг-репорты запостил.

Уже sm.gif Таки да, воспроизводятся оба.
Go to the top of the page
 
+Quote Post
Concorde
сообщение Oct 17 2016, 22:01
Сообщение #6


Участник
*

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



Цитата(aaarrr @ Oct 18 2016, 00:58) *
Уже sm.gif Таки да, воспроизводятся оба.

Мне на этой неделе продукцию отгружать. С виду все работает (опустился до -O1), но коленки дрожат. Если ли смысл в срочном порядке переходить на 4.9 ?
Go to the top of the page
 
+Quote Post
Aaron
сообщение Oct 18 2016, 06:30
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 5-10-06
Из: Зеленоград
Пользователь №: 21 007



5й GCC такой профит мощный даёт, что не можете на 4.9 откатиться? Просто интересно. Сам сижу на GCC 4.9
Go to the top of the page
 
+Quote Post
makc
сообщение Oct 18 2016, 06:59
Сообщение #8


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



В 4.9 есть регрессии по размеру. В 5-ке не проверял, возможно вылечили.
Кроме того в 5-ке есть поддержка ARMv8-M, хотя не очень понятно зачем это может быть нужно сейчас.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 18 2016, 07:56
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Я использую 4.8 (в основном потому, что 4.9 немного раздувает размер кода, там и библиотека местами раздулась). Жду, когда смелые и безбашенные вроде вас найдут все глюки в новых версиях biggrin.gif
Go to the top of the page
 
+Quote Post
Concorde
сообщение Oct 18 2016, 13:36
Сообщение #10


Участник
*

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



Оказался сам дурак (давненько не было проблем с оптимизацией).
Смотрите ответы.
Придется весь сторонний код как-то тестить и проверять и самому быть гораздо аккуратнее (оптимизация очень жесткой оказалась).
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Oct 18 2016, 14:05
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Качество кода lwip во всей красе, UB на UB и UB погоняет.
ЗЫ А варнинги это тоже пропустили?
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 18 2016, 15:09
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 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 - в такой ситуации неплохо было бы хотя бы предупреждение выдать.
Кроме того, это говорит о пользе обновления до последнего релиза. В конце концов, есть надежда, что будет исправлено больше старых багов, чем добавлено новых laughing.gif
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Oct 18 2016, 15:21
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



UB ж и есть индульгенция, по стандарту, так что gcc'шники полностью в своём праве. Впрочем раз исправили, значит отчасти и правда огульно.
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 18 2016, 15:31
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Kabdim @ Oct 18 2016, 18:21) *
UB ж и есть индульгенция, по стандарту, так что gcc'шники полностью в своём праве.

Если не выдали при этом предупреждение - это свинство. За такое в приличном обществе в харю трескают. А так да.
Допускаю, что алгоритмы оптимизации могут быть такими, что там непросто прицепить предупреждение. Но надо хотя бы попытаться laughing.gif
Go to the top of the page
 
+Quote Post
k000858
сообщение Oct 19 2016, 05:50
Сообщение #15


Местный
***

Группа: Участник
Сообщений: 319
Регистрация: 31-01-12
Пользователь №: 69 978



Опишите подробней плиз по-русски о чем речь (я так понимаю, какие то баги по части DHCP в lwip)
И что есть UB?

Сам пользую lwip 1.4.1 и GCC 5 с максимальной оптимизацией и как раз наблюдаю странное поведение ПО.

Сообщение отредактировал k000858 - Oct 19 2016, 05:50
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 13:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01621 секунд с 7
ELECTRONIX ©2004-2016