Clint

Introduction

Clint was initially designed as a interactive loop visualization and
manipulation tool. Over time, it has become a testbed for a major part of my
research on graphical interaction with a polyhedral compiler.

By using any single project in the Periscop suite, it allows to represent an
arbitrary complex part of the program amenable to the polyhedral model
graphically and lets the user transform it by manipulating this graphical
representation. The visualization itself is based on a scatterplot-like design
frequently used in literature to explain the polyhedral model. Its success is
due to the reification of a statement instance, a particular execution of
statement within the loop, and to making explicit the dependences caused by
data reuse between statement instances. Each graphical manipulation performed
by the user automatically transforms the code so that its visualization exactly
corresponds to the updated graphical representation. If such transformation
violates the semantics of the original program, the problematic spot is
highlighted for further consideration.

Clint serves as a prototyping framework for the following functionality that is
not yet integrated in the public version: visualization and manipulation of
data dependences in the C source code; visualization of data access patterns;
animated transition between C source code and scatterplot-like visualization
for explanatory purposes; interactive replay and tweaking of an automatically
computed polyhedral optimization. This functionality is a part of ongoing
research or is pending publication. Please contact me to obtain any of the
research prototypes.