diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/idstringlist.h | 2 | ||||
-rw-r--r-- | common/placer_heap.cc | 1 | ||||
-rw-r--r-- | common/timing.cc | 7 |
3 files changed, 8 insertions, 2 deletions
diff --git a/common/idstringlist.h b/common/idstringlist.h index 4af9801a..fd57540b 100644 --- a/common/idstringlist.h +++ b/common/idstringlist.h @@ -35,7 +35,7 @@ struct IdStringList { SSOArray<IdString, 4> ids; - IdStringList(){}; + IdStringList() : ids(1, IdString()){}; explicit IdStringList(size_t n) : ids(n, IdString()){}; explicit IdStringList(IdString id) : ids(1, id){}; template <typename Tlist> explicit IdStringList(const Tlist &list) : ids(list){}; diff --git a/common/placer_heap.cc b/common/placer_heap.cc index dbb8d36c..f8385cef 100644 --- a/common/placer_heap.cc +++ b/common/placer_heap.cc @@ -401,6 +401,7 @@ class HeAPPlacer // Initial constraints placer for (auto &cell_entry : ctx->cells) { CellInfo *cell = cell_entry.second.get(); + auto loc = cell->attrs.find(ctx->id("BEL")); if (loc != cell->attrs.end()) { std::string loc_name = loc->second.as_string(); diff --git a/common/timing.cc b/common/timing.cc index 30054e83..6a91b6e5 100644 --- a/common/timing.cc +++ b/common/timing.cc @@ -1363,7 +1363,12 @@ void timing_analysis(Context *ctx, bool print_histogram, bool print_fmax, bool p std::vector<unsigned> bins(num_bins); unsigned max_freq = 0; for (const auto &i : slack_histogram) { - auto &bin = bins[(i.first - min_slack) / bin_size]; + int bin_idx = int((i.first - min_slack) / bin_size); + if (bin_idx < 0) + bin_idx = 0; + else if (bin_idx >= int(num_bins)) + bin_idx = num_bins - 1; + auto &bin = bins.at(bin_idx); bin += i.second; max_freq = std::max(max_freq, bin); } |