summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/fuzzer/dataflow/DataFlow.h
diff options
context:
space:
mode:
authorKostya Serebryany <kcc@google.com>2019-06-21 01:39:35 +0000
committerKostya Serebryany <kcc@google.com>2019-06-21 01:39:35 +0000
commit679669a77e5bbd7451f4c482ec1996b0649f65d0 (patch)
tree9c5a7412d22f692b464304f3a8aea8985b586d4c /compiler-rt/lib/fuzzer/dataflow/DataFlow.h
parentbc0d08e0eec68c6065a5836ae7bdbd2e60495e2b (diff)
downloadbcm5719-llvm-679669a77e5bbd7451f4c482ec1996b0649f65d0.tar.gz
bcm5719-llvm-679669a77e5bbd7451f4c482ec1996b0649f65d0.zip
[libFuzzer] split DataFlow.cpp into two .cpp files, one of which can be compiled w/o dfsan to speed things up (~25% speedup)
llvm-svn: 364002
Diffstat (limited to 'compiler-rt/lib/fuzzer/dataflow/DataFlow.h')
-rw-r--r--compiler-rt/lib/fuzzer/dataflow/DataFlow.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/compiler-rt/lib/fuzzer/dataflow/DataFlow.h b/compiler-rt/lib/fuzzer/dataflow/DataFlow.h
new file mode 100644
index 00000000000..35849fd8d8e
--- /dev/null
+++ b/compiler-rt/lib/fuzzer/dataflow/DataFlow.h
@@ -0,0 +1,32 @@
+/*===- DataFlow.h - a standalone DataFlow trace -------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+// Internal header file to connect DataFlow.cpp and DataFlowCallbacks.cpp.
+//===----------------------------------------------------------------------===*/
+
+#ifndef __LIBFUZZER_DATAFLOW_H
+#define __LIBFUZZER_DATAFLOW_H
+
+#include <cstddef>
+#include <cstdint>
+#include <sanitizer/dfsan_interface.h>
+
+// This data is shared between DataFlowCallbacks.cpp and DataFlow.cpp.
+struct CallbackData {
+ size_t NumFuncs, NumGuards;
+ const uintptr_t *PCsBeg, *PCsEnd;
+ dfsan_label *FuncLabels; // Array of NumFuncs elements.
+ bool *BBExecuted; // Array of NumGuards elements.
+};
+
+extern CallbackData __dft;
+
+enum {
+ PCFLAG_FUNC_ENTRY = 1,
+};
+
+#endif // __LIBFUZZER_DATAFLOW_H
OpenPOWER on IntegriCloud