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

daisytuner / sdfglib / 20498791379

24 Dec 2025 12:27PM UTC coverage: 39.109% (+0.05%) from 39.061%
20498791379

push

github

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

move loopnest index into loop info

13537 of 44946 branches covered (30.12%)

Branch coverage included in aggregate %.

15 of 46 new or added lines in 9 files covered. (32.61%)

1 existing line in 1 file now uncovered.

11669 of 19504 relevant lines covered (59.83%)

84.09 hits per line

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

45.12
/src/codegen/dispatchers/for_dispatcher.cpp
1
#include "sdfg/codegen/dispatchers/for_dispatcher.h"
2
#include "sdfg/analysis/analysis.h"
3
#include "sdfg/analysis/loop_analysis.h"
4
#include "sdfg/codegen/dispatchers/sequence_dispatcher.h"
5
#include "sdfg/codegen/instrumentation/instrumentation_info.h"
6

7
namespace sdfg {
8
namespace codegen {
9

10
ForDispatcher::ForDispatcher(
2✔
11
    LanguageExtension& language_extension,
12
    StructuredSDFG& sdfg,
13
    analysis::AnalysisManager& analysis_manager,
14
    structured_control_flow::For& node,
15
    InstrumentationPlan& instrumentation_plan,
16
    ArgCapturePlan& arg_capture_plan
17
)
18
    : NodeDispatcher(language_extension, sdfg, analysis_manager, node, instrumentation_plan, arg_capture_plan),
2✔
19
      node_(node) {
2✔
20

21
      };
2✔
22

23
void ForDispatcher::dispatch_node(
1✔
24
    PrettyPrinter& main_stream, PrettyPrinter& globals_stream, CodeSnippetFactory& library_snippet_factory
25
) {
26
    main_stream << "for";
1✔
27
    main_stream << "(";
1✔
28
    main_stream << node_.indvar()->get_name();
1!
29
    main_stream << " = ";
1✔
30
    main_stream << language_extension_.expression(node_.init());
1!
31
    main_stream << ";";
1✔
32
    main_stream << language_extension_.expression(node_.condition());
1!
33
    main_stream << ";";
1✔
34
    main_stream << node_.indvar()->get_name();
1!
35
    main_stream << " = ";
1✔
36
    main_stream << language_extension_.expression(node_.update());
1!
37
    main_stream << ")" << std::endl;
1✔
38
    main_stream << "{" << std::endl;
1✔
39

40
    main_stream.setIndent(main_stream.indent() + 4);
1✔
41
    SequenceDispatcher
42
        dispatcher(language_extension_, sdfg_, analysis_manager_, node_.root(), instrumentation_plan_, arg_capture_plan_);
1✔
43
    dispatcher.dispatch(main_stream, globals_stream, library_snippet_factory);
1✔
44
    main_stream.setIndent(main_stream.indent() - 4);
1✔
45

46
    main_stream << "}" << std::endl;
1✔
47
};
1✔
48

49
InstrumentationInfo ForDispatcher::instrumentation_info() const {
×
NEW
50
    auto& loop_analysis = analysis_manager_.get<analysis::LoopAnalysis>();
×
NEW
51
    analysis::LoopInfo loop_info = loop_analysis.loop_info(&node_);
×
52

53
    // Perform FlopAnalysis
54
    std::unordered_map<std::string, std::string> metrics;
×
55
    auto& flop_analysis = analysis_manager_.get<analysis::FlopAnalysis>();
×
56
    auto flop = flop_analysis.get_if_available_for_codegen(&node_);
×
57
    if (!flop.is_null()) {
×
58
        std::string flop_str = language_extension_.expression(flop);
×
59
        metrics.insert({"flop", flop_str});
×
60
    }
×
61

NEW
62
    return InstrumentationInfo(node_.element_id(), ElementType_For, TargetType_SEQUENTIAL, loop_info, metrics);
×
63
};
×
64

65
} // namespace codegen
66
} // 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