docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
function_to_sdfg_pass.h
Go to the documentation of this file.
1#pragma once
2
3#include <llvm/BinaryFormat/Dwarf.h>
4#include <llvm/IR/Function.h>
5#include <llvm/IR/Module.h>
6#include <llvm/Passes/PassBuilder.h>
7#include <llvm/Passes/PassPlugin.h>
8
9#include <filesystem>
10#include <fstream>
11#include <memory>
12
14
17#include "docc/utils.h"
18
19namespace docc {
20namespace passes {
21
22inline constexpr std::string_view SDFG_INDEX_JSON_FILE_NAME = "JSON";
23
24class FunctionToSDFGPass : public llvm::PassInfoMixin<FunctionToSDFGPass> {
25private:
26 const PluginRegistry& plugin_registry_;
27 std::optional<std::regex> func_blacklist_;
28
29 bool applies(llvm::Module& Module);
30
31 bool is_blacklisted(llvm::Function& function, bool apply_on_linkonce_odr) const;
32
33public:
35
37 return true;
38 }
39
40 llvm::PreservedAnalyses run(llvm::Module& Module, llvm::ModuleAnalysisManager& MAM, analysis::AnalysisManager& AM);
41};
42
43} // namespace passes
44} // namespace docc
Definition analysis.h:25
llvm::PreservedAnalyses run(llvm::Module &Module, llvm::ModuleAnalysisManager &MAM, analysis::AnalysisManager &AM)
static bool available(analysis::AnalysisManager &AM)
Definition function_to_sdfg_pass.h:36
FunctionToSDFGPass(const PluginRegistry &plugin_registry)
Definition code_generation_pass.h:14
constexpr std::string_view SDFG_INDEX_JSON_FILE_NAME
Definition function_to_sdfg_pass.h:22
Definition targets.h:8
docc::PluginRegistry plugin_registry
Definition plugin_registry.h:16