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. P>
Merci! P>
3 Réponses :
Je pense que vous recherchez libcpu . P>
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. P>
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
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.
Je ne sais pas libcpu, mais il y a libx86 code>, 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 code> dans le logiciel. Plutôt cool. La documentation est relativement rare cependant. p>
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!