FESA: fold- and expand-based shape analysis

  • Authors:
  • Holger Siegel;Axel Simon

  • Affiliations:
  • Institut für Informatik II, Technische Universität München, Garching, Germany;Institut für Informatik II, Technische Universität München, Garching, Germany

  • Venue:
  • CC'13 Proceedings of the 22nd international conference on Compiler Construction
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

A static shape analysis is presented that can prove the absence of NULL- and dangling pointer dereferences in standard algorithms on lists, trees and graphs. It is conceptually simpler than other analyses that use symbolically represented logic to describe the heap. Instead, it represents the heap as a single graph and a Boolean formula. The key idea is to summarize two nodes by calculating their common points-to information, which is done using the recently proposed fold and expand operations. The force of this approach is that both, fold and expand, retain relational information between points-to edges, thereby essentially inferring new shape invariants. We show that highly precise shape invariants can be inferred using off-the-shelf SAT-solvers. Cheaper approximations may augment standard points-to analysis used in compiler optimisations.