Skip to content

Commit 6742692

Browse files
committed
string squash
Signed-off-by: James Cherry <cherry@parallaxsw.com>
1 parent b9e439f commit 6742692

179 files changed

Lines changed: 4260 additions & 4749 deletions

File tree

Some content is hidden

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

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.14)
3232
cmake_policy(SET CMP0086 NEW)
3333
endif()
3434

35-
project(STA VERSION 3.0.1
35+
project(STA VERSION 3.1.0
3636
LANGUAGES CXX
3737
)
3838

app/Main.cc

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include <stdio.h>
2929
#include <cstdlib> // exit
3030
#include <filesystem>
31+
#include <string_view>
3132
#include <tcl.h>
3233
#if TCL_READLINE
3334
#include <tclreadline.h>
@@ -58,14 +59,14 @@ static char **cmd_argv;
5859
static const char *init_filename = ".sta";
5960

6061
static void
61-
showUsage(const char *prog,
62-
const char *init_filename);
62+
showUsage(std::string_view prog,
63+
std::string_view init_filename);
6364
static int
6465
tclAppInit(Tcl_Interp *interp);
6566
static int
6667
staTclAppInit(int argc,
6768
char *argv[],
68-
const char *init_filename,
69+
std::string_view init_filename,
6970
Tcl_Interp *interp);
7071
static void
7172
initStaApp(int &argc,
@@ -105,7 +106,7 @@ tclAppInit(Tcl_Interp *interp)
105106
static int
106107
staTclAppInit(int argc,
107108
char *argv[],
108-
const char *init_filename,
109+
std::string_view init_filename,
109110
Tcl_Interp *interp)
110111
{
111112
// source init.tcl
@@ -130,7 +131,7 @@ staTclAppInit(int argc,
130131
if (home) {
131132
std::string init_path = home;
132133
init_path += "/";
133-
init_path += init_filename;
134+
init_path.append(init_filename);
134135
if (std::filesystem::is_regular_file(init_path.c_str()))
135136
sourceTclFile(init_path.c_str(), true, true, interp);
136137
}
@@ -183,15 +184,17 @@ initStaApp(int &argc,
183184
}
184185

185186
static void
186-
showUsage(const char *prog,
187-
const char *init_filename)
187+
showUsage(std::string_view prog,
188+
std::string_view init_filename)
188189
{
189-
printf("Usage: %s [-help] [-version] [-no_init] [-exit] cmd_file\n", prog);
190-
printf(" -help show help and exit\n");
191-
printf(" -version show version and exit\n");
192-
printf(" -no_init do not read %s init file\n", init_filename);
193-
printf(" -threads count|max use count threads\n");
194-
printf(" -no_splash do not show the license splash at startup\n");
195-
printf(" -exit exit after reading cmd_file\n");
196-
printf(" cmd_file source cmd_file\n");
190+
sta::print(stdout, "Usage: {} [-help] [-version] [-no_init] [-exit] cmd_file\n",
191+
prog);
192+
sta::print(stdout, " -help show help and exit\n");
193+
sta::print(stdout, " -version show version and exit\n");
194+
sta::print(stdout, " -no_init do not read {} init file\n",
195+
init_filename);
196+
sta::print(stdout, " -threads count|max use count threads\n");
197+
sta::print(stdout, " -no_splash do not show the license splash at startup\n");
198+
sta::print(stdout, " -exit exit after reading cmd_file\n");
199+
sta::print(stdout, " cmd_file source cmd_file\n");
197200
}

app/StaMain.cc

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424

2525
#include "StaMain.hh"
2626

27+
#include <string>
28+
#include <string_view>
2729
#include <tcl.h>
2830
#include <cstdlib>
2931
#include <sys/stat.h>
@@ -43,7 +45,7 @@ parseThreadsArg(int &argc,
4345
if (stringEqual(thread_arg, "max"))
4446
return processorCount();
4547
else if (isDigits(thread_arg))
46-
return atoi(thread_arg);
48+
return std::stoi(thread_arg);
4749
else
4850
fprintf(stderr,"Warning: -threads must be max or a positive integer.\n");
4951
}
@@ -53,11 +55,11 @@ parseThreadsArg(int &argc,
5355
bool
5456
findCmdLineFlag(int &argc,
5557
char *argv[],
56-
const char *flag)
58+
std::string_view flag)
5759
{
5860
for (int i = 1; i < argc; i++) {
5961
char *arg = argv[i];
60-
if (stringEq(arg, flag)) {
62+
if (std::string_view(arg) == flag) {
6163
// Remove flag from argv.
6264
for (int j = i + 1; j < argc; j++, i++)
6365
argv[i] = argv[j];
@@ -72,11 +74,11 @@ findCmdLineFlag(int &argc,
7274
char *
7375
findCmdLineKey(int &argc,
7476
char *argv[],
75-
const char *key)
77+
std::string_view key)
7678
{
7779
for (int i = 1; i < argc; i++) {
7880
char *arg = argv[i];
79-
if (stringEq(arg, key) && i + 1 < argc) {
81+
if (std::string_view(arg) == key && i + 1 < argc) {
8082
char *value = argv[i + 1];
8183
// Remove key and value from argv.
8284
for (int j = i + 2; j < argc; j++, i++)

dcalc/ArcDelayCalc.cc

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@
2525
#include "ArcDelayCalc.hh"
2626

2727
#include <cstdlib>
28+
#include <string>
2829

30+
#include "StringUtil.hh"
2931
#include "Units.hh"
3032
#include "Liberty.hh"
3133
#include "TimingArc.hh"
@@ -61,13 +63,14 @@ ArcDelayCalc::gateDelay(const TimingArc *arc,
6163

6264
////////////////////////////////////////////////////////////////
6365

66+
// For TCL %typemap(in) ArcDcalcArg.
6467
ArcDcalcArg
65-
makeArcDcalcArg(const char *inst_name,
66-
const char *in_port_name,
67-
const char *in_rf_name,
68-
const char *drvr_port_name,
69-
const char *drvr_rf_name,
70-
const char *input_delay_str,
68+
makeArcDcalcArg(std::string_view inst_name,
69+
std::string_view in_port_name,
70+
std::string_view in_rf_name,
71+
std::string_view drvr_port_name,
72+
std::string_view drvr_rf_name,
73+
std::string_view input_delay_str,
7174
const StaState *sta)
7275
{
7376
Report *report = sta->report();
@@ -82,7 +85,8 @@ makeArcDcalcArg(const char *inst_name,
8285
if (drvr_pin) {
8386
const RiseFall *drvr_rf = RiseFall::find(drvr_rf_name);
8487
if (drvr_rf) {
85-
float input_delay = strtof(input_delay_str, nullptr);
88+
const std::string input_delay_buf(input_delay_str);
89+
auto [input_delay, valid] = stringFloat(input_delay_buf);
8690
input_delay = sta->units()->timeUnit()->userToSta(input_delay);
8791

8892
const Graph *graph = sta->graph();

dcalc/ArnoldiDelayCalc.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ class ArnoldiDelayCalc : public LumpedCapDelayCalc
121121
ArnoldiDelayCalc(StaState *sta);
122122
~ArnoldiDelayCalc() override;
123123
ArcDelayCalc *copy() override;
124-
const char *name() const override { return "arnoldi"; }
124+
std::string_view name() const override { return "arnoldi"; }
125125
Parasitic *findParasitic(const Pin *drvr_pin,
126126
const RiseFall *rf,
127127
const Scene *scene,

dcalc/CcsCeffDelayCalc.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -670,7 +670,7 @@ CcsCeffDelayCalc::reportGateDelay(const Pin *drvr_pin,
670670
}
671671

672672
void
673-
CcsCeffDelayCalc::fail(const char *reason)
673+
CcsCeffDelayCalc::fail(std::string_view reason)
674674
{
675675
// Report failures with a unique debug flag.
676676
if (debug_->check("ccs_dcalc", 1) || debug_->check("dcalc_error", 1))

dcalc/CcsCeffDelayCalc.hh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public:
4141
CcsCeffDelayCalc(StaState *sta);
4242
virtual ~CcsCeffDelayCalc();
4343
ArcDelayCalc *copy() override;
44-
const char *name() const override { return "ccs_ceff"; }
44+
std::string_view name() const override { return "ccs_ceff"; }
4545
bool reduceSupported() const override { return true; }
4646
ArcDcalcResult gateDelay(const Pin *drvr_pin,
4747
const TimingArc *arc,
@@ -113,7 +113,7 @@ protected:
113113
double &dvl_dt);
114114
double vl(double t,
115115
double elmore);
116-
void fail(const char *reason);
116+
void fail(std::string_view reason);
117117

118118
const Pin *drvr_pin_;
119119
const RiseFall *drvr_rf_;

dcalc/DelayCalc.cc

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838

3939
namespace sta {
4040

41-
typedef std::map<std::string, MakeArcDelayCalc> DelayCalcMap;
41+
typedef std::map<std::string, MakeArcDelayCalc, std::less<>> DelayCalcMap;
4242

4343
static DelayCalcMap delay_calcs;
4444

@@ -55,10 +55,10 @@ registerDelayCalcs()
5555
}
5656

5757
void
58-
registerDelayCalc(const std::string &name,
58+
registerDelayCalc(std::string_view name,
5959
MakeArcDelayCalc maker)
6060
{
61-
delay_calcs[name] = maker;
61+
delay_calcs[std::string(name)] = maker;
6262
}
6363

6464
void
@@ -68,18 +68,18 @@ deleteDelayCalcs()
6868
}
6969

7070
ArcDelayCalc *
71-
makeDelayCalc(const std::string &name,
71+
makeDelayCalc(const std::string_view name,
7272
StaState *sta)
7373
{
74-
MakeArcDelayCalc maker = findKey(&delay_calcs, name);
74+
MakeArcDelayCalc maker = findStringKey(delay_calcs, name);
7575
if (maker)
7676
return maker(sta);
7777
else
7878
return nullptr;
7979
}
8080

8181
bool
82-
isDelayCalcName(const std::string &name)
82+
isDelayCalcName(std::string_view name)
8383
{
8484
return delay_calcs.contains(name);
8585
}

dcalc/DelayCalc.i

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424

2525
%module dcalc
2626

27+
%include <std_string.i>
28+
2729
%{
2830

2931
#include "DelayCalc.hh"

dcalc/DelayCalcBase.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ std::string
174174
DelayCalcBase::reportCheckDelay(const Pin *check_pin,
175175
const TimingArc *arc,
176176
const Slew &from_slew,
177-
const char *from_slew_annotation,
177+
std::string_view from_slew_annotation,
178178
const Slew &to_slew,
179179
float related_out_cap,
180180
const Scene *scene,

0 commit comments

Comments
 (0)