Оптимизация времени установки и установки

На основе Официальная страница LLVM, Насколько я понимаю, возможна оптимизация во время установки, которая сначала компилируется в байт-код построить машину до распространения, а затем на целевые машины, преобразует байт-код в собственный код при установке.

Есть ли какой-нибудь реальный пример этой функции? В частности, мне интересно, возможно ли взять произвольный проект C / C ++ с открытым исходным кодом, который использует autoconf (то есть, как правило, создается и устанавливается ./configure && make && make install), а также

  1. на сборке машины, запустив ./configure && make в специальном
    (например, установить некоторые переменные среды, или даже изменить
    configure.ac или некоторые другие файлы autoconf), чтобы он генерировал
    исполняемый файл и библиотеки в виде байтового кода;
  2. Я передаю дерево сборки на целевой компьютер и запускаю make install
    особым образом, чтобы установить все файлы как обычно,
    но преобразует байт-код в собственный код для исполняемого файла и библиотек.

15

Решение

Как указал @delnan, это вообще невозможно. LLVM является целью независимый ИК, но это не так портативный.

Было несколько попыток создать портативный ИК, среди которых PNaCl, но они отличаются от LLVM.

2

Другие решения

LLVM IR не зависит от цели, это означает, что он может быть сгенерирован на одном компьютере (время компиляции) и преобразован в байт-код (время соединения) на другом, и он все равно будет генерировать тот же байт-код, что и на первом компьютере, при условии, что вы были используя ту же версию LLVM с теми же опциями. Это не означает, что сгенерированный IR будет генерировать допустимый двоичный файл на всех машинах.

Проблема заключается в том, что ABI может варьироваться в разных системах.

Этот пост рассматривает эти различия более подробно:
Кроссплатформенный бит-код LLVM

1

По вопросам рекламы [email protected]