xref: /freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Instrumentation/InstrOrderFile.h (revision 349cc55c9796c4596a5b9904cd3281af295f878f)
10b57cec5SDimitry Andric //===- InstrOrderFile.h ---- Late IR instrumentation for order file ----===//
20b57cec5SDimitry Andric //
3*349cc55cSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*349cc55cSDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
5*349cc55cSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
60b57cec5SDimitry Andric //
70b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
80b57cec5SDimitry Andric //
90b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
100b57cec5SDimitry Andric 
11fe6060f1SDimitry Andric #ifndef LLVM_TRANSFORMS_INSTRUMENTATION_INSTRORDERFILE_H
12fe6060f1SDimitry Andric #define LLVM_TRANSFORMS_INSTRUMENTATION_INSTRORDERFILE_H
130b57cec5SDimitry Andric 
140b57cec5SDimitry Andric #include "llvm/IR/PassManager.h"
150b57cec5SDimitry Andric 
160b57cec5SDimitry Andric namespace llvm {
170b57cec5SDimitry Andric class Module;
180b57cec5SDimitry Andric 
190b57cec5SDimitry Andric /// The instrumentation pass for recording function order.
200b57cec5SDimitry Andric class InstrOrderFilePass : public PassInfoMixin<InstrOrderFilePass> {
210b57cec5SDimitry Andric public:
220b57cec5SDimitry Andric   PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
230b57cec5SDimitry Andric };
240b57cec5SDimitry Andric 
250b57cec5SDimitry Andric } // end namespace llvm
260b57cec5SDimitry Andric 
27fe6060f1SDimitry Andric #endif // LLVM_TRANSFORMS_INSTRUMENTATION_INSTRORDERFILE_H
28