jenya7 0 21 ноября, 2021 Опубликовано 21 ноября, 2021 (изменено) · Жалоба На typeof получаю - Warning[Pe223]: function "typeof" declared implicitly. Можно как то включить или не судьба? посмотрел в stddef.h - нету. offsetof есть а typeof нет. это реально проблематично вернуть тип в ARM архитектуре? Си компайлеры под Windows поддерживают typeof. Изменено 21 ноября, 2021 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SSerge 6 21 ноября, 2021 Опубликовано 21 ноября, 2021 · Жалоба typeof нет ни в стандарте С, ни в С++. Насколько я помню, typeof есть только у GCC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 61 21 ноября, 2021 Опубликовано 21 ноября, 2021 · Жалоба 1 hour ago, SSerge said: только у GCC +ARMCC Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 190 21 ноября, 2021 Опубликовано 21 ноября, 2021 · Жалоба 40 минут назад, x893 сказал: +ARMCC LLVM, который Keil ARM Compiler 6, тоже понимает. Я, правда, сделал #define typeof __typeof__. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
panchev68 0 10 августа, 2022 Опубликовано 10 августа, 2022 · Жалоба see and use typeid Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 10 августа, 2022 Опубликовано 10 августа, 2022 · Жалоба Как пользователь периодического использования IAR по неволе, скажу, что IAR местами туповат... По сравнению хотя бы с тем же GCC. Мои аргументы, возникшие по ходу использования IAR: 1. Не поддерживает локальные метки 2. Часто встречается конфликт стандартных хедеров - приходится менять местами хедеры, пока не пропадёт ошибка 3. Фатальные ошибки при компиляции - причину ошибок установить либо невозможно, либо сложно 4. Синтаксис местами не гибкий - приходится выкручиваться 5. Крайне гнилая система описания команд для линковщика/компоновщика. Из плюсов IAR(по сравнению с GCC): Даёт более компактный код - меньше в 1,5-2 раза. Причём при оптимизации по скорости. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 143 10 августа, 2022 Опубликовано 10 августа, 2022 · Жалоба 2 часа назад, repstosw сказал: Из плюсов IAR(по сравнению с GCC): Даёт более компактный код - меньше в 1,5-2 раза. Причём при оптимизации по скорости. А вы не проверяли, может этот более компактный код стал медленнее? Чем-то напоминает анекдот: Цитата - Мы починили, теперь ваш принтер работает как часы! - Это хорошо, но мне нужно было, чтобы он работал как принтер... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 245 10 августа, 2022 Опубликовано 10 августа, 2022 · Жалоба В 10.08.2022 в 07:38, repstosw сказал: Даёт более компактный код - меньше в 1,5-2 раза. Причём при оптимизации по скорости. Это для какого ядра? Для Cortex-M, при отптимизации по скорости, я наблюдаю как раз раздувание кода. Некоторых функций - многократное. Главным образом - из-за развёртывания циклов. А лучший результат даёт балансная оптимизация. Имхо. PS: И почему-то всегда думал, что GCC оптимизирует лучше чем IAR. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 10 августа, 2022 Опубликовано 10 августа, 2022 · Жалоба ЫАР - чемпион по сжатию кода. Пишут, что используется lz77 сжатие данных: https://habr.com/ru/post/527820/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 245 10 августа, 2022 Опубликовано 10 августа, 2022 · Жалоба В 10.08.2022 в 13:24, repstosw сказал: ЫАР - чемпион по сжатию кода. Пишут, что используется lz77 сжатие данных: Ещё раз - какое ядро? IAR для разных ядер - разный. Cortex-M: Это ерунда. Да и к коду это не относится. А код IAR генерит далеко неоптимально - очень много лажает. Видно даже при поверхностном взгляде. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 11 августа, 2022 Опубликовано 11 августа, 2022 (изменено) · Жалоба 17 hours ago, jcxz said: какое ядро? Cortex-A7. Чипы A13, V3s, T113-s3. Сборка шла с ключами для GCC: с/с++: -Ofast -marm -mcpu=cortex-a7 -mfloat-abi=hard -mfpu=vfpv4-d16 -mfpu=neon -ftree-vectorize -fno-math-errno -fmax-errors=1 -ffunction-sections -fdata-sections asm: -mcpu=cortex-a7 -mfloat-abi=hard -mfpu=vfpv4-d16 -mfpu=neon linker: -marm -mcpu=cortex-a7 -mfloat-abi=hard -mfpu=vfpv4-d16 -mfpu=neon -ftree-vectorize -fno-math-errno -Wl,--gc-sections -Wl,--static -nostdlib -nostdinc -nostartfiles -ffreestanding Для ЫАР: Изменено 11 августа, 2022 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 11 августа, 2022 Опубликовано 11 августа, 2022 · Жалоба Странное сравнение. Либо оба компилятора на оптимизацию по размеру и сравнивать размер, либо оба на скорость и сравнивать скорость. Сравнивать размер при оптимизации по скорости, по меньшей мере, странно. Для GCC -fno-exceptions -fno-rtti -flto для embedded еще уместно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SII 0 12 августа, 2022 Опубликовано 12 августа, 2022 · Жалоба 16 часов назад, VladislavS сказал: Сравнивать размер при оптимизации по скорости, по меньшей мере, странно. Не странно, если перед этим было проведено сравнение по основному критерию, т.е. по скорости в данном случае: может оказаться как минимум небезынтересным посмотреть, за какой прирост сколько приходится платить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 143 12 августа, 2022 Опубликовано 12 августа, 2022 · Жалоба 5 часов назад, SII сказал: может оказаться как минимум небезынтересным посмотреть, за какой прирост сколько приходится платить. Максимальный уровень оптимизации как бы предполагает, что клиент готов отдать все за любой прирост Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SII 0 12 августа, 2022 Опубликовано 12 августа, 2022 · Жалоба 16 часов назад, Сергей Борщ сказал: Максимальный уровень оптимизации как бы предполагает, что клиент готов отдать все за любой прирост Сравнить же всё равно интересно: насколько велик прирост скорости у разных компиляторов и как много места им для этого понадобилось. Да и не всегда "готов отдать всё": скажем, прошивка перестанет влезать во флэш определённого размера, нужно искать что-нибудь побольше -- или несколько пожертвовать скоростью. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться