“Super”op)miza)on ¡
CSE ¡501 ¡ Spring ¡15 ¡
1 ¡
Superop)miza)on CSE 501 Spring 15 1 Course Outline - - PowerPoint PPT Presentation
Superop)miza)on CSE 501 Spring 15 1 Course Outline Sta)c analysis Language design Program Verifica)on Dynamic analysis New compilers
1 ¡
2 ¡
3 ¡
4 ¡
5 ¡
6 ¡
7 ¡
Parser Semantic analysis Intermediate code generator Optimizer Machine code generator Input code Syntax tree Syntax tree
Machine code Dead-code elimination Register allocation High-level IR Loop transformations Instruction selection High-level IR IR translator Low-level IR Low-level IR Peephole transforms …
8 ¡
9 ¡
10 ¡
11 ¡
12 ¡
13 ¡
¡ Loop ¡invariant ¡mo)on. ¡ ¡ Canonical ¡induc)on ¡variable ¡ crea)on. ¡ ¡ Induc)on ¡variable ¡op)miza)ons. ¡ ¡ Loop ¡unswitching. ¡ ¡ Vectoriza)on. ¡ ¡ SLP ¡Vectoriza)on. ¡ Autoparalleliza)on. ¡ ¡
14 ¡
15 ¡
16 ¡
17 ¡
18 ¡
19 ¡
20 ¡
21 ¡
22 ¡
23 ¡
A ¡ B ¡ C ¡ A ¡| ¡B ¡| ¡C ¡ 0 ¡ 0 ¡ 0 ¡ 0 ¡ 0 ¡ 0 ¡ 1 ¡ 1 ¡ 0 ¡ 1 ¡ 0 ¡ 1 ¡ 0 ¡ 1 ¡ 1 ¡ 0 ¡ 1 ¡ 0 ¡ 0 ¡ 1 ¡ 1 ¡ 0 ¡ 1 ¡ 0 ¡ 1 ¡ 1 ¡ 0 ¡ 0 ¡ 1 ¡ 1 ¡ 1 ¡ 1 ¡
24 ¡
25 ¡
26 ¡
27 ¡
28 ¡
reg6 * 4 + 1 2 * 2 2 << s4addl
29 ¡
30 ¡
31 ¡
32 ¡
33 ¡
34 ¡
p01 p02 p03 p04 p05 p06 p07 p08 p09 p10 p11 p12 p13 p14 p15 p16 p17 * p18 p19 p20 * p21 * p22 * p23 p24 * p25 * mont list * saxpy 1 2 3 4 5 6 7 Speedup
gcc -O3 icc -O3 STOKE llvm -O0
35 ¡
36 ¡