RTLIL: add Module::addProcess, use it in Module::cloneInto. NFC.
authorwhitequark <whitequark@whitequark.org>
Tue, 9 Jun 2020 09:55:48 +0000 (09:55 +0000)
committerwhitequark <whitequark@whitequark.org>
Tue, 9 Jun 2020 09:55:48 +0000 (09:55 +0000)
kernel/rtlil.cc
kernel/rtlil.h

index b876862c823a93b91a4cba01faa91133819146eb..ef81cac01662195aae0c8d6acb2c18afa9b6a308 100644 (file)
@@ -1536,13 +1536,13 @@ void RTLIL::Module::cloneInto(RTLIL::Module *new_mod) const
                new_mod->addWire(it.first, it.second);
 
        for (auto &it : memories)
-               new_mod->memories[it.first] = new RTLIL::Memory(*it.second);
+               new_mod->addMemory(it.first, it.second);
 
        for (auto &it : cells_)
                new_mod->addCell(it.first, it.second);
 
        for (auto &it : processes)
-               new_mod->processes[it.first] = it.second->clone();
+               new_mod->addProcess(it.first, it.second);
 
        struct RewriteSigSpecWorker
        {
@@ -1913,6 +1913,14 @@ RTLIL::Memory *RTLIL::Module::addMemory(RTLIL::IdString name, const RTLIL::Memor
        return mem;
 }
 
+RTLIL::Process *RTLIL::Module::addProcess(RTLIL::IdString name, const RTLIL::Process *other)
+{
+       RTLIL::Process *proc = other->clone();
+       proc->name = name;
+       processes[name] = proc;
+       return proc;
+}
+
 #define DEF_METHOD(_func, _y_size, _type) \
        RTLIL::Cell* RTLIL::Module::add ## _func(RTLIL::IdString name, const RTLIL::SigSpec &sig_a, const RTLIL::SigSpec &sig_y, bool is_signed, const std::string &src) { \
                RTLIL::Cell *cell = addCell(name, _type);           \
index f751bdce4f9f8448d7d13ef82b2d2b3b6c4046ee..f3dc3af68ed33613b0099b314006c598e36dc31c 100644 (file)
@@ -1175,6 +1175,8 @@ public:
 
        RTLIL::Memory *addMemory(RTLIL::IdString name, const RTLIL::Memory *other);
 
+       RTLIL::Process *addProcess(RTLIL::IdString name, const RTLIL::Process *other);
+
        // The add* methods create a cell and return the created cell. All signals must exist in advance.
 
        RTLIL::Cell* addNot (RTLIL::IdString name, const RTLIL::SigSpec &sig_a, const RTLIL::SigSpec &sig_y, bool is_signed = false, const std::string &src = "");