Skip to content

Commit 40efff2

Browse files
authored
Merge pull request The-OpenROAD-Project#6754 from The-OpenROAD-Project-staging/odb-codegen2
Odb codegen2
2 parents cf397ba + c31a578 commit 40efff2

File tree

168 files changed

+166
-1953
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

168 files changed

+166
-1953
lines changed

src/odb/include/odb/db.h

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -494,15 +494,6 @@ class dbDatabase : public dbObject
494494
///
495495
static void destroy(dbDatabase* db);
496496

497-
///
498-
/// Create a duplicate (IN-MEMORY) instance of a database.
499-
///
500-
/// WARNING: This action may result in an out-of-memory condition if
501-
/// there is not enough memory (or swap space) to maintain
502-
/// multiple in-core databases.
503-
///
504-
static dbDatabase* duplicate(dbDatabase* db);
505-
506497
///
507498
/// Translate a database-id back to a pointer.
508499
///
@@ -1580,17 +1571,6 @@ class dbBlock : public dbObject
15801571
void clearUserInstFlags();
15811572

15821573
public:
1583-
///
1584-
/// This method copies the via-table from the src block to the destination
1585-
/// block.
1586-
///
1587-
/// WARNING: This method deletes any vias previously defined in the
1588-
/// destination block.
1589-
/// If there are wire which reference these vias, the references will
1590-
/// be left dangling.
1591-
///
1592-
static void copyViaTable(dbBlock* dst, dbBlock* src);
1593-
15941574
///
15951575
/// Create a chip's top-block. Returns nullptr of a top-block already
15961576
/// exists.

src/odb/src/codeGenerator/templates/db.h

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,7 @@ class {{klass.name}} : public {{klass.type}}
3434

3535
{% endif %}
3636
{% if 'no-get' not in field.flags %}
37-
{% if field.dbSetGetter %}
38-
dbSet<{{field.type}}> get{{field.functional_name}}() const;
39-
{% elif field.isPassByRef %}
40-
void {{field.getterFunctionName}}({{field.getterReturnType}}& tbl) const;
41-
{% elif field.isHashTable %}
42-
{{field.getterReturnType}} {{field.getterFunctionName}}(const char* name) const;
43-
{% else %}
44-
{{field.getterReturnType}} {{field.getterFunctionName}}() const;
45-
{% endif %}
37+
{{ macros.getter_signature(field) }};
4638
{% endif %}
4739

4840
{% endfor %}

src/odb/src/codeGenerator/templates/impl.cpp

Lines changed: 4 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
{% import 'macros' as macros %}
12
///////////////////////////////////////////////////////////////////////////////
23
// BSD 3-Clause License
34
//
@@ -133,23 +134,6 @@ namespace odb {
133134
// User Code End Constructor
134135
}
135136

136-
_{{klass.name}}::_{{klass.name}}(_dbDatabase* db, const _{{klass.name}}& r)
137-
{
138-
{% for field in klass.fields %}
139-
{% for component in field.components %}
140-
{% if field.table %}
141-
{{field.name}} = new dbTable<_{{field.type}}>(db, this, *r.{{field.name}});
142-
{% elif field.isHashTable %}
143-
{{field.name}}.setTable({{field.table_name}});
144-
{% else %}
145-
{{component}}=r.{{component}};
146-
{% endif %}
147-
{% endfor %}
148-
{% endfor %}
149-
//User Code Begin CopyConstructor
150-
//User Code End CopyConstructor
151-
}
152-
153137
{% for _struct in klass.structs %}
154138
{% if 'flags' not in _struct or ('no-serializer' not in _struct['flags'] and 'no-serializer-in' not in _struct['flags']) %}
155139
{% set sname = klass.name+'::'+_struct.name %}
@@ -256,27 +240,18 @@ namespace odb {
256240
{% endif %}
257241

258242
{% if 'no-get' not in field.flags %}
243+
{{- macros.getter_signature(field, klass) -}}
244+
{
259245
{% if field.dbSetGetter %}
260-
dbSet<{{field.type}}> {{klass.name}}::get{{field.functional_name}}() const
261-
{
262246
_{{klass.name}}* obj = (_{{klass.name}}*)this;
263247
return dbSet<{{field.type}}>(obj, obj->{{field.name}});
264-
}
265248
{% elif field.isPassByRef %}
266-
void {{klass.name}}::{{field.getterFunctionName}}({{field.getterReturnType}}& tbl) const
267-
{
268249
_{{klass.name}}* obj = (_{{klass.name}}*)this;
269250
tbl = obj->{{field.name}};
270-
}
271251
{% elif field.isHashTable %}
272-
{{field.getterReturnType}} {{klass.name}}::{{field.getterFunctionName}}(const char* name) const
273-
{
274252
_{{klass.name}}* obj = (_{{klass.name}}*)this;
275253
return ({{field.getterReturnType}}) obj->{{field.name}}.find(name);
276-
}
277254
{% else %}
278-
{{field.getterReturnType}} {{klass.name}}::{{field.getterFunctionName}}({% if field.isHashTable %}const char* name{% endif %}) const
279-
{
280255
_{{klass.name}}* obj = (_{{klass.name}}*)this;
281256
{% if field.isRef %}
282257
if(obj->{{field.name}} == 0) {
@@ -289,8 +264,8 @@ namespace odb {
289264
{% else %}
290265
return obj->{{field.name}};
291266
{% endif %}
292-
}
293267
{% endif %}
268+
}
294269
{% endif %}
295270
{% endfor %}
296271

src/odb/src/codeGenerator/templates/impl.h

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,10 @@ namespace odb {
6767
// User Code Begin Enums
6868
// User Code End Enums
6969

70-
_{{klass.name}}(_dbDatabase*, const _{{klass.name}}& r);
7170
_{{klass.name}}(_dbDatabase*);
7271

7372
{% if klass.needs_non_default_destructor %}
7473
~_{{klass.name}}();
75-
{% else %}
76-
~_{{klass.name}}() = default;
7774
{% endif %}
7875

7976
bool operator==(const _{{klass.name}}& rhs) const;
@@ -87,12 +84,12 @@ namespace odb {
8784
// User Code End Methods
8885

8986
{% for field in klass.fields %}
90-
{% if field.table %}
91-
dbTable<_{{field.type}}>* {{field.name}};
87+
{% if "comment" in field %}
88+
{{field.comment}}
89+
{% endif %}
90+
{% if field.table %}
91+
dbTable<_{{field.type}}>* {{field.name}};
9292
{% else %}
93-
{% if "comment" in field %}
94-
{{field.comment}}
95-
{% endif %}
9693
{{field.type}} {{field.name}};
9794
{% endif %}
9895
{% endfor %}

src/odb/src/codeGenerator/templates/itr.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
#include "{{itr.name}}.h"
3535
#include "{{itr.parentObject}}.h"
3636
#include "dbTable.h"
37+
#include "dbTable.hpp"
3738
{% for include in itr.includes %}
3839
#include "{{include}}"
3940
{% endfor %}

src/odb/src/codeGenerator/templates/macros

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,16 @@
3030
{% endif %}
3131
{% endfor %}
3232
{%- endmacro %}
33+
34+
{% macro getter_signature(field, klass=None) -%}
35+
{% if klass %}{% set prefix = klass.name + "::" %}{% endif %}
36+
{% if field.dbSetGetter %}
37+
dbSet<{{field.type}}> {{prefix}}get{{field.functional_name}}() const
38+
{% elif field.isPassByRef %}
39+
void {{prefix}}{{field.getterFunctionName}}({{field.getterReturnType}}& tbl) const
40+
{% elif field.isHashTable %}
41+
{{field.getterReturnType}} {{prefix}}{{field.getterFunctionName}}(const char* name) const
42+
{% else %}
43+
{{field.getterReturnType}} {{prefix}}{{field.getterFunctionName}}() const
44+
{% endif %}
45+
{%- endmacro %}

src/odb/src/db/dbAccessPoint.cpp

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -115,21 +115,6 @@ _dbAccessPoint::_dbAccessPoint(_dbDatabase* db)
115115
// User Code End Constructor
116116
}
117117

118-
_dbAccessPoint::_dbAccessPoint(_dbDatabase* db, const _dbAccessPoint& r)
119-
{
120-
point_ = r.point_;
121-
layer_ = r.layer_;
122-
lib_ = r.lib_;
123-
master_ = r.master_;
124-
mpin_ = r.mpin_;
125-
bpin_ = r.bpin_;
126-
// User Code Begin CopyConstructor
127-
iterms_ = r.iterms_;
128-
low_type_ = r.low_type_;
129-
high_type_ = r.high_type_;
130-
// User Code End CopyConstructor
131-
}
132-
133118
dbIStream& operator>>(dbIStream& stream, _dbAccessPoint& obj)
134119
{
135120
stream >> obj.point_;

src/odb/src/db/dbAccessPoint.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,8 @@ class _dbObject;
5858
class _dbAccessPoint : public _dbObject
5959
{
6060
public:
61-
_dbAccessPoint(_dbDatabase*, const _dbAccessPoint& r);
6261
_dbAccessPoint(_dbDatabase*);
6362

64-
~_dbAccessPoint() = default;
65-
6663
bool operator==(const _dbAccessPoint& rhs) const;
6764
bool operator!=(const _dbAccessPoint& rhs) const { return !operator==(rhs); }
6865
bool operator<(const _dbAccessPoint& rhs) const;

src/odb/src/db/dbBPinItr.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
#include "dbBTerm.h"
3737
#include "dbBlock.h"
3838
#include "dbTable.h"
39+
#include "dbTable.hpp"
3940

4041
namespace odb {
4142

src/odb/src/db/dbBTermItr.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
#include "dbBlock.h"
3737
#include "dbNet.h"
3838
#include "dbTable.h"
39+
#include "dbTable.hpp"
3940

4041
namespace odb {
4142

0 commit comments

Comments
 (0)