//===-- llvm/IR/ModuleSlotTracker.h -----------------------------*- C++ -*-===// // // 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 // //===----------------------------------------------------------------------===// #ifndef LLVM_IR_MODULESLOTTRACKER_H #define LLVM_IR_MODULESLOTTRACKER_H #include <functional> #include <memory> #include <utility> #include <vector> namespace llvm { class Module; class Function; class SlotTracker; class Value; class MDNode; /// Abstract interface of slot tracker storage. class AbstractSlotTrackerStorage { … }; /// Manage lifetime of a slot tracker for printing IR. /// /// Wrapper around the \a SlotTracker used internally by \a AsmWriter. This /// class allows callers to share the cost of incorporating the metadata in a /// module or a function. /// /// If the IR changes from underneath \a ModuleSlotTracker, strings like /// "<badref>" will be printed, or, worse, the wrong slots entirely. class ModuleSlotTracker { … }; } // end namespace llvm #endif