moving attribute types to std::string
Signed-off-by: Ethan Mahintorabi <ethanmoon@google.com>
This commit is contained in:
parent
ad6f4cd3b1
commit
36c1bade14
|
|
@ -38,7 +38,7 @@ class LibertyCell;
|
||||||
class LibertyPort;
|
class LibertyPort;
|
||||||
|
|
||||||
typedef Map<const char*, ConcreteCell*, CharPtrLess> ConcreteCellMap;
|
typedef Map<const char*, ConcreteCell*, CharPtrLess> ConcreteCellMap;
|
||||||
typedef Map<std::string, const char*> AttributeMap;
|
typedef Map<std::string, std::string> AttributeMap;
|
||||||
typedef Vector<ConcretePort*> ConcretePortSeq;
|
typedef Vector<ConcretePort*> ConcretePortSeq;
|
||||||
typedef Map<const char*, ConcretePort*, CharPtrLess> ConcretePortMap;
|
typedef Map<const char*, ConcretePort*, CharPtrLess> ConcretePortMap;
|
||||||
typedef ConcreteCellMap::ConstIterator ConcreteLibraryCellIterator;
|
typedef ConcreteCellMap::ConstIterator ConcreteLibraryCellIterator;
|
||||||
|
|
@ -106,9 +106,9 @@ public:
|
||||||
ConcreteCellPortBitIterator *portBitIterator() const;
|
ConcreteCellPortBitIterator *portBitIterator() const;
|
||||||
bool isLeaf() const { return is_leaf_; }
|
bool isLeaf() const { return is_leaf_; }
|
||||||
void setIsLeaf(bool is_leaf);
|
void setIsLeaf(bool is_leaf);
|
||||||
void setAttribute(const char *key,
|
void setAttribute(const std::string &key,
|
||||||
const char *value);
|
const std::string &value);
|
||||||
const char *getAttribute(const char *key) const;
|
std::string getAttribute(const std::string &key) const;
|
||||||
|
|
||||||
// Cell acts as port factory.
|
// Cell acts as port factory.
|
||||||
ConcretePort *makePort(const char *name);
|
ConcretePort *makePort(const char *name);
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ class ConcreteBindingTbl;
|
||||||
class ConcreteLibertyLibraryIterator;
|
class ConcreteLibertyLibraryIterator;
|
||||||
|
|
||||||
typedef Vector<ConcreteLibrary*> ConcreteLibrarySeq;
|
typedef Vector<ConcreteLibrary*> ConcreteLibrarySeq;
|
||||||
typedef Map<std::string, const char*> AttributeMap;
|
typedef Map<std::string, std::string> AttributeMap;
|
||||||
typedef Map<const char*, ConcreteLibrary*, CharPtrLess> ConcreteLibraryMap;
|
typedef Map<const char*, ConcreteLibrary*, CharPtrLess> ConcreteLibraryMap;
|
||||||
typedef ConcreteLibrarySeq::ConstIterator ConcreteLibraryIterator;
|
typedef ConcreteLibrarySeq::ConstIterator ConcreteLibraryIterator;
|
||||||
typedef Map<const char *, ConcreteInstance*,
|
typedef Map<const char *, ConcreteInstance*,
|
||||||
|
|
@ -75,8 +75,8 @@ public:
|
||||||
const PatternMatch *pattern) const override;
|
const PatternMatch *pattern) const override;
|
||||||
|
|
||||||
const char *name(const Cell *cell) const override;
|
const char *name(const Cell *cell) const override;
|
||||||
const char *getAttribute(const Cell *cell,
|
std::string getAttribute(const Cell *cell,
|
||||||
const char *key) const override;
|
const std::string &key) const override;
|
||||||
ObjectId id(const Cell *cell) const override;
|
ObjectId id(const Cell *cell) const override;
|
||||||
Library *library(const Cell *cell) const override;
|
Library *library(const Cell *cell) const override;
|
||||||
LibertyCell *libertyCell(Cell *cell) const override;
|
LibertyCell *libertyCell(Cell *cell) const override;
|
||||||
|
|
@ -111,8 +111,8 @@ public:
|
||||||
PortMemberIterator *memberIterator(const Port *port) const override;
|
PortMemberIterator *memberIterator(const Port *port) const override;
|
||||||
|
|
||||||
const char *name(const Instance *instance) const override;
|
const char *name(const Instance *instance) const override;
|
||||||
const char *getAttribute(const Instance *inst,
|
std::string getAttribute(const Instance *inst,
|
||||||
const char *key) const override;
|
const std::string &key) const override;
|
||||||
ObjectId id(const Instance *instance) const override;
|
ObjectId id(const Instance *instance) const override;
|
||||||
Cell *cell(const Instance *instance) const override;
|
Cell *cell(const Instance *instance) const override;
|
||||||
Instance *parent(const Instance *instance) const override;
|
Instance *parent(const Instance *instance) const override;
|
||||||
|
|
@ -181,8 +181,8 @@ public:
|
||||||
void setIsLeaf(Cell *cell,
|
void setIsLeaf(Cell *cell,
|
||||||
bool is_leaf) override;
|
bool is_leaf) override;
|
||||||
void setAttribute(Cell *cell,
|
void setAttribute(Cell *cell,
|
||||||
const char *key,
|
const std::string &key,
|
||||||
const char *value) override;
|
const std::string &value) override;
|
||||||
Port *makePort(Cell *cell,
|
Port *makePort(Cell *cell,
|
||||||
const char *name) override;
|
const char *name) override;
|
||||||
Port *makeBusPort(Cell *cell,
|
Port *makeBusPort(Cell *cell,
|
||||||
|
|
@ -215,8 +215,8 @@ public:
|
||||||
LibertyPort *port,
|
LibertyPort *port,
|
||||||
Net *net) override;
|
Net *net) override;
|
||||||
void setAttribute(Instance *inst,
|
void setAttribute(Instance *inst,
|
||||||
const char *key,
|
const std::string &key,
|
||||||
const char *value) override;
|
const std::string &value) override;
|
||||||
void disconnectPin(Pin *pin) override;
|
void disconnectPin(Pin *pin) override;
|
||||||
void deletePin(Pin *pin) override;
|
void deletePin(Pin *pin) override;
|
||||||
Net *makeNet(const char *name,
|
Net *makeNet(const char *name,
|
||||||
|
|
@ -296,9 +296,9 @@ public:
|
||||||
InstanceNetIterator *netIterator() const;
|
InstanceNetIterator *netIterator() const;
|
||||||
Instance *findChild(const char *name) const;
|
Instance *findChild(const char *name) const;
|
||||||
InstanceChildIterator *childIterator() const;
|
InstanceChildIterator *childIterator() const;
|
||||||
void setAttribute(const char *key,
|
void setAttribute(const std::string &key,
|
||||||
const char *value);
|
const std::string &value);
|
||||||
const char *getAttribute(const char *key) const;
|
std::string getAttribute(const std::string &key) const;
|
||||||
void addChild(ConcreteInstance *child);
|
void addChild(ConcreteInstance *child);
|
||||||
void deleteChild(ConcreteInstance *child);
|
void deleteChild(ConcreteInstance *child);
|
||||||
void addPin(ConcretePin *pin);
|
void addPin(ConcretePin *pin);
|
||||||
|
|
|
||||||
|
|
@ -145,8 +145,8 @@ public:
|
||||||
// Filename may return null.
|
// Filename may return null.
|
||||||
virtual const char *filename(const Cell *cell) = 0;
|
virtual const char *filename(const Cell *cell) = 0;
|
||||||
// Attributes can be null
|
// Attributes can be null
|
||||||
virtual const char *getAttribute(const Cell *cell,
|
virtual std::string getAttribute(const Cell *cell,
|
||||||
const char *key) const = 0;
|
const std::string &key) const = 0;
|
||||||
// Name can be a simple, bundle, bus, or bus bit name.
|
// Name can be a simple, bundle, bus, or bus bit name.
|
||||||
virtual Port *findPort(const Cell *cell,
|
virtual Port *findPort(const Cell *cell,
|
||||||
const char *name) const = 0;
|
const char *name) const = 0;
|
||||||
|
|
@ -209,8 +209,8 @@ public:
|
||||||
const PatternMatch *pattern) const;
|
const PatternMatch *pattern) const;
|
||||||
virtual InstanceSeq findInstancesHierMatching(const Instance *instance,
|
virtual InstanceSeq findInstancesHierMatching(const Instance *instance,
|
||||||
const PatternMatch *pattern) const;
|
const PatternMatch *pattern) const;
|
||||||
virtual const char *getAttribute(const Instance *inst,
|
virtual std::string getAttribute(const Instance *inst,
|
||||||
const char *key) const = 0;
|
const std::string &key) const = 0;
|
||||||
// Hierarchical path name.
|
// Hierarchical path name.
|
||||||
virtual const char *pathName(const Instance *instance) const;
|
virtual const char *pathName(const Instance *instance) const;
|
||||||
bool pathNameLess(const Instance *inst1,
|
bool pathNameLess(const Instance *inst1,
|
||||||
|
|
@ -550,11 +550,11 @@ public:
|
||||||
virtual void setIsLeaf(Cell *cell,
|
virtual void setIsLeaf(Cell *cell,
|
||||||
bool is_leaf) = 0;
|
bool is_leaf) = 0;
|
||||||
virtual void setAttribute(Cell *cell,
|
virtual void setAttribute(Cell *cell,
|
||||||
const char *key,
|
const std::string &key,
|
||||||
const char *value) = 0;
|
const std::string &value) = 0;
|
||||||
virtual void setAttribute(Instance *instance,
|
virtual void setAttribute(Instance *instance,
|
||||||
const char *key,
|
const std::string &key,
|
||||||
const char *value) = 0;
|
const std::string &value) = 0;
|
||||||
virtual Port *makePort(Cell *cell,
|
virtual Port *makePort(Cell *cell,
|
||||||
const char *name) = 0;
|
const char *name) = 0;
|
||||||
virtual Port *makeBusPort(Cell *cell,
|
virtual Port *makeBusPort(Cell *cell,
|
||||||
|
|
|
||||||
|
|
@ -45,8 +45,8 @@ public:
|
||||||
const PatternMatch *pattern) const override;
|
const PatternMatch *pattern) const override;
|
||||||
|
|
||||||
const char *name(const Cell *cell) const override;
|
const char *name(const Cell *cell) const override;
|
||||||
const char *getAttribute(const Cell *cell,
|
std::string getAttribute(const Cell *cell,
|
||||||
const char* key) const override;
|
const std::string &key) const override;
|
||||||
ObjectId id(const Cell *cell) const override;
|
ObjectId id(const Cell *cell) const override;
|
||||||
Library *library(const Cell *cell) const override;
|
Library *library(const Cell *cell) const override;
|
||||||
LibertyCell *libertyCell(Cell *cell) const override;
|
LibertyCell *libertyCell(Cell *cell) const override;
|
||||||
|
|
@ -82,8 +82,8 @@ public:
|
||||||
bool hasMembers(const Port *port) const override;
|
bool hasMembers(const Port *port) const override;
|
||||||
|
|
||||||
ObjectId id(const Instance *instance) const override;
|
ObjectId id(const Instance *instance) const override;
|
||||||
const char *getAttribute(const Instance *inst,
|
std::string getAttribute(const Instance *inst,
|
||||||
const char* key) const override;
|
const std::string &key) const override;
|
||||||
Instance *topInstance() const override;
|
Instance *topInstance() const override;
|
||||||
Cell *cell(const Instance *instance) const override;
|
Cell *cell(const Instance *instance) const override;
|
||||||
Instance *parent(const Instance *instance) const override;
|
Instance *parent(const Instance *instance) const override;
|
||||||
|
|
|
||||||
|
|
@ -140,7 +140,6 @@ ConcreteCell::~ConcreteCell()
|
||||||
if (filename_)
|
if (filename_)
|
||||||
stringDelete(filename_);
|
stringDelete(filename_);
|
||||||
ports_.deleteContents();
|
ports_.deleteContents();
|
||||||
attribute_map_.deleteArrayContents();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -270,14 +269,14 @@ ConcreteCell::setIsLeaf(bool is_leaf)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ConcreteCell::setAttribute(const char* key,
|
ConcreteCell::setAttribute(const std::string &key,
|
||||||
const char* value)
|
const std::string &value)
|
||||||
{
|
{
|
||||||
attribute_map_.insert(key, stringCopy(value));
|
attribute_map_.insert(key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *
|
std::string
|
||||||
ConcreteCell::getAttribute(const char* key) const
|
ConcreteCell::getAttribute(const std::string &key) const
|
||||||
{
|
{
|
||||||
return attribute_map_.findKey(key);
|
return attribute_map_.findKey(key);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -559,8 +559,8 @@ ConcreteNetwork::setIsLeaf(Cell *cell,
|
||||||
|
|
||||||
void
|
void
|
||||||
ConcreteNetwork::setAttribute(Cell *cell,
|
ConcreteNetwork::setAttribute(Cell *cell,
|
||||||
const char *key,
|
const std::string &key,
|
||||||
const char *value)
|
const std::string &value)
|
||||||
{
|
{
|
||||||
ConcreteCell *ccell = reinterpret_cast<ConcreteCell*>(cell);
|
ConcreteCell *ccell = reinterpret_cast<ConcreteCell*>(cell);
|
||||||
ccell->setAttribute(key, value);
|
ccell->setAttribute(key, value);
|
||||||
|
|
@ -606,9 +606,9 @@ ConcreteNetwork::filename(const Cell *cell)
|
||||||
return ccell->filename();
|
return ccell->filename();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *
|
std::string
|
||||||
ConcreteNetwork::getAttribute(const Cell *cell,
|
ConcreteNetwork::getAttribute(const Cell *cell,
|
||||||
const char *key) const
|
const std::string &key) const
|
||||||
{
|
{
|
||||||
const ConcreteCell *ccell = reinterpret_cast<const ConcreteCell*>(cell);
|
const ConcreteCell *ccell = reinterpret_cast<const ConcreteCell*>(cell);
|
||||||
return ccell->getAttribute(key);
|
return ccell->getAttribute(key);
|
||||||
|
|
@ -938,9 +938,9 @@ ConcreteNetwork::id(const Instance *instance) const
|
||||||
return inst->id();
|
return inst->id();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *
|
std::string
|
||||||
ConcreteNetwork::getAttribute(const Instance *inst,
|
ConcreteNetwork::getAttribute(const Instance *inst,
|
||||||
const char *key) const
|
const std::string &key) const
|
||||||
{
|
{
|
||||||
const ConcreteInstance *cinst = reinterpret_cast<const ConcreteInstance*>(inst);
|
const ConcreteInstance *cinst = reinterpret_cast<const ConcreteInstance*>(inst);
|
||||||
return cinst->getAttribute(key);
|
return cinst->getAttribute(key);
|
||||||
|
|
@ -1352,8 +1352,8 @@ ConcreteNetwork::connect(Instance *inst,
|
||||||
|
|
||||||
void
|
void
|
||||||
ConcreteNetwork::setAttribute(Instance *inst,
|
ConcreteNetwork::setAttribute(Instance *inst,
|
||||||
const char *key,
|
const std::string &key,
|
||||||
const char *value)
|
const std::string &value)
|
||||||
{
|
{
|
||||||
ConcreteInstance *cinst = reinterpret_cast<ConcreteInstance*>(inst);
|
ConcreteInstance *cinst = reinterpret_cast<ConcreteInstance*>(inst);
|
||||||
cinst->setAttribute(key, value);
|
cinst->setAttribute(key, value);
|
||||||
|
|
@ -1598,7 +1598,6 @@ ConcreteInstance::~ConcreteInstance()
|
||||||
stringDelete(name_);
|
stringDelete(name_);
|
||||||
delete children_;
|
delete children_;
|
||||||
delete nets_;
|
delete nets_;
|
||||||
attribute_map_.deleteArrayContents();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Instance *
|
Instance *
|
||||||
|
|
@ -1684,14 +1683,14 @@ ConcreteInstance::childIterator() const
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ConcreteInstance::setAttribute(const char *key,
|
ConcreteInstance::setAttribute(const std::string &key,
|
||||||
const char *value)
|
const std::string &value)
|
||||||
{
|
{
|
||||||
attribute_map_.insert(key, stringCopy(value));
|
attribute_map_.insert(key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *
|
std::string
|
||||||
ConcreteInstance::getAttribute(const char *key) const
|
ConcreteInstance::getAttribute(const std::string &key) const
|
||||||
{
|
{
|
||||||
return attribute_map_.findKey(key);
|
return attribute_map_.findKey(key);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -122,9 +122,9 @@ NetworkNameAdapter::id(const Cell *cell) const
|
||||||
return network_->id(cell);
|
return network_->id(cell);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *
|
std::string
|
||||||
NetworkNameAdapter::getAttribute(const Cell *cell,
|
NetworkNameAdapter::getAttribute(const Cell *cell,
|
||||||
const char *key) const
|
const std::string &key) const
|
||||||
{
|
{
|
||||||
return network_->getAttribute(cell, key);
|
return network_->getAttribute(cell, key);
|
||||||
}
|
}
|
||||||
|
|
@ -334,8 +334,9 @@ NetworkNameAdapter::cell(const Instance *instance) const
|
||||||
return network_->cell(instance);
|
return network_->cell(instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *
|
std::string
|
||||||
NetworkNameAdapter::getAttribute(const Instance *inst, const char *key) const
|
NetworkNameAdapter::getAttribute(const Instance *inst,
|
||||||
|
const std::string &key) const
|
||||||
{
|
{
|
||||||
return network_->getAttribute(inst, key);
|
return network_->getAttribute(inst, key);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4186,7 +4186,7 @@ LibertyCell *liberty_cell() { return cmdNetwork()->libertyCell(self); }
|
||||||
bool is_leaf() { return cmdNetwork()->isLeaf(self); }
|
bool is_leaf() { return cmdNetwork()->isLeaf(self); }
|
||||||
CellPortIterator *
|
CellPortIterator *
|
||||||
port_iterator() { return cmdNetwork()->portIterator(self); }
|
port_iterator() { return cmdNetwork()->portIterator(self); }
|
||||||
const char *get_attribute(const char *key) { return cmdNetwork()->getAttribute(self, key); }
|
string get_attribute(const char *key) { return cmdNetwork()->getAttribute(self, key); }
|
||||||
|
|
||||||
Port *
|
Port *
|
||||||
find_port(const char *name)
|
find_port(const char *name)
|
||||||
|
|
|
||||||
|
|
@ -1739,27 +1739,21 @@ VerilogNetPortRefPart::name() const
|
||||||
return name_;
|
return name_;
|
||||||
}
|
}
|
||||||
|
|
||||||
VerilogAttributeEntry::VerilogAttributeEntry(const char *key,
|
VerilogAttributeEntry::VerilogAttributeEntry(std::string key,
|
||||||
const char * value) :
|
std::string value) :
|
||||||
key_(key),
|
key_(key),
|
||||||
value_(value)
|
value_(value)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
VerilogAttributeEntry::~VerilogAttributeEntry()
|
|
||||||
{
|
|
||||||
stringDelete(key_);
|
|
||||||
stringDelete(value_);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
std::string
|
||||||
const char *
|
|
||||||
VerilogAttributeEntry::key()
|
VerilogAttributeEntry::key()
|
||||||
{
|
{
|
||||||
return key_;
|
return key_;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *
|
std::string
|
||||||
VerilogAttributeEntry::value()
|
VerilogAttributeEntry::value()
|
||||||
{
|
{
|
||||||
return value_;
|
return value_;
|
||||||
|
|
|
||||||
|
|
@ -729,15 +729,15 @@ private:
|
||||||
class VerilogAttributeEntry
|
class VerilogAttributeEntry
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
VerilogAttributeEntry(const char *key,
|
VerilogAttributeEntry(std::string key,
|
||||||
const char *value);
|
std::string value);
|
||||||
virtual const char *key();
|
virtual std::string key();
|
||||||
virtual const char *value();
|
virtual std::string value();
|
||||||
virtual ~VerilogAttributeEntry();
|
virtual ~VerilogAttributeEntry() = default;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const char *key_;
|
std::string key_;
|
||||||
const char *value_;
|
std::string value_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue