• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

daisytuner / docc / 23302505845

19 Mar 2026 03:25PM UTC coverage: 63.42% (-0.4%) from 63.839%
23302505845

push

github

web-flow
Merge pull request #600 from daisytuner/transformations-move

moves transformations from sdfg to opt

17 of 53 new or added lines in 1 file covered. (32.08%)

4 existing lines in 3 files now uncovered.

26084 of 41129 relevant lines covered (63.42%)

399.2 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

32.08
/opt/src/transformations/replayer.cpp
1
#include <sdfg/transformations/highway_transform.h>
2
#include <sdfg/transformations/loop_distribute.h>
3
#include <sdfg/transformations/loop_interchange.h>
4
#include <sdfg/transformations/loop_tiling.h>
5
#include <sdfg/transformations/offloading/cuda_parallelize_nested_map.h>
6
#include <sdfg/transformations/offloading/cuda_transform.h>
7
#include <sdfg/transformations/offloading/gpu_condition_propagation.h>
8
#include <sdfg/transformations/offloading/gpu_loop_reordering.h>
9
#include <sdfg/transformations/offloading/gpu_tiling.h>
10
#include <sdfg/transformations/offloading/kernel_local_storage.h>
11
#include <sdfg/transformations/offloading/rocm_parallelize_nested_map.h>
12
#include <sdfg/transformations/offloading/rocm_transform.h>
13
#include <sdfg/transformations/omp_transform.h>
14
#include <sdfg/transformations/out_local_storage.h>
15
#include <sdfg/transformations/polly_transform.h>
16
#include <sdfg/transformations/replayer.h>
17
#include <sdfg/transformations/tile_fusion.h>
18

19
namespace sdfg {
20
namespace transformations {
21

22
void Replayer::replay(
23
    builder::StructuredSDFGBuilder& builder,
24
    analysis::AnalysisManager& analysis_manager,
25
    const nlohmann::json& transformation_data,
26
    bool skip_if_not_applicable,
27
    size_t loopnest_index
28
) {
5✔
29
    if (!transformation_data.is_array()) {
5✔
NEW
30
        throw std::runtime_error("Transformation data must be an array.");
×
NEW
31
    }
×
32

33
    for (const auto& desc : transformation_data) {
9✔
34
        auto transformation_name = desc["transformation_type"];
9✔
35

36
        if (transformation_name == "LoopTiling") {
9✔
37
            this->apply<transformations::LoopTiling>(builder, analysis_manager, desc, skip_if_not_applicable);
7✔
38
        } else if (transformation_name == "LoopDistribute") {
7✔
NEW
39
            this->apply<transformations::LoopDistribute>(builder, analysis_manager, desc, skip_if_not_applicable);
×
40
        } else if (transformation_name == "LoopInterchange") {
2✔
41
            this->apply<transformations::LoopInterchange>(builder, analysis_manager, desc, skip_if_not_applicable);
2✔
42
        } else if (transformation_name == "OutLocalStorage") {
2✔
NEW
43
            this->apply<transformations::OutLocalStorage>(builder, analysis_manager, desc, skip_if_not_applicable);
×
NEW
44
        } else if (transformation_name == "TileFusion") {
×
NEW
45
            this->apply<transformations::TileFusion>(builder, analysis_manager, desc, skip_if_not_applicable);
×
NEW
46
        } else if (transformation_name == "OMPTransform") {
×
NEW
47
            this->apply<transformations::OMPTransform>(builder, analysis_manager, desc, skip_if_not_applicable);
×
NEW
48
        } else if (transformation_name == "HighwayTransform") {
×
NEW
49
            this->apply<transformations::HighwayTransform>(builder, analysis_manager, desc, skip_if_not_applicable);
×
NEW
50
        } else if (transformation_name == "PollyTransform") {
×
NEW
51
            this->apply<transformations::PollyTransform>(builder, analysis_manager, desc, skip_if_not_applicable);
×
NEW
52
        } else if (transformation_name == "CUDATransform") {
×
NEW
53
            this->apply<cuda::CUDATransform>(builder, analysis_manager, desc, skip_if_not_applicable);
×
NEW
54
        } else if (transformation_name == "CUDAParallelizeNestedMap") {
×
NEW
55
            this->apply<
×
NEW
56
                transformations::CUDAParallelizeNestedMap>(builder, analysis_manager, desc, skip_if_not_applicable);
×
NEW
57
        } else if (transformation_name == "ROCMTransform") {
×
NEW
58
            this->apply<rocm::ROCMTransform>(builder, analysis_manager, desc, skip_if_not_applicable);
×
NEW
59
        } else if (transformation_name == "ROCMParallelizeNestedMap") {
×
NEW
60
            this->apply<
×
NEW
61
                transformations::ROCMParallelizeNestedMap>(builder, analysis_manager, desc, skip_if_not_applicable);
×
NEW
62
        } else if (transformation_name == "GPUConditionPropagation") {
×
NEW
63
            this->apply<
×
NEW
64
                transformations::GPUConditionPropagation>(builder, analysis_manager, desc, skip_if_not_applicable);
×
NEW
65
        } else if (transformation_name == "GPUTiling") {
×
NEW
66
            this->apply<transformations::GPUTiling>(builder, analysis_manager, desc, skip_if_not_applicable);
×
NEW
67
        } else if (transformation_name == "GPULoopReordering") {
×
NEW
68
            this->apply<transformations::GPULoopReordering>(builder, analysis_manager, desc, skip_if_not_applicable);
×
NEW
69
        } else if (transformation_name == "KernelLocalStorage") {
×
NEW
70
            this->apply<transformations::KernelLocalStorage>(builder, analysis_manager, desc, skip_if_not_applicable);
×
NEW
71
        } else {
×
NEW
72
            throw transformations::InvalidTransformationDescriptionException(
×
NEW
73
                "Unknown transformation: " + transformation_name.get<std::string>()
×
NEW
74
            );
×
NEW
75
        }
×
76

77
#ifndef NDEBUG
9✔
78
        std::cout << "Applied transformation: " << transformation_name << std::endl;
9✔
79
        builder.subject().validate();
9✔
80
#endif
9✔
81

82
        analysis_manager.invalidate_all();
9✔
83
    }
9✔
84
}
5✔
85

86

87
} // namespace transformations
88
} // namespace sdfg
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc