The CSI compiler instruments programs with two forms of optimized, customizable tracing as described in published papers [1, 2, 3]—Path Tracing and Program Coverage.