Esquema - PowerPoint PPT Presentation

About This Presentation
Title:

Esquema

Description:

Title: SGI Pro64 Author: esantama Last modified by: esantama Created Date: 10/4/2001 12:32:59 PM Document presentation format: On-screen Show Company – PowerPoint PPT presentation

Number of Views:56
Avg rating:3.0/5.0
Slides: 33
Provided by: esantama
Learn more at: https://hpc.ac.upc.edu
Category:

less

Transcript and Presenter's Notes

Title: Esquema


1
Esquema
  • Características compilador
  • Organización y componentes
  • WHIRL y tabla de símbolos
  • Organización directorios
  • Ejecución Pro64
  • Referencias

2
SGI Pro64
  • Compilador/Optimizador
  • Lenguajes C, C, F90/95
  • Basado en MIPSpro
  • Genera código para IA-64
  • Última versión 0.13

3
Modelo lógico de compilación
4
Componentes del Pro64
  • Front ends
  • Analizador y optimizador
  • interprocedural
  • Optimizador y paralelizador
  • de bucles
  • Optimizador global
  • Generador de código

Back end
5
Flujo de datos entre componentes
6
Front ends
  • C basado en gcc
  • C basado en g
  • Fortran90/95 de MIPSpro

7
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.

IR alto nivel IR bajo nivel
construcciones del lenguaje muchas pocas
longitud secuencias de código cortas largas
estructura jerárquica plana
8
IPA Anl. opt. interprocedural
  • Dos etapas
  • Local Recopilar información de cada archivo.
  • Principal Análisis y optimización considerando
    todo el conjunto de archivos.

9
IPA Modelo de compilación
10
IPA Etapa principal
  • Compuesta por dos fases
  • Análisis
  • Optimización
  • inlining
  • cloning
  • dead function and variable elimination
  • constant propagation

11
LNO Optimizador/paralelizador de bucles
  • Análisis de dependencias a nivel de bucle.
  • Transformaciones a nivel de bucle para un sólo
    procesador.
  • OpenMP
  • Paralelización automática

12
LNO Transformaciones a nivel de bucle
  • Loop Fission
  • Loop Fusion
  • Unroll and Jam
  • Loop Interchange
  • Loop Peeling
  • Loop Tiling
  • Data prefetching

13
WHIRL2c,f
  • Permite observar las transformaciones realizadas.
  • No siempre es posible compilar el código
    generado.

14
WOPT Optimizador global
  • Optimizaciones globales tradicionales
  • Dead code elimination
  • Partial redundancy elimination
  • Strength reduction
  • Induction variable elimination
  • Register variable identification
  • ...

15
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.

16
CG Generador de código
17
Esquema
  • Características compilador
  • Organización y componentes
  • WHIRL y tabla de símbolos
  • Organización directorios
  • Ejecución Pro64
  • Referencias

18
WHIRL niveles
19
WHIRL niveles
20
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)
21
WHIRL Ejemplo
VH WHIRL
while( i lt 5 ) sum i i

sum
i
4
i


sum
i
i
1
22
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

23
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
24
Tabla de símbolos Ejemplo
main (2)
global (1)
ST_TAB ST_TAB
main PU_IDX
PU_TAB PU_TAB
visibilidad2 TY_IDX
ST_TAB ST_TAB
sum TY_IDX
i TY_IDX
TY_TAB TY_TAB
I4 TYLIST_ IDX

kind_ func TYLIST_ IDX
TYLIST_ TAB
TY_IDX
0
25
Esquema
  • Características compilador
  • Organización y componentes
  • WHIRL y tabla de símbolos
  • Organización directorios
  • Ejecución Pro64
  • Referencias

26
Organización directorios
27
Organización de directorios(back-end)
28
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.

29
Ejecución comandos básicos
  • nue entrar en Native User Environment.
  • bski -forceuser ejecutar simulador IA-64
    (también ski/xski).
  • sgicc/sgiCC/sgif90 ejecutar compilador Pro64.
  • whirl2c/whirl2f generar archivos c o Fortran a
    partir de la representación intermedia.
  • ir_b2a traducir representación intermedia a
    formato ASCII.

30
Ejecución SPEC2000
  • Compilación -O2
  • Entrada test

168.wupwise 034649
171.swim 001904
172.mgrid 060309
173.applu 000744
177.mesa 010133
178.galgel 010717
179.art 003826
183.equake 002200
187.facerec 005314
188.ammp
189.lucas 014456
191.fma3d 000006
200.sixtrack 030640
301.apsi 020957
164.gzip 002819
175.vpr 003959
176.gcc 000955
181.mcf 000112
186.crafty 010140
197.parser 003536
252.eon 001928
254.gap 001322
253.perlbmk
255.vortex 020730
256.bzip2 005517
300.twolf 001641
31
Tamaño del código
  • Un orden de magnitud respecto a SimpleScalar

Pro641 SimpleScalar Pro642 gcc 3.0
líneas 2.313.324 192.325 3.362.287 2.538.163
archivos 2.467 129 8.218 9.848
Pro641 sólo common, front-ends, ipa, be e
ir_tools. SimpleScalar fuentes del simulador sin
directorios test. Pro642 fuentes completas,
excepto linker gcc 3.0 fuentes completas
32
Referencias
  • WHIRL Intermediate Language Specification
  • WHIRL Symbol Table Specification
  • Tutorial on the SGI Pro64 compiler
    infrastructure. Gao, Amaral, Dehnert, Towle
  • Pro64 Performance Compilers for IA-64. Dehnert
  • Lista de distribución Pro64 http//sourceforge.ne
    t/projects/open64
  • Introducción al Compilador Pro64
Write a Comment
User Comments (0)
About PowerShow.com