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

daisytuner / sdfglib / 16069945621

04 Jul 2025 08:56AM UTC coverage: 64.375% (-0.2%) from 64.606%
16069945621

push

github

web-flow
Merge pull request #137 from daisytuner/clang-format

runs clang-format on codebase

609 of 827 new or added lines in 63 files covered. (73.64%)

46 existing lines in 30 files now uncovered.

8578 of 13325 relevant lines covered (64.38%)

177.24 hits per line

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

57.38
/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)
10✔
7
    : Pass(), name_(name) {
10✔
8

9
      };
5✔
10

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

13
size_t Pipeline::size() const { return this->passes_.size(); };
5✔
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

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

49
    return applied;
×
50
};
51

52
Pipeline Pipeline::expression_combine() {
1✔
53
    Pipeline p("ExpressionCombine");
1✔
54

55
    p.register_pass<SymbolPropagation>();
1✔
56
    p.register_pass<ConstantElimination>();
1✔
57
    p.register_pass<DeadDataElimination>();
1✔
58
    p.register_pass<SymbolEvolution>();
1✔
59

60
    return p;
1✔
61
};
1✔
62

63
Pipeline Pipeline::memlet_combine() {
1✔
64
    Pipeline p("MemletCombine");
1✔
65

66
    p.register_pass<ViewPropagation>();
1✔
67
    p.register_pass<ForwardMemletPropagation>();
1✔
68
    p.register_pass<BackwardMemletPropagation>();
1✔
69
    p.register_pass<DeadReferenceElimination>();
1✔
70

71
    return p;
1✔
72
};
1✔
73

74
Pipeline Pipeline::controlflow_simplification() {
1✔
75
    Pipeline p("ControlFlowSimplification");
1✔
76

77
    p.register_pass<DeadCFGElimination>();
1✔
78
    p.register_pass<BlockFusionPass>();
1✔
79
    p.register_pass<SequenceFusion>();
1✔
80

81
    return p;
1✔
82
};
1✔
83

84
Pipeline Pipeline::data_parallelism() {
1✔
85
    Pipeline p("DataParallelism");
1✔
86

87
    p.register_pass<For2MapPass>();
1✔
88
    p.register_pass<SymbolPropagation>();
1✔
89
    p.register_pass<DeadDataElimination>();
1✔
90

91
    return p;
1✔
92
};
1✔
93

94
} // namespace passes
95
} // 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