[PATCH] D21445: Comprehensive static instrumentation (1/3): LLVM pass
Tyler Denniston via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 16 12:51:07 PDT 2016
tdenniston created this revision.
tdenniston added reviewers: kcc, zhaoqin, bruening.
tdenniston added subscribers: eugenis, pcc, vitalybuka, aizatsky, llvm-commits.
tdenniston set the repository for this revision to rL LLVM.
tdenniston added a project: Comprehensive Static Instrumentation.
The Comprehensive Static Instrumentation (CSI) framework provides static instrumentation that a compiler inserts into a program-under-test so that dynamic-analysis tools -- memory checkers, race detectors, cache simulators, performance profilers, code-coverage analyzers, etc. -- can observe and investigate runtime behavior. Heretofore, tools based on compiler instrumentation would each separately modify the compiler to insert their own instrumentation. In contrast, CSI inserts a standard collection of instrumentation hooks into the program-under-test. Each CSI-tool is implemented as a library that defines relevant hooks, and the remaining hooks are "nulled'" out and elided during link-time optimization (LTO), resulting in instrumented runtimes on par with custom instrumentation. CSI allows many compiler-based tools to be written as simple libraries without modifying the compiler, greatly lowering the bar for developing dynamic-analysis tools.
This diff encompasses the compiler pass for CSI. For an extended usage doc, please see the docs/CSI.rst document submitted with the clang diff.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 42141 bytes
Desc: not available
More information about the llvm-commits