deleteFilterTags

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2025-09-17 09:10:14 -07:00
parent 17cf87b4c6
commit 8e50916693
3 changed files with 5 additions and 25 deletions

View File

@ -243,28 +243,7 @@ ClkInfo::equal(const ClkInfo *clk_info1,
const ClkInfo *clk_info2,
const StaState *sta)
{
bool crpr_on = sta->crprActive();
ClockUncertainties *uncertainties1 = clk_info1->uncertainties();
ClockUncertainties *uncertainties2 = clk_info2->uncertainties();
return clk_info1->clkEdge() == clk_info2->clkEdge()
&& clk_info1->pathAPIndex() == clk_info2->pathAPIndex()
&& clk_info1->clkSrc() == clk_info2->clkSrc()
&& clk_info1->genClkSrc() == clk_info2->genClkSrc()
&& (!crpr_on
|| Path::equal(clk_info1->crprClkPathRaw(),
clk_info2->crprClkPathRaw(),
sta))
// || clk_info1->crprClkVertexId(sta) == clk_info2->crprClkVertexId(sta))
&& ((uncertainties1 == nullptr
&& uncertainties2 == nullptr)
|| (uncertainties1 && uncertainties2
&& ClockUncertainties::equal(uncertainties1, uncertainties2)))
&& clk_info1->insertion() == clk_info2->insertion()
&& clk_info1->latency() == clk_info2->latency()
&& clk_info1->isPropagated() == clk_info2->isPropagated()
&& clk_info1->isGenClkSrcPath() == clk_info2->isGenClkSrcPath()
&& clk_info1->isPulseClk() == clk_info2->isPulseClk()
&& clk_info1->pulseClkSenseRfIndex() == clk_info2->pulseClkSenseRfIndex();
return ClkInfo::cmp(clk_info1, clk_info2, sta) == 0;
}
////////////////////////////////////////////////////////////////

View File

@ -73,6 +73,7 @@ public:
bool isGenClkSrcPath() const { return is_gen_clk_src_path_; }
size_t hash() const { return hash_; }
bool crprPathRefsFilter() const { return crpr_path_refs_filter_; }
const Path *crprClkPathRaw() const;
static int cmp(const ClkInfo *clk_info1,
const ClkInfo *clk_info2,
@ -82,7 +83,6 @@ public:
const StaState *sta);
protected:
void findHash(const StaState *sta);
const Path *crprClkPathRaw() const;
private:
const ClockEdge *clk_edge_;

View File

@ -576,7 +576,8 @@ Search::deleteFilterTags()
for (TagIndex i = 0; i < tag_next_; i++) {
Tag *tag = tags_[i];
if (tag
&& tag->isFilter()) {
&& (tag->isFilter()
|| tag->clkInfo()->crprPathRefsFilter())) {
tags_[i] = nullptr;
tag_set_->erase(tag);
delete tag;
@ -595,7 +596,7 @@ Search::deleteFilterClkInfos()
delete clk_info;
}
else
itr++;
itr++;
}
}