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

daisytuner / docc / 25250124826

02 May 2026 10:42AM UTC coverage: 64.498% (-0.1%) from 64.643%
25250124826

push

github

web-flow
Merge pull request #696 from daisytuner/vectorize-transform

Adds VectorizeTransform and sets as default over highway

17 of 135 new or added lines in 8 files covered. (12.59%)

31346 of 48600 relevant lines covered (64.5%)

1391.61 hits per line

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

0.0
/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

NEW
8
VectorizeTransform::VectorizeTransform(structured_control_flow::Map& map) : map_(map) {}
×
9

NEW
10
std::string VectorizeTransform::name() const { return "VectorizeTransform"; }
×
11

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

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

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

NEW
31
void VectorizeTransform::to_json(nlohmann::json& j) const {
×
NEW
32
    j["transformation_type"] = this->name();
×
NEW
33
    j["subgraph"] = {{"0", {{"element_id", this->map_.element_id()}, {"type", "map"}}}};
×
NEW
34
    j["transformation_type"] = this->name();
×
NEW
35
}
×
36

NEW
37
VectorizeTransform VectorizeTransform::from_json(builder::StructuredSDFGBuilder& builder, const nlohmann::json& desc) {
×
NEW
38
    auto map_id = desc["subgraph"]["0"]["element_id"].get<size_t>();
×
NEW
39
    auto element = builder.find_element_by_id(map_id);
×
NEW
40
    if (element == nullptr) {
×
NEW
41
        throw std::runtime_error("Element with ID " + std::to_string(map_id) + " not found.");
×
NEW
42
    }
×
43

NEW
44
    auto loop = dynamic_cast<structured_control_flow::Map*>(element);
×
45

NEW
46
    if (loop == nullptr) {
×
NEW
47
        throw std::runtime_error("Element with ID " + std::to_string(map_id) + " is not a Map.");
×
NEW
48
    }
×
49

NEW
50
    return VectorizeTransform(*loop);
×
NEW
51
}
×
52

53
} // namespace transformations
54
} // 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