1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00

[IRSim] Strip out the findSimilarity call from the constructor

Both doInitialize and runOnModule were running the entire analysis
due to the actual work being done in the constructor. Strip it out here
and only get the similarity during runOnModule.

Author: lanza
Reviewers: AndrewLitteken, paquette, plofti

Differential Revision: https://reviews.llvm.org/D92524
This commit is contained in:
Andrew Litteken 2021-06-11 18:15:29 -05:00
parent 111b1fef7a
commit 77b6ee14d4
2 changed files with 5 additions and 10 deletions

View File

@ -654,12 +654,6 @@ public:
IRSimilarityIdentifier()
: Mapper(&InstDataAllocator, &InstDataListAllocator) {}
/// \param M the module to find similarity in.
explicit IRSimilarityIdentifier(Module &M)
: Mapper(&InstDataAllocator, &InstDataListAllocator) {
findSimilarity(M);
}
private:
/// Map the instructions in the module to unsigned integers, using mapping
/// already present in the Mapper if possible.

View File

@ -891,7 +891,7 @@ IRSimilarityIdentifierWrapperPass::IRSimilarityIdentifierWrapperPass()
}
bool IRSimilarityIdentifierWrapperPass::doInitialization(Module &M) {
IRSI.reset(new IRSimilarityIdentifier(M));
IRSI.reset(new IRSimilarityIdentifier());
return false;
}
@ -901,8 +901,7 @@ bool IRSimilarityIdentifierWrapperPass::doFinalization(Module &M) {
}
bool IRSimilarityIdentifierWrapperPass::runOnModule(Module &M) {
// All the real work is done in the constructor for the pass.
IRSI.reset(new IRSimilarityIdentifier(M));
IRSI->findSimilarity(M);
return false;
}
@ -910,7 +909,9 @@ AnalysisKey IRSimilarityAnalysis::Key;
IRSimilarityIdentifier IRSimilarityAnalysis::run(Module &M,
ModuleAnalysisManager &) {
return IRSimilarityIdentifier(M);
auto IRSI = IRSimilarityIdentifier();
IRSI.findSimilarity(M);
return IRSI;
}
PreservedAnalyses