[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.
Repository:
rL LLVM
http://reviews.llvm.org/D21445
Files:
include/llvm/InitializePasses.h
include/llvm/Transforms/Instrumentation.h
include/llvm/Transforms/Utils/ModuleUtils.h
lib/Transforms/Instrumentation/CMakeLists.txt
lib/Transforms/Instrumentation/ComprehensiveStaticInstrumentation.cpp
lib/Transforms/Instrumentation/Instrumentation.cpp
lib/Transforms/Utils/ModuleUtils.cpp
test/Instrumentation/ComprehensiveStaticInstrumentation/basicblock_entry_exit.ll
test/Instrumentation/ComprehensiveStaticInstrumentation/func_entry_exit.ll
test/Instrumentation/ComprehensiveStaticInstrumentation/interface.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D21445.61011.patch
Type: text/x-patch
Size: 42141 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160616/1199d3b5/attachment.bin>
More information about the llvm-commits
mailing list