¿Es posible ejecutar el compilador LLVM con la entrada del código x86 de 32 bits? Hay un gran algoritmo que no tengo código fuente y quiero que funcione más rápido en el mismo hardware. ¿Puedo traducirlo de x86 a x86 con optimizaciones?Recompile un código x86 con LLVM a uno más rápido x86
Este código lleva mucho tiempo, por lo que quiero hacer una recompilación estática de él. Además, puedo hacer un perfil de tiempo de ejecución y darle pistas a LLVM, qué ramas son más probables.
El código original está escrito para x86 + x87, y no usa SSE/MMX/SSE2. Después de la recompilación, tiene posibilidades de usar x86_64 y/o SSE3. Además, el código se regenerará de forma más óptima al decodificador de hardware.
Gracias.
Esto no es una respuesta, pero recuerdo que había programas para que Amiga "optimice" el código compilado para MC68000 para hacerlo funcionar más rápido en procesadores más nuevos, a costa de la compatibilidad. Pero no conozco ningún intento de este tipo para x86. – liori
IMO, es posible que tenga un mejor momento utilizando algo como IDA y rayos X o Ollydbg para realizar ingeniería inversa del ensamblado en un lenguaje de nivel superior (C o C++) – Necrolis
[RevGen] (http://stackoverflow.com/questions/ 9359487/the-source-code-of-revgen-tool) es uno de los traductores x86-> LLVM aquí. También tiene un traductor de x86 a binario estático. Utiliza Qemu y MIPS TCG modificado, que genera IR. – osgx