  The paper describes a member of the Symbiotic toolbox called
sbt-instrumentation, which is a tool for configurable instrumentation of LLVM
bitcode. The tool enables a user to specify patterns of instructions and to
define functions whose calls will be inserted before or after instructions that
match the patterns. Moreover, the tool offers additional functionality. First,
the instrumentation can be divided into phases in order to pass information
acquired in an earlier phase to the later phases. Second, it can utilize
results of some external static analysis by connecting it as a plugin. The
sbt-instrumentation tool has been developed as the part of Symbiotic
responsible for inserting memory safety checks. However, its configurability
opens the way to use it for many various purposes.
