Sciweavers

APLAS
2009
ACM

Large Spurious Cycle in Global Static Analyses and Its Algorithmic Mitigation

14 years 6 months ago
Large Spurious Cycle in Global Static Analyses and Its Algorithmic Mitigation
We present a simple algorithmic extension of the classical call-strings approach to mitigate substantial performance degradation caused by spurious interprocedural cycles. Spurious interprocedural cycles are, in a realistic setting, key reasons for why approximate call-return semantics in both context-sensitive and -insensitive static analysis can make the analysis much slower than expected. In the traditional call-strings-based context-sensitive static analysis, because the number of distinguished contexts must be finite, multiple call-contexts are inevitably joined at the entry of a procedure and the output at the exit is propagated to multiple returnsites. We found that these multiple returns frequently create a single large cycle (we call it “butterfly cycle”) covering almost all parts of the program and such a spurious cycle makes analyses very slow and inaccurate. Our simple algorithmic technique (within the fixpoint iteration algorithm) identifies and prunes these spuri...
Hakjoo Oh
Added 27 May 2010
Updated 27 May 2010
Type Conference
Year 2009
Where APLAS
Authors Hakjoo Oh
Comments (0)