|
Fulcra is a exible and accurate pointer analysis framework. The algorithms developed permit accurate analysis of programs within SPEC and Mediabench benchmark suites generally within a small number of seconds. Even when a very detailed heap allocation model is used, the longest analysis time is 5 min, while similar frameworks require hours or months. Furthermore, comparisons of accuracy show that the algorithms developed for Fulcra can provide orders of magnitude di erence between the least and most accurate analysis configurations. While the implementation is exciting, the author's primary goal is not to laud its speed or accuracy, but to provide a guide to designers in how to construct very exible pointer analysis frameworks. For example, the algorithms developed for Fulcra enable control of context sensitivity, field sensitivity, and heap sensitivity at the granularity of a single program object. It is only through this exibility that frameworks can hope to nd a true balance between accuracy and scalability capable of satisfying the timeliness demanded by some clients with the result quality demanded by others. The contributions of Fulcra center around its whole-hearted embrace of hybrid pointer analysis algorithms and the design of elegant qualified constraint-based algorithms that enable simple, flexible, and accurate approachs to context and heap sensitivity.
|