summaryrefslogtreecommitdiff
path: root/tools/llvm-extract
diff options
context:
space:
mode:
authorMisha Brukman <brukman+llvm@gmail.com>2004-04-22 23:07:39 +0000
committerMisha Brukman <brukman+llvm@gmail.com>2004-04-22 23:07:39 +0000
commitca718e41cf77880b68790e010868917338665444 (patch)
tree023a309d0abc8b45a61667de1175c9a993f89508 /tools/llvm-extract
parent7d248397a738c31bbe6e22bfe93a17cc560efdf7 (diff)
downloadllvm-ca718e41cf77880b68790e010868917338665444.tar.gz
llvm-ca718e41cf77880b68790e010868917338665444.tar.bz2
llvm-ca718e41cf77880b68790e010868917338665444.tar.xz
Add command-line option to select whether to isolate or delete function from
module. Default is `isolate' as before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13113 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-extract')
-rw-r--r--tools/llvm-extract/llvm-extract.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/tools/llvm-extract/llvm-extract.cpp b/tools/llvm-extract/llvm-extract.cpp
index b91020db7c..20961a8cf5 100644
--- a/tools/llvm-extract/llvm-extract.cpp
+++ b/tools/llvm-extract/llvm-extract.cpp
@@ -36,6 +36,9 @@ OutputFilename("o", cl::desc("Specify output filename"),
static cl::opt<bool>
Force("f", cl::desc("Overwrite output files"));
+static cl::opt<bool>
+DeleteFn("delete", cl::desc("Delete specified function from Module"));
+
// ExtractFunc - The function to extract from the module... defaults to main.
static cl::opt<std::string>
ExtractFunc("func", cl::desc("Specify function to extract"), cl::init("main"),
@@ -64,7 +67,8 @@ int main(int argc, char **argv) {
//
PassManager Passes;
Passes.add(new TargetData("extract", M.get())); // Use correct TargetData
- Passes.add(createFunctionExtractionPass(F)); // Extract the function
+ // Either isolate the function or delete it from the Module
+ Passes.add(createFunctionExtractionPass(F, DeleteFn));
Passes.add(createGlobalDCEPass()); // Delete unreachable globals
Passes.add(createFunctionResolvingPass()); // Delete prototypes
Passes.add(createDeadTypeEliminationPass()); // Remove dead types...