169 похожих чатов

Я правильно понимаю, что эту идею с промежуточным представлением сложно

соединить с платформозависимыми кусками? То есть, например, основная часть идёт через промежуточное представление, а небольшая часть в виде [ассемблера, например] под конкретную версию архитектуры (под каждую, естественно, руками наоптимизированного).

P. S. Два вопроса и пранк вышел из-под контроля. Спасибо за интересные обсуждения!😁

5 ответов

20 просмотров

Что есть платформозависимая кусок? :) Например на вход Denver идёт ARM код, доступа к родному режиму к программиста нет. 1. Можно ли считать, что у этого процессора нет платформозависимой части? Да. 2. Мешает ли это ему запускать любые программы? Нет.

Как вы смотрите на такой вариант оптимизации под конкретные возможности ISA? if (e2k_version() >= 5) { e2k_kuznechiK_simd128(...); } else { kuznechik_generic(...); } Во время запуска на v5+ оптимизатор просто отбросит вторую ветку.

Dmitry-Shcherbakov Автор вопроса

Это очень даже хороший вариант, примерно он традиционно идёт на x86: проверяем наличие расширений и выбираем нужную ветку. Единственный важный момент: чтобы эти вызовы шли в нативный код, потому что ручная оптимизация подобных критических кусков [сейчас] даёт лучшие результаты, чем любые техники с PGO.

Да я именно так и предполагал. Фактически в распространяемой программе должны быть все возможные варианты ручной оптимизаций под конкретную версию e2k, если это имеет место быть. Компилятор, как и в x86, должен предоставлять возможность использовать интринсики любой версии, а не как сейчас в lcc, когда -march=e8c не даёт использовать инстринсики с v5+.

Dmitry-Shcherbakov Автор вопроса

Тогда всё супер! Насчёт обоснованности такого поведения компилятора не скажу, но лечится легко, кстати: можно собирать несколько статических библиотек под нужные версии с нужными флагами.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта