Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:48:20

0001 //===------ DumpFunctionPass.cpp --------------------------------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 //
0009 // Write a function to a file.
0010 //
0011 //===----------------------------------------------------------------------===//
0012 
0013 #ifndef POLLY_SUPPORT_DUMPFUNCTIONPASS_H
0014 #define POLLY_SUPPORT_DUMPFUNCTIONPASS_H
0015 
0016 #include "llvm/IR/PassManager.h"
0017 #include <string>
0018 
0019 namespace llvm {
0020 class FunctionPass;
0021 class ModulePass;
0022 } // namespace llvm
0023 
0024 namespace polly {
0025 llvm::FunctionPass *createDumpFunctionWrapperPass(std::string Suffix);
0026 
0027 /// A pass that isolates a function into a new Module and writes it into a file.
0028 struct DumpFunctionPass final : llvm::PassInfoMixin<DumpFunctionPass> {
0029   std::string Suffix;
0030 
0031   DumpFunctionPass(std::string Suffix) : Suffix(std::move(Suffix)) {}
0032 
0033   llvm::PreservedAnalyses run(llvm::Function &F,
0034                               llvm::FunctionAnalysisManager &AM);
0035 };
0036 
0037 } // namespace polly
0038 
0039 namespace llvm {
0040 class PassRegistry;
0041 void initializeDumpFunctionWrapperPassPass(llvm::PassRegistry &);
0042 } // namespace llvm
0043 
0044 #endif /* POLLY_SUPPORT_DUMPFUNCTIONPASS_H */