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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> 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
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
AHTOXA
сообщение Oct 19 2016, 05:59
Сообщение #16


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



UB = undefined behavior.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
k000858
сообщение Oct 19 2016, 06:06
Сообщение #17


Местный
***

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



Цитата(Kabdim @ Oct 18 2016, 17:05) *
Качество кода lwip во всей красе, UB на UB и UB погоняет.

въехать бы тебе в сакральный смысл данного поста
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Oct 19 2016, 07:40
Сообщение #18


Знающий
****

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



За UB в исходниках бьют канделябром известно куда, если автор в пределах доступности. Сакральный смысл - негодование за столь неопрятный стиль кодирования суть которого раскладывание грабель замедленного действия. С добавкой испуга от того что мог потратить свое время на это.
Ну и что бы не быть совсем флудером: What Every C Programmer Should Know About Undefined Behavior
Go to the top of the page
 
+Quote Post
k000858
сообщение Oct 19 2016, 08:14
Сообщение #19


Местный
***

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



ок. а в рамках обсуждаемого предмета (баг, я так понимаю в lwip который проявляется с GCC 5) можно разжевать что там к чему дабы не вдаваться в ассемблерный код?
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 19 2016, 08:31
Сообщение #20


Гуру
******

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



Цитата(k000858 @ Oct 19 2016, 11:14) *
ок. а в рамках обсуждаемого предмета (баг, я так понимаю в lwip который проявляется с GCC 5) можно разжевать что там к чему дабы не вдаваться в ассемблерный код?

При выходе за границу массива компилятор генерирует код, который не то, чтобы просто за границу массива выходит, а лезет в совершенно левые адреса.
Go to the top of the page
 
+Quote Post
k000858
сообщение Oct 19 2016, 08:46
Сообщение #21


Местный
***

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



Цитата(scifi @ Oct 19 2016, 11:31) *
При выходе за границу массива компилятор генерирует код, который не то, чтобы просто за границу массива выходит, а лезет в совершенно левые адреса.

Вот как раз что то подобное в паре проектов у себя наблюдаю...
только вот выходы за границу массивов не наблюдаю...
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Oct 19 2016, 09:06
Сообщение #22


Знающий
****

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



Если есть повторяемость где бьются данные, то всегда можно поставить watchpoint в нужное место и выяснить кто и где бьёт.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 19 2016, 09:12
Сообщение #23


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Kabdim @ Oct 19 2016, 10:40) *
Ну и что бы не быть совсем флудером: What Every C Programmer Should Know About Undefined Behavior
Прочитал. Долго втыкал в код
CODE
int main() {
  P = (float*)&P;  // cast causes TBAA violation in zero_array.
  zero_array();
}
Так и не понял, где тут ошибка.
QUOTE
This behavior enables an analysis known as "Type-Based Alias Analysis" (TBAA) which is used by a broad range of memory access optimizations in the compiler, and can significantly improve performance of the generated code. For example, this rule allows clang to optimize this function:
CODE
float *P;
void zero_array() {
   int i;
   for (i = 0; i < 10000; ++i)
     P[i] = 0.0f;
}
into "memset(P, 0, 40000)". This optimization also allows many loads to be hoisted out of loops, common subexpressions to be eliminated, etc. This class of undefined behavior can be disabled by passing the -fno-strict-aliasing flag, which disallows this analysis. When this flag is passed, Clang is required to compile this loop into 10000 4-byte stores (which is several times slower), because it has to assume that it is possible for any of the stores to change the value of P, as in something like this:

CODE
int main() {
  P = (float*)&P;  // cast causes TBAA violation in zero_array.
  zero_array();
}

Кто-то может объяснить?

Про переполнение знаковых целых как аргументов для функций выделения памяти - сами себе злобные Буратины: нафига размер передавать знаковой переменной? К тому же есть беззнаковый тип size_t. Но в целом да, раскрыты некоторые неочевидные вещи.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Oct 19 2016, 09:37
Сообщение #24


Знающий
****

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



С оптимизацией в примере будет обнулен буфер 40КБ, начало которого совпадает с началом переменной P. Без оптимизации будет обнулен указатель, а последующие записи пойдут по адресам 0+i. Оба варианта конечно совершенно невменяемые, но примерам такое можно простить. В следующих частях мне показалось рассказывают еще интересней.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 19 2016, 09:45
Сообщение #25


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Удалил. Понял.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
k000858
сообщение Oct 19 2016, 09:49
Сообщение #26


Местный
***

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



кстати вся инфа актуальна только на оптимизации -Os?
или на -Og так же актуально?
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Oct 19 2016, 09:59
Сообщение #27


Знающий
****

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



Вот тут можно посмотреть что включают те или иные опции. Но это неправильный подход, правильный - в программе не должно быть UB точка.
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 19 2016, 10:07
Сообщение #28


Гуру
******

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



Цитата(Kabdim @ Oct 19 2016, 12:59) *
Но это неправильный подход, правильный - в программе не должно быть UB точка.

Если не ошибаюсь, в этом случае lwip и не только он идут лесом. Слишком радикально, нет? Проще включить опцию -fno-strictaliasing.
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Oct 19 2016, 10:16
Сообщение #29


Знающий
****

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



Если выбор есть то лучше лесом, если нет то конечно придется терпеть и включать. Но нужно понимать что это сейчас достаточно включить no-strictaliasing. А потом может будет внедрена еще какая-нибудь оптимизация и грабля снова сработает, но уже так что будет совершенно неясно где корень зла. Или не сработает, как повезет.
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 19 2016, 10:29
Сообщение #30


Гуру
******

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



Цитата(Kabdim @ Oct 19 2016, 13:16) *
А потом может будет внедрена еще какая-нибудь оптимизация и грабля снова сработает, но уже так что будет совершенно неясно где корень зла. Или не сработает, как повезет.

Нет. Слишком много написанного кода, который нельзя ломать. Всегда будет ключик, который это всё отключает.
Но да, надо следить за модой и писать как в лучших домах Лондона и Парижа. Чтобы потом деревенщиной не прозвали biggrin.gif
Go to the top of the page
 
+Quote Post
Concorde
сообщение Oct 19 2016, 22:56
Сообщение #31


Участник
*

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



В случае с lwip (dhcp код, gcc_bug.tar):
Предупреждение не выдается с любыми флагами:
"-Wstrict-aliasing", "-Wstring-aliasing=1", "-Wstring-aliasing=2", "-Wstring-aliasing=3". Везде, кроме этого, есть ключ "-Wall".
Кстати, флаг "-fno-strict-aliasing" так же не помогает: начиная с "-O2" генерируется тот же "кривой" код.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 20 2016, 06:16
Сообщение #32


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Испугался за lwIP. Полез в репозиторий. Это неопределнное поведение было устранено еще в мае 2012 года. Может стоит взять исходники посвежее, там и кучу других ошибок устранили за это время?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Concorde
сообщение Oct 20 2016, 12:17
Сообщение #33


Участник
*

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



Цитата(Сергей Борщ @ Oct 20 2016, 09:16) *
Испугался за lwIP. Полез в репозиторий. Это неопределнное поведение было устранено еще в мае 2012 года. Может стоит взять исходники посвежее, там и кучу других ошибок устранили за это время?

Само собой.
Но речь сейчас идет о том, как такие проблемы поймать на этапе компиляции (в виде предупреждений). Выходит, никак (или я не знаю).
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Oct 20 2016, 13:00
Сообщение #34


Знающий
****

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



Позвольте все таки порекомендовать вам прочитать ту серию записей в 3 частях на который я ссылался. Во второй части описаны санитайзеры которые стоит применять. В третьей почему варининги для UB - плохая идея.
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 20 2016, 13:23
Сообщение #35


Гуру
******

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



Цитата(Kabdim @ Oct 20 2016, 16:00) *
В третьей почему варининги для UB - плохая идея.

Дудки.
Идея хорошая, но реализовать её приемлемым образом непросто, по его словам. В принципе, аргументирует достаточно правдоподобно.
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Oct 20 2016, 13:39
Сообщение #36


Знающий
****

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



Отчего ж? Не может C++ компилятор статически полноценно проанализировать программу до исполнения. Соответственно, ложноположительных срабатываний будет запредельное кол-во при любом способе реализации. Ну а если хочется статического анализа, способ известен - rust-lang, энтузиасты его уже прикрутили к микроконтроллерам.
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 20 2016, 13:48
Сообщение #37


Гуру
******

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



Цитата(Kabdim @ Oct 20 2016, 16:39) *
Отчего ж? Не может C++ компилятор статически полноценно проанализировать программу до исполнения.

Что значит "не может"? Пока не умеет. Вполне возможно, что со временем научится. Я никуда не тороплюсь biggrin.gif
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Oct 20 2016, 13:52
Сообщение #38


Знающий
****

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



Если бы он мог, то UB как класса бы не существовало. sm.gif
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 20 2016, 13:59
Сообщение #39


Гуру
******

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



Цитата(Kabdim @ Oct 20 2016, 16:52) *
Если бы он мог, то UB как класса бы не существовало. sm.gif

О господи.
Ещё раз, задача: выдавать предупреждение всякий раз, когда компилятор пользуется "неопределённым поведением" в целях оптимизации. Это чисто техническая задача. Автор той самой статьи честно признался, что он там будет ныть, как это всё непросто. Его аргументы сводились к тому, что сделать можно, просто геморройно. Кто бы сомневался.
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Oct 20 2016, 14:02
Сообщение #40


Знающий
****

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



Предлагаю эксперимент. Может воспользуйтесь всеми санитайзерами из 2 части на каком-нибудь большом уже написанном проекте и посчитайте кпд? У абстрактного всегда сообщателя о UB кпд будет примерно тот же, а число сообщений на порядок больше. Ну и какова будет ценность этого идеального сообщателя о UB? По сути идеальный сообщатель UB 1 в 1 копирует список примененных оптимизаций. И если варинги о смеси к примеру знаковых и беззнаковых переменных можно убрать принудительным приведением (сообщение от программиста компилятору "я знаю что тут происходит, всё будет хорошо"), то идеальный сообщатель о UB так "обмануть" не получится. Нужно будет абсолютно все переменные тщательно проверять на выход из границ везде. И где-то в этой точке должно стать очевидно что на какой-нибудь Аде/Яве/Шарпе такого софтового монстра запрограммировать проще быстрее и даже код выйдет вероятно эффективней. Чисто технически для плюсов с включенной оптимизацией это бесполезная задача.
Go to the top of the page
 
+Quote Post
k000858
сообщение Oct 26 2016, 07:25
Сообщение #41


Местный
***

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



я правильно понимаю, что ключ fno-strict-aliasing отключает эту самую оптимизацию по альязингу и снимает все эти негативные эффекты?
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 Текстовая версия Сейчас: 2nd September 2025 - 04:37
Рейтинг@Mail.ru


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