summaryrefslogtreecommitdiffstats
path: root/llvm/include
diff options
context:
space:
mode:
authorAlexey Samsonov <vonosmas@gmail.com>2015-05-07 01:00:31 +0000
committerAlexey Samsonov <vonosmas@gmail.com>2015-05-07 01:00:31 +0000
commit3514f27456b9a0456f24597ac78df565df87e4ab (patch)
tree06ea09b1fc85c96ce1e707571929b9233d00c2c8 /llvm/include
parent7b48749498771cc59182f78d50ed455147201b9f (diff)
downloadbcm5719-llvm-3514f27456b9a0456f24597ac78df565df87e4ab.tar.gz
bcm5719-llvm-3514f27456b9a0456f24597ac78df565df87e4ab.zip
[SanitizerCoverage] Introduce SanitizerCoverageOptions struct.
Summary: This gives frontend more precise control over collected coverage information. User can still override these options by passing -mllvm flags. No functionality change. Test Plan: regression test suite. Reviewers: kcc Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9539 llvm-svn: 236687
Diffstat (limited to 'llvm/include')
-rw-r--r--llvm/include/llvm/Transforms/Instrumentation.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/llvm/include/llvm/Transforms/Instrumentation.h b/llvm/include/llvm/Transforms/Instrumentation.h
index da653064b96..19ef6bc3c06 100644
--- a/llvm/include/llvm/Transforms/Instrumentation.h
+++ b/llvm/include/llvm/Transforms/Instrumentation.h
@@ -98,8 +98,28 @@ ModulePass *createDataFlowSanitizerPass(
const std::vector<std::string> &ABIListFiles = std::vector<std::string>(),
void *(*getArgTLS)() = nullptr, void *(*getRetValTLS)() = nullptr);
+// Options for sanitizer coverage instrumentation.
+struct SanitizerCoverageOptions {
+ SanitizerCoverageOptions()
+ : CoverageType(SCK_None), IndirectCalls(false), TraceBB(false),
+ TraceCmp(false), Use8bitCounters(false) {}
+
+ enum Type {
+ SCK_None = 0,
+ SCK_Function,
+ SCK_BB,
+ SCK_Edge
+ } CoverageType;
+ bool IndirectCalls;
+ bool TraceBB;
+ bool TraceCmp;
+ bool Use8bitCounters;
+};
+
// Insert SanitizerCoverage instrumentation.
ModulePass *createSanitizerCoverageModulePass(int CoverageLevel);
+ModulePass *createSanitizerCoverageModulePass(
+ const SanitizerCoverageOptions &Options = SanitizerCoverageOptions());
#if defined(__GNUC__) && defined(__linux__) && !defined(ANDROID)
inline ModulePass *createDataFlowSanitizerPassForJIT(
OpenPOWER on IntegriCloud