diff --git a/src/Silisizer.cpp b/src/Silisizer.cpp index eeef88f..390a7ee 100644 --- a/src/Silisizer.cpp +++ b/src/Silisizer.cpp @@ -73,16 +73,19 @@ int Silisizer::silisize(const char *workdir) { for (int cur_iter = 0; true; cur_iter++) { // Run timer to get violating paths (one per endpoint) std::cout << "Running timer..." << std::endl; + + sta::StringSeq group_names; // empty = report all path groups + sta::PathEndSeq ends = sta_->findPathEnds( /*exception from*/ nullptr, /*exception through*/ nullptr, - /*exception to*/ nullptr, /*unconstrained*/ false, /*corner*/ nullptr, + /*exception to*/ nullptr, /*unconstrained*/ false, /*scenes*/ sta_->scenes(), /*min_max*/ sta::MinMaxAll::max(), /*group_count*/ 10000, /*endpoint_count*/ 1, /*unique_pins*/ true, /*unique_edges*/ true, /*min_slack*/ -1.0e+30, /*max_slack*/ 0.0, /*sort_by_slack*/ false, - /*groups->size() ? groups :*/ nullptr, + /*groups->size() ? groups :*/ group_names, /*setup*/ true, /*hold*/ false, /*recovery*/ false, /*removal*/ false, /*clk_gating_setup*/ false, /*clk_gating_hold*/ false); @@ -286,9 +289,10 @@ int Silisizer::silisize(const char *workdir) { } // Remove escape characters from JSON output -static std::string jsonName(const char *s) { +static std::string jsonName(std::string_view s) { std::string out; - for (; *s; ++s) if (*s != '\\') out.push_back(*s); + out.reserve(s.length()); + for (char c : s) if (c != '\\') out.push_back(c); return out; } diff --git a/third_party/OpenSTA b/third_party/OpenSTA index 5c5b9c5..2d2cfe6 160000 --- a/third_party/OpenSTA +++ b/third_party/OpenSTA @@ -1 +1 @@ -Subproject commit 5c5b9c5502a963dacae9b015815f6e89c237de75 +Subproject commit 2d2cfe6fa68bbeb52ec4373416a4af604f002d20