aboutsummaryrefslogtreecommitdiff
path: root/compute_kernel_writer/src/KernelWriter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'compute_kernel_writer/src/KernelWriter.cpp')
-rw-r--r--compute_kernel_writer/src/KernelWriter.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/compute_kernel_writer/src/KernelWriter.cpp b/compute_kernel_writer/src/KernelWriter.cpp
index 21a61d73bf..fb0e62c8ce 100644
--- a/compute_kernel_writer/src/KernelWriter.cpp
+++ b/compute_kernel_writer/src/KernelWriter.cpp
@@ -51,11 +51,35 @@ std::unique_ptr<KernelWriter> KernelWriter::create_instance(TargetArchitecture a
}
}
+int32_t KernelWriter::new_id_space()
+{
+ _id_space = ++_last_created_id_space;
+
+ return _id_space;
+}
+
int32_t KernelWriter::id_space() const
{
return _id_space;
}
+KernelWriter &KernelWriter::id_space(int32_t value)
+{
+ CKW_ASSERT(value <= _last_created_id_space);
+
+ _id_space = value;
+
+ return *this;
+}
+
+void KernelWriter::write_body(const std::function<void()> &body)
+{
+ const auto curr_id_space = id_space();
+ new_id_space();
+ body();
+ id_space(curr_id_space);
+}
+
std::string KernelWriter::generate_full_name(const std::string &name) const
{
return "G" + std::to_string(id_space()) + "__" + name;