A schema for interprocedural modification side-effect analysis with pointer aliasing

The first interprocedural modification side-effects analysis for C ([MOD.sub.C]) that obtains better than worst-case precision on programs with general-purpose pointer usage is presented with empirical results. The analysis consists of an algorithm schema corresponding to a family of [MOD.sub.C] alg...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:ACM transactions on programming languages and systems 2001-03, Vol.23 (2), p.105-186
Hauptverfasser: Ryder, Barbara G, Landi, William A, Stocks, Philip A, Zhang, Sean, Altucher, Rita
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:The first interprocedural modification side-effects analysis for C ([MOD.sub.C]) that obtains better than worst-case precision on programs with general-purpose pointer usage is presented with empirical results. The analysis consists of an algorithm schema corresponding to a family of [MOD.sub.C] algorithms with two independent phases: one for determining pointer-induced aliases and a subsequent one for propagating interprocedural side effects. These [MOD.sub.C] algorithms are parameterized by the aliasing method used. The empirical results compare the performance of two dissimilar [MOD.sub.C] algorithms: [MOD.sub.C](FSAlias) uses a flow-sensitive, calling-context-sensitive interprocedural alias analysis; [MOD.sub.C](FIAlias) uses a flow-insensitive, calling-context-insensitive alias analysis which is much faster, but less accurate. These two algorithms were profiled on 45 programs ranging in size from 250 to 30,000 lines of C code, and the results demonstrate dramatically the possible cost-precision trade-offs. This first comparative implementation of [MOD.sub.C] analyses offers insight into the differences between flow-/context-sensitive and flow-/context-insensitive analyses. The analysis cost versus precision trade-offs in side-effect information obtained are reported. The results show surprisingly that the precision of flow-sensitive side-effect analysis is not always prohibitive in cost, and that the precision of flow-insensitive analysis is substantially better than worst-case estimates and seems sufficient for certain applications. On average [MOD.sub.C](FSAlias) for procedures and calls is in the range of 20% more precise than [MOD.sub.C](FIAlias); however, the performance was found to be at least an order of magnitude slower than [MOD.sub.C](FIAlias).
ISSN:0164-0925
1558-4593
DOI:10.1145/383043.381532