На основе Официальная страница LLVM, Насколько я понимаю, возможна оптимизация во время установки, которая сначала компилируется в байт-код построить машину до распространения, а затем на целевые машины, преобразует байт-код в собственный код при установке.
Есть ли какой-нибудь реальный пример этой функции? В частности, мне интересно, возможно ли взять произвольный проект C / C ++ с открытым исходным кодом, который использует autoconf (то есть, как правило, создается и устанавливается ./configure && make && make install
), а также
./configure && make
в специальномmake install
Как указал @delnan, это вообще невозможно. LLVM является целью независимый ИК, но это не так портативный.
Было несколько попыток создать портативный ИК, среди которых PNaCl, но они отличаются от LLVM.
LLVM IR не зависит от цели, это означает, что он может быть сгенерирован на одном компьютере (время компиляции) и преобразован в байт-код (время соединения) на другом, и он все равно будет генерировать тот же байт-код, что и на первом компьютере, при условии, что вы были используя ту же версию LLVM с теми же опциями. Это не означает, что сгенерированный IR будет генерировать допустимый двоичный файл на всех машинах.
Проблема заключается в том, что ABI может варьироваться в разных системах.
Этот пост рассматривает эти различия более подробно:
Кроссплатформенный бит-код LLVM