Можно ли перевести язык ассемблера в LLVM IR, оптимизировать его и затем перекомпилировать в другую архитектуру?

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

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

Спасибо

Ответ 2

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

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

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