1//===- InstructionNamer.h - Give anonymous instructions names -------------===//
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_TRANSFORMS_UTILS_INSTRUCTIONNAMER_H
10#define LLVM_TRANSFORMS_UTILS_INSTRUCTIONNAMER_H
11
12#include "llvm/IR/PassManager.h"
13#include <cstdint>
14
15namespace llvm {
16class PassInstrumentationCallbacks;
17
18struct InstructionNamerPass : OptionalPassInfoMixin<InstructionNamerPass> {
19 LLVM_ABI PreservedAnalyses run(Function &, FunctionAnalysisManager &);
20
21 /// Register callbacks to name unnamed values around new-PM passes.
22 /// NextID must outlive the registered callbacks.
23 LLVM_ABI static void registerCallbacks(PassInstrumentationCallbacks &PIC,
24 uint64_t &NextID);
25};
26} // namespace llvm
27
28#endif // LLVM_TRANSFORMS_UTILS_INSTRUCTIONNAMER_H
29