Size: a a a

2020 May 23

Т8

Т-34 85 in rust_offtopic
Tony 123
Нет
как "нет"? Ты же только что сказал, что один и тот же LLVM IR код можен не скомпилиться на другой платформе
источник

AI

Alex Ilizarov in rust_offtopic
грубо говоря LLVM заботится об ABI
источник

T1

Tony 123 in rust_offtopic
Т-34 85
как "нет"? Ты же только что сказал, что один и тот же LLVM IR код можен не скомпилиться на другой платформе
я такого не говорил
источник

Т8

Т-34 85 in rust_offtopic
Tony 123
я такого не говорил
источник

T1

Tony 123 in rust_offtopic
ты свою создашь архитектуру
источник

AI

Alex Ilizarov in rust_offtopic
Т-34 85
как "нет"? Ты же только что сказал, что один и тот же LLVM IR код можен не скомпилиться на другой платформе
смотри. Я могу написать условный mov edx, ebi и он соберется под любую поддерживаемую платформу. Но чтобы запустить программу на винде мне надо иметь точку входа с одним именем, на линуксе с другим, на другой платформе еще как то инициализироваться
источник

T1

Tony 123 in rust_offtopic
и llvm не будет знать как под неё компилировать
источник

AI

Alex Ilizarov in rust_offtopic
т.е. ты можешь собрать бинарь, но тебе надо знать API целевой платформы и дергать его
источник

T1

Tony 123 in rust_offtopic
ты расскажешь llvm как транслировать ему его IR для твоей архитектуры
источник

T1

Tony 123 in rust_offtopic
и всё
источник

AI

Alex Ilizarov in rust_offtopic
Tony 123
ты расскажешь llvm как транслировать ему его IR для твоей архитектуры
говоря иначе - напишешь бэкенд который берет LLVM IR и генерит бинарь под target platform
источник

T1

Tony 123 in rust_offtopic
++
источник

AI

Alex Ilizarov in rust_offtopic
тебе все равно надо знать как структурировать и инициализировать и работать в другой платформе, но тебе не надо под нее делать свой ассемблер
источник

AI

Alex Ilizarov in rust_offtopic
а значит мы можем для разных платформ использовать оптимизации написанные под LLVM IR
источник

AI

Alex Ilizarov in rust_offtopic
и автоматически выигрывать сразу на всех
источник

AI

Alex Ilizarov in rust_offtopic
а так тебе бы пришлось разбираться с ассемблером целевой платформы и писать все оптимизации байткода с нуля.
источник

Т8

Т-34 85 in rust_offtopic
тогда чем LLVM принципиально отличается от JVM? Если и там, и там платформонезависимый код, который надо "докомпилировать" на целевую платформу?
источник

AI

Alex Ilizarov in rust_offtopic
Т-34 85
тогда чем LLVM принципиально отличается от JVM? Если и там, и там платформонезависимый код, который надо "докомпилировать" на целевую платформу?
JVM не компилит в бинарь
источник

Т8

Т-34 85 in rust_offtopic
Alex Ilizarov
JVM не компилит в бинарь
JIT
источник

AI

Alex Ilizarov in rust_offtopic
Т-34 85
JIT
Just in time Тебе о че мнибудь говорит?
источник