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

daisytuner / docc / 28106147644

24 Jun 2026 02:32PM UTC coverage: 61.922% (+0.1%) from 61.779%
28106147644

Pull #806

github

web-flow
Merge 2be414d54 into 57cc1db99
Pull Request #806: Map Collapse for Multiple targets in a neste sequence

165 of 185 new or added lines in 2 files covered. (89.19%)

419 existing lines in 30 files now uncovered.

37705 of 60891 relevant lines covered (61.92%)

1004.4 hits per line

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

78.38
/opt/src/transformations/vectorize_transform.cpp
1
#include "sdfg/transformations/vectorize_transform.h"
2

3
#include "sdfg/optimization_report/pass_report_consumer.h"
4

5
namespace sdfg {
6
namespace transformations {
7

8
VectorizeTransform::VectorizeTransform(structured_control_flow::Map& map) : map_(map) {}
4✔
9

10
std::string VectorizeTransform::name() const { return "VectorizeTransform"; }
2✔
11

12
bool VectorizeTransform::
13
    can_be_applied(builder::StructuredSDFGBuilder& builder, analysis::AnalysisManager& analysis_manager) {
2✔
14
    auto result = map_.schedule_type().value() == structured_control_flow::ScheduleType_Sequential::value();
2✔
15

16
    if (report_) {
2✔
17
        if (result) {
×
18
            report_->transform_possible(this);
×
19
        } else {
×
20
            report_->transform_impossible(this, "not sequential");
×
21
        }
×
22
    }
×
23
    return result;
2✔
24
}
2✔
25

26
void VectorizeTransform::apply(builder::StructuredSDFGBuilder& builder, analysis::AnalysisManager& analysis_manager) {
1✔
27
    builder.update_schedule_type(this->map_, vectorize::ScheduleType_Vectorize::create());
1✔
28
    if (report_) report_->transform_applied(this);
1✔
29
}
1✔
30

31
void VectorizeTransform::to_json(nlohmann::json& j) const {
1✔
32
    j["transformation_type"] = this->name();
1✔
33
    j["parameters"] = nlohmann::json::object();
1✔
34

35
    serializer::JSONSerializer ser_flat(false);
1✔
36
    j["subgraph"] = nlohmann::json::object();
1✔
37
    j["subgraph"]["0"] = nlohmann::json::object();
1✔
38
    ser_flat.serialize_node(j["subgraph"]["0"], map_);
1✔
39
}
1✔
40

41
VectorizeTransform VectorizeTransform::from_json(builder::StructuredSDFGBuilder& builder, const nlohmann::json& desc) {
2✔
42
    auto map_id = desc["subgraph"]["0"]["element_id"].get<size_t>();
2✔
43
    auto element = builder.find_element_by_id(map_id);
2✔
44
    if (element == nullptr) {
2✔
45
        throw InvalidTransformationDescriptionException("Element with ID " + std::to_string(map_id) + " not found.");
1✔
46
    }
1✔
47

48
    auto loop = dynamic_cast<structured_control_flow::Map*>(element);
1✔
49
    if (loop == nullptr) {
1✔
UNCOV
50
        throw InvalidTransformationDescriptionException("Element with ID " + std::to_string(map_id) + " is not a Map.");
×
UNCOV
51
    }
×
52

53
    return VectorizeTransform(*loop);
1✔
54
}
1✔
55

56
} // namespace transformations
57
} // 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