Memory-Efficient Fixpoint Computation

  title={Memory-Efficient Fixpoint Computation},
  author={Sung Kook Kim and Arnaud Venet and Aditya V. Thakur},
Practical adoption of static analysis often requires trading precision for performance. This paper focuses on improving the memory efficiency of abstract interpretation without sacrificing precision or time efficiency. Computationally, abstract interpretation reduces the problem of inferring program invariants to computing a fixpoint of a set of equations. This paper presents a method to minimize the memory footprint in Bourdoncle's iteration strategy, a widely-used technique for fixpoint… Expand

Figures and Tables from this paper

Sustainable Solving: Reducing the Memory Footprint of IFDS-Based Data Flow Analyses Using Intelligent Garbage Collection
  • Steven Arzt
  • Computer Science
  • 2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE)
  • 2021
A technique called CleanDroid is presented for reducing the memory footprint of a precise IFDS-based data flow analysis and its effectiveness in the popular FlowDroid open-source data flow solver is demonstrated. Expand
Database-Backed Program Analysis for Finding Cascading Outage Bugs in Distributed Systems
Modern distributed systems (“cloud systems”) have emerged as a dominant backbone for many of today’s applications. As these systems collectively become the “cloud operating system”, users expect highExpand


Deterministic parallel fixpoint computation
Pikos, a deterministic parallel algorithm for fixpoint computation by introducing the notion of weak partial order (WPO), and an algorithm for constructing a WPO in almost-linear time are presented. Expand
Precise and efficient static array bound checking for large embedded C programs
The design and implementation of a static array-bound checker for a family of embedded programs: the flight control software of recent Mars missions, which is the first distributed implementation of static analysis algorithms. Expand
Tutorial on Static Inference of Numeric Invariants by Abstract Interpretation
This tutorial presents Abstract Interpretation and its use to create static analyzers that infer numeric invariants on programs, and the principles and algorithms presented are effectively used in analyzers for real industrial programs, although this is out of the scope of this tutorial. Expand
PAGAI: A Path Sensitive Static Analyser
We describe the design and the implementation of PAGAI, a new static analyzer working over the LLVM compiler infrastructure, which computes inductive invariants on the numerical variables of theExpand
Making numerical program analysis fast
This work presents a complete approach for optimizing the performance of the Octagon numerical abstract domain, a domain shown to be particularly effective in practice, and designed new algorithms for the core Octagon operators with better asymptotic runtime than prior work and combined them with the optimization techniques to achieve high actual performance. Expand
Database-Backed Program Analysis for Scalable Error Propagation
This work proposes a database-backed strategy for large program analysis based on graph algorithms, using a Semantic Web database to manage representations of the program under analysis, applicable to a variety of interprocedural finite distributive subset problems. Expand
Design and Implementation of a Special-Purpose Static Program Analyzer for Safety-Critical Real-Time Embedded Software
We report on a successful preliminary experience in the design and implementation of a special-purpose Abstract Interpretation based static program analyzer for the verification of safety criticalExpand
Practical Extensions to the IFDS Algorithm
Four extensions to the Interprocedural Finite Distributive Subset algorithm that make it applicable to a wider class of analysis problems are presented, often necessary when applying the IFDS algorithm to non-separable (i.e. non-bit-vector) problems. Expand
Global Sparse Analysis Framework
A general method for achieving global static analyzers that are precise and sound, yet also scalable, and a general sparse analysis technique that supports relational as well as nonrelational semantics properties for various programming languages. Expand
A Method for Symbolic Computation of Abstract Operations
This paper presents a parametric framework that, given and, implements, provides a new way for an SMT (Satisfiability Modulo Theories) solver to perform unsatisfiability checking: given, the condition implies that ϕ is unsatisfiable. Expand