Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form
description
Transcript of Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form
![Page 1: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/1.jpg)
Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form
Masataka Sassa#, Masaki Kohama+ and Yo Ito#
# Dept. of Mathematical and Computing Sciences, Tokyo Institute of Technology
+ Fuji Photo Film Co., Ltd
![Page 2: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/2.jpg)
Background
SSA form (static single assignment form) Good representation for optimizing compilers Cannot be trivially translated into object code
such as machine code SSA back translation (translation to normal form)
Several algorithms exist, whose translation results differ
No research for their comparison and evaluation Algorithm by Briggs et al. published earlier is
often adopted without much consideration
![Page 3: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/3.jpg)
Outline
Comparison of SSA back translation algorithms Algorithm by Briggs et al. Algorithm by Sreedhar et al.
A proposal for improving Briggs’ algorithm Comparison by experiments
Changing the no. of registers and combination of optimizations
Execution time difference is not negligible (by 7%~10%)
Give a criterion in selecting SSA back translation algorithm
![Page 4: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/4.jpg)
1. SSA form2. SSA back translation3. Two major algorithms for SSA back
translation4. Improvement of Briggs’ algorithm5. Experimental Results6. Conclusion
Contents
![Page 5: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/5.jpg)
1 Static single assignment form (SSA form)
![Page 6: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/6.jpg)
x = 1y = 2a = x + ya = a + 3b = x + y
Static single assignment form (SSA form)
(a) Normal form
x1 = 1
y1 = 2a1 = x1 + y1 a2 = a1 + 3 b1 = x1 + y1
(b) SSA form
Only one definition for each variable.
For each use of variable, only one definition reaches.
![Page 7: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/7.jpg)
a = x + y a = a + 3 b = x + y
Optimization in static single assignment (SSA) form
(a) Normal form
a1 = x0 + y0 a2 = a1 + 3 b1 = x0 + y0
(b) SSA form
a1 = x0 + y0 a2 = a1 + 3 b1 = a1
(c) After SSA form optimization
a1 = x0 + y0 a2 = a1 + 3 b1 = a1
(d) Optimized normal form
SSA translation
Optimization in SSA form (common subexpression elimination)
SSA back translation
SSA form is becoming increasingly popular in compilers, since it is suited for clear handling of dataflow analysis (definition and use) and optimization.
![Page 8: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/8.jpg)
x1 = 1 x2 = 2
x3 = (x1;L1, x2:L2)… = x3
x = 1 x = 2
… = xL3
L2L1 L1 L2
L3
(b) SSA form(a) Normal form
Translation into SSA form
(SSA translation)
-function is a hypothetical function to make definition point unique
![Page 9: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/9.jpg)
2 Back translation from SSA form into normal form (SSA back translation)
![Page 10: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/10.jpg)
Back translation from SSA form into normal form (SSA back translation)
x1 = 1 x2 = 2
x3 = (x1;L1, x2:L2)… = x3
x1 = 1x3 = x1
x2 = 2x3 = x2
… = x3L3
L2L1L1 L2
L3
(a) SSA form (b) Normal form
Insert copy statements in the predecessor blocks of -function and delete .
-function must be deleted before code generation.
![Page 11: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/11.jpg)
Problems of naïve SSA back translation(i) Lost copy problem
x0 = 1
x1 = (x0, x2)y = x1x2 = 2
return y
x0 = 1
x1 = (x0, x2)
x2 = 2
return x1
x0 = 1x1 = x0
x2 = 2x1 = x2
return x1
not correct !
block1
block3
block2
block1
block3
block2
block1
block3
block2
Copy propagation Back translation by naïve method
![Page 12: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/12.jpg)
(ii) Simple ordering problem: simultaneous assignments to -functions
Problems of naïve SSA back translation
x0 = 1y0 = 2
x1 = (x0, x2)y1 = (y0, y2)
y2 = x1x2 = 3
not correct !
block1
block2
Copy propagation Back translation by naïve method
x0 = 1y0 = 2
x1 = (x0, x2)y1 = (y0, x1)
x2 = 3
block1
block2
x0 = 1y0 = 2
x1 = x0y1 = y0
x2 = 3 x1 = x2y1 = x1
block1
block2
![Page 13: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/13.jpg)
To remedy these problems...
SSA back translation algorithms by
(i) Briggs et al. [1998] Insert copy statements(ii) Sreedhar et al. [1999] Eliminate interference
3 Two major algorithms for SSA back translation
![Page 14: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/14.jpg)
(i) SSA back translation algorithm by
Briggs (lost copy problem)
x0 = 1
x1 = (x0, x2)
x2 = 2
return x1
x0 = 1x1 = x0
x2 = 2x1 = x2
return temp
block1
block3
block2
block1
block3
block2
temp = x1
(a) SSA form(b) normal form after back translationMany copies inserted. Is is OK?
liverangeof x1
liverangeof temp
![Page 15: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/15.jpg)
(i) SSA back translation algorithm
by Briggs (cont)
x = 1
x = 2
return temp
block1
block3
block2
temp = x
(d) after coalescing
x0 = 1x1 = x0
x2 = 2x1 = x2
return temp
block1
block3
block2
temp = x1
(c) normal form after back translation (same as (b))
live range of x0 x1 x2
coalesce {x0, x1, x2} x(delete relevant copies)
![Page 16: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/16.jpg)
(i) SSA back translation algorithm
by Briggs (cont)
Possible problems: Many copies are inserted.
They claim most copies can be coalesced. Actually there are many copies which
interfere, thus cannot be coalesced. This increases register pressure (demand
for registers). Problems when processing -functions within
loops Causes copies that cannot be coalesced We propose an improvement
![Page 17: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/17.jpg)
(ii) SSA back translation algorithm by Sreedhar - principle
x1 = 1 x2 = 2
x3 = (x1;L1, x2:L2)… = x3
X = 1 X = 2
… = XL3
L2L1L1 L2
L3
(a) SSA form (b) Normal form
{x3, x1, x2} => X
If the live ranges of variables in -function (x3, x1, x2) do not interfere, then coalesce them into a single variable (X), and delete the -function.
![Page 18: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/18.jpg)
(ii) SSA back translation algorithm by Sreedhar - rewriting
x1 = (x2, ...)
...x2 = ...
...
x1’ = (x2, ...)x1 = x1’
...x2 = ...
...
x1 = (x2’, ...)...
x2 = ......
x2’ = x2
(a) SSA form (b) rewrite target (c) rewrite parameter
If variables in -function interfere, rewrite the target or the parameter.
![Page 19: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/19.jpg)
(ii) SSA back translation algorithm by Sreedhar (lost copy problem)
x0 = 1
x1 = (x0, x2)
x2 = 2
return x1
live range ofx0 x1 x2
x0 = 1
x1’ = (x0, x2)x1 = x1’x2 = 2
return x1
rename {x1’, x0, x2} Xdelete
x1 = XX = 2
X = 1
block1
block3
block2
block1
block3
block2
return x1
(a) SSA form (b) eliminating interference (Rewrite target)
(c) normal form after back translation
live range ofx0 x1' x2 block1
block3
block2
interfere not interfere
(Variables in -function interfere)
![Page 20: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/20.jpg)
(ii) SSA back translation algorithm
by Sreedhar (cont)
Benefit: Copies are few
Possible problems: Live range of variables are long May increase register pressure
![Page 21: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/21.jpg)
4 Problems of Briggs’ algorithm and proposal for improvement
![Page 22: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/22.jpg)
Problems of Briggs’ algorithm - long live range
x1=0
return x3
x3=(x1, x2)
x2=1…=x3+1
x1=0x3=x1
return temp
temp=x3x2=1
…=x3+1x3=x2
x2
x3
temp
(a) SSA form (b) Briggs’ back translation
live range
interfere
(-function in loop -> insert copies -> copy “x3=x2” is inserted in the live range of x3 -> need temporary temp -> copies interfere -> copies cannot be coalesced)
![Page 23: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/23.jpg)
Improvement of Briggs’ algorithm (1)(first rewrite -function à la Sreedhar’s method -> remove interference between x2 and x3 -> back translation -> x2 and x3’ do not interfere and can be coalesced -> better than Briggs’)
x1=0
return x3
x3’= (x1, x2)x3=x3’x2=1
…=x3+1
x1=0x3’=x1
return x3
x3=x3’x2=1
…=x3+1x3’=x2
x2
x3’
x3
live range
(c) rewrite (d) after back translation(x2 and x3’ can be coalesced)
![Page 24: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/24.jpg)
Improvement of Briggs’ algorithm (2)- conditional branch
y=x1+1
if (x1 > 10)
x3=(x1, x2)return x3
y=x1+1x3=x1
if (x3 > 10)
return x3
y=x1+1x3=x1
if (x1 > 10)
return x3
x1 x3 x1 x3
live range live range
(a) SSA form (b) back translation by Briggs
(c) improvement(x1 and x3 can be coalesced)
no interfereinterfere
![Page 25: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/25.jpg)
Implementation
COINS compiler infrastructure Adopt Sreedhar’s SSA back translation algorithm Iterated coalescing [George & Appel et al. 1996] Implemented in Java
SSA optimization module of COINS Briggs’s algorithm and the proposed
improvement are additionally implemented for measurement
Implemented in Java
![Page 26: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/26.jpg)
5 Experimental results using SPEC benchmarks
![Page 27: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/27.jpg)
Consideration up to now
Briggs’s algorithm many interfering copies
enough no. of registers -> disadvantageous small no. of registers
register pressure increases due to interfering copies
Sreedhar’s algorithm interfering copies are few, but live ranges of variables
are long enough no. of registers -> advantageous small no. of registers
register pressure increases due to long live ranges of variables
![Page 28: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/28.jpg)
Experiments
Sun-Blade-1000
Benchmark (C language) SPECint2000 mcf, gzip-1.2.4( simply called gzip)
Combination of optimization Optimization 1: copy propagation Optimization 2: copy propagation, dead code
elimination, common subexpression elimination Optimization 3: copy propagation, loop-invariant
code motion No. of registers
8 (e.g. x86) and 20 (e.g. RISC machines)
architecture SPARC V9
processor UltraSPARC-III 750MHz x 2
L1 cache 64KB ( data ), 32KB(instruction)
L2 cache 8MB
Memory 1GB
OS SunOS 5.8
![Page 29: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/29.jpg)
Experiments - viewpoints of evaluation
Static Count No. of copies that cannot be coalesced No. of variables spilled in register allocation
Dynamic Count No. of executed copies No. of executed load and store instructions Execution time
SSA back translation
optimization
SSA translation
register allocation
object progra
min
SPARC
source progra
min C
![Page 30: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/30.jpg)
No. of copies that cannot be coalesced (static count)(relative value: Briggs = 1, small is better)
0
0.2
0.4
0.6
0.8
1
1.2
opt1 opt2 opt3 opt1 opt2 opt3
gzip mcf
BriggsSreedharProposed
![Page 31: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/31.jpg)
No. of variables spilled(static count)(unit: absolute value, small is better)
0
50
100
150
200
250
opt1 opt2 opt3 opt1 opt2 opt3 opt1 opt2 opt3 opt1 opt2 opt3
gzip mcf gzip mcf
20 registers 8 registers
BriggsSreedharProposed
![Page 32: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/32.jpg)
No. of executed copies(dynamic count)(relative value: Briggs = 1, small is better)
0
0.2
0.4
0.6
0.8
1
1.2
opt1 opt2 opt3 opt1 opt2 opt3 opt1 opt2 opt3 opt1 opt2 opt3
gzip mcf gzip mcf
20 registers 8 registers
BriggsSreedharProposed
![Page 33: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/33.jpg)
No. of executed load/store instructions (dynamic count)(relative value: Briggs = 1, small is better)
0.8
0.85
0.9
0.95
1
1.05
opt1 opt2 opt3 opt1 opt2 opt3 opt1 opt2 opt3 opt1 opt2 opt3
gzip mcf gzip mcf
20 registers 8 registers
Briggs
Sreedhar
Proposed
![Page 34: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/34.jpg)
Execution time (relative value: Briggs = 1, small is better)
0.88
0.9
0.92
0.94
0.96
0.98
1
1.02
opt1 opt2 opt3 opt1 opt2 opt3 opt1 opt2 opt3 opt1 opt2 opt3
gzip mcf gzip mcf
20 registers 8 registers
Briggs
Sreedhar
Proposed
![Page 35: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/35.jpg)
Additional experiments More benchmarks is executed on more
general optimizations for Briggs’ and Sreedhar’s algorithms
Benchmarks SPECint2000 gzip, vpr, mcf, parser, bzip2, twolf
Combination of optimizations No optimization Optimization 1: copy propagation, constant
propagation, dead code elimination Optimization 2: loop-invariant motion, constant
propagation, common subexpression elimination, copy propagation, dead code elimination
Execution time is measured
![Page 36: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/36.jpg)
Execution time (relative value: Briggs = 1, small is better)
0.84
0.86
0.88
0.9
0.92
0.94
0.96
0.98
1
1.02
noopt
opt1
opt2
noopt
opt1
opt2
noopt
opt1
opt2
noopt
opt1
opt2
noopt
opt1
opt2
noopt
opt1
opt2
gzip vpr mcf parser bzip2 twolf
BriggsSreedhar
![Page 37: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/37.jpg)
Summary of experiments
Briggs’s algorithm gave many copies that cannot be coalesced, which is beyond our expectation
Case of 20 registers Sreedhar’s algorithm is advantageous due to the dynamic
count of copies It gives better execution time by around 1%~10%
Case of 8 registers Sreedhar’s algorithm is advantageous due to both the
dynamic count of copies, and the dynamic count of load/store instructions
It gives better execution time by around 1%~5% Effect of SSA back translation algorithms does not depend so
much to the combination of optimizations Our proposed improvement has some effect over Briggs’, but
does not surpass Sreedhar’s algorithm
![Page 38: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/38.jpg)
Conclusion and future work
Our contribution Has shown that difference in SSA back translation
algorithms influences execution time by up to 10% Experiments in a variety of situations
Clarified advantage and disadvantage of different algorithms
Proposed an improvement of Briggs’ algorithm Sreedhar’s algorithm is superior from experiments (up
to 10%)
Future work Further experiments measuring several facet using
more benchmarks Consider coalescing algorithm in register allocation
![Page 39: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/39.jpg)
Conclusion The experimental result shows that selecting
a good back translation algorithm is quite important since it reduces the execution time of the object code by up to 10%, which is equal to applying a middle-level global optimization.
![Page 40: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/40.jpg)
![Page 41: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/41.jpg)
AppendixSSA optimization module in COINS
![Page 42: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/42.jpg)
High-level Intermediate Representation (HIR)
Basic analyzer &optimizer
HIRto
LIR
Low-level Intermediate Representation (LIR)
SSAoptimizer
Code generator
Cfrontend
Advanced optimizer
Basicparallelizer
frontend C generation
SPARC
SIMD parallelizer
x86 Newmachine
FortranC New language
C OpenMP
Fortran frontend
COINS compiler infrastructure
C generation
C
![Page 43: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/43.jpg)
Low-level Intermediate Representation (LIR)
SSA optimization module
Code generation
Source program
object code
LIR to SSAtranslation
(3 variations)
LIR in SSA
SSA optimization common subexp elim GVN by question prop copy propagation cond const propagation and much more ...
Optimized LIR in SSA
SSA to LIR back translation2 methods
(one with 3 variations)+ 2 coalescing about 12,000 lines
transformation on SSA edge splitting redund elim empty block elim
SSA optimization module in COINS
![Page 44: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/44.jpg)
Outline of SSA module in COINS (1)
Translation into and back from SSA form on Low-level Intermediate Representation (LIR)
◆ SSA translation◆ Use dominance frontier [Cytron et al. 91]◆ 3 variations: translation into Minimal , Semi-pruned and Pruned SSA for
ms◆ SSA back translation
◆ Sreedhar et al.’s method [Sreedhar et al. 99]◆ 3 variations: Method I, II, and III
◆ Briggs et al.’s method [Briggs et al. 98] (under development)◆ Coalescing
◆ SSA-based coalescing during SSA back translation [Sreedhar et al. 99]◆ Chaitin’s style coalescing after back translation
◆ Each variation and coalescing can be specified by options
![Page 45: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/45.jpg)
Outline of SSA module in COINS (2)
◆ Several optimization on SSA form: ◆ dead code elimination, copy propagation, common subexpression elimi
nation, global value numbering based on efficient query propagation, conditional constant propagation, loop invariant code motion, operator strength reduction for induction variable and linear function test replacement, empty block elimination, copy folding at SSA translation time ...
◆ Useful transformation as an infrastructure for SSA form optimization:
◆ critical edge removal on control flow graph, loop transformation from ‘while’ loop to ‘if-do-while’ loop, redundant phi-function elimination, making SSA graph …
◆ Each variation, optimization and transformation can be made selectively by specifying options
![Page 46: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/46.jpg)
References
COINS http://www.coins-project.org/
SSA module in COINS http://www.is.titech.ac.jp/~sassa/coins-www-ssa/ english/ind
ex.html
![Page 47: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/47.jpg)
Relative dynamic count of load and storeNumber of registers = 8
0.8
0.85
0.9
0.95
1
1.05
opt1 opt2 opt3
BriggsSreedharNew
0.9
0.92
0.94
0.96
0.98
1
1.02
opt1 opt2 opt3
BriggsSreedhar
New
gzip mcf
![Page 48: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/48.jpg)
Relative dynamic count of copiesNumber of registers = 8
gzip mcf
0
0.2
0.4
0.6
0.8
1
1.2
opt1 opt2 opt3
Briggs
Sreedhar
New
0
0.2
0.4
0.6
0.8
1
1.2
opt1 opt2 opt3
Briggs
Sreedhar
New
![Page 49: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/49.jpg)
Relative execution timeNumber of registers = 8
gzip mcf
0.93
0.94
0.95
0.96
0.97
0.98
0.99
1
1.01
opt1 opt2 opt3
Briggs
Sreedhar
New
0.910.920.930.940.950.960.970.980.99
11.01
opt1 opt2 opt3
Briggs
Sreedhar
New
![Page 50: Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form](https://reader036.fdocuments.us/reader036/viewer/2022062408/56813c30550346895da5ae94/html5/thumbnails/50.jpg)
Relative execution timeNumber of registers = 20
gzip mcf
0.97
0.975
0.98
0.985
0.99
0.995
1
1.005
opt1 opt2 opt3
Briggs
Sreedhar
New
0.88
0.9
0.92
0.94
0.96
0.98
1
1.02
opt1 opt2 opt3
Briggs
Sreedhar
New