1 //=- StructuralHash.h - Structural Hash Printing --*- C++ -*-----------------=//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLVM_ANALYSIS_STRUCTURALHASH_H
10 #define LLVM_ANALYSIS_STRUCTURALHASH_H
11 
12 #include "llvm/IR/PassManager.h"
13 
14 namespace llvm {
15 
16 /// Printer pass for  StructuralHashes
17 class StructuralHashPrinterPass
18     : public PassInfoMixin<StructuralHashPrinterPass> {
19   raw_ostream &OS;
20   bool EnableDetailedStructuralHash;
21 
22 public:
StructuralHashPrinterPass(raw_ostream & OS,bool Detailed)23   explicit StructuralHashPrinterPass(raw_ostream &OS, bool Detailed)
24       : OS(OS), EnableDetailedStructuralHash(Detailed) {}
25 
26   PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM);
27 
isRequired()28   static bool isRequired() { return true; }
29 };
30 
31 } // namespace llvm
32 
33 #endif // LLVM_ANALYSIS_STRUCTURALHASH_H
34