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

daisytuner / sdfglib / 15973046991

30 Jun 2025 12:34PM UTC coverage: 64.64% (-0.2%) from 64.86%
15973046991

push

github

web-flow
Merge pull request #123 from daisytuner/simplify-tiling-transformation

Avoid deep copy in loop tiling

31 of 32 new or added lines in 2 files covered. (96.88%)

27 existing lines in 6 files now uncovered.

8643 of 13371 relevant lines covered (64.64%)

171.55 hits per line

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

67.57
/src/data_flow/tasklet.cpp
1
#include "sdfg/data_flow/tasklet.h"
2

3
#include "sdfg/symbolic/symbolic.h"
4

5
namespace sdfg {
6
namespace data_flow {
7

8
Tasklet::Tasklet(size_t element_id, const DebugInfo& debug_info, const graph::Vertex vertex,
378✔
9
                 DataFlowGraph& parent, const TaskletCode code,
10
                 const std::pair<std::string, sdfg::types::Scalar>& output,
11
                 const std::vector<std::pair<std::string, sdfg::types::Scalar>>& inputs,
12
                 const symbolic::Condition& condition)
13
    : CodeNode(element_id, debug_info, vertex, parent),
378✔
14
      code_(code),
378✔
15
      output_(output),
378✔
16
      inputs_(inputs),
378✔
17
      condition_(condition) {};
756✔
18

19
TaskletCode Tasklet::code() const { return this->code_; };
772✔
20

21
const std::vector<std::pair<std::string, sdfg::types::Scalar>>& Tasklet::inputs() const {
447✔
22
    return this->inputs_;
447✔
23
};
24

25
std::vector<std::pair<std::string, sdfg::types::Scalar>>& Tasklet::inputs() {
231✔
26
    return this->inputs_;
231✔
27
};
28

29
const std::pair<std::string, sdfg::types::Scalar>& Tasklet::output() const {
593✔
30
    return this->output_;
593✔
31
};
32

33
const std::pair<std::string, sdfg::types::Scalar>& Tasklet::input(size_t index) const {
455✔
34
    return this->inputs_[index];
455✔
35
};
36

37
const sdfg::types::Scalar& Tasklet::input_type(const std::string& input) const {
×
38
    return std::find_if(this->inputs_.begin(), this->inputs_.end(),
×
39
                        [&input](const std::pair<std::string, sdfg::types::Scalar>& p) {
×
40
                            return p.first == input;
×
41
                        })
42
        ->second;
×
43
};
44

45
bool Tasklet::needs_connector(size_t index) const {
229✔
46
    // Is non-constant, if starts with _in prefix
47
    if (this->inputs_[index].first.compare(0, 3, "_in") == 0) {
229✔
48
        return true;
17✔
49
    }
50
    return false;
212✔
51
};
229✔
52

53
const sdfg::types::Scalar& Tasklet::output_type() const { return this->output_.second; };
×
54

55
const symbolic::Condition& Tasklet::condition() const { return this->condition_; };
×
56

57
symbolic::Condition& Tasklet::condition() { return this->condition_; };
10✔
58

59
bool Tasklet::is_conditional() const { return !symbolic::is_true(this->condition_); };
242✔
60

UNCOV
61
std::unique_ptr<DataFlowNode> Tasklet::clone(size_t element_id, const graph::Vertex vertex,
×
62
                                             DataFlowGraph& parent) const {
UNCOV
63
    return std::unique_ptr<Tasklet>(new Tasklet(element_id, this->debug_info_, vertex, parent,
×
UNCOV
64
                                                this->code_, this->output_, this->inputs_,
×
UNCOV
65
                                                this->condition_));
×
66
};
×
67

68
void Tasklet::replace(const symbolic::Expression& old_expression,
2✔
69
                      const symbolic::Expression& new_expression) {
70
    this->condition_ = symbolic::subs(this->condition_, old_expression, new_expression);
2✔
71
};
2✔
72

73
}  // namespace data_flow
74
}  // 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

© 2025 Coveralls, Inc