diff options
author | Chris Lattner <sabre@nondot.org> | 2002-06-25 16:13:24 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-06-25 16:13:24 +0000 |
commit | 7e70829632f82de15db187845666aaca6e04b792 (patch) | |
tree | 48dd2d804e7ebec9a3cbd8bf229cb2a2aa20dce5 /tools | |
parent | 0b12b5f50ec77a8bd01b92d287c52d748619bb4b (diff) |
MEGAPATCH checkin.
For details, See: docs/2002-06-25-MegaPatchInfo.txt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2779 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r-- | tools/extract/extract.cpp | 36 | ||||
-rw-r--r-- | tools/llc/llc.cpp | 12 | ||||
-rw-r--r-- | tools/llvm-extract/llvm-extract.cpp | 36 | ||||
-rw-r--r-- | tools/opt/opt.cpp | 2 |
4 files changed, 41 insertions, 45 deletions
diff --git a/tools/extract/extract.cpp b/tools/extract/extract.cpp index a78d1fd9b9..d1680c0967 100644 --- a/tools/extract/extract.cpp +++ b/tools/extract/extract.cpp @@ -24,30 +24,29 @@ static cl::String ExtractFunc("func", "Specify function to extract", 0, "main"); struct FunctionExtractorPass : public Pass { const char *getPassName() const { return "Function Extractor"; } - bool run(Module *M) { + bool run(Module &M) { // Mark all global variables to be internal - for (Module::giterator I = M->gbegin(), E = M->gend(); I != E; ++I) - (*I)->setInternalLinkage(true); + for (Module::giterator I = M.gbegin(), E = M.gend(); I != E; ++I) + I->setInternalLinkage(true); Function *Named = 0; // Loop over all of the functions in the module, dropping all references in // functions that are not the named function. - for (Module::iterator I = M->begin(), E = M->end(); I != E;) + for (Module::iterator I = M.begin(), E = M.end(); I != E;) // Check to see if this is the named function! - if (!Named && (*I)->getName() == ExtractFunc) { + if (!Named && I->getName() == ExtractFunc) { // Yes, it is. Keep track of it... - Named = *I; + Named = I; // Make sure it's globally accessable... Named->setInternalLinkage(false); // Remove the named function from the module. - M->getFunctionList().remove(I); - E = M->end(); + M.getFunctionList().remove(I); } else { // Nope it's not the named function, delete the body of the function - (*I)->dropAllReferences(); + I->dropAllReferences(); ++I; } @@ -57,27 +56,26 @@ struct FunctionExtractorPass : public Pass { // functions. std::vector<Function*> NewFunctions; - for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I) - if (!(*I)->use_empty()) { - Function *New = new Function((*I)->getFunctionType(), false, - (*I)->getName()); - (*I)->replaceAllUsesWith(New); + for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) + if (!I->use_empty()) { + Function *New = new Function(I->getFunctionType(), false, I->getName()); + I->replaceAllUsesWith(New); NewFunctions.push_back(New); } // Now the module only has unused functions with their references dropped. // Delete them all now! - M->getFunctionList().delete_all(); + M.getFunctionList().clear(); // Re-insert the named function... if (Named) - M->getFunctionList().push_back(Named); + M.getFunctionList().push_back(Named); else std::cerr << "Warning: Function '" << ExtractFunc << "' not found!\n"; // Insert all of the function stubs... - M->getFunctionList().insert(M->end(), NewFunctions.begin(), - NewFunctions.end()); + M.getFunctionList().insert(M.end(), NewFunctions.begin(), + NewFunctions.end()); return true; } }; @@ -102,6 +100,6 @@ int main(int argc, char **argv) { Passes.add(createCleanupGCCOutputPass()); // Fix gccisms Passes.add(new WriteBytecodePass(&std::cout)); // Write bytecode to file... - Passes.run(M.get()); + Passes.run(*M.get()); return 0; } diff --git a/tools/llc/llc.cpp b/tools/llc/llc.cpp index 391fe279ce..1ef8144f2a 100644 --- a/tools/llc/llc.cpp +++ b/tools/llc/llc.cpp @@ -53,7 +53,7 @@ static inline string GetFileNameRoot(const string &InputFilename) { return outputFilename; } -static void insertTraceCodeFor(Module *M) { +static void insertTraceCodeFor(Module &M) { PassManager Passes; // Insert trace code in all functions in the module @@ -70,7 +70,7 @@ static void insertTraceCodeFor(Module *M) { } // Eliminate duplication in constant pool - Passes.add(createDynamicConstantMergePass()); + Passes.add(createConstantMergePass()); // Run passes to insert and clean up trace code... Passes.run(M); @@ -99,7 +99,7 @@ static void insertTraceCodeFor(Module *M) { // compile should still succeed, just the native linker will probably fail. // std::auto_ptr<Module> TraceRoutines(TraceModule); - if (LinkModules(M, TraceRoutines.get(), &ErrorMessage)) + if (LinkModules(&M, TraceRoutines.get(), &ErrorMessage)) cerr << "Warning: Error linking in trace routines: " << ErrorMessage << "\n"; } @@ -116,7 +116,7 @@ static void insertTraceCodeFor(Module *M) { } else { cerr << "Emitting trace code to '" << TraceFilename << "' for comparison...\n"; - WriteBytecodeToFile(M, Out); + WriteBytecodeToFile(&M, Out); } } @@ -147,7 +147,7 @@ int main(int argc, char **argv) { } if (TraceValues != TraceOff) // If tracing enabled... - insertTraceCodeFor(M.get()); // Hack up module before using passmanager... + insertTraceCodeFor(*M.get()); // Hack up module before using passmanager... // Build up all of the passes that we want to do to the module... PassManager Passes; @@ -208,7 +208,7 @@ int main(int argc, char **argv) { Target.addPassesToEmitAssembly(Passes, *Out); // Run our queue of passes all at once now, efficiently. - Passes.run(M.get()); + Passes.run(*M.get()); if (Out != &std::cout) delete Out; diff --git a/tools/llvm-extract/llvm-extract.cpp b/tools/llvm-extract/llvm-extract.cpp index a78d1fd9b9..d1680c0967 100644 --- a/tools/llvm-extract/llvm-extract.cpp +++ b/tools/llvm-extract/llvm-extract.cpp @@ -24,30 +24,29 @@ static cl::String ExtractFunc("func", "Specify function to extract", 0, "main"); struct FunctionExtractorPass : public Pass { const char *getPassName() const { return "Function Extractor"; } - bool run(Module *M) { + bool run(Module &M) { // Mark all global variables to be internal - for (Module::giterator I = M->gbegin(), E = M->gend(); I != E; ++I) - (*I)->setInternalLinkage(true); + for (Module::giterator I = M.gbegin(), E = M.gend(); I != E; ++I) + I->setInternalLinkage(true); Function *Named = 0; // Loop over all of the functions in the module, dropping all references in // functions that are not the named function. - for (Module::iterator I = M->begin(), E = M->end(); I != E;) + for (Module::iterator I = M.begin(), E = M.end(); I != E;) // Check to see if this is the named function! - if (!Named && (*I)->getName() == ExtractFunc) { + if (!Named && I->getName() == ExtractFunc) { // Yes, it is. Keep track of it... - Named = *I; + Named = I; // Make sure it's globally accessable... Named->setInternalLinkage(false); // Remove the named function from the module. - M->getFunctionList().remove(I); - E = M->end(); + M.getFunctionList().remove(I); } else { // Nope it's not the named function, delete the body of the function - (*I)->dropAllReferences(); + I->dropAllReferences(); ++I; } @@ -57,27 +56,26 @@ struct FunctionExtractorPass : public Pass { // functions. std::vector<Function*> NewFunctions; - for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I) - if (!(*I)->use_empty()) { - Function *New = new Function((*I)->getFunctionType(), false, - (*I)->getName()); - (*I)->replaceAllUsesWith(New); + for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) + if (!I->use_empty()) { + Function *New = new Function(I->getFunctionType(), false, I->getName()); + I->replaceAllUsesWith(New); NewFunctions.push_back(New); } // Now the module only has unused functions with their references dropped. // Delete them all now! - M->getFunctionList().delete_all(); + M.getFunctionList().clear(); // Re-insert the named function... if (Named) - M->getFunctionList().push_back(Named); + M.getFunctionList().push_back(Named); else std::cerr << "Warning: Function '" << ExtractFunc << "' not found!\n"; // Insert all of the function stubs... - M->getFunctionList().insert(M->end(), NewFunctions.begin(), - NewFunctions.end()); + M.getFunctionList().insert(M.end(), NewFunctions.begin(), + NewFunctions.end()); return true; } }; @@ -102,6 +100,6 @@ int main(int argc, char **argv) { Passes.add(createCleanupGCCOutputPass()); // Fix gccisms Passes.add(new WriteBytecodePass(&std::cout)); // Write bytecode to file... - Passes.run(M.get()); + Passes.run(*M.get()); return 0; } diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp index 95dde03b59..228e545e5e 100644 --- a/tools/opt/opt.cpp +++ b/tools/opt/opt.cpp @@ -226,7 +226,7 @@ int main(int argc, char **argv) { Passes.add(new WriteBytecodePass(Out, Out != &std::cout)); // Now that we have all of the passes ready, run them. - if (Passes.run(M.get()) && !Quiet) + if (Passes.run(*M.get()) && !Quiet) cerr << "Program modified.\n"; return 0; |