d a c u c p speculative alias analysis for executable code manel fernández and roger espasa...
DESCRIPTION
D A C U C P Alias analysis on executable code Existing techniques Instruction inspection Register use-def chains Residue-based alias analysis [Debray et al. POPL ‘98] Arithmetic computations mod-k –Small displacements from a base register “Fine grain” disambiguation Problems of existing alias analysis Low precision Conservative assumptions Strong resource-usage constraints Widening: less precision joining different definitions Context-insensitive formulationTRANSCRIPT
![Page 1: D A C U C P Speculative Alias Analysis for Executable Code Manel Fernández and Roger Espasa Computer Architecture Department Universitat Politècnica de](https://reader036.vdocuments.net/reader036/viewer/2022082601/5a4d1b647f8b9ab0599aec70/html5/thumbnails/1.jpg)
D A C
U
CP
Speculative Alias Analysisfor Executable Code
Manel Fernández and Roger EspasaComputer Architecture Department
Universitat Politècnica de Catalunya
Barcelona, Spain
{mfernand,roger}@ac.upc.es
![Page 2: D A C U C P Speculative Alias Analysis for Executable Code Manel Fernández and Roger Espasa Computer Architecture Department Universitat Politècnica de](https://reader036.vdocuments.net/reader036/viewer/2022082601/5a4d1b647f8b9ab0599aec70/html5/thumbnails/2.jpg)
D A C
U
CP
Motivation Alias analysis
Provides information for memory disambiguation Key issue in today’s optimizing compilers
Formulated as a dataflow analysis In terms of source language constructs Trade-off between cost and precision
Executable code optimizers New optimization opportunities appear
Whole program view, etc. Limited usefulness of “traditional” analyses
High level information is lost Object code is larger than corresponding source code
Memory disambiguation is one of the weak points of object code modification
![Page 3: D A C U C P Speculative Alias Analysis for Executable Code Manel Fernández and Roger Espasa Computer Architecture Department Universitat Politècnica de](https://reader036.vdocuments.net/reader036/viewer/2022082601/5a4d1b647f8b9ab0599aec70/html5/thumbnails/3.jpg)
D A C
U
CP
Alias analysis on executable code
Existing techniques Instruction inspection
Register use-def chains Residue-based alias analysis
[Debray et al. POPL ‘98] Arithmetic computations mod-k
– Small displacements from a base register “Fine grain” disambiguation
Problems of existing alias analysis Low precision
Conservative assumptions Strong resource-usage constraints
Widening: less precision joining different definitions Context-insensitive formulation
![Page 4: D A C U C P Speculative Alias Analysis for Executable Code Manel Fernández and Roger Espasa Computer Architecture Department Universitat Politècnica de](https://reader036.vdocuments.net/reader036/viewer/2022082601/5a4d1b647f8b9ab0599aec70/html5/thumbnails/4.jpg)
D A C
U
CP
Talk outline Motivation Speculative alias analysis Evaluation Summary
![Page 5: D A C U C P Speculative Alias Analysis for Executable Code Manel Fernández and Roger Espasa Computer Architecture Department Universitat Politècnica de](https://reader036.vdocuments.net/reader036/viewer/2022082601/5a4d1b647f8b9ab0599aec70/html5/thumbnails/5.jpg)
D A C
U
CP
Speculative alias analysis Existing analysis are conservative
Trade off between cost and precision
A new variable: safeness Analysis becomes speculative
Increases precision at low cost Analysis is not always correct
Our proposals Two may-alias approaches
Region-based alias analysis Profile-guided alias analysis
Well-suited for speculative optimizations Speculative reordering based on check-and-recovery schemes E.g.: reordering memory operations
Safeness
Precision Resourceusage (cost)
AliasAnalysis
![Page 6: D A C U C P Speculative Alias Analysis for Executable Code Manel Fernández and Roger Espasa Computer Architecture Department Universitat Politècnica de](https://reader036.vdocuments.net/reader036/viewer/2022082601/5a4d1b647f8b9ab0599aec70/html5/thumbnails/6.jpg)
D A C
U
CP
Propagating memory regions Observations
Conservative propagation of descriptors E.g.: operating different definitions
Loads produce conservative descriptors Nothing is known about the loaded value
Key ideas Propagation without losing precision
Propagating “very basic” information “Guessing” possible memory regions
Memory regions “are disjoint”– Global– Stack– Heap
...I2 load (sp),r1I2 add gp,r1,r1I1 store r0,(r1)I2 load (sp),r0 ...
![Page 7: D A C U C P Speculative Alias Analysis for Executable Code Manel Fernández and Roger Espasa Computer Architecture Department Universitat Politècnica de](https://reader036.vdocuments.net/reader036/viewer/2022082601/5a4d1b647f8b9ab0599aec70/html5/thumbnails/7.jpg)
D A C
U
CP
Region-based alias analysis Interprocedural low-level scheme
Well-suited for executable code
Computation of memory regions For each register r defines S
S: set of regions {Global, Stack, Heap} T = , = {G,S,H}
Dataflow propagation Speculative approach
Assumptions are not always correct “Coarse-grain” disambiguation
Can be applied coupled to a residue-based scheme
Aggressive region-based analysis Loaded values are hardly ever aliased with other pointers
E.g.: linked lists Set load destination descriptors to T instead of
...I2 load (sp),r1I2 add gp,r1,r1I1 store r0,(r1)I2 load (sp),r0 ...
![Page 8: D A C U C P Speculative Alias Analysis for Executable Code Manel Fernández and Roger Espasa Computer Architecture Department Universitat Politècnica de](https://reader036.vdocuments.net/reader036/viewer/2022082601/5a4d1b647f8b9ab0599aec70/html5/thumbnails/8.jpg)
D A C
U
CP
Propagating likely paths Observations
Widening operation is conservative E.g.: several definitions reaching a use
Context-insensitive analysis Context-sensitive is not feasible
Key ideas Propagation without loosing precision
Reducing the number of paths “Cold” references are not important
Conflicts are not significant at run time Ignore “cold” paths
I1 store r0,(r1)I2 load (sp),r0 ...
...add sp,0,r1
...add gp,0,r1
Hotpath
![Page 9: D A C U C P Speculative Alias Analysis for Executable Code Manel Fernández and Roger Espasa Computer Architecture Department Universitat Politècnica de](https://reader036.vdocuments.net/reader036/viewer/2022082601/5a4d1b647f8b9ab0599aec70/html5/thumbnails/9.jpg)
D A C
U
CP
Profile-guided alias analysis Interprocedural general scheme
Needs profile information
Only likely executed paths are considered Applied on top of any dataflow analysis
Redefine join operation
Speculative approach “Cold” paths are ignored
“Likely-path” disambiguation
npr
pr
mpr
pr
npr
pr
,1,,1,,1,PG
,,,,,,,
![Page 10: D A C U C P Speculative Alias Analysis for Executable Code Manel Fernández and Roger Espasa Computer Architecture Department Universitat Politècnica de](https://reader036.vdocuments.net/reader036/viewer/2022082601/5a4d1b647f8b9ab0599aec70/html5/thumbnails/10.jpg)
D A C
U
CP
A combined algorithm Alias analysis scheme
Phase 1 Use-def chains
Phase 2 Residue-based Region-based
Phase 3 Profile-guided Phase 2
Disambiguation scheme
Input: I1,I2
Output: {dependent, independent, likely independent, unknown}Method: if ud-chains(I1,I2) ≠ unknown return ud-chains(I1,I2); if aliasing(I1,I2,safe) ≠ unknown return aliasing(I1,I2,safe); if aliasing(I1,I2,unsafe) ≠ unknown return likely independent; else return unknown;End Method
![Page 11: D A C U C P Speculative Alias Analysis for Executable Code Manel Fernández and Roger Espasa Computer Architecture Department Universitat Politècnica de](https://reader036.vdocuments.net/reader036/viewer/2022082601/5a4d1b647f8b9ab0599aec70/html5/thumbnails/11.jpg)
D A C
U
CP
Talk outline Motivation Speculative alias analysis Evaluation Summary
![Page 12: D A C U C P Speculative Alias Analysis for Executable Code Manel Fernández and Roger Espasa Computer Architecture Department Universitat Politècnica de](https://reader036.vdocuments.net/reader036/viewer/2022082601/5a4d1b647f8b9ab0599aec70/html5/thumbnails/12.jpg)
D A C
U
CP
Methodology Benchmark suite
SPECint95 Compiled on an AlphaServer with full optimizations Intrumented using Pixie to get profiling information
Experimental framework Alto executable optimizer SimpleScalar safe simulator
Evaluation Static precision Misspeculation rate
![Page 13: D A C U C P Speculative Alias Analysis for Executable Code Manel Fernández and Roger Espasa Computer Architecture Department Universitat Politècnica de](https://reader036.vdocuments.net/reader036/viewer/2022082601/5a4d1b647f8b9ab0599aec70/html5/thumbnails/13.jpg)
D A C
U
CP
Evaluating effectiveness Disambiguation query
“Question” made to the memory disambiguator Relationship between two memory references
Dependent, independent, likely independent Unknown
Set of disambiguation queries Pair of references that belong to the same function Building the set
Consider every load/store in a hot path (2nd item) Consider every load/store in previous paths (1st item)
Typical behavior of compiler optimizations
![Page 14: D A C U C P Speculative Alias Analysis for Executable Code Manel Fernández and Roger Espasa Computer Architecture Department Universitat Politècnica de](https://reader036.vdocuments.net/reader036/viewer/2022082601/5a4d1b647f8b9ab0599aec70/html5/thumbnails/14.jpg)
D A C
U
CP
Static precision
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
go
m88ksim gcc
compress liijpeg perl
vortexAverage
Dis
ambi
guat
ion
quer
ies
(%) Unknown
PG/Reg'PG/RegPG/ResRegionResidueInspect
![Page 15: D A C U C P Speculative Alias Analysis for Executable Code Manel Fernández and Roger Espasa Computer Architecture Department Universitat Politècnica de](https://reader036.vdocuments.net/reader036/viewer/2022082601/5a4d1b647f8b9ab0599aec70/html5/thumbnails/15.jpg)
D A C
U
CP
Misspeculation rate
0
0,5
1
1,5
2
2,5
Region PG/Res PG/Reg PG/Reg' Always
Analysis method
Mis
spec
ulat
ed q
uerie
s (%
)
![Page 16: D A C U C P Speculative Alias Analysis for Executable Code Manel Fernández and Roger Espasa Computer Architecture Department Universitat Politècnica de](https://reader036.vdocuments.net/reader036/viewer/2022082601/5a4d1b647f8b9ab0599aec70/html5/thumbnails/16.jpg)
D A C
U
CP
Talk outline Motivation Speculative alias analysis Evaluation Summary
![Page 17: D A C U C P Speculative Alias Analysis for Executable Code Manel Fernández and Roger Espasa Computer Architecture Department Universitat Politècnica de](https://reader036.vdocuments.net/reader036/viewer/2022082601/5a4d1b647f8b9ab0599aec70/html5/thumbnails/17.jpg)
D A C
U
CP
Summary Memory disambiguation is one of the weak points
of object code modification Speculative alias analysis
Compromise among cost, precision and safeness Region-based alias analysis Profile-guided alias analysis
Well-suited for executable code
Conclusions Precision increases from 16% up to 83% in average Misspeculation rate around 1%
In front of 2% using an “always speculate” scheme To be used for reordering memory operations with high
recovery cost