From: Reid Spencer Date: Tue, 25 May 2004 08:51:25 +0000 (+0000) Subject: Make this pass simply invoke SymbolTable::strip(). X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=3f0635e012bb2169f32ddc9db84e98f924d24c61;p=oota-llvm.git Make this pass simply invoke SymbolTable::strip(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13749 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Scalar/SymbolStripping.cpp b/lib/Transforms/Scalar/SymbolStripping.cpp index c43a2cb76e0..2ae79553231 100644 --- a/lib/Transforms/Scalar/SymbolStripping.cpp +++ b/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 &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(V) || isa(V)) { - SymTab.type_remove(B++); - RemovedSymbol = true; - } else { - ++B; - if (!isa(V) || cast(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 Y("mstrip",