summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/IPO/StripSymbols.cpp
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2012-08-03 00:30:35 +0000
committerBill Wendling <isanbard@gmail.com>2012-08-03 00:30:35 +0000
commit8555a37c04a8ebf14d52e548eccde1c237783079 (patch)
treec9aeeec67caaf89fa6efe0cecb7511ff2fdcc5ec /llvm/lib/Transforms/IPO/StripSymbols.cpp
parentd15385c9e459feb4c5b83182c9b75f56df9519e9 (diff)
downloadbcm5719-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/IPO/StripSymbols.cpp')
-rw-r--r--llvm/lib/Transforms/IPO/StripSymbols.cpp5
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];
OpenPOWER on IntegriCloud