Skip to content

Writing an Inter Procedural Monotone Framework Analysis (Using Call Strings)

LinusJungemann edited this page Jul 27, 2020 · 1 revision

The implementation will be finished soon.

This analysis can be used when inter-procedural data-flow problems have be solved. The solver uses the classical monotone framework combined with the call-string approach to achieve k-context sensitivity. The k can be specified by the analysis implementor. The interface the analysis writer has to implement (InterMonotoneProblem) contains a few more functions than the IntraMonotoneProblem.h and thus, it is slightly more complex. Please note that this solver has scaling problems for a large k on larger programs. If the analysis writer demands a scalable analysis with infinite context sensitivity, they may would like to formulate their data-flow problem using an IFDS or IDE. Caution: IFDS and IDE can only be used when the flow functions are distributive. However, the usual Gen/Kill problems are distributive. An example for an analysis that is not distributive is full-constant propagation. In simple words a flow function is not distributive if a data-flow fact's validity depends on two or more other data-flow facts (at the same time).

Clone this wiki locally