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

daisytuner / sdfglib / 15518226219

08 Jun 2025 12:03PM UTC coverage: 61.652% (-0.8%) from 62.447%
15518226219

push

github

web-flow
Merge pull request #65 from daisytuner/lib-nodes-plugins

Adds registry for library node dispatchers

41 of 77 new or added lines in 5 files covered. (53.25%)

124 existing lines in 10 files now uncovered.

7249 of 11758 relevant lines covered (61.65%)

125.57 hits per line

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

7.69
/src/passes/pipeline.cpp
1
#include "sdfg/passes/pipeline.h"
2

3
namespace sdfg {
4
namespace passes {
5

6
Pipeline::Pipeline(const std::string& name)
2✔
7
    : Pass(), name_(name) {
2✔
8

9
      };
1✔
10

11
std::string Pipeline::name() { return this->name_; };
×
12

13
size_t Pipeline::size() const { return this->passes_.size(); };
1✔
14

15
bool Pipeline::run(builder::SDFGBuilder& builder) {
×
16
    bool applied = false;
×
17

18
    bool applied_pipeline;
19
    do {
×
20
        applied_pipeline = false;
×
21
        for (auto& pass : this->passes_) {
×
22
            bool applied_pass = false;
×
23
            do {
×
24
                applied_pass = pass->run(builder);
×
25
                applied_pipeline |= applied_pass;
×
26
            } while (applied_pass);
×
27
        }
28
        applied |= applied_pipeline;
×
29
    } while (applied_pipeline);
×
30

31
    return applied;
×
32
};
33

UNCOV
34
bool Pipeline::run(builder::StructuredSDFGBuilder& builder,
×
35
                   analysis::AnalysisManager& analysis_manager) {
UNCOV
36
    bool applied = false;
×
37
    bool applied_pipeline;
UNCOV
38
    do {
×
UNCOV
39
        applied_pipeline = false;
×
UNCOV
40
        for (auto& pass : this->passes_) {
×
UNCOV
41
            bool applied_pass = false;
×
UNCOV
42
            do {
×
UNCOV
43
                applied_pass = pass->run(builder, analysis_manager);
×
UNCOV
44
                applied_pipeline |= applied_pass;
×
UNCOV
45
            } while (applied_pass);
×
46
        }
UNCOV
47
        applied |= applied_pipeline;
×
UNCOV
48
    } while (applied_pipeline);
×
49

UNCOV
50
    return applied;
×
51
};
52

UNCOV
53
Pipeline Pipeline::expression_combine() {
×
UNCOV
54
    Pipeline p("ExpressionCombine");
×
55

UNCOV
56
    p.register_pass<SymbolPropagation>();
×
UNCOV
57
    p.register_pass<DeadDataElimination>();
×
58

UNCOV
59
    return p;
×
UNCOV
60
};
×
61

UNCOV
62
Pipeline Pipeline::memlet_combine() {
×
UNCOV
63
    Pipeline p("MemletCombine");
×
64

UNCOV
65
    p.register_pass<ViewPropagation>();
×
UNCOV
66
    p.register_pass<ForwardMemletPropagation>();
×
UNCOV
67
    p.register_pass<BackwardMemletPropagation>();
×
UNCOV
68
    p.register_pass<DeadReferenceElimination>();
×
69

UNCOV
70
    return p;
×
UNCOV
71
};
×
72

73
Pipeline Pipeline::controlflow_simplification() {
×
74
    Pipeline p("ControlFlowSimplification");
×
75

76
    p.register_pass<DeadCFGElimination>();
×
77
    p.register_pass<BlockFusionPass>();
×
78
    p.register_pass<SequenceFusion>();
×
79

80
    return p;
×
81
};
×
82

83
}  // namespace passes
84
}  // 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