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

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

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

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

5 ответов

8 просмотров

Что есть платформозависимая кусок? :) Например на вход 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 Автор вопроса

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

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

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

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
@ahndmn @ayaw0_0 здарова, на чем пишете?
Aiwan \ (•◡•) / _bot
7
Коллеги, как получить PId для собственного процесса из под линукса?
Роман Лях (rgreat)
6
Карта сайта