An Experience Report: Efficient Analysis using Souffle
May 2016

This abstract summarizes the key aspects of Souffle, which is an open-source Datalog engine used for static program analysis. It describes the overall approach of translating Datalog to C++ using an abstract machine and staged compilation. The novel aspects in Souffle include auto-index generation, representation of large relations, and techniques to exploit caches and parallel cores. It also identifies the issues of query planning and improved parallelism that need further exploration. The presentation will also include our experience in using Souffle in the context of vulnerability detection using points-to and other data flow based analyses.

Authors: Bernhard Scholz, Pavle Subotic, Herbert Jordan, Padmanabhan Krishnan, Raghavendra Kagalavadi Ramesh, Cristina Cifuentes

Venue: Designing Code Analysis Frameworks (DECAF @ ISSTA'16) http://karimali.ca/decaf


Hardware and Software, Engineered to Work Together