|
2.34, Xenia Joness (ok), 12:05, 07/09/2022 [^] [^^] [^^^] [ответить]
| –16 +/– |
> Отличная новость! Крутой прогресс за полгода.
Плюсую. За LLVM будущее, и скоро, надеюсь, выкинут наконец-то этот GCC на свалку истории
| |
|
|
4.55, Анонн (?), 15:51, 07/09/2022 [^] [^^] [^^^] [ответить]
| –3 +/– |
Да куча недостатков:
- GNU C Language Extensions - здоровенный костыль поддержанный (изначально) только в одном компиляторе и как следствие невозможность сборки ядра другими. Прямо extend в стиле microsoft'а.
- здоровенный монолит - максимальная связность и сложность расширения
- отстойная огороженная лицензия
| |
|
5.65, аНОНИМ (?), 18:24, 07/09/2022 [^] [^^] [^^^] [ответить]
| +4 +/– |
FSF при помощи прежде всего GCC начал менять мир годах в 80ых и продолжает менять до сих пор и результатами этого пользуются все без исключения люди, даже если они не догадываются об этом.
У шланга кол-во поддерживаемых архитектур примерно на порядок (десятичный) меньше чем у GCC.
Лицензия GPL -- лучшая лицензия для открытого софта, а ненавидят её только проприерасты, которые только и мечтают о том, чтобы безнаказанно *красть* (брать и закрывать) чужой открытый код.
| |
|
6.66, Аноним (66), 18:41, 07/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
> У шланга кол-во поддерживаемых архитектур
А знаешь почему? Потому что они на момент создания llvm никому нафиг не вс@лись!
Это куча всякого хлама который можно найти только в музеях, а выпилить из gcc не решаются, потому что "а вдруг что-то сломаем по дороге".
Хотя все даже круче - gcc поддерживает бекенды для архитектур, которые никогда не были реализованы в железе - секция M в https://gcc.gnu.org/backends.html.
| |
|
7.71, срыватель_покровов (?), 00:22, 08/09/2022 [^] [^^] [^^^] [ответить]
| +2 +/– |
Зачем ты рассказываешь о том, в чём ничего не понимаешь? Как же так - гцц подлый монолит не расширяемый, а он поддерживает множество архитектур?
>выпилить из gcc не решаются, потому что "а вдруг что-то сломаем по дороге".
Зачем домохозяйка пытается рассуждать о коде? Как раз таки всё наоборот.
>бекенды для архитектур, которые никогда не были реализованы в железе
wasm в желе покажешь?
| |
|
6.102, Neon (??), 17:24, 09/09/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Лицензия GPL -- лучшая лицензия для открытого софта, а ненавидят её только проприерасты
Просто не все живут на мамкиной шее. И идеалами сыт не будешь.
| |
6.120, Тот_Самый_Анонимус (?), 06:16, 14/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
Одни лозунги. А по факту — единоличное создание своего диалекта си (в стиле майкрософта). И ни один поборник стандартов не вякнет: ведь этим свои занимаются. Вот если бы майки это сделали, то вони бы стояло на сотню комментов.
| |
|
5.70, срыватель_покровов (?), 00:15, 08/09/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
Смотри, жертва пропаганды.
- Кроме gnuc другого си нет. Никто не будет ничего писать на этом днище. И да - шланг это именно что gnuc/cpp компилятор. Как и сам драйвер там 1в1 повторяет гцц. И да, свободный код не может быть вендорлоком.
- Пустые сказки от домохозяек. Мне даже лень спорить на эту тему - пруфы ты всё равно не покажешь.
- Лицензия наиболее свободная. Единственное что у гцц есть из проблем - это во многом столман-шиза древняя о том, что cpp-фронт будут воровать.
| |
|
6.80, Аноним (66), 12:04, 08/09/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
Гнус это всего лишь жалкая надстройка над си, которую добавили ядрописатели - просто не шмогли в стандарт (ну или вынуждены были добавить, потому что стандарт отстой). Такая же огороженная надстройка как "Microsoft extensions to C", которую добавили майки MSVC. И такой же вендорлок.
> Лицензия наиболее свободная
Ну да, ну да, "свобода это рабство".
Свободные лицензии - это MIT, BSD, MPL, CCA и аналогичные. А ваша GPL - открытая, но не свободная.
| |
|
7.91, Аноним (91), 00:03, 09/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
GPL - не свободный, потому что ограничивает твою "свободу воровать"?
| |
|
8.103, Neon (??), 17:31, 09/09/2022 [^] [^^] [^^^] [ответить] | +1 +/– | Свобода зарабатывать - это свобода воровать Чтобы заработать, предлагаете с н... текст свёрнут, показать | |
|
9.109, Аноним (109), 09:38, 10/09/2022 [^] [^^] [^^^] [ответить] | +/– | Хорошо сидеть на шее у сообщества, используя его инструменты, изображать из себя... текст свёрнут, показать | |
|
|
|
|
|
4.56, Анонн (?), 15:54, 07/09/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
С другой стороны нужно быть благодарным им за это все - иначе какой смысл было бы создавать llvm.
| |
|
|
2.107, adolfus (ok), 20:51, 09/09/2022 [^] [^^] [^^^] [ответить] | +1 +/– | Не очень понятно, зачем нужно фиксировать промежуточный результат в виде объектн... большой текст свёрнут, показать | |
|
3.113, iZEN (ok), 14:46, 10/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
NIH-синдром на Java JIT: нужно реализовать то, что было реализовано 20 лет назад, но на новом технологическом уровне, с задействованием в 100 раз большей процессорной мощности и в 1000 раз большей потребной памяти.
| |
|
|
1.2, Аноним (2), 23:39, 06/09/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
>Добавлена экспериментальная поддержка Си-подобного языка HLSL (High-Level Shader Language), применяемого в DirectX для написания шейдеров.
Вайн задействует?
| |
|
|
3.35, Аноним (-), 12:05, 07/09/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
Видимо на DX все забили при наличии вулкана, вот и раздобрились...
| |
|
|
1.4, lucentcode (ok), 23:39, 06/09/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
А про ассемблер llvm-mc ничего не слышно? Он совместим с gas, но весьма ограниченно. .S файлы сформированные с помощью llvm с помощью gas собираются на ура, а вот файлы созданные для gas не в 100% случаев собираются llvm-mc, что навевает на мысль, что ассемблер из проекта llvm не на 100% совместим с gas. Хотя, если писать на ассемблере с учётом небольших нюансов, можно использовать одни и те же файлы и под gas, и под llvm-mc.
| |
|
2.6, Аноним (6), 04:16, 07/09/2022 [^] [^^] [^^^] [ответить]
| +2 +/– |
Мне вот надо чтобы clang на инлайн асме, с интел синтаксисом на использовании offset не крашился.
| |
|
3.17, Брат Анон (ok), 09:01, 07/09/2022 [^] [^^] [^^^] [ответить]
| +2 +/– |
Интел-стайл контр-интуитивен. Особенно при косвенной адресации. Закопать.
| |
|
4.19, Аноним (19), 09:30, 07/09/2022 [^] [^^] [^^^] [ответить]
| –2 +/– |
AT&T-синтаксис просто ужасен и для набор и для чтения. Его вообще не должно быть нигде от слова ВАЩЕСОВСЕМ.
| |
|
|
6.83, Аноним (83), 13:27, 08/09/2022 [^] [^^] [^^^] [ответить] | –1 +/– | Правда Как там в AT T записывается eax ecx В Intel mov eax, ecx И поэтому ... большой текст свёрнут, показать | |
|
5.69, Ванёк (?), 21:54, 07/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
Да пофиг на синтаксис. Ассемблер очень мало, когда реально нужен, если только вы не занимаетесь дизассемблированием))
| |
5.86, Брат Анон (ok), 13:45, 08/09/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
> AT&T-синтаксис просто ужасен и для набор и для чтения. Его вообще не
> должно быть нигде от слова ВАЩЕСОВСЕМ.
Уж точно лучше, чем интелловский. Если этот не должен существовать, тогда всех интелловцев вообще надо сжечь (не призывы к терроризму, не разжигание социальной ненависти).
| |
|
4.25, n00by (ok), 10:10, 07/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
> Интел-стайл контр-интуитивен. Особенно при косвенной адресации. Закопать.
Интел не регламентирует синтаксис. offset - это Microsoft. Есть синтаксисы (Borland ideal, fasm), где приняты [] как и в Си.
| |
4.47, Аноним (44), 12:51, 07/09/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ага, а когда присваеваемое слева, а куда присваивают справа - нонсенс же.
| |
|
|
4.87, Брат Анон (ok), 13:48, 08/09/2022 [^] [^^] [^^^] [ответить]
| +2 +/– |
> А на неинтел синтаксисе всё норм?
Не всё. Но интел существенно хуже.
mov eax, ebx -- попробуйте здесь догадаться откуда куда тут передаётся содержимое? Вы книгу также зигзагом читаете? Это я ещё режимов адресации не касался.
| |
|
|
2.100, Ванёк (?), 13:25, 09/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
Народ, подскажите, пожалуйста, хороший транслятор из одного синтаксиса Ассемблера в другой.
| |
|
1.7, ИмяХ (?), 07:39, 07/09/2022 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
>>обнуление всех использованных в функции регистров CPU перед возвращением управления
И снижение производительности в несколько раз
>>рандомизация размещения в памяти структур
чтобы поломать всю арифметику указателей
| |
|
2.8, Аноним (8), 08:01, 07/09/2022 [^] [^^] [^^^] [ответить]
| +5 +/– |
Арифметика указателей для перехода между глобальными структурами - UB. Если в вашем коде есть такая работа с указателями, то вы ССЗБ
| |
|
|
4.31, Аноним (30), 11:13, 07/09/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
Надо быть толерантными ко всем буратинам, но злобных сажать в тюрьму, но делать это толерантно.
| |
|
|
2.9, Sw00p aka Jerom (?), 08:22, 07/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
>чтобы поломать всю арифметику указателей
поломается так называемая динамическая арифметика, компиляторная будет работать, а всякие роп пейлоады как раз на эту динамику и расчитаны.
| |
|
3.18, Брат Анон (ok), 09:03, 07/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
Не несколько команд. Регистров не несколько. Но в 2 раза вполне может. С учётом относительно медленной оперативной памяти не так страшно, но размер программ вырастает, кеш используется менее эффективно.
| |
|
4.23, Бывалый смузихлёб (?), 09:57, 07/09/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
Даже будучи смузихлёбом смутно припоминаю, что были команды для сохранения всех регистров в стеке-восстановления всех регистров из стека
Вроде popad-pushad. Что-то подобное, вроде бы, даже под 64 бита было( pushfq ? )
| |
|
5.29, n00by (ok), 10:51, 07/09/2022 [^] [^^] [^^^] [ответить]
| –2 +/– |
PUSHF (опкод 9D) сохраняет регистр флагов (F). В 64-х разрядном режиме тот же опкод называется PUSHFQ и сохраняет расширенный регистр флагов RFLAGS. POPA довольно медленная, вместо неё рекомендовалось использовать серию POP или MOV. В 64-х разрядном режиме её убрали. Но сохранять-восстанавливать регистры как раз не надо (это упростило бы создание ROP-цепочек), обнулять быстрее (нет работы с памятью).
| |
5.85, Брат Анон (ok), 13:43, 08/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
> Даже будучи смузихлёбом смутно припоминаю, что были команды для сохранения всех регистров
> в стеке-восстановления всех регистров из стека
> Вроде popad-pushad. Что-то подобное, вроде бы, даже под 64 бита было( pushfq
> ? )
Вы новость читали? При чём тут сохранение на стеке, если речь в статье шла про возможность утечки данных по остаточным данным в регистрах?
| |
5.88, Аноним (83), 13:57, 08/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
>Вроде popad-pushad
Эти команды чудовищно медленные и в тактах выигрыша не будет, только в объёме кода, плюс нужно завершить все спекулятивные операции. Там ещё есть команды для сохранения FPU/SSE и это уже настолько большая боль, что ОС старается по возможности его не сохранять даже при переключении процессов/потоков.
>pushfq
Это инструкция сохранения 64-битного регистра флагов. Инструкций сохранения всех регистров на архитектуре x86-64 совсем нет. Даже тех, что были на x86-32 вроде pusha, pushad, опкод 0x60 просто пуст.
| |
|
4.28, n00by (ok), 10:37, 07/09/2022 [^] [^^] [^^^] [ответить]
| –3 +/– |
> Не несколько команд. Регистров не несколько. Но в 2 раза вполне может.
Медленный Silvermont исполняет 2 (две) XOR за такт. CALL - 1-2 такта. RET - 1 такт. Так что прежде чем писать что-то с аватаркой Ленина, хорошо бы последовать его примеру и три раза поучиться арифметике.
| |
|
5.84, Брат Анон (ok), 13:42, 08/09/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
>> Не несколько команд. Регистров не несколько. Но в 2 раза вполне может.
> Медленный Silvermont исполняет 2 (две) XOR за такт. CALL - 1-2 такта.
> RET - 1 такт. Так что прежде чем писать что-то с
> аватаркой Ленина, хорошо бы последовать его примеру и три раза поучиться
> арифметике.
Это же две команды? И сколько их нужно всего? И на сколько при этом упадёт эффективность кеша?
| |
|
6.89, n00by (ok), 14:49, 08/09/2022 [^] [^^] [^^^] [ответить] | –1 +/– | Что тут нужно, так это доказать утверждение 171 снижение производительности в ... большой текст свёрнут, показать | |
|
|
|
3.27, n00by (ok), 10:33, 07/09/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Несколько команд снизят производительность в несколько раз ?
Там типичный эксперт. А вот талмуд:
Table 2-3. Skylake Microarchitecture Execution Units and Representative Instructions
Execution # of Instructions
Unit Unit
ALU 4 add, and, cmp, or, test, xor, movzx, movsx, mov, (v)movdqu, (v)movdqa, (v)movap*, (v)movup*
Для обнуления используется XOR, в наличии 4 исполнительных устройства (то есть могут исполняться параллельно).
| |
|
4.37, Аноним (-), 12:08, 07/09/2022 [^] [^^] [^^^] [ответить]
| +2 +/– |
А вот красавец который кроме wintel себе ничего представить не может и потому считает что талмуд на скайлэйк это универсальный ответ на все вопросы вселенной.
| |
|
5.43, n00by (ok), 12:39, 07/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
А ещё я имею представление, сколько примерно команд находится в теле средней подпрограммы и прикинуть отношение их количества к количеству команд обнуления. Но при этом догадываюсь, что это слишком сложная для некоторых Анонимов арифметика, потому ограничиваюсь наглядным частным случаем.
| |
|
6.49, Аноним (49), 12:53, 07/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
А что такое средняя подпрограмма? Это типа средней температуры по больнице? :)
| |
|
7.51, n00by (ok), 13:03, 07/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
Это та цифра, которую эксперты подставят в известную им формулу и наконец-то докажут тезис «снижение производительности в несколько раз». ;)
| |
|
|
|
4.63, аНОНИМ (?), 18:20, 07/09/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
Вы все тут эксперды. По факту нормальный OoO процессор, видя XOR reg,reg -- ничего не выполняет вообще и такая команда пропадает на этапе шедулинга, в конвееры АЛУ не идёт. Вместо этого, этот регистр просто размапливается в таблице соответствия между архитектурными и физическими регистрами.
| |
|
5.72, срыватель_покровов (?), 00:29, 08/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
Молодец, единственный кто осилил прочитать мануал. Это удивительно - особенно на фоне всех клоунов выше. Правда всё остальное, кроме самого факта существования мапинга - чушь. На "алу" шедулит шедулер, который работает уже с физическими регистрами. Но то ладно.
Важно то, что никому нахрен не упёрся факт исполнения. Если говорить про такое днище как х86, то уже тысячи лет оно упирается во фронтенд. А что-то исполняется/нет это не влияет на производительность - если только на энергопотребление.
| |
|
6.82, n00by (ok), 13:13, 08/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
> Если говорить про
> такое днище как х86, то уже тысячи лет оно упирается во
> фронтенд.
По факту CodeAnalyst закопали всего лет десять назад, а без симуляции конвейера кто ̶п̶е̶р̶в̶ы̶й̶ ̶н̶а̶д̶е̶л̶ ̶х̶а̶л̶а̶т̶ ̶т̶о̶т̶ ̶и̶ ̶п̶с̶и̶х̶и̶а̶т̶р̶ громче всех крикнет «клоуны» то и прав. Так что знайте на будущее: х86 это 16-ти разрядная архитектура, кто скажет иначе - тот не видел у мануала даже название.
| |
|
7.95, срыватель_покровов (?), 02:05, 09/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
Ты выше опозорился и пришёл сюда плакаться? Какая архитектура, какой CodeAnalyst, какой "16-ти разрядная"? Ты от позора решил просто рандомные базворды из гугла пастить?
| |
|
8.97, n00by (ok), 11:01, 09/09/2022 [^] [^^] [^^^] [ответить] | +/– | Это что, выпуск экстерном нового актива 171 центра псих операций 187 Мануал... текст свёрнут, показать | |
|
|
|
5.81, n00by (ok), 13:04, 08/09/2022 [^] [^^] [^^^] [ответить] | +/– | Вы слишком рано ответили Такие умозаключения разбиваются железным аргументом ... большой текст свёрнут, показать | |
|
|
3.41, Ванёк (?), 12:37, 07/09/2022 [^] [^^] [^^^] [ответить]
| +2 +/– |
Если небольшая функция, и она активно используется, и компилятор её не встроил (inline), то может и в несколько раз...
| |
|
2.21, Аноним (21), 09:35, 07/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
>>>рандомизация размещения в памяти структур
> чтобы поломать всю арифметику указателей
Если кто-то ходит по структуре по хардкоженым оффсетам, то где-то ошибка на этапе дизайна. Если это действительно нужно (какой-то бинарный протокол), то этому атрибуту явно там не место
А так фича уже старая, просто в кланге поддержка появилась только сейчас. Ваши эти линуксы давно используют этот атрибут для важных структур, если сборка идёт с гцц
| |
|
3.92, Аноним (92), 01:18, 09/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
> Если кто-то ходит по структуре по хардкоженым оффсетам, то где-то ошибка на этапе дизайна.
Есть вполне себе легальный offsetof.
| |
|
|
1.10, Аноним (10), 08:25, 07/09/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> установки затравки
What is it, затравка?
Начальное значение?
А как быть с повторяемостью сборки?
Как быть если эту "затравку" узнает тот, кому бы знать ее не надо?
| |
|
2.11, Аноним (10), 08:36, 07/09/2022 [^] [^^] [^^^] [ответить]
| +2 +/– |
Нашел:
The support can be enabled via the "-frandomize-layout-seed=" or "-frandomize-layout-seed-file=" options for providing the deterministic random seed for allowing reproducible builds.
| |
|
1.14, mumu (ok), 08:44, 07/09/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +6 +/– |
> C++23. реализованы ключевые слова false и true
Грандиозно отметили 50-тилетие языка
| |
|
2.20, 1 (??), 09:31, 07/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
Ну и в чём прикол ? Наезжали всегда на паскалистов за их begin end. Ну были 0 и 1. Эстеты их превращали дефайном в false и true.
| |
|
3.48, Аноним (49), 12:52, 07/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
Дефайн видите ли не меняет определенную математику. Bool does, там есть определенные гарантии поведения. Даже в случаях когда integer'у под ним присваивают (по крайней мере, пытаются) иные значения.
| |
|
2.22, Аноним (19), 09:36, 07/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
Давно уже пора довести до нормального состояния, чтобы всякие студенты не писали пародии на С++
| |
2.36, Аноним (36), 12:07, 07/09/2022 [^] [^^] [^^^] [ответить]
| +2 +/– |
Вы пишите:
>>> C++23. реализованы ключевые слова false и true <<<
В тексте написано:
>>> Для языка Си реализованы: ... ключевые слова false и true ... <<<
При чем тут C++23?🤦
| |
|
3.38, mumu (ok), 12:10, 07/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
Да, писал конечно про C2X, при форматировании не ту часть удалил
| |
|
|
|
2.39, Аноним (26), 12:14, 07/09/2022 [^] [^^] [^^^] [ответить]
| +2 +/– |
Ты не в теме, Ллвм используется примерно во всех проприетарных компиляторах всего последние лет 15 уже так точно. Шейдеры, куда, жит, фортран. Гцц вечно в догоняющих. Но, что касается си и частично плюсов, у гцц до сих пор получается ощутимо более эффективный код (особенно, при задействовании пго). Не понимаю этого нездорового вендузячьего желания собирать всё шлангом, из того что я видел, майкрософтовский компилятор хоть и отставал по возможностям на десятилетия, но генерировал код не хуже шланга. Реальная его проблема это совершенно неосмысленные сообщения об ошибках.
| |
|
3.46, Аноним (44), 12:47, 07/09/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
>Ллвм используется примерно во всех проприетарных компиляторах всего последние лет 15 уже так точно
Ну и кто теперь и дальше будет утверждать, что LLVM не проприетарщина?
| |
3.52, Аноним (52), 13:09, 07/09/2022 [^] [^^] [^^^] [ответить] | –1 +/– | А я вот понимаю ein сompiler - не нужно держать ворох повторяющихся компиляторо... большой текст свёрнут, показать | |
3.54, Анонн (?), 15:44, 07/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
Ну и существенно проще добавлять поддержку новых архитектур или языков по сравнению с гэцц.
Дописал бек или фронт, в зависимости от того что добавляешь, и у тебя готовый инструмент со всем фишками и оптимизациями.
| |
|
|
5.64, Аноним (66), 18:22, 07/09/2022 [^] [^^] [^^^] [ответить] | +1 +/– | Принципиально - нет Но если начать разбираться, то нюансов море GCC намного бо... большой текст свёрнут, показать | |
|
|
3.105, Аноним (105), 20:09, 09/09/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Не понимаю этого нездорового вендузячьего желания собирать всё шлангом
С вероятностью 99% получится более эффективный машинный код, да и при разработке кросс-платформенного софта использование одного компилятора на всех платформах даёт некоторые плюсы (меньше компиляторо-специфичных нюансов типа проивозительности сгенерированного кода, багов самого компилятора и т.п.).
> майкрософтовский компилятор хоть и отставал по возможностям на десятилетия, но генерировал код не хуже шланга
Если майкрософтовский компилятор сгенерировал код не хуже шланга, то вам просто повезло. Примеров наподобие https://godbolt.org/z/orMv61YjE можно найти/придумать немало.
| |
|
|
|
2.50, Roman (??), 12:54, 07/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
Уже время вам присоединится и показать миру как надо "пилить"
| |
2.53, Аноним (36), 13:42, 07/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
А теперь представьте, что надо написать свой собственный компилятор языка с++ (с++23) вообще с нуля!:)
| |
|
3.104, Neon (??), 17:47, 09/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
Значит, что то давно не так в С++ королевстве. И развитие его идет в какую то не ту сторону.
| |
|
4.110, Аноним (36), 10:30, 10/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
Да, у С++, впрочем как и у любого другого языка есть проблемы, но утверждать, что его развитие идет не в ту сторону, - я бы точно не стал!
| |
|
|
|
1.58, Ванёк (?), 17:10, 07/09/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Как оно по производительности генерируемого кода по сравнению с GCC, ICC, MSVC, в том числе с использованием PGO? Кто-нибудь знает?
| |
|
2.79, Аноним (79), 11:22, 08/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
Без оптимизаций - влёт,а так жсс рулит,но это было с год назад,а то и больше.
| |
2.93, Аноним (92), 01:29, 09/09/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
Про PGO не скажу, но на обычной компиляции clang и gcc где-то рядом - в одних случаях один лучше, в других - другой. icc сдох (Intel перешел на clang со своим бекендом, называется icx), и и clang, и gcc его уже давно обставили. Единственная его "киллер-фича" - это автоматический runtime dispatch в зависимости от наборов инструкций, поддерживаемых CPU. А MSVC - это хрень, а не компилятор. На типовом коде еще куда ни шло, и то - иногда умудряется генерировать некорректный код. Но как только начинаешь использовать векторные расширения - это дно.
| |
|
3.96, срыватель_покровов (?), 02:15, 09/09/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
clang в хламину сливает gcc. Обычно однорукие бандиты даже замерить нормально код не могут(допустим не знают про libcxx и llvm-рантайм для цпп). Так же шланг имеет более агрессивные умолчания нежели гцц, а так же там много всяких подложных фейковых оптимизаций.
>Единственная его "киллер-фича" - это автоматический runtime dispatch в зависимости от наборов инструкций, поддерживаемых CPU.
Это базовая фича gcc/gnuc ну и шланга как альтернативной реализации gcc/gnuc. Фича у интел-компилятора в другом. Она такая же как и в случае с шлангом и его фейковыми оптимизациями. Он создан специально чтобы заменять код вчерашнего мойщика полов на нормальный. Если же код пишет не мойщик полов все эти кулл-оптимизации нахрен ненужны.
Из таких примеров простых. Боты-поломои в основном пастят шаблоннный мусор. Всякие for i j и прочий мусор. Вот icc умел детектировать этот мусор и заменять его на нормальные реализации. Допустим какое-нибудь умножение матриц и прочее.
Точно так же как gcc/clang умеют детектировать memcpy.
| |
|
4.108, Аноним (108), 03:14, 10/09/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
>> Единственная его "киллер-фича" - это автоматический runtime dispatch в зависимости от наборов инструкций, поддерживаемых CPU.
>
> Это базовая фича gcc/gnuc ну и шланга как альтернативной реализации gcc/gnuc.
Нет в gcc такой фичи. Есть ручное клонирование и маркировка функций для разных наборов инструкций.
https://gcc.gnu.org/wiki/FunctionMultiVersioning
А icc мог сам сгенерировать клоны (или даже вынести часть функции в клоны) и dispatch из простого кода.
| |
|
5.111, Ванёк (?), 13:13, 10/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
То же самое можно сделать в любом компиляторе с помощью #ifdef __инструкции__ (__SSE2__,__AVX2__ и т.п.)
| |
|
6.118, Аноним (118), 02:13, 12/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
Вопрос на засыпку: в чем разница между директивами препроцессора и runtime dispatch?
| |
|
7.119, Ванёк (?), 14:35, 12/09/2022 [^] [^^] [^^^] [ответить]
| +/– |
Если прямо действительно необходимо runtime dispatch, то помимо директив препроцессора есть cpuid. Комбинация cpuid и директив - более гибко, контролируемо и более-менее универсально для любого компилятора.
| |
|
|
|
|
|
|
|
2.116, Аноним (-), 01:16, 11/09/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
Не используйте GNU/GPL, он нужен пермиссивщикам и проприетарщикам.
Пофиксил, не благодари.
Кстати, а почему оракул не хочет гест аддишанс шайтан коробки в бсди положить, а вон мс скуль в пингвине крутится? Какая-то несвободная свобода. Не?
| |
|
1.117, anonima (?), 10:59, 11/09/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> В Libc++ продолжена реализация новых возможностей стандартов C++20 и C++2b, в том числе завершена реализация библиотеки "format" и предложен экспериментальный вариант библиотеки "ranges".
Джва года ждал.
| |
|