Pregunta

Quiero compilar un programa C ++ a un código intermedio. Luego, quiero compilar el código intermedio para el procesador actual con todos sus recursos.

El primer paso es compilar el programa C ++ con optimizaciones (-O2), ejecutar el enlazador y hacer la mayor parte del procedimiento de compilación. Este paso debe ser independiente del sistema operativo y la arquitectura.

El segundo paso es compilar el resultado del primer paso, sin el código fuente original, para el sistema operativo y el procesador de la computadora actual, con optimizaciones e instrucciones especiales del procesador (-march = nativo). El segundo paso debe ser rápido y con requisitos mínimos de software.

¿Puedo hacerlo? ¿Cómo hacerlo?

Editar:
Quiero hacerlo, porque quiero distribuir un programa independiente de la plataforma que pueda usar todos los recursos del procesador, sin el código fuente original, en lugar de distribuir una compilación para cada plataforma y sistema operativo. Sería bueno si el segundo paso fuera rápido y fácil.

Los procesadores de la misma arquitectura pueden tener diferentes características. Los procesadores X86 pueden tener SSE1, SSE2 u otros, y pueden ser de 32 o 64 bits. Si compilo para un X86 genérico, falta de optimizaciones de SSE. Después de muchos años, los procesadores tendrán nuevas funciones, y el programa deberá ser compilado para nuevos procesadores.

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top