É possível traduzir uma linguagem assembly para o LLVM IR, otimizá-lo e depois recompilá-lo para uma arquitetura diferente?

10

É possível traduzir uma linguagem assembly para o LLVM IR, otimizá-lo e, em seguida, recompilá-lo para uma arquitetura diferente? Como você lidaria com "push" es e "pop" na pilha no IR? Essa é a objeção mais simples que eu encontrei, mas tenho certeza que existem toneladas assim.

Estou planejando criar um recompilador dinâmico e parece que essa seria uma excelente solução, já que o LLVM otimizaria automaticamente meu código para a nova arquitetura. Tudo isso é possível com o LLVM?

Obrigado

    
por Francesco Boffa 27.11.2011 в 20:13
fonte

2 respostas

4

Esta é uma pergunta semelhante: Recompile um código x86 com o LLVM para um mais rápido x86

A resposta é que o LLVM não pode fazer isso diretamente, mas pode ser usado como parte de uma ferramenta que faz isso.

    
por Richard Pennington 27.11.2011 / 20:25
fonte
1

É possível.

Mas você precisa desenvolver algum código para basear o LLVM para implementar o processo de conversão da linguagem assembly em LLVM IR .

Em seguida, o LLVM pode ajudar você a otimizar e gerar novas arquiteturas.

Então, o ponto é que você precisa desenvolver o tradutor que pode traduzir a linguagem assembly para o LLVM IR. Eu já vi alguém fazer isso, você pode pesquisar no site.

    
por shining 26.06.2013 / 05:12
fonte