diff options
author | Bill Wendling <isanbard@gmail.com> | 2012-08-03 00:30:35 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2012-08-03 00:30:35 +0000 |
commit | 8555a37c04a8ebf14d52e548eccde1c237783079 (patch) | |
tree | c9aeeec67caaf89fa6efe0cecb7511ff2fdcc5ec /llvm/lib/Transforms | |
parent | d15385c9e459feb4c5b83182c9b75f56df9519e9 (diff) | |
download | bcm5719-llvm-8555a37c04a8ebf14d52e548eccde1c237783079.tar.gz bcm5719-llvm-8555a37c04a8ebf14d52e548eccde1c237783079.zip |
Move the "findUsedStructTypes" functionality outside of the Module class.
The "findUsedStructTypes" method is very expensive to run. It needs to be
optimized so that LTO can run faster. Splitting this method out of the Module
class will help this occur. For instance, it can keep a list of seen objects so
that it doesn't process them over and over again.
llvm-svn: 161228
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/IPO/StripSymbols.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/IPO/StripSymbols.cpp b/llvm/lib/Transforms/IPO/StripSymbols.cpp index d8e8cf77dde..80bfc1cdb2c 100644 --- a/llvm/lib/Transforms/IPO/StripSymbols.cpp +++ b/llvm/lib/Transforms/IPO/StripSymbols.cpp @@ -27,6 +27,7 @@ #include "llvm/Instructions.h" #include "llvm/Module.h" #include "llvm/Pass.h" +#include "llvm/TypeFinder.h" #include "llvm/ValueSymbolTable.h" #include "llvm/Transforms/Utils/Local.h" #include "llvm/ADT/DenseMap.h" @@ -175,8 +176,8 @@ static void StripSymtab(ValueSymbolTable &ST, bool PreserveDbgInfo) { // Strip any named types of their names. static void StripTypeNames(Module &M, bool PreserveDbgInfo) { - std::vector<StructType*> StructTypes; - M.findUsedStructTypes(StructTypes); + TypeFinder StructTypes; + StructTypes.run(M, false); for (unsigned i = 0, e = StructTypes.size(); i != e; ++i) { StructType *STy = StructTypes[i]; |