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

daisytuner / sdfglib / 15612270835

12 Jun 2025 01:44PM UTC coverage: 60.871% (-0.8%) from 61.71%
15612270835

push

github

web-flow
Merge pull request #68 from daisytuner/loop-types

refactors symbolic analysis into polynomials, extreme values and cnf

638 of 862 new or added lines in 24 files covered. (74.01%)

334 existing lines in 20 files now uncovered.

6571 of 10795 relevant lines covered (60.87%)

100.35 hits per line

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

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

3
namespace sdfg {
4
namespace passes {
5

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

UNCOV
9
      };
×
10

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

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

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

50
    return applied;
×
51
};
52

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

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

59
    return p;
×
60
};
×
61

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

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

70
    return p;
×
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