Improving flow analyses via ΓCFA -: Abstract garbage collection and counting

被引:18
|
作者
Might, Matthew [1 ]
Shivers, Olin [2 ]
机构
[1] Georgia Inst Technol, Atlanta, GA 30332 USA
[2] Northeastern Univ, Boston, MA 02115 USA
关键词
gamma-CFA; program analysis; flow analysis; environment analysis; functional languages; lambda calculus; super-beta; inlining; CPS; continuations; abstract garbage collection; abstract counting;
D O I
10.1145/1160074.1159807
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present two independent and complementary improvements for flow-based analysis of higher-order languages: (1) abstract garbage collection and (2) abstract counting, collectively titled Gamma CFA. Abstract garbage collection is an analog to its concrete counterpart: we determine when an abstract resource has become unreachable, and then reallocate it as fresh. This prevents flow sets from merging in the abstract, which has two immediate effects: (1) the precision of the analysis is increased, and (2) the running time of the analysis is frequently reduced. In some nontrivial cases, we achieve an order of magnitude improvement in precision and time simultaneously. In abstract counting, we track how many times an abstract resource has been allocated. A count of one implies that the abstract resource momentarily represents only one concrete resource. This, in turn, allows us to perform environment analysis and to expand the kinds (rather than just the degree) of optimizations available to the compiler.
引用
收藏
页码:13 / 25
页数:13
相关论文
共 50 条
  • [1] Pushdown flow analysis with abstract garbage collection
    Johnson, J. Ian
    Sergey, Ilya
    Earl, Christopher
    Might, Matthew
    Van Horn, David
    JOURNAL OF FUNCTIONAL PROGRAMMING, 2014, 24 (2-3) : 218 - 283
  • [2] HEAP GARBAGE COLLECTION WITH REFERENCE COUNTING
    Yang, Wuu
    Tseng, Huei-Ru
    Jan, Rong-Hong
    ICSOFT 2010: PROCEEDINGS OF THE FIFTH INTERNATIONAL CONFERENCE ON SOFTWARE AND DATA TECHNOLOGIES, VOL 2, 2010, : 267 - 270
  • [3] DISTRIBUTED GARBAGE COLLECTION USING REFERENCE COUNTING
    BEVAN, DI
    LECTURE NOTES IN COMPUTER SCIENCE, 1987, 259 : 176 - 187
  • [5] Improving Garbage Collection Observability with Performance Tracing
    Huang, Claire
    Blackburn, Stephen M.
    Cai, Zixian
    PROCEEDINGS OF THE 20TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON MANAGED PROGRAMMING LANGUAGES AND RUNTIMES, MPLR 2023, 2023, : 85 - 99
  • [6] The garbage collection advantage: Improving program locality
    Huang, XL
    Blackburn, SM
    McKinley, KS
    Moss, JEB
    Wang, ZL
    Cheng, P
    ACM SIGPLAN NOTICES, 2004, 39 (10) : 69 - 80
  • [7] Liberate Abstract Garbage Collection from the Stack by Decomposing the Heap
    Germane, Kimball
    Adams, Michael D.
    PROGRAMMING LANGUAGES AND SYSTEMS ( ESOP 2020): 29TH EUROPEAN SYMPOSIUM ON PROGRAMMING, 2020, 12075 : 197 - 223
  • [9] A Principled Approach to Nondeferred Reference-Counting Garbage Collection
    Joisha, Pramod G.
    VEE'08: PROCEEDINGS OF THE FOURTH INTERNATIONAL CONFERENCE ON VIRTUAL EXECUTION ENVIRONMENTS, 2008, : 131 - 140
  • [10] Biased Reference Counting: Minimizing Atomic Operations in Garbage Collection
    Choi, Jiho
    Shull, Thomas
    Torrellas, Josep
    27TH INTERNATIONAL CONFERENCE ON PARALLEL ARCHITECTURES AND COMPILATION TECHNIQUES (PACT 2018), 2018,