docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
replayer.h
Go to the documentation of this file.
1#pragma once
2
7
8#include <nlohmann/json.hpp>
9
10namespace sdfg {
11namespace transformations {
12
22class Replayer {
23public:
34 void replay(
36 analysis::AnalysisManager& analysis_manager,
37 const nlohmann::json& desc,
38 bool skip_if_not_applicable = true,
39 size_t loopnest_index = 0
40 );
41
52 template<typename T>
54 void apply(
56 analysis::AnalysisManager& analysis_manager,
57 const nlohmann::json& desc,
58 bool skip_if_not_applicable = true
59 ) {
60 T transformation(T::from_json(builder, desc));
61 if (!transformation.can_be_applied(builder, analysis_manager)) {
62 if (!skip_if_not_applicable) {
63 throw transformations::
64 InvalidTransformationException("Transformation " + transformation.name() + " cannot be applied.");
65 }
66 return;
67 }
68
69 transformation.apply(builder, analysis_manager);
70 };
71};
72
73} // namespace transformations
74} // namespace sdfg
Definition analysis.h:53
Note: Even though the class references unique_ptr, it will never delete an SDFG it has a reference to...
Definition structured_sdfg_builder.h:44
Replays recorded transformations on an SDFG.
Definition replayer.h:22
void replay(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, const nlohmann::json &desc, bool skip_if_not_applicable=true, size_t loopnest_index=0)
Replay a sequence of transformations from JSON.
void apply(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, const nlohmann::json &desc, bool skip_if_not_applicable=true)
Apply a single transformation from JSON description.
Definition replayer.h:54
Concept for types that are transformations.
Definition recorder.h:21
Definition function_builder.h:10
Definition loop_parallelization.h:8
Definition analysis.h:7