The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз набора компиляторов LLVM 15.0, opennews (?), 06-Сен-22, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


96. "Релиз набора компиляторов LLVM 15.0"  +1 +/
Сообщение от срыватель_покровов (?), 09-Сен-22, 02:15 
clang в хламину сливает gcc. Обычно однорукие бандиты даже замерить нормально код не могут(допустим не знают про libcxx и llvm-рантайм для цпп). Так же шланг имеет более агрессивные умолчания нежели гцц, а так же там много всяких подложных фейковых оптимизаций.

>Единственная его "киллер-фича" - это автоматический runtime dispatch в зависимости от наборов инструкций, поддерживаемых CPU.

Это базовая фича gcc/gnuc ну и шланга как альтернативной реализации gcc/gnuc. Фича у интел-компилятора в другом. Она такая же как и в случае с шлангом и его фейковыми оптимизациями. Он создан специально чтобы заменять код вчерашнего мойщика полов на нормальный. Если же код пишет не мойщик полов все эти кулл-оптимизации нахрен ненужны.


Из таких примеров простых. Боты-поломои в основном пастят шаблоннный мусор. Всякие for i j и прочий мусор. Вот icc умел детектировать этот мусор и заменять его на нормальные реализации. Допустим какое-нибудь умножение матриц и прочее.

Точно так же как gcc/clang умеют детектировать memcpy.

Ответить | Правка | Наверх | Cообщить модератору

108. "Релиз набора компиляторов LLVM 15.0"  +1 +/
Сообщение от Аноним (108), 10-Сен-22, 03:14 
>> Единственная его "киллер-фича" - это автоматический runtime dispatch в зависимости от наборов инструкций, поддерживаемых CPU.
>
> Это базовая фича gcc/gnuc ну и шланга как альтернативной реализации gcc/gnuc.

Нет в gcc такой фичи. Есть ручное клонирование и маркировка функций для разных наборов инструкций.

https://gcc.gnu.org/wiki/FunctionMultiVersioning

А icc мог сам сгенерировать клоны (или даже вынести часть функции в клоны) и dispatch из простого кода.

Ответить | Правка | Наверх | Cообщить модератору

111. "Релиз набора компиляторов LLVM 15.0"  +/
Сообщение от Ванёк (?), 10-Сен-22, 13:13 
То же самое можно сделать в любом компиляторе с помощью #ifdef __инструкции__ (__SSE2__,__AVX2__ и т.п.)
Ответить | Правка | Наверх | Cообщить модератору

118. "Релиз набора компиляторов LLVM 15.0"  +/
Сообщение от Аноним (118), 12-Сен-22, 02:13 
Вопрос на засыпку: в чем разница между директивами препроцессора и runtime dispatch?
Ответить | Правка | Наверх | Cообщить модератору

119. "Релиз набора компиляторов LLVM 15.0"  +/
Сообщение от Ванёк (?), 12-Сен-22, 14:35 
Если прямо действительно необходимо runtime dispatch, то помимо директив препроцессора есть cpuid. Комбинация cpuid и директив - более гибко, контролируемо и более-менее универсально для любого компилятора.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру