Porting doop to Soufflé

Tony Antoniadis, Konstantinos Triantafyllou, Yannis Smaragdakis
2017 Proceedings of the 6th ACM SIGPLAN International Workshop on State Of the Art in Program Analysis - SOAP 2017  
We detail our experience of porting the DOOP static analysis framework to the recently introduced Soufflé Datalog engine. The port addresses the idiosynchrasies of the Datalog dialects involved (w.r.t. the type system, value construction, and fact updates) and differences in the runtime systems (w.r.t. parallelism, transactional execution, and optimization methodologies). The overall porting effort is interesting in many ways: as an instance of the benefits of specifying static analyses
more » ... ively, gaining benefits (e.g., parallelism) from a mere porting to a new runtime system; as a study of the effort required to migrate a substantial Datalog codebase (of several thousand rules) to a different dialect. By exploiting shared-memory parallelism, the Soufflé version of the framework achieves speedups of up to 4x, over already high single-threaded performance. CCS Concepts • Theory of computation → Program analysis Keywords Points-to analysis, Datalog, Doop 1 A new version, v.4 [1], of the LogicBlox engine does emphasize sharedmemory parallel execution but DOOP has not been ported to it, due to yetincomplete support for other essential features, such as complex recursion.
doi:10.1145/3088515.3088522 dblp:conf/pldi/AntoniadisTS17 fatcat:w4k2iwaetjcqjkcufb35t4vxya