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

daisytuner / sdfglib / 20440855126

22 Dec 2025 06:40PM UTC coverage: 39.033% (-0.001%) from 39.034%
20440855126

push

github

web-flow
Merge pull request #404 from daisytuner/loop-info

Adds loop info to analysis and instrumentation

13484 of 44849 branches covered (30.07%)

Branch coverage included in aggregate %.

59 of 110 new or added lines in 7 files covered. (53.64%)

11 existing lines in 6 files now uncovered.

11622 of 19471 relevant lines covered (59.69%)

83.87 hits per line

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

38.98
/src/codegen/dispatchers/node_dispatcher.cpp
1
#include "sdfg/codegen/dispatchers/node_dispatcher.h"
2

3
#include "sdfg/analysis/loop_analysis.h"
4
#include "sdfg/codegen/instrumentation/instrumentation_info.h"
5

6
namespace sdfg {
7
namespace codegen {
8

9
NodeDispatcher::NodeDispatcher(
56✔
10
    LanguageExtension& language_extension,
11
    StructuredSDFG& sdfg,
12
    analysis::AnalysisManager& analysis_manager,
13
    structured_control_flow::ControlFlowNode& node,
14
    InstrumentationPlan& instrumentation_plan,
15
    ArgCapturePlan& arg_capture_plan
16
)
17
    : node_(node), language_extension_(language_extension), sdfg_(sdfg), analysis_manager_(analysis_manager),
112✔
18
      instrumentation_plan_(instrumentation_plan), arg_capture_plan_(arg_capture_plan) {};
168✔
19

20
bool NodeDispatcher::begin_node(PrettyPrinter& stream) { return false; };
31✔
21

22
void NodeDispatcher::end_node(PrettyPrinter& stream, bool applied) {};
31✔
23

24
InstrumentationInfo NodeDispatcher::instrumentation_info() const {
×
NEW
25
    return InstrumentationInfo(
×
NEW
26
        node_.element_id(), ElementType_Unknown, TargetType_SEQUENTIAL, analysis::LoopInfo(), -1, {}
×
27
    );
UNCOV
28
};
×
29

30
void NodeDispatcher::
31
    dispatch(PrettyPrinter& main_stream, PrettyPrinter& globals_stream, CodeSnippetFactory& library_snippet_factory) {
31✔
32
    bool applied = begin_node(main_stream);
31✔
33

34
    if (this->arg_capture_plan_.should_instrument(node_)) {
31!
35
        this->arg_capture_plan_.begin_instrumentation(node_, main_stream, language_extension_);
×
36
    }
×
37

38
    bool should_instrument = this->instrumentation_plan_.should_instrument(node_);
31✔
39
    std::optional<InstrumentationInfo> instrumentation_info;
31✔
40
    if (should_instrument) {
31!
41
        instrumentation_info = this->instrumentation_info();
×
42
        this->instrumentation_plan_
×
43
            .begin_instrumentation(node_, main_stream, language_extension_, instrumentation_info.value());
×
44
    }
×
45

46
    dispatch_node(main_stream, globals_stream, library_snippet_factory);
31!
47

48
    if (should_instrument) {
31!
49
        this->instrumentation_plan_
×
50
            .end_instrumentation(node_, main_stream, language_extension_, instrumentation_info.value());
×
51
    }
×
52

53
    if (this->arg_capture_plan_.should_instrument(node_)) {
31!
54
        this->arg_capture_plan_.end_instrumentation(node_, main_stream, language_extension_);
×
55
    }
×
56

57
    end_node(main_stream, applied);
31!
58
};
31✔
59

60
} // namespace codegen
61
} // 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