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

daisytuner / sdfglib / 17653942017

11 Sep 2025 06:34PM UTC coverage: 59.145% (-0.6%) from 59.755%
17653942017

push

github

web-flow
Merge pull request #224 from daisytuner/revert-210-NewDebugInfo

Revert "New debug info"

313 of 466 new or added lines in 44 files covered. (67.17%)

21 existing lines in 4 files now uncovered.

9274 of 15680 relevant lines covered (59.15%)

115.92 hits per line

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

52.5
/src/passes/debug_info_propagation.cpp
1
#include "sdfg/passes/debug_info_propagation.h"
2

3
namespace sdfg {
4
namespace passes {
5

6
DebugInfoPropagation::DebugInfoPropagation() : Pass() {}
2✔
7

8
void DebugInfoPropagation::propagate(structured_control_flow::ControlFlowNode* current) {
4✔
9
    auto current_debug_info = current->debug_info();
4✔
10

11
    if (auto block = dynamic_cast<structured_control_flow::Block*>(current)) {
4✔
12
        auto& graph = block->dataflow();
2✔
13
        for (auto& node : graph.nodes()) {
8✔
14
            current_debug_info = DebugInfo::merge(current_debug_info, node.debug_info());
6✔
15
        }
16
        for (auto& edge : graph.edges()) {
6✔
17
            current_debug_info = DebugInfo::merge(current_debug_info, edge.debug_info());
4✔
18
        }
19
    } else if (auto sequence_stmt = dynamic_cast<structured_control_flow::Sequence*>(current)) {
4✔
20
        for (size_t i = 0; i < sequence_stmt->size(); i++) {
4✔
21
            this->propagate(&sequence_stmt->at(i).first);
2✔
22
            current_debug_info = DebugInfo::merge(current_debug_info, sequence_stmt->at(i).first.debug_info());
2✔
23
            current_debug_info = DebugInfo::merge(current_debug_info, sequence_stmt->at(i).second.debug_info());
2✔
24
        }
2✔
25
    } else if (auto if_else_stmt = dynamic_cast<structured_control_flow::IfElse*>(current)) {
2✔
26
        for (size_t i = 0; i < if_else_stmt->size(); i++) {
×
NEW
27
            this->propagate(&if_else_stmt->at(i).first);
×
NEW
28
            current_debug_info = DebugInfo::merge(current_debug_info, if_else_stmt->at(i).first.debug_info());
×
29
        }
×
30
    } else if (auto while_stmt = dynamic_cast<structured_control_flow::While*>(current)) {
×
NEW
31
        this->propagate(&while_stmt->root());
×
NEW
32
        current_debug_info = DebugInfo::merge(current_debug_info, while_stmt->root().debug_info());
×
33
    } else if (auto loop_stmt = dynamic_cast<structured_control_flow::StructuredLoop*>(current)) {
×
NEW
34
        this->propagate(&loop_stmt->root());
×
NEW
35
        current_debug_info = DebugInfo::merge(current_debug_info, loop_stmt->root().debug_info());
×
36
    } else if (auto break_stmt = dynamic_cast<structured_control_flow::Break*>(current)) {
×
NEW
37
        current_debug_info = DebugInfo::merge(current_debug_info, break_stmt->debug_info());
×
38
    } else if (auto continue_stmt = dynamic_cast<structured_control_flow::Continue*>(current)) {
×
NEW
39
        current_debug_info = DebugInfo::merge(current_debug_info, continue_stmt->debug_info());
×
40
    } else if (auto return_stmt = dynamic_cast<structured_control_flow::Return*>(current)) {
×
NEW
41
        current_debug_info = DebugInfo::merge(current_debug_info, return_stmt->debug_info());
×
42
    } else {
×
43
        throw InvalidSDFGException("Unsupported control flow node type");
×
44
    }
45

46
    current->set_debug_info(current_debug_info);
4✔
47
}
4✔
48

49
bool DebugInfoPropagation::run_pass(builder::StructuredSDFGBuilder& builder, analysis::AnalysisManager& analysis_manager) {
2✔
50
    this->propagate(&builder.subject().root());
2✔
51
    return true;
2✔
52
}
53

NEW
54
std::string DebugInfoPropagation::name() { return "DebugInfoPropagation"; }
×
55

56
} // namespace passes
57
} // 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