2011-10-25 13 views
6

La opción -fdump-tree-optimized de Gcc descarga una versión optimizada de su código C como un archivo C. ¿Hay alguna manera de que yo pueda hacer lo mismo usando el compilador icc de Intel?Intel icc: cómo volcar el código optimizado como archivo C

Tengo un código de multiplicación de matriz que he compilado como icc -O3 -ipo mult.c. Quiero ver cómo el compilador ha realizado optimizaciones. Si nada funciona, entonces generaré el código de ensamblaje para el programa.

+0

Si se trata de una aplicación "real" que no sea la diversión personal, está mucho mejor (en términos de rendimiento y tiempo de desarrollo) utilizando una biblioteca existente que implementa General Matrix Multiply, como GNU Scientific Library u otra implementación de la biblioteca BLAS – TJD

+0

Nopes, esto es parte de un proyecto de clase que enseña optimizaciones del compilador y temas similares. – jitihsk

Respuesta

2

Técnicamente, -fdump-tree-optimized no vuelque una representación C, sino una representación textual parcial del código Gimple utilizado dentro de GCC (Gimple es la representación interna de instrucciones intermedias, en la que operan la mayoría de las pasadas de optimización independientes de destino de GCC) .

Pero icc es un compilador propietario (una caja negra), por lo que desde el punto de vista de su proveedor, no es interesante (para Intel) mostrar cómo funciona icc.

GCC tiene la capacidad de mostrar sus representaciones internas, porque es un software libre. Los compiladores propietarios no quieren mostrar cómo funcionan.

Si esta es una clase, quizás puedas probar también LLVM. (Pero no sé cómo se vuelcan las representaciones internas en el interior).

Y más importante aún, si se trata de una clase, puede sugerir a su alumno que use GCC 4.6 desarrollar un complemento o una extensión GCC MELT para explorar y experimentar optimizaciones. MELT es un lenguaje de dominio de alto nivel específico para extender GCC y proporciona muchas funciones para facilitar tales tareas.

Cuestiones relacionadas