7
votes

Exécution du programme X86 _on_ LLVM

est-il possible d'utiliser LLVM pour exécuter X86 programmes? C'est à dire. Je souhaite utiliser LLVM sous forme de simulateur X86 pour exécuter X86 programmes, puis instrument le programme X86.

Merci!


2 commentaires

Pour citer Charles Babbage, "Je ne suis pas en mesure d'appréhender le type de confusion d'idées pouvant provoquer une telle question".


Grande question! J'avais réellement lu sur libcpu il y a quelques semaines, mais complètement oublié à ce sujet. Cette question m'a incité à y retourner et à le regarder à nouveau. Merci!


3 Réponses :


8
votes

Je pense que vous recherchez libcpu .

Il a Un X86 Frontend (Eh bien, seulement 8086 pour le moment, et Ce n'est même pas complet, mais ils y travaillent) et, comme il est construit sur LLVM, il dispose évidemment d'un backend X86, permettant ainsi de gérer x86-on-x86, mais de la transmettre à l'optimisation de LLVM , étapes d'instrumentation et d'analyse.


0 commentaires

1
votes

En outre, il y avait un projet d'utiliser LLVM dans QEMU. Il est également un moyen d'exécuter X86 Code via LLVM.

http://code.google .com / p / llvm-qemu / p>

C'était un projet GSOC, mais il y a un code dans SVN et l'auteur ont des résultats: P>

regular qemu     llvm-qemu rle,dse,simple regalloc   llvm-qemu full opts
4m35.349s             5m39.697s                        13m50.697s


1 commentaires

Apparemment, il a été conçu comme moyen d'optimiser QEMU. Je devinerais, la raison pour laquelle il a été abandonné était à cause de ces résultats décourageants.



0
votes

Je ne sais pas libcpu, mais il y a libx86 , qui fait quelque chose de très similaire; Si elle fonctionne sur un processeur X86 32 bits (mais pas en mode 64 bits), il exécute un processus virtuel 8086, s'il s'exécute ailleurs, il essaie d'émuler le logiciel 8086 dans le logiciel. Plutôt cool. La documentation est relativement rare cependant.

http://www.codon.org.uk/~mjg59/libx86/ < / a>


0 commentaires