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

daisytuner / sdfglib / 16344863968

17 Jul 2025 12:16PM UTC coverage: 64.865% (-0.3%) from 65.184%
16344863968

Pull #147

github

web-flow
Merge afde7955f into 56ea48e3e
Pull Request #147: Adds metadata library node

98 of 189 new or added lines in 9 files covered. (51.85%)

58 existing lines in 3 files now uncovered.

8712 of 13431 relevant lines covered (64.86%)

176.29 hits per line

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

65.63
/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)
3✔
12
    : LibraryNode(element_id, debug_info, vertex, parent, LibraryNodeType_BarrierLocal, {}, {}, true) {
3✔
13

14
      };
3✔
15

16
symbolic::SymbolSet BarrierLocalNode::symbols() const { return {}; };
×
17

18
std::unique_ptr<DataFlowNode> BarrierLocalNode::clone(size_t element_id, const graph::Vertex vertex, DataFlowGraph& parent)
×
19
    const {
20
    return std::unique_ptr<BarrierLocalNode>(new BarrierLocalNode(element_id, this->debug_info_, vertex, parent));
×
21
};
×
22

23
void BarrierLocalNode::replace(const symbolic::Expression& old_expression, const symbolic::Expression& new_expression) {
×
24
    // Do nothing
25
};
×
26

27
nlohmann::json BarrierLocalNodeSerializer::serialize(const sdfg::data_flow::LibraryNode& library_node) {
1✔
28
    if (library_node.code() != data_flow::LibraryNodeType_BarrierLocal) {
1✔
NEW
29
        throw std::runtime_error("Invalid library node code");
×
30
    }
31
    nlohmann::json j;
1✔
32
    j["code"] = std::string(library_node.code().value());
1✔
33
    return j;
1✔
34
}
1✔
35

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

46
void BarrierLocalNodeDispatcher::dispatch(codegen::PrettyPrinter& stream) {
1✔
47
    if (dynamic_cast<codegen::CLanguageExtension*>(&this->language_extension_) != nullptr) {
1✔
NEW
48
        throw std::runtime_error(
×
49
            "ThreadBarrierDispatcher is not supported for C language extension. Use CUDA language "
50
            "extension instead."
51
        );
52
    } else if (dynamic_cast<codegen::CPPLanguageExtension*>(&this->language_extension_) != nullptr) {
1✔
NEW
53
        throw std::runtime_error(
×
54
            "ThreadBarrierDispatcher is not supported for C++ language extension. Use CUDA "
55
            "language extension instead."
56
        );
57
    } else if (dynamic_cast<codegen::CUDALanguageExtension*>(&this->language_extension_) != nullptr) {
1✔
58
        stream << "__syncthreads();" << std::endl;
1✔
59
    } else {
1✔
NEW
60
        throw std::runtime_error("Unsupported language extension for ThreadBarrierDispatcher");
×
61
    }
62
}
1✔
63

64

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

© 2026 Coveralls, Inc