[libFuzzer] split DataFlow.cpp into two .cpp files, one of which can be compiled w/o dfsan to speed things up (~25% speedup)
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk/lib/fuzzer@364002 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/dataflow/DataFlow.h b/dataflow/DataFlow.h
new file mode 100644
index 0000000..35849fd
--- /dev/null
+++ b/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