Skip to content

Commit 9a8172c

Browse files
Invalidate structural hash analyses
1 parent a4fbfdb commit 9a8172c

File tree

3 files changed

+36
-32
lines changed

3 files changed

+36
-32
lines changed

llvm/include/llvm/Passes/StandardInstrumentations.h

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "llvm/IR/BasicBlock.h"
2424
#include "llvm/IR/OptBisect.h"
2525
#include "llvm/IR/PassTimingInfo.h"
26+
#include "llvm/IR/StructuralHash.h"
2627
#include "llvm/IR/ValueHandle.h"
2728
#include "llvm/Support/CommandLine.h"
2829
#include "llvm/Support/TimeProfiler.h"
@@ -179,6 +180,36 @@ class PreservedCFGCheckerInstrumentation {
179180
ModuleAnalysisManager &MAM);
180181
};
181182

183+
struct PreservedFunctionHashAnalysis
184+
: public AnalysisInfoMixin<PreservedFunctionHashAnalysis> {
185+
static AnalysisKey Key;
186+
187+
struct FunctionHash {
188+
uint64_t Hash;
189+
};
190+
191+
using Result = FunctionHash;
192+
193+
Result run(Function &F, FunctionAnalysisManager &FAM) {
194+
return Result{StructuralHash(F)};
195+
}
196+
};
197+
198+
struct PreservedModuleHashAnalysis
199+
: public AnalysisInfoMixin<PreservedModuleHashAnalysis> {
200+
static AnalysisKey Key;
201+
202+
struct ModuleHash {
203+
uint64_t Hash;
204+
};
205+
206+
using Result = ModuleHash;
207+
208+
Result run(Module &F, ModuleAnalysisManager &FAM) {
209+
return Result{StructuralHash(F)};
210+
}
211+
};
212+
182213
// Base class for classes that report changes to the IR.
183214
// It presents an interface for such classes and provides calls
184215
// on various events as the new pass manager transforms the IR.

llvm/lib/Passes/StandardInstrumentations.cpp

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
#include "llvm/IR/PassInstrumentation.h"
2929
#include "llvm/IR/PassManager.h"
3030
#include "llvm/IR/PrintPasses.h"
31-
#include "llvm/IR/StructuralHash.h"
3231
#include "llvm/IR/Verifier.h"
3332
#include "llvm/Support/CommandLine.h"
3433
#include "llvm/Support/CrashRecoveryContext.h"
@@ -1296,38 +1295,8 @@ struct PreservedCFGCheckerAnalysis
12961295

12971296
AnalysisKey PreservedCFGCheckerAnalysis::Key;
12981297

1299-
struct PreservedFunctionHashAnalysis
1300-
: public AnalysisInfoMixin<PreservedFunctionHashAnalysis> {
1301-
static AnalysisKey Key;
1302-
1303-
struct FunctionHash {
1304-
uint64_t Hash;
1305-
};
1306-
1307-
using Result = FunctionHash;
1308-
1309-
Result run(Function &F, FunctionAnalysisManager &FAM) {
1310-
return Result{StructuralHash(F)};
1311-
}
1312-
};
1313-
13141298
AnalysisKey PreservedFunctionHashAnalysis::Key;
13151299

1316-
struct PreservedModuleHashAnalysis
1317-
: public AnalysisInfoMixin<PreservedModuleHashAnalysis> {
1318-
static AnalysisKey Key;
1319-
1320-
struct ModuleHash {
1321-
uint64_t Hash;
1322-
};
1323-
1324-
using Result = ModuleHash;
1325-
1326-
Result run(Module &F, ModuleAnalysisManager &FAM) {
1327-
return Result{StructuralHash(F)};
1328-
}
1329-
};
1330-
13311300
AnalysisKey PreservedModuleHashAnalysis::Key;
13321301

13331302
bool PreservedCFGCheckerInstrumentation::CFG::invalidate(

llvm/lib/Transforms/Utils/IRNormalizer.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include "llvm/IR/Module.h"
2727
#include "llvm/InitializePasses.h"
2828
#include "llvm/Pass.h"
29+
#include "llvm/Passes/StandardInstrumentations.h"
2930
#include "llvm/PassRegistry.h"
3031
#include "llvm/Support/CommandLine.h"
3132
#include "llvm/Transforms/Utils.h"
@@ -691,5 +692,8 @@ SetVector<int> IRNormalizer::getOutputFootprint(
691692
PreservedAnalyses IRNormalizerPass::run(Function &F,
692693
FunctionAnalysisManager &AM) const {
693694
IRNormalizer{}.runOnFunction(F);
694-
return PreservedAnalyses::all();
695+
auto PA = PreservedAnalyses::all();
696+
PA.abandon<PreservedFunctionHashAnalysis>();
697+
PA.abandon<PreservedModuleHashAnalysis>();
698+
return PA;
695699
}

0 commit comments

Comments
 (0)