StdStringSeq -> StringSeq

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2026-03-08 15:51:50 -07:00
parent 4f540792a0
commit 859982bdc7
36 changed files with 114 additions and 114 deletions

View File

@ -84,10 +84,10 @@ isDelayCalcName(const std::string &name)
return delay_calcs.contains(name);
}
StdStringSeq
StringSeq
delayCalcNames()
{
StdStringSeq names;
StringSeq names;
for (const auto &[name, make_dcalc] : delay_calcs)
names.push_back(name);
return names;

View File

@ -36,7 +36,7 @@
%inline %{
StdStringSeq
StringSeq
delay_calc_names()
{
return sta::delayCalcNames();

View File

@ -40,7 +40,7 @@ StaState::clk_network__ moved to Mode
StaState::parasitics_ moved to Scene
Sta::findPathEnds group_paths arg has been changed from PathGroupNameSet*
to StdStringSeq&.
to StringSeq&.
Sta::isClock has been removed. Use mode->clkNetwork()->isClock instead.

View File

@ -201,7 +201,7 @@ to remove paths through identical pins and rise/fall edges.
Instances now have pins for verilog netlist power/ground connections,
Sta::findPathEnds group_paths arg has been changed from PathGroupNameSet*
to StdStringSeq&.
to StringSeq&.
Release 2.6.1 2025/03/30
-------------------------

View File

@ -229,12 +229,12 @@ arc_delays(TimingArc *arc)
return delays;
}
StdStringSeq
StringSeq
arc_delay_strings(TimingArc *arc,
int digits)
{
Sta *sta = Sta::sta();
StdStringSeq delays;
StringSeq delays;
DcalcAPIndex ap_count = sta->dcalcAnalysisPtCount();
for (DcalcAPIndex ap_index = 0; ap_index < ap_count; ap_index++)
delays.push_back(delayAsString(sta->arcDelay(self, arc, ap_index),

View File

@ -44,7 +44,7 @@ registerDelayCalc(const std::string &name,
MakeArcDelayCalc maker);
bool
isDelayCalcName(const std::string &name);
StdStringSeq
StringSeq
delayCalcNames();
void
deleteDelayCalcs();

View File

@ -71,7 +71,7 @@ public:
bool unique_edges,
float min_slack,
float max_slack,
StdStringSeq &group_names,
StringSeq &group_names,
bool setup,
bool hold,
bool recovery,

View File

@ -120,7 +120,7 @@ public:
bool unique_edges,
float slack_min,
float slack_max,
StdStringSeq &group_names,
StringSeq &group_names,
bool setup,
bool hold,
bool recovery,
@ -144,7 +144,7 @@ public:
PathGroup *findPathGroup(const Clock *clock,
const MinMax *min_max) const;
PathGroupSeq pathGroups(const PathEnd *path_end) const;
static StdStringSeq pathGroupNames(const PathEnd *path_end,
static StringSeq pathGroupNames(const PathEnd *path_end,
const StaState *sta);
static const char *asyncPathGroupName() { return async_group_name_; }
static const char *pathDelayGroupName() { return path_delay_group_name_; }
@ -194,7 +194,7 @@ protected:
StdStringSet &group_names) const;
static GroupPath *groupPathTo(const PathEnd *path_end,
const StaState *sta);
StdStringSeq pathGroupNames();
StringSeq pathGroupNames();
const Mode *mode_;
int group_path_count_;

View File

@ -107,7 +107,7 @@ public:
float slack_min,
float slack_max,
bool sort_by_slack,
StdStringSeq &group_names,
StringSeq &group_names,
bool setup,
bool hold,
bool recovery,

View File

@ -78,7 +78,7 @@ class GraphLoop;
using ModeNameMap = std::map<std::string, Mode*>;
using SceneNameMap = std::map<std::string, Scene*>;
using SlowDrvrIterator = Iterator<Instance*>;
using CheckError = StdStringSeq;
using CheckError = StringSeq;
using CheckErrorSeq = std::vector<CheckError*>;
enum class CmdNamespace { sta, sdc };
using ParasiticsNameMap = std::map<std::string, Parasitics*>;
@ -125,11 +125,11 @@ public:
void setThreadCount(int thread_count);
// define_corners compatibility.
void makeScenes(const StdStringSeq &scene_names);
void makeScenes(const StringSeq &scene_names);
void makeScene(const std::string &name,
const std::string &mode_name,
const StdStringSeq &liberty_min_files,
const StdStringSeq &liberty_max_files,
const StringSeq &liberty_min_files,
const StringSeq &liberty_max_files,
const std::string &spef_min_file,
const std::string &spef_max_file);
Scene *findScene(const std::string &name) const;
@ -652,7 +652,7 @@ public:
const Sdc *sdc) __attribute__ ((deprecated));
bool isPathGroupName(const char *group_name,
const Sdc *sdc) const;
StdStringSeq pathGroupNames(const Sdc *sdc) const;
StringSeq pathGroupNames(const Sdc *sdc) const;
void resetPath(ExceptionFrom *from,
ExceptionThruSeq *thrus,
ExceptionTo *to,
@ -965,7 +965,7 @@ public:
bool sort_by_slack,
// Path groups to report.
// Empty list reports all groups.
StdStringSeq &group_names,
StringSeq &group_names,
// Predicates to filter the type of path
// ends returned.
bool setup,
@ -975,7 +975,7 @@ public:
bool clk_gating_setup,
bool clk_gating_hold);
void setReportPathFormat(ReportPathFormat format);
void setReportPathFieldOrder(const StdStringSeq &field_names);
void setReportPathFieldOrder(const StringSeq &field_names);
void setReportPathFields(bool report_input_pin,
bool report_hier_pins,
bool report_net,
@ -1582,8 +1582,8 @@ protected:
void setThreadCount1(int thread_count);
void updateLibertyScenes();
void updateSceneLiberty(Scene *scene,
const StdStringSeq &liberty_min_files,
const StdStringSeq &liberty_max_files);
const StringSeq &liberty_min_files,
const StringSeq &liberty_max_files);
Scene *makeScene(const std::string &name,
Mode *mode,

View File

@ -34,7 +34,7 @@
namespace sta {
using StdStringSeq = std::vector<std::string>;
using StringSeq = std::vector<std::string>;
using StdStringSet = std::set<std::string>;
inline bool
@ -206,7 +206,7 @@ void
trimRight(std::string &str);
// Spit text into delimiter separated tokens and skip whitepace.
StdStringSeq
StringSeq
parseTokens(const std::string &s,
const char delimiter);

View File

@ -33,10 +33,10 @@ namespace sta {
typedef int Tcl_Size;
#endif
StdStringSeq
StringSeq
tclListSeqStdString(Tcl_Obj *const source,
Tcl_Interp *interp);
StdStringSeq *
StringSeq *
tclListSeqStdStringPtr(Tcl_Obj *const source,
Tcl_Interp *interp);
StdStringSet *

View File

@ -1894,8 +1894,8 @@ LibertyReader::makeTimingArcs(LibertyCell *cell,
LibertyPort *related_output_port = findLibertyPort(cell, timing_group,
"related_output_pin");
StdStringSeq related_port_names = findAttributStrings(timing_group, "related_pin");
StdStringSeq related_bus_names=findAttributStrings(timing_group,"related_bus_pins");
StringSeq related_port_names = findAttributStrings(timing_group, "related_pin");
StringSeq related_bus_names=findAttributStrings(timing_group,"related_bus_pins");
TimingType timing_type = timing_attrs->timingType();
for (LibertyPort *to_port : ports) {
@ -2743,7 +2743,7 @@ LibertyReader::findLibertyPort(LibertyCell *cell,
return nullptr;
}
StdStringSeq
StringSeq
LibertyReader::findAttributStrings(const LibertyGroup *group,
const char *name_attr)
{
@ -2754,7 +2754,7 @@ LibertyReader::findAttributStrings(const LibertyGroup *group,
return parseTokens(*strings, ' ');
}
}
return StdStringSeq();
return StringSeq();
}
LibertyPortSeq
@ -2763,7 +2763,7 @@ LibertyReader::findLibertyPorts(LibertyCell *cell,
const char *port_name_attr)
{
LibertyPortSeq ports;
StdStringSeq port_names = findAttributStrings(group, port_name_attr);
StringSeq port_names = findAttributStrings(group, port_name_attr);
for (const std::string &port_name : port_names) {
LibertyPort *port = findPort(cell, port_name.c_str());
if (port)
@ -2915,40 +2915,40 @@ LibertyReader::readStatetable(LibertyCell *cell,
const char *input_ports_arg = statetable_group->firstName();
const char *internal_ports_arg = statetable_group->params().size() >= 2
? statetable_group->secondName() : nullptr;
StdStringSeq input_ports;
StringSeq input_ports;
if (input_ports_arg)
input_ports = parseTokens(input_ports_arg, ' ');
StdStringSeq internal_ports;
StringSeq internal_ports;
if (internal_ports_arg)
internal_ports = parseTokens(internal_ports_arg, ' ');
const LibertySimpleAttr *table_attr = statetable_group->findSimpleAttr("table");
if (table_attr) {
const std::string *table_str = table_attr->stringValue();
StdStringSeq table_rows = parseTokens(table_str->c_str(), ',');
StringSeq table_rows = parseTokens(table_str->c_str(), ',');
size_t input_count = input_ports.size();
size_t internal_count = internal_ports.size();
StatetableRows table;
for (const std::string &row : table_rows) {
const StdStringSeq row_groups = parseTokens(row, ':');
const StringSeq row_groups = parseTokens(row, ':');
if (row_groups.size() != 3) {
libWarn(1300, table_attr, "table row must have 3 groups separated by ':'.");
break;
}
StdStringSeq inputs = parseTokens(row_groups[0], ' ');
StringSeq inputs = parseTokens(row_groups[0], ' ');
if (inputs.size() != input_count) {
libWarn(1301,table_attr,"table row has %zu input values but %zu are required.",
inputs.size(), input_count);
break;
}
StdStringSeq currents = parseTokens(row_groups[1], ' ');
StringSeq currents = parseTokens(row_groups[1], ' ');
if (currents.size() != internal_count) {
libWarn(1302,table_attr,
"table row has %zu current values but %zu are required.",
currents.size(), internal_count);
break;
}
StdStringSeq nexts = parseTokens(row_groups[2], ' ');
StringSeq nexts = parseTokens(row_groups[2], ' ');
if (nexts.size() != internal_count) {
libWarn(1303, table_attr, "table row has %zu next values but %zu are required.",
nexts.size(), internal_count);
@ -3087,7 +3087,7 @@ static EnumNameMap<StateInternalValue> state_internal_value_name_map =
};
StateInputValues
LibertyReader::parseStateInputValues(StdStringSeq &inputs,
LibertyReader::parseStateInputValues(StringSeq &inputs,
const LibertySimpleAttr *attr)
{
StateInputValues input_values;
@ -3106,7 +3106,7 @@ LibertyReader::parseStateInputValues(StdStringSeq &inputs,
}
StateInternalValues
LibertyReader::parseStateInternalValues(StdStringSeq &states,
LibertyReader::parseStateInternalValues(StringSeq &states,
const LibertySimpleAttr *attr)
{
StateInternalValues state_values;

View File

@ -101,7 +101,7 @@ public:
LibertyPort *findPort(LibertyCell *cell,
const char *port_name);
StdStringSeq findAttributStrings(const LibertyGroup *group,
StringSeq findAttributStrings(const LibertyGroup *group,
const char *name_attr);
protected:
@ -402,9 +402,9 @@ protected:
float defaultCap(LibertyPort *port);
void visitPorts(std::function<void (LibertyPort *port)> func);
StateInputValues parseStateInputValues(StdStringSeq &inputs,
StateInputValues parseStateInputValues(StringSeq &inputs,
const LibertySimpleAttr *attr);
StateInternalValues parseStateInternalValues(StdStringSeq &states,
StateInternalValues parseStateInternalValues(StringSeq &states,
const LibertySimpleAttr *attr);
void getAttrInt(const LibertySimpleAttr *attr,

View File

@ -62,7 +62,7 @@ sta::SpefParse::error(const location_type &loc,
char *string;
int integer;
float number;
sta::StdStringSeq *std_string_seq;
sta::StringSeq *std_string_seq;
sta::PortDirection *port_dir;
sta::SpefRspfPi *pi;
sta::SpefTriple *triple;
@ -220,7 +220,7 @@ design_flow:
qstrings:
QSTRING
{ $$ = new sta::StdStringSeq;
{ $$ = new sta::StringSeq;
$$->push_back($1);
sta::stringDelete($1);
}

View File

@ -291,7 +291,7 @@ SpefReader::portDirection(char *spef_dir)
}
void
SpefReader::setDesignFlow(StdStringSeq *flow)
SpefReader::setDesignFlow(StringSeq *flow)
{
design_flow_ = std::move(*flow);
delete flow;

View File

@ -82,7 +82,7 @@ public:
void makeNameMapEntry(const char *index,
const char *name);
const char *nameMapLookup(const char *index);
void setDesignFlow(StdStringSeq *flow_keys);
void setDesignFlow(StringSeq *flow_keys);
Pin *findPin(char *name);
Net *findNet(const char *name);
void rspfBegin(Net *net,
@ -139,7 +139,7 @@ private:
float res_scale_;
float induct_scale_;
SpefNameMap name_map_;
StdStringSeq design_flow_;
StringSeq design_flow_;
Parasitics *parasitics_;
Parasitic *parasitic_;
};

View File

@ -1580,12 +1580,12 @@ filter_timing_arcs(const char *property,
////////////////////////////////////////////////////////////////
StdStringSeq
StringSeq
group_path_names()
{
Sta *sta = Sta::sta();
Sdc *sdc = sta->cmdSdc();
StdStringSeq pg_names;
StringSeq pg_names;
for (auto const& [name, group] : sdc->groupPaths())
pg_names.push_back(name);
return pg_names;

View File

@ -36,7 +36,7 @@ namespace sta {
class ClkNetwork;
using CheckError = StdStringSeq;
using CheckError = StringSeq;
using CheckErrorSeq = std::vector<CheckError*>;
class CheckTiming : public StaState

View File

@ -105,7 +105,7 @@ Mode::makePathGroups(int group_path_count,
bool unique_edges,
float slack_min,
float slack_max,
StdStringSeq &group_names,
StringSeq &group_names,
bool setup,
bool hold,
bool recovery,

View File

@ -258,7 +258,7 @@ PathGroups::PathGroups(int group_path_count,
bool unique_edges,
float slack_min,
float slack_max,
StdStringSeq &group_names,
StringSeq &group_names,
bool setup,
bool hold,
bool recovery,
@ -479,11 +479,11 @@ PathGroups::pathGroups(const PathEnd *path_end) const
}
// Mirrors PathGroups::pathGroup.
StdStringSeq
StringSeq
PathGroups::pathGroupNames(const PathEnd *path_end,
const StaState *sta)
{
StdStringSeq group_names;
StringSeq group_names;
const char *group_name = nullptr;
const Search *search = sta->search();
ExceptionPathSeq group_paths = search->groupPathsTo(path_end);
@ -576,14 +576,14 @@ PathGroups::pushEnds(PathEndSeq &path_ends)
}
}
StdStringSeq
StringSeq
PathGroups::pathGroupNames()
{
std::set<std::string> group_names1;
const Sdc *sdc = mode_->sdc();
for (const auto& [name, group] : sdc->groupPaths())
group_names1.insert(name);
StdStringSeq group_names2;
StringSeq group_names2;
for (const std::string &name : group_names1)
group_names2.push_back(name);
sort(group_names2);

View File

@ -211,7 +211,7 @@ ReportPath::findField(const char *name) const
}
void
ReportPath::setReportFieldOrder(const StdStringSeq &field_names)
ReportPath::setReportFieldOrder(const StringSeq &field_names)
{
// Disable all fields.
for (ReportField *field : fields_)

View File

@ -49,7 +49,7 @@ public:
virtual ~ReportPath();
ReportPathFormat pathFormat() const { return format_; }
void setPathFormat(ReportPathFormat format);
void setReportFieldOrder(const StdStringSeq &field_names);
void setReportFieldOrder(const StringSeq &field_names);
void setReportFields(bool report_input_pin,
bool report_hier_pins,
bool report_net,

View File

@ -504,7 +504,7 @@ Search::findPathEnds(ExceptionFrom *from,
float slack_min,
float slack_max,
bool sort_by_slack,
StdStringSeq &group_names,
StringSeq &group_names,
bool setup,
bool hold,
bool recovery,

View File

@ -242,7 +242,7 @@ endpoint_slack(const Pin *pin,
}
}
StdStringSeq
StringSeq
path_group_names()
{
Sta *sta = Sta::sta();
@ -359,7 +359,7 @@ find_path_ends(ExceptionFrom *from,
float slack_min,
float slack_max,
bool sort_by_slack,
StdStringSeq path_groups,
StringSeq path_groups,
bool setup,
bool hold,
bool recovery,
@ -395,7 +395,7 @@ set_report_path_format(ReportPathFormat format)
}
void
set_report_path_field_order(const StdStringSeq &field_names)
set_report_path_field_order(const StringSeq &field_names)
{
Sta::sta()->setReportPathFieldOrder(field_names);
}
@ -740,8 +740,8 @@ write_timing_model_cmd(const char *lib_name,
void
define_scene_cmd(const char *name,
const char *mode_name,
const StdStringSeq liberty_min_files,
const StdStringSeq liberty_max_files,
const StringSeq liberty_min_files,
const StringSeq liberty_max_files,
const char *spef_min_file,
const char *spef_max_file)
{
@ -752,7 +752,7 @@ define_scene_cmd(const char *name,
}
void
define_scenes_cmd(const StdStringSeq &scene_names)
define_scenes_cmd(const StringSeq &scene_names)
{
Sta *sta = Sta::sta();
sta->makeScenes(scene_names);

View File

@ -2075,10 +2075,10 @@ Sta::isPathGroupName(const char *group_name,
|| stringEq(group_name, PathGroups::unconstrainedGroupName());
}
StdStringSeq
StringSeq
Sta::pathGroupNames(const Sdc *sdc) const
{
StdStringSeq names;
StringSeq names;
for (const Clock *clk : sdc->clocks())
names.push_back(clk->name());
@ -2450,7 +2450,7 @@ void
Sta::makeDefaultScene()
{
const char *name = "default";
StdStringSeq scene_names;
StringSeq scene_names;
scene_names.push_back(name);
Parasitics *parasitics = makeConcreteParasitics(name, "");
@ -2468,7 +2468,7 @@ Sta::makeDefaultScene()
// define_corners (before read_liberty).
void
Sta::makeScenes(const StdStringSeq &scene_names)
Sta::makeScenes(const StringSeq &scene_names)
{
if (scene_names.size() > scene_count_max)
report_->error(1553, "maximum scene count exceeded");
@ -2490,8 +2490,8 @@ Sta::makeScenes(const StdStringSeq &scene_names)
void
Sta::makeScene(const std::string &name,
const std::string &mode_name,
const StdStringSeq &liberty_min_files,
const StdStringSeq &liberty_max_files,
const StringSeq &liberty_min_files,
const StringSeq &liberty_max_files,
const std::string &spef_min_file,
const std::string &spef_max_file)
{
@ -2598,12 +2598,12 @@ Sta::findScenes(const std::string &name,
void
Sta::updateSceneLiberty(Scene *scene,
const StdStringSeq &liberty_min_files,
const StdStringSeq &liberty_max_files)
const StringSeq &liberty_min_files,
const StringSeq &liberty_max_files)
{
StdStringSet warned_files;
for (const MinMax *min_max : MinMax::range()) {
const StdStringSeq &liberty_files = min_max == MinMax::min()
const StringSeq &liberty_files = min_max == MinMax::min()
? liberty_min_files
: liberty_max_files;
for (const std::string &lib_file : liberty_files) {
@ -2678,7 +2678,7 @@ Sta::findPathEnds(ExceptionFrom *from,
float slack_min,
float slack_max,
bool sort_by_slack,
StdStringSeq &group_names,
StringSeq &group_names,
bool setup,
bool hold,
bool recovery,
@ -2729,7 +2729,7 @@ Sta::setReportPathFormat(ReportPathFormat format)
}
void
Sta::setReportPathFieldOrder(const StdStringSeq &field_names)
Sta::setReportPathFieldOrder(const StringSeq &field_names)
{
report_path_->setReportFieldOrder(field_names);
}
@ -3214,7 +3214,7 @@ void
EndpointPathEndVisitor::visit(PathEnd *path_end)
{
if (path_end->minMax(sta_) == min_max_) {
StdStringSeq group_names = PathGroups::pathGroupNames(path_end, sta_);
StringSeq group_names = PathGroups::pathGroupNames(path_end, sta_);
for (std::string &group_name : group_names) {
if (group_name == path_group_name_) {
Slack end_slack = path_end->slack(sta_);

View File

@ -227,7 +227,7 @@ WritePathSpice::writeHeader()
void
WritePathSpice::writePrintStmt()
{
StdStringSeq node_names;
StringSeq node_names;
for (Stage stage = stageFirst(); stage <= stageLast(); stage++) {
node_names.push_back(stageDrvrPinName(stage));
node_names.push_back(stageLoadPinName(stage));

View File

@ -151,7 +151,7 @@ WriteSpice::writeHeader(std::string &title,
}
void
WriteSpice::writePrintStmt(StdStringSeq &node_names)
WriteSpice::writePrintStmt(StringSeq &node_names)
{
streamPrint(spice_stream_, ".print tran");
if (ckt_sim_ == CircuitSim::xyce) {
@ -176,7 +176,7 @@ WriteSpice::replaceFileExt(std::string filename,
// Write gnuplot command file for use with xyce csv file.
void
WriteSpice::writeGnuplotFile(StdStringSeq &node_nanes)
WriteSpice::writeGnuplotFile(StringSeq &node_nanes)
{
std::string gnuplot_filename = replaceFileExt(spice_filename_, "gnuplot");
std::string csv_filename = replaceFileExt(spice_filename_, "csv");
@ -209,7 +209,7 @@ WriteSpice::writeSubckts(StdStringSet &cell_names)
std::string line;
while (std::getline(lib_subckts_stream, line)) {
// .subckt <cell_name> [args..]
StdStringSeq tokens = parseTokens(line, ' ');
StringSeq tokens = parseTokens(line, ' ');
if (tokens.size() >= 2
&& stringEqual(tokens[0].c_str(), ".subckt")) {
const char *cell_name = tokens[1].c_str();
@ -256,11 +256,11 @@ WriteSpice::writeSubckts(StdStringSet &cell_names)
void
WriteSpice::recordSpicePortNames(const char *cell_name,
StdStringSeq &tokens)
StringSeq &tokens)
{
LibertyCell *cell = network_->findLibertyCell(cell_name);
if (cell) {
StdStringSeq &spice_port_names = cell_spice_port_names_[cell_name];
StringSeq &spice_port_names = cell_spice_port_names_[cell_name];
for (size_t i = 2; i < tokens.size(); i++) {
const char *port_name = tokens[i].c_str();
LibertyPort *port = cell->findLibertyPort(port_name);
@ -285,7 +285,7 @@ WriteSpice::findCellSubckts(StdStringSet &cell_names)
std::string line;
while (std::getline(lib_subckts_stream, line)) {
// .subckt <cell_name> [args..]
StdStringSeq tokens = parseTokens(line, ' ');
StringSeq tokens = parseTokens(line, ' ');
if (tokens.size() >= 2
&& stringEqual(tokens[0].c_str(), ".subckt")) {
const char *cell_name = tokens[1].c_str();
@ -298,7 +298,7 @@ WriteSpice::findCellSubckts(StdStringSet &cell_names)
else {
// Process previous statement.
if (tolower(stmt[0]) == 'x') {
StdStringSeq tokens = parseTokens(line, ' ');
StringSeq tokens = parseTokens(line, ' ');
std::string &subckt_cell = tokens[tokens.size() - 1];
cell_names.insert(subckt_cell);
}
@ -323,7 +323,7 @@ WriteSpice::writeSubcktInst(const Instance *inst)
const char *inst_name = network_->pathName(inst);
LibertyCell *cell = network_->libertyCell(inst);
const char *cell_name = cell->name();
StdStringSeq &spice_port_names = cell_spice_port_names_[cell_name];
StringSeq &spice_port_names = cell_spice_port_names_[cell_name];
streamPrint(spice_stream_, "x%s", inst_name);
for (std::string subckt_port_name : spice_port_names) {
const char *subckt_port_cname = subckt_port_name.c_str();
@ -351,7 +351,7 @@ WriteSpice::writeSubcktInstVoltSrcs(const Instance *inst,
{
LibertyCell *cell = network_->libertyCell(inst);
const char *cell_name = cell->name();
StdStringSeq &spice_port_names = cell_spice_port_names_[cell_name];
StringSeq &spice_port_names = cell_spice_port_names_[cell_name];
const char *inst_name = network_->pathName(inst);
debugPrint(debug_, "write_spice", 2, "subckt %s", cell->name());

View File

@ -40,7 +40,7 @@
namespace sta {
using ParasiticNodeMap = std::map<const ParasiticNode*, int>;
using CellSpicePortNames = std::map<std::string, StdStringSeq>;
using CellSpicePortNames = std::map<std::string, StringSeq>;
using LibertyPortLogicValues = std::map<const LibertyPort*, LogicValue>;
// Utilities for writing a spice deck.
@ -63,12 +63,12 @@ protected:
void writeHeader(std::string &title,
float max_time,
float time_step);
void writePrintStmt(StdStringSeq &node_names);
void writeGnuplotFile(StdStringSeq &node_nanes);
void writePrintStmt(StringSeq &node_names);
void writeGnuplotFile(StringSeq &node_nanes);
void writeSubckts(StdStringSet &cell_names);
void findCellSubckts(StdStringSet &cell_names);
void recordSpicePortNames(const char *cell_name,
StdStringSeq &tokens);
StringSeq &tokens);
void writeSubcktInst(const Instance *inst);
void writeSubcktInstVoltSrcs(const Instance *inst,
LibertyPortLogicValues &port_values,

View File

@ -37,7 +37,7 @@ namespace sta {
void
readXyceCsv(const char *csv_filename,
// Return values.
StdStringSeq &titles,
StringSeq &titles,
WaveformSeq &waveforms)
{
std::ifstream file(csv_filename);

View File

@ -37,7 +37,7 @@ using WaveformSeq = std::vector<Table>;
void
readXyceCsv(const char *csv_filename,
// Return values.
StdStringSeq &titles,
StringSeq &titles,
WaveformSeq &waveforms);
} // namespace

View File

@ -294,16 +294,16 @@ using namespace sta;
$1 = tclListSetStdString($input, interp);
}
%typemap(in) StdStringSeq {
%typemap(in) StringSeq {
$1 = tclListSeqStdString($input, interp);
}
%typemap(in) const StdStringSeq & (StdStringSeq seq) {
%typemap(in) const StringSeq & (StringSeq seq) {
seq = tclListSeqStdString($input, interp);
$1 = &seq;
}
%typemap(in) StdStringSeq* {
%typemap(in) StringSeq* {
$1 = tclListSeqStdStringPtr($input, interp);
}
@ -311,12 +311,12 @@ using namespace sta;
$1 = tclListSetStdString($input, interp);
}
%typemap(in) StdStringSeq {
%typemap(in) StringSeq {
$1 = tclListSeqStdString($input, interp);
}
%typemap(out) StdStringSeq {
StdStringSeq &strs = $1;
%typemap(out) StringSeq {
StringSeq &strs = $1;
Tcl_Obj *list = Tcl_NewListObj(0, nullptr);
for (const std::string &str : strs) {
Tcl_Obj *obj = Tcl_NewStringObj(str.c_str(), str.size());

View File

@ -30,14 +30,14 @@
namespace sta {
StdStringSeq
StringSeq
tclListSeqStdString(Tcl_Obj *const source,
Tcl_Interp *interp)
{
Tcl_Size argc;
Tcl_Obj **argv;
StdStringSeq seq;
StringSeq seq;
if (Tcl_ListObjGetElements(interp, source, &argc, &argv) == TCL_OK) {
for (int i = 0; i < argc; i++) {
int length;
@ -48,7 +48,7 @@ tclListSeqStdString(Tcl_Obj *const source,
return seq;
}
StdStringSeq *
StringSeq *
tclListSeqStdStringPtr(Tcl_Obj *const source,
Tcl_Interp *interp)
{
@ -56,7 +56,7 @@ tclListSeqStdStringPtr(Tcl_Obj *const source,
Tcl_Obj **argv;
if (Tcl_ListObjGetElements(interp, source, &argc, &argv) == TCL_OK) {
StdStringSeq *seq = new StdStringSeq;
StringSeq *seq = new StringSeq;
for (int i = 0; i < argc; i++) {
int length;
const char *str = Tcl_GetStringFromObj(argv[i], &length);

View File

@ -265,11 +265,11 @@ trimRight(std::string &str)
str.erase(str.find_last_not_of(" ") + 1);
}
StdStringSeq
StringSeq
split(const std::string &text,
const std::string &delims)
{
StdStringSeq tokens;
StringSeq tokens;
auto start = text.find_first_not_of(delims);
auto end = text.find_first_of(delims, start);
while (end != std::string::npos) {
@ -283,11 +283,11 @@ split(const std::string &text,
}
// Parse space separated tokens.
StdStringSeq
StringSeq
parseTokens(const std::string &s,
const char delimiter)
{
StdStringSeq tokens;
StringSeq tokens;
size_t i = 0;
while (i < s.size()) {
while (i < s.size() && std::isspace(s[i]))

View File

@ -535,7 +535,7 @@ VerilogReader::makeModuleInst(const std::string *module_vname,
if (liberty_cell
&& hasScalarNamedPortRefs(liberty_cell, pins)) {
const int port_count = liberty_cell->portBitCount();
StdStringSeq net_names(port_count);
StringSeq net_names(port_count);
for (VerilogNet *vnet : *pins) {
VerilogNetPortRefScalarNet *vpin =
dynamic_cast<VerilogNetPortRefScalarNet*>(vnet);
@ -953,7 +953,7 @@ VerilogModuleInst::namedPins()
VerilogLibertyInst::VerilogLibertyInst(LibertyCell *cell,
const std::string &inst_name,
const StdStringSeq &net_names,
const StringSeq &net_names,
VerilogAttrStmtSeq *attr_stmts,
const int line) :
VerilogInst(inst_name, attr_stmts, line),
@ -2008,7 +2008,7 @@ VerilogReader::makeLibertyInst(VerilogLibertyInst *lib_inst,
network_->setAttribute(inst, entry->key(), entry->value());
}
}
const StdStringSeq &net_names = lib_inst->netNames();
const StringSeq &net_names = lib_inst->netNames();
LibertyCellPortBitIterator port_iter(lib_cell);
while (port_iter.hasNext()) {
LibertyPort *port = port_iter.next();

View File

@ -216,16 +216,16 @@ class VerilogLibertyInst : public VerilogInst
public:
VerilogLibertyInst(LibertyCell *cell,
const std::string &inst_name,
const StdStringSeq &net_names,
const StringSeq &net_names,
VerilogAttrStmtSeq *attr_stmts,
const int line);
virtual bool isLibertyInst() const { return true; }
LibertyCell *cell() const { return cell_; }
const StdStringSeq &netNames() const { return net_names_; }
const StringSeq &netNames() const { return net_names_; }
private:
LibertyCell *cell_;
StdStringSeq net_names_;
StringSeq net_names_;
};
// Abstract base class for nets.