diff options
author | Misha Brukman <brukman+llvm@gmail.com> | 2004-04-22 23:07:39 +0000 |
---|---|---|
committer | Misha Brukman <brukman+llvm@gmail.com> | 2004-04-22 23:07:39 +0000 |
commit | 2ccac826e457c5e7eb7f246d7973eb6d4aa4eadb (patch) | |
tree | 465e2b7d419b73ba6da0cf0a665d44f2bb19f066 /llvm/tools/extract | |
parent | 98aa516a9cc80eded682e8031e0f77c33f0b8f0f (diff) | |
download | bcm5719-llvm-2ccac826e457c5e7eb7f246d7973eb6d4aa4eadb.tar.gz bcm5719-llvm-2ccac826e457c5e7eb7f246d7973eb6d4aa4eadb.zip |
Add command-line option to select whether to isolate or delete function from
module. Default is `isolate' as before.
llvm-svn: 13113
Diffstat (limited to 'llvm/tools/extract')
-rw-r--r-- | llvm/tools/extract/extract.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/tools/extract/extract.cpp b/llvm/tools/extract/extract.cpp index b91020db7c7..20961a8cf59 100644 --- a/llvm/tools/extract/extract.cpp +++ b/llvm/tools/extract/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... |