summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-reduce/deltas/RemoveFunctions.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/llvm-reduce/deltas/RemoveFunctions.h')
-rw-r--r--llvm/tools/llvm-reduce/deltas/RemoveFunctions.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/llvm/tools/llvm-reduce/deltas/RemoveFunctions.h b/llvm/tools/llvm-reduce/deltas/RemoveFunctions.h
new file mode 100644
index 00000000000..3a6e501dc93
--- /dev/null
+++ b/llvm/tools/llvm-reduce/deltas/RemoveFunctions.h
@@ -0,0 +1,28 @@
+//===- llvm-reduce.cpp - The LLVM Delta Reduction utility -----------------===//
+//
+// 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
+//
+//===----------------------------------------------------------------------===//
+//
+// This file is a Specialized Delta Pass, which removes the functions that are
+// not in the provided function-chunks.
+//
+//===----------------------------------------------------------------------===//
+
+#include "Delta.h"
+#include "llvm/Transforms/Utils/Cloning.h"
+
+namespace llvm {
+
+class RemoveFunctions {
+public:
+ /// Outputs the number of Functions in the given Module
+ static int getTargetCount(Module *Program);
+ /// Clones module and returns it with chunk functions only
+ static std::unique_ptr<Module>
+ extractChunksFromModule(std::vector<Chunk> ChunksToKeep, Module *Program);
+};
+
+} // namespace llvm
OpenPOWER on IntegriCloud