diff options
author | Clifford Wolf <clifford@clifford.at> | 2014-12-31 03:56:09 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2014-12-31 03:56:09 +0100 |
commit | 7d6a7fe2ce8936c7af09ba7661e1159bc403483d (patch) | |
tree | 5811ec9714baae6b68388ed557f1c264940ffd81 | |
parent | 60f16e17afc81d8bbae722c13ef173329129494a (diff) | |
download | yosys-7d6a7fe2ce8936c7af09ba7661e1159bc403483d.tar.gz yosys-7d6a7fe2ce8936c7af09ba7661e1159bc403483d.tar.bz2 yosys-7d6a7fe2ce8936c7af09ba7661e1159bc403483d.zip |
IdString optimization
-rw-r--r-- | kernel/rtlil.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/rtlil.h b/kernel/rtlil.h index 739b701f8..c40af88aa 100644 --- a/kernel/rtlil.h +++ b/kernel/rtlil.h @@ -121,6 +121,12 @@ namespace RTLIL global_id_index_[global_id_storage_.at(idx)] = idx; global_refcount_storage_.at(idx)++; + // Avoid Create->Delete->Create pattern + static IdString last_created_id; + put_reference(last_created_id.index_); + last_created_id.index_ = idx; + get_reference(last_created_id.index_); + if (yosys_xtrace) { log("#X# New IdString '%s' with index %d.\n", p, idx); log_backtrace("-X- ", yosys_xtrace-1); |