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

daisytuner / sdfglib / 15656007340

14 Jun 2025 08:51PM UTC coverage: 13.234% (-49.9%) from 63.144%
15656007340

Pull #76

github

web-flow
Merge 9586c8161 into 413c53212
Pull Request #76: New Loop Dependency Analysis

361 of 465 new or added lines in 7 files covered. (77.63%)

6215 existing lines in 110 files now uncovered.

1612 of 12181 relevant lines covered (13.23%)

13.64 hits per line

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

0.0
/src/control_flow/interstate_edge.cpp
1
#include "sdfg/control_flow/interstate_edge.h"
2

3
namespace sdfg {
4
namespace control_flow {
5

UNCOV
6
InterstateEdge::InterstateEdge(const DebugInfo& debug_info, const graph::Edge& edge,
×
7
                               const control_flow::State& src, const control_flow::State& dst,
8
                               const symbolic::Condition& condition,
9
                               const sdfg::control_flow::Assignments& assignments)
UNCOV
10
    : Element(debug_info),
×
UNCOV
11
      edge_(edge),
×
UNCOV
12
      src_(src),
×
UNCOV
13
      dst_(dst),
×
UNCOV
14
      condition_(condition),
×
UNCOV
15
      assignments_(assignments) {
×
16

UNCOV
17
      };
×
18

UNCOV
19
const graph::Edge InterstateEdge::edge() const { return this->edge_; };
×
20

UNCOV
21
const control_flow::State& InterstateEdge::src() const { return this->src_; };
×
22

UNCOV
23
const control_flow::State& InterstateEdge::dst() const { return this->dst_; };
×
24

UNCOV
25
const symbolic::Condition& InterstateEdge::condition() const { return this->condition_; };
×
26

UNCOV
27
bool InterstateEdge::is_unconditional() const { return symbolic::is_true(this->condition_); };
×
28

UNCOV
29
const sdfg::control_flow::Assignments& InterstateEdge::assignments() const {
×
UNCOV
30
    return this->assignments_;
×
31
};
32

33
void InterstateEdge::replace(const symbolic::Expression& old_expression,
×
34
                             const symbolic::Expression& new_expression) {
35
    symbolic::subs(this->condition_, old_expression, new_expression);
×
36

37
    if (SymEngine::is_a<SymEngine::Symbol>(*old_expression)) {
×
38
        auto old_symbol = SymEngine::rcp_static_cast<const SymEngine::Symbol>(old_expression);
×
39
        if (this->assignments_.find(old_symbol) != this->assignments_.end()) {
×
40
            if (!SymEngine::is_a<SymEngine::Symbol>(*new_expression)) {
×
41
                throw InvalidSDFGException("Assigments do not support complex expressions on LHS");
×
42
            }
43
            auto new_symbol = SymEngine::rcp_static_cast<const SymEngine::Symbol>(new_expression);
×
44
            this->assignments_[new_symbol] = this->assignments_[old_symbol];
×
45
            this->assignments_.erase(old_symbol);
×
46
        }
×
47
    }
×
48

49
    for (auto& entry : this->assignments_) {
×
50
        entry.second = symbolic::subs(entry.second, old_expression, new_expression);
×
51
    }
52
};
×
53

54
}  // namespace control_flow
55
}  // 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