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

daisytuner / sdfglib / 16779684622

06 Aug 2025 02:21PM UTC coverage: 64.3% (-1.0%) from 65.266%
16779684622

push

github

web-flow
Merge pull request #172 from daisytuner/opaque-pointers

Opaque pointers, typed memlets, untyped tasklet connectors

330 of 462 new or added lines in 38 files covered. (71.43%)

382 existing lines in 30 files now uncovered.

8865 of 13787 relevant lines covered (64.3%)

116.73 hits per line

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

75.0
/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)
7✔
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 {
3✔
19
    // TODO: Implement
20
}
3✔
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)
1✔
25
    const {
26
    return std::unique_ptr<BarrierLocalNode>(new BarrierLocalNode(element_id, this->debug_info_, vertex, parent));
1✔
27
};
×
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(
1✔
43
    const nlohmann::json& j, sdfg::builder::StructuredSDFGBuilder& builder, sdfg::structured_control_flow::Block& parent
44
) {
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
void BarrierLocalNodeDispatcher::dispatch(
1✔
53
    codegen::PrettyPrinter& stream,
54
    codegen::PrettyPrinter& globals_stream,
55
    codegen::CodeSnippetFactory& library_snippet_factory
56
) {
57
    if (dynamic_cast<codegen::CLanguageExtension*>(&this->language_extension_) != nullptr) {
1✔
UNCOV
58
        throw std::runtime_error(
×
59
            "ThreadBarrierDispatcher is not supported for C language extension. Use CUDA language "
60
            "extension instead."
61
        );
62
    } else if (dynamic_cast<codegen::CPPLanguageExtension*>(&this->language_extension_) != nullptr) {
1✔
UNCOV
63
        throw std::runtime_error(
×
64
            "ThreadBarrierDispatcher is not supported for C++ language extension. Use CUDA "
65
            "language extension instead."
66
        );
67
    } else if (dynamic_cast<codegen::CUDALanguageExtension*>(&this->language_extension_) != nullptr) {
1✔
68
        stream << "__syncthreads();" << std::endl;
1✔
69
    } else {
1✔
UNCOV
70
        throw std::runtime_error("Unsupported language extension for ThreadBarrierDispatcher");
×
71
    }
72
}
1✔
73

74

75
} // namespace data_flow
76
} // 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