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