Partial online cycle elimination in inclusion constraint graphs

Many program analyses are naturally formulated and implemented using inclusion constraints. We present new results on the scalable implementation of such analyses based on two insights: first, that online elimination of cyclic constraints yields orders-of-magnitude improvements in analysis time for large problems; second, that the choice of constraint representation affects the quality and efficiency of online cycle elimination. We present an analytical model that explains our design choices and show that the model's predictions match well with results from a substantial experiment.

[1]  Alexander Aiken,et al.  Solving systems of set constraints , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

[2]  Matthias Felleisen,et al.  Componential set-based analysis , 1997, TOPL.

[3]  Nevin Charles Heintze,et al.  Set based program analysis , 1992 .

[4]  Donald E. Knuth The art of computer programming: fundamental algorithms , 1969 .

[5]  François Pottier,et al.  Simplifying subtyping constraints , 1996, ICFP '96.

[6]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[7]  A. Aiken,et al.  Flow-Insensitive Points-to Analysis with Term and Set Constraints , 1997 .

[8]  Oded Shmueli Dynamic Cycle Detection , 1983, Inf. Process. Lett..

[9]  Matthias Felleisen,et al.  Catching bugs in the web of program invariants , 1996, PLDI '96.

[10]  John C. Reynolds,et al.  Automatic computation of data set definitions , 1968, IFIP Congress.

[11]  Scott F. Smith,et al.  Subtyping Constrained Types , 1996, SAS.

[12]  Susan Horwitz,et al.  Fast and accurate flow-insensitive points-to analysis , 1997, POPL '97.

[13]  David A. McAllester,et al.  Linear-time subtransitive control flow analysis , 1997, PLDI '97.

[14]  Alexander Aiken,et al.  Soft typing with conditional types , 1994, POPL '94.

[15]  Donald E. Knuth,et al.  The Art of Computer Programming, Volume I: Fundamental Algorithms, 2nd Edition , 1997 .

[16]  Bjarne Steensgaard,et al.  Points-to analysis in almost linear time , 1996, POPL '96.

[17]  Neil D. Jones,et al.  Flow analysis and optimization of LISP-like structures , 1979, POPL.

[18]  Nevin Heintze,et al.  Set-based analysis of ML programs , 1994, LFP '94.

[19]  Dexter Kozen Logical Aspects of Set Constraints , 1993, CSL.

[20]  Manuel Fähndrich,et al.  Making Set-Constraint Program Analyses Scale , 1996 .

[21]  Philip Wadler,et al.  A practical subtyping system for Erlang , 1997, ICFP '97.

[22]  Christian Mossin,et al.  Flow analysis of typed higher-order programs , 1996, Technical report / University of Copenhagen / Datalogisk institut.

[23]  Alexander Aiken,et al.  Type inclusion constraints and type inference , 1993, FPCA '93.

[24]  Olin Shivers,et al.  Control flow analysis in scheme , 1988, PLDI '88.

[25]  Jens Palsberg,et al.  Object-oriented type inference , 1991, OOPSLA '91.

[26]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[27]  Robin Milner,et al.  Definition of standard ML , 1990 .

[28]  Manuel Fähndrich,et al.  Making Set-Constraint Based Program Analyses Scale , 1996 .