Можно ли перевести ассемблер на LLVM IR, оптимизировать его и затем перекомпилировать для другой архитектуры? - PullRequest
10 голосов
/ 27 ноября 2011

Можно ли перевести ассемблер на LLVM IR, оптимизировать его и затем перекомпилировать для другой архитектуры?Как бы вы справились с «push» es и «pop» в стеке в IR?Это самое простое возражение, которое я обнаружил, но я уверен, что таких вещей много.

Я планирую построить динамический перекомпилятор, и кажется, что это было бы отличным решением, так как LLVMбудет автоматически оптимизировать мой код для новой архитектуры.Возможно ли все это с LLVM?

Спасибо

Ответы [ 2 ]

4 голосов
/ 27 ноября 2011

Это похожий вопрос: Перекомпилируйте код x86 с LLVM в какой-нибудь более быстрый x86

Ответ заключается в том, что LLVM не может сделать это напрямую, но может использоваться как частьинструмента, который делает.

1 голос
/ 26 июня 2013

Это возможно.

Но вам нужно разработать кодовую базу LLVM для реализации процесса перевода языка ассемблера в LLVM IR.

Тогда LLVM может помочь вам оптимизировать и создать новую архитектуру.

Итак, суть в том, что вам нужно разработать переводчик, который может переводить язык ассемблера на LLVM IR. Я видел, кто-то уже сделал это, вы можете искать на сайте.

...