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 …