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

daisytuner / docc / 23049466917

13 Mar 2026 11:48AM UTC coverage: 63.722% (+0.2%) from 63.488%
23049466917

push

github

web-flow
Merge pull request #580 from daisytuner/advanced-loop-tiling

Dependence Deltas, LoopInterchange with Fourier-Motzkin and Novel TileFusion Transformation

613 of 845 new or added lines in 8 files covered. (72.54%)

5 existing lines in 3 files now uncovered.

25274 of 39663 relevant lines covered (63.72%)

400.64 hits per line

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

60.71
/sdfg/src/transformations/replayer.cpp
1
#include <sdfg/transformations/loop_distribute.h>
2
#include <sdfg/transformations/loop_interchange.h>
3
#include <sdfg/transformations/loop_tiling.h>
4
#include <sdfg/transformations/out_local_storage.h>
5
#include <sdfg/transformations/replayer.h>
6
#include <sdfg/transformations/tile_fusion.h>
7

8
namespace sdfg {
9
namespace transformations {
10

11
void Replayer::replay(
12
    builder::StructuredSDFGBuilder& builder,
13
    analysis::AnalysisManager& analysis_manager,
14
    const nlohmann::json& transformation_data,
15
    bool skip_if_not_applicable,
16
    size_t loopnest_index
17
) {
5✔
18
    if (!transformation_data.is_array()) {
5✔
19
        throw std::runtime_error("Transformation data must be an array.");
×
20
    }
×
21

22
    for (const auto& desc : transformation_data) {
9✔
23
        auto transformation_name = desc["transformation_type"];
9✔
24

25
        if (transformation_name == "LoopTiling") {
9✔
26
            this->apply<transformations::LoopTiling>(builder, analysis_manager, desc, skip_if_not_applicable);
7✔
27
        } else if (transformation_name == "LoopDistribute") {
7✔
28
            this->apply<transformations::LoopDistribute>(builder, analysis_manager, desc, skip_if_not_applicable);
×
29
        } else if (transformation_name == "LoopInterchange") {
2✔
30
            this->apply<transformations::LoopInterchange>(builder, analysis_manager, desc, skip_if_not_applicable);
2✔
31
        } else if (transformation_name == "OutLocalStorage") {
2✔
32
            this->apply<transformations::OutLocalStorage>(builder, analysis_manager, desc, skip_if_not_applicable);
×
NEW
33
        } else if (transformation_name == "TileFusion") {
×
NEW
34
            this->apply<transformations::TileFusion>(builder, analysis_manager, desc, skip_if_not_applicable);
×
35
        } else {
×
36
            throw transformations::InvalidTransformationDescriptionException(
×
37
                "Unknown transformation: " + transformation_name.get<std::string>()
×
38
            );
×
39
        }
×
40

41
#ifndef NDEBUG
9✔
42
        std::cout << "Applied transformation: " << transformation_name << std::endl;
9✔
43
        builder.subject().validate();
9✔
44
#endif
9✔
45

46
        analysis_manager.invalidate_all();
9✔
47
    }
9✔
48
}
5✔
49

50

51
} // namespace transformations
52
} // 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