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

daisytuner / sdfglib / 20792180504

07 Jan 2026 06:28PM UTC coverage: 62.339% (+0.2%) from 62.168%
20792180504

Pull #436

github

web-flow
Merge 6e411abb2 into acd6225ac
Pull Request #436: Add comprehensive tests and Doxygen documentation for SDFG transformations

14987 of 24041 relevant lines covered (62.34%)

88.99 hits per line

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

62.22
/src/data_flow/library_nodes/barrier_local_node.cpp
1
#include "sdfg/data_flow/library_nodes/barrier_local_node.h"
2

3
#include "sdfg/codegen/language_extensions/c_language_extension.h"
4
#include "sdfg/codegen/language_extensions/cpp_language_extension.h"
5
#include "sdfg/codegen/language_extensions/cuda_language_extension.h"
6

7
namespace sdfg {
8
namespace data_flow {
9

10
BarrierLocalNode::
11
    BarrierLocalNode(size_t element_id, const DebugInfo& debug_info, const graph::Vertex vertex, DataFlowGraph& parent)
12
    : LibraryNode(
7✔
13
          element_id, debug_info, vertex, parent, LibraryNodeType_BarrierLocal, {}, {}, true, ImplementationType_NONE
7✔
14
      ) {
7✔
15

16
      };
7✔
17

18
void BarrierLocalNode::validate(const Function& function) const {
2✔
19
    // TODO: Implement
20
}
2✔
21

22
symbolic::SymbolSet BarrierLocalNode::symbols() const { return {}; };
×
23

24
std::unique_ptr<DataFlowNode> BarrierLocalNode::clone(size_t element_id, const graph::Vertex vertex, DataFlowGraph& parent)
25
    const {
1✔
26
    return std::unique_ptr<BarrierLocalNode>(new BarrierLocalNode(element_id, this->debug_info_, vertex, parent));
1✔
27
};
1✔
28

29
void BarrierLocalNode::replace(const symbolic::Expression old_expression, const symbolic::Expression new_expression) {
×
30
    // Do nothing
31
};
×
32

33
nlohmann::json BarrierLocalNodeSerializer::serialize(const sdfg::data_flow::LibraryNode& library_node) {
1✔
34
    if (library_node.code() != data_flow::LibraryNodeType_BarrierLocal) {
1✔
35
        throw std::runtime_error("Invalid library node code");
×
36
    }
×
37
    nlohmann::json j;
1✔
38
    j["code"] = std::string(library_node.code().value());
1✔
39
    return j;
1✔
40
}
1✔
41

42
data_flow::LibraryNode& BarrierLocalNodeSerializer::deserialize(
43
    const nlohmann::json& j, sdfg::builder::StructuredSDFGBuilder& builder, sdfg::structured_control_flow::Block& parent
44
) {
1✔
45
    auto code = j["code"].get<std::string>();
1✔
46
    if (code != data_flow::LibraryNodeType_BarrierLocal.value()) {
1✔
47
        throw std::runtime_error("Invalid library node code");
×
48
    }
×
49
    return builder.add_library_node<data_flow::BarrierLocalNode>(parent, DebugInfo());
1✔
50
};
1✔
51

52
BarrierLocalNodeDispatcher::BarrierLocalNodeDispatcher(
53
    codegen::LanguageExtension& language_extension,
54
    const Function& function,
55
    const data_flow::DataFlowGraph& data_flow_graph,
56
    const BarrierLocalNode& node
57
)
58
    : codegen::LibraryNodeDispatcher(language_extension, function, data_flow_graph, node) {}
1✔
59

60
void BarrierLocalNodeDispatcher::dispatch(
61
    codegen::PrettyPrinter& stream,
62
    codegen::PrettyPrinter& globals_stream,
63
    codegen::CodeSnippetFactory& library_snippet_factory
64
) {
1✔
65
    if (dynamic_cast<codegen::CLanguageExtension*>(&this->language_extension_) != nullptr) {
1✔
66
        throw std::runtime_error(
×
67
            "ThreadBarrierDispatcher is not supported for C language extension. Use CUDA language "
×
68
            "extension instead."
×
69
        );
×
70
    } else if (dynamic_cast<codegen::CPPLanguageExtension*>(&this->language_extension_) != nullptr) {
1✔
71
        throw std::runtime_error(
×
72
            "ThreadBarrierDispatcher is not supported for C++ language extension. Use CUDA "
×
73
            "language extension instead."
×
74
        );
×
75
    } else if (dynamic_cast<codegen::CUDALanguageExtension*>(&this->language_extension_) != nullptr) {
1✔
76
        stream << "__syncthreads();" << std::endl;
1✔
77
    } else {
1✔
78
        throw std::runtime_error("Unsupported language extension for ThreadBarrierDispatcher");
×
79
    }
×
80
}
1✔
81

82

83
} // namespace data_flow
84
} // 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