20-24 September 2021
US/Pacific timezone

Link-Time Points-To Analysis Implementation in GCC with Souffle

20 Sep 2021, 07:30
GNU Tools track/Virtual-Room (LPC Virtual)

GNU Tools track/Virtual-Room

LPC Virtual

GNU Tools Track GNU Tools Track


Erick Ochoa (SBA Research) Christoph Müllner (SBA Research) Philipp Tomsich (VRULL)


Points-to analysis is a static code analysis that calculates the pointer-pointee relationship between expressions and static memory locations. The results of the points-to analysis may be used by multiple optimizations and analyses. Of particular interest a precise points-to analysis is necessary to perform data-layout optimizations at the level of alias sets. We use the high level, declarative, logic language Souffle to encode the semantics of a points-to analysis in few lines of code. The Souffle compiler allows us to synthesize a parallel C++ representation of the points-to analysis from the Souffle representation. In this talk we will go over the implementation of an intra-procedural, inclusion-based, field-insensitive, flow-insensitive, context-insensitive, points-to analysis which works with the existing link-time optimization (LTO) framework in GCC. While the current prototype is less precise than the existing points-to analysis our plan is to increase the level of precision of this implementation and use its results to enable future link-time data-layout optimizations.

I agree to abide by the anti-harassment policy I agree

Primary authors

Erick Ochoa (SBA Research) Christoph Müllner (SBA Research) Philipp Tomsich (VRULL)

Presentation Materials

There are no materials yet.