diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2023-12-18 20:30:12 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2024-04-06 20:11:55 +0000 |
commit | 5f757f3ff9144b609b3c433dfd370cc6bdc191ad (patch) | |
tree | 1b4e980b866cd26a00af34c0a653eb640bd09caf /contrib/llvm-project/llvm/lib/Analysis/StructuralHash.cpp | |
parent | 3e1c8a35f741a5d114d0ba670b15191355711fe9 (diff) | |
parent | 312c0ed19cc5276a17bacf2120097bec4515b0f1 (diff) | |
download | src-5f757f3ff9144b609b3c433dfd370cc6bdc191ad.tar.gz src-5f757f3ff9144b609b3c433dfd370cc6bdc191ad.zip |
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Analysis/StructuralHash.cpp')
-rw-r--r-- | contrib/llvm-project/llvm/lib/Analysis/StructuralHash.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/contrib/llvm-project/llvm/lib/Analysis/StructuralHash.cpp b/contrib/llvm-project/llvm/lib/Analysis/StructuralHash.cpp new file mode 100644 index 000000000000..244ed5d55f3f --- /dev/null +++ b/contrib/llvm-project/llvm/lib/Analysis/StructuralHash.cpp @@ -0,0 +1,33 @@ +//===- StructuralHash.cpp - Function Hash Printing ------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// This file defines the StructuralHashPrinterPass which is used to show +// the structural hash of all functions in a module and the module itself. +// +//===----------------------------------------------------------------------===// + +#include "llvm/Analysis/StructuralHash.h" +#include "llvm/IR/StructuralHash.h" +#include "llvm/Support/CommandLine.h" + +using namespace llvm; + +PreservedAnalyses StructuralHashPrinterPass::run(Module &M, + ModuleAnalysisManager &MAM) { + OS << "Module Hash: " + << Twine::utohexstr(StructuralHash(M, EnableDetailedStructuralHash)) + << "\n"; + for (Function &F : M) { + if (F.isDeclaration()) + continue; + OS << "Function " << F.getName() << " Hash: " + << Twine::utohexstr(StructuralHash(F, EnableDetailedStructuralHash)) + << "\n"; + } + return PreservedAnalyses::all(); +} |