aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-06-25 16:13:24 +0000
committerChris Lattner <sabre@nondot.org>2002-06-25 16:13:24 +0000
commit7e70829632f82de15db187845666aaca6e04b792 (patch)
tree48dd2d804e7ebec9a3cbd8bf229cb2a2aa20dce5 /tools
parent0b12b5f50ec77a8bd01b92d287c52d748619bb4b (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.cpp36
-rw-r--r--tools/llc/llc.cpp12
-rw-r--r--tools/llvm-extract/llvm-extract.cpp36
-rw-r--r--tools/opt/opt.cpp2
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;