diff options
Diffstat (limited to 'compute_kernel_writer/src/KernelWriter.cpp')
-rw-r--r-- | compute_kernel_writer/src/KernelWriter.cpp | 24 |
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; |