Esquema Caractersticas compilador Organizacin y componentes WHIRL y
- Slides: 32
Esquema • • • Características compilador Organización y componentes WHIRL y tabla de símbolos Organización directorios Ejecución Pro 64 Referencias
SGI Pro 64 • • • Compilador/Optimizador Lenguajes C, C++, F 90/95 Basado en MIPSpro Genera código para IA-64 Última versión 0. 13
Modelo lógico de compilación
Componentes del Pro 64 • Front ends • Analizador y optimizador interprocedural • Optimizador y paralelizador de bucles • Optimizador global • Generador de código Back end
Flujo de datos entre componentes
Front ends • C basado en gcc • C++ basado en g++ • Fortran 90/95 de MIPSpro
WHIRL • Representación intermedia. • Diseñada para soportar múltiples lenguajes y plataformas. • Interfase común entre las distintas etapas. • Un solo IR con cinco niveles de representación. – Descenso progresivo de nivel a medida que avanza la compilación. construcciones del lenguaje IR alto nivel IR bajo nivel muchas pocas longitud secuencias de código cortas largas estructura plana jerárquica
IPA: Anl. opt. interprocedural H WHIRL • Dos etapas – Local: Recopilar información de cada archivo. – Principal: Análisis y optimización considerando todo el conjunto de archivos.
IPA: Modelo de compilación
IPA: Etapa principal • Compuesta por dos fases – Análisis – Optimización • • inlining cloning dead function and variable elimination constant propagation
LNO: Optimizador/paralelizador de bucles H WHIRL • Análisis de dependencias a nivel de bucle. • Transformaciones a nivel de bucle para un sólo procesador. Open. MP Paralelización automática
LNO: Transformaciones a nivel de bucle –Loop Fission –Loop Peeling –Loop Fusion –Loop Tiling –Unroll and Jam –Data prefetching –Loop Interchange
WHIRL 2{c, f} • Permite observar las transformaciones realizadas. • No siempre es posible compilar el código generado.
WOPT: Optimizador global • Optimizaciones globales tradicionales: – Dead code elimination – Partial redundancy elimination – Strength reduction – Induction variable elimination – Register variable identification –. . .
WOPT: Optimizador global • Algoritmos basados en SSA (Static Single Assignment) – Cada variable aparece como el destino de una sola asignación. – Simplifica algunas optimizaciones. – Se construye una sola vez. – Los algoritmos de optimización la preservan.
CG: Generador de código
Esquema • Características compilador • Organización y componentes Ø WHIRL y tabla de símbolos • Organización directorios • Ejecución Pro 64 • Referencias
WHIRL: niveles
WHIRL: niveles
WHIRL: Estructura de datos • Estructura en árbol • Cada nodo contiene: operador tipo resultado tipo operandos número de hijos map_id (mecanismo para info. adicional) otros (según tipo de operador)
WHIRL: Ejemplo VH WHIRL while( i < 5 ) { sum += i; i++; } i £ 4 sum= i= + + i i 1
Tabla de símbolos • • Formada por un conjunto de distintas tablas Globales o locales: ST_TAB, . . . Sólo globales: PU_TAB, TY_TAB, . . . Sólo locales: LABEL_TAB, PREG_TAB
Tabla de símbolos: visibilidad • Cada función se encuentra en un determinado nivel de anidamiento. • Acceso a las tablas de cada nivel a través de un array global. 0 1 2 3. . . reservado tablas globales tablas procedimiento no anidado tablas procedimiento anidado
Tabla de símbolos: Ejemplo main (2) ST_TAB sum i global (1) ST_TAB PU_TAB main visibilidad=2 PU_IDX TY_TAB TY_IDX I 4 TYLIST_ IDX kind_ func TYLIST_ IDX TYLIST_ TAB TY_IDX 0
Esquema • Características compilador • Organización y componentes • WHIRL y tabla de símbolos Ø Organización directorios • Ejecución Pro 64 • Referencias
Organización directorios
Organización de directorios (back-end)
Ejecución: NUE/Ski • Ski: Simulador IA-64 – Simulación funcional. – Ejecución secuencial. • NUE: Native User Environment – Permite desarrollo programas IA-64 en una máquina IA-32. – Compilador (no optimiza), ensamblador, enlazador y librerías.
Ejecución: comandos básicos • nue: entrar en Native User Environment. • bski -forceuser: ejecutar simulador IA-64 (también ski/xski). • sgicc/sgi. CC/sgif 90: ejecutar compilador Pro 64. • whirl 2 c/whirl 2 f: generar archivos c o Fortran a partir de la representación intermedia. • ir_b 2 a: traducir representación intermedia a formato ASCII.
Ejecución: SPEC 2000 • Compilación: -O 2 • Entrada: test 168. wupwise 03: 46: 49 171. swim 00: 19: 04 172. mgrid 06: 03: 09 164. gzip 00: 28: 19 173. applu 00: 07: 44 175. vpr 00: 39: 59 177. mesa 01: 33 176. gcc 00: 09: 55 178. galgel 01: 07: 17 181. mcf 00: 01: 12 179. art 00: 38: 26 186. crafty 01: 40 183. equake 00: 22: 00 197. parser 00: 35: 36 187. facerec 00: 53: 14 252. eon 00: 19: 28 254. gap 00: 13: 22 188. ammp 189. lucas 01: 44: 56 253. perlbmk 191. fma 3 d 00: 06 255. vortex 02: 07: 30 200. sixtrack 03: 06: 40 256. bzip 2 00: 55: 17 301. apsi 02: 09: 57 300. twolf 00: 16: 41
Tamaño del código • Un orden de magnitud respecto a Simple. Scalar líneas archivos Pro 641 Simple. Scalar Pro 642 gcc 3. 0 2. 313. 324 192. 325 3. 362. 287 2. 538. 163 2. 467 129 8. 218 Pro 641: sólo common, front-ends, ipa, be e ir_tools. Simple. Scalar: fuentes del simulador sin directorios test. Pro 642: fuentes completas, excepto linker gcc 3. 0: fuentes completas 9. 848
Referencias • WHIRL Intermediate Language Specification • WHIRL Symbol Table Specification • Tutorial on the SGI Pro 64 compiler infrastructure. Gao, Amaral, Dehnert, Towle • Pro 64: Performance Compilers for IA-64. Dehnert • Lista de distribución Pro 64: http: //sourceforge. net/projects/open 64 • Introducción al Compilador Pro 64
- Protozorios
- Large whirls of water within an ocean basin
- What force provides centripetal force
- Organizacin
- Organizacin
- Organizacin
- Definicion organizacion escolar
- Componentes de los nucleótidos
- Aminoacido b
- Componentes componentes
- Glandulas anexas
- Primeiro compilador
- Miguel león portilla, compilador.
- Ass compilación
- Compilador
- Primeiro compilador
- Etapas de la compilacion
- Pssmm
- Compilador e interpretador diferença
- Compilador fases
- Componentes de una sustraccion
- Componentes del mais
- Componentes simetricas
- Componentes de la celula animal
- Feminil mite
- Componentes del tejido conectivo
- Como calcular el pib ejemplos
- Ecosistema
- Componentes del cuerpo
- Componentes del periodonto
- Miocardiopatias clasificacion
- Componentes del buen servicio
- Tipos de motherboards