diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2004-05-25 08:51:25 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2004-05-25 08:51:25 +0000 |
commit | 1cc31f264f11cb5a9c674c3d5e1d7eea902c3c55 (patch) | |
tree | 6eb98c2e915d241c9660554b0ed960e7762e2d57 /llvm/lib/Transforms | |
parent | 14428ac740b02cca3eec38a4a9d52b00cb934304 (diff) | |
download | bcm5719-llvm-1cc31f264f11cb5a9c674c3d5e1d7eea902c3c55.tar.gz bcm5719-llvm-1cc31f264f11cb5a9c674c3d5e1d7eea902c3c55.zip |
Make this pass simply invoke SymbolTable::strip().
llvm-svn: 13749
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/Scalar/SymbolStripping.cpp | 33 |
1 files changed, 2 insertions, 31 deletions
diff --git a/llvm/lib/Transforms/Scalar/SymbolStripping.cpp b/llvm/lib/Transforms/Scalar/SymbolStripping.cpp index c43a2cb76e0..2ae79553231 100644 --- a/llvm/lib/Transforms/Scalar/SymbolStripping.cpp +++ b/llvm/lib/Transforms/Scalar/SymbolStripping.cpp @@ -27,39 +27,10 @@ #include "llvm/Pass.h" using namespace llvm; -static bool StripSymbolTable(SymbolTable &SymTab) { - bool RemovedSymbol = false; - - for (SymbolTable::iterator I = SymTab.begin(); I != SymTab.end();) { - // Removing items from the plane can cause the plane itself to get deleted. - // If this happens, make sure we incremented our plane iterator already! - std::map<const std::string, Value *> &Plane = (I++)->second; - - SymbolTable::type_iterator B = Plane.begin(), Bend = Plane.end(); - while (B != Bend) { // Found nonempty type plane! - Value *V = B->second; - - if (isa<Constant>(V) || isa<Type>(V)) { - SymTab.type_remove(B++); - RemovedSymbol = true; - } else { - ++B; - if (!isa<GlobalValue>(V) || cast<GlobalValue>(V)->hasInternalLinkage()){ - // Set name to "", removing from symbol table! - V->setName("", &SymTab); - RemovedSymbol = true; - } - } - } - } - - return RemovedSymbol; -} - namespace { struct SymbolStripping : public FunctionPass { virtual bool runOnFunction(Function &F) { - return StripSymbolTable(F.getSymbolTable()); + return F.getSymbolTable().strip(); } virtual void getAnalysisUsage(AnalysisUsage &AU) const { AU.setPreservesAll(); @@ -69,7 +40,7 @@ namespace { struct FullSymbolStripping : public SymbolStripping { virtual bool doInitialization(Module &M) { - return StripSymbolTable(M.getSymbolTable()); + return M.getSymbolTable().strip(); } }; RegisterOpt<FullSymbolStripping> Y("mstrip", |