PathEnd::copy use copy constructors

Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
James Cherry 2026-03-15 14:29:58 -07:00
parent 464d4047ad
commit fbd171019a
2 changed files with 7 additions and 181 deletions

View File

@ -270,11 +270,6 @@ public:
protected:
PathEndClkConstrained(Path *path,
Path *clk_path);
PathEndClkConstrained(Path *path,
Path *clk_path,
Crpr crpr,
bool crpr_valid);
float sourceClkOffset(const ClockEdge *src_clk_edge,
const ClockEdge *tgt_clk_edge,
const TimingRole *check_role,
@ -300,11 +295,6 @@ protected:
PathEndClkConstrainedMcp(Path *path,
Path *clk_path,
MultiCyclePath *mcp);
PathEndClkConstrainedMcp(Path *path,
Path *clk_path,
MultiCyclePath *mcp,
Crpr crpr,
bool crpr_valid);
float checkMcpAdjustment(const Path *path,
const ClockEdge *tgt_clk_edge,
const StaState *sta) const;
@ -341,13 +331,6 @@ public:
virtual Delay clkSkew(const StaState *sta);
protected:
PathEndCheck(Path *path,
TimingArc *check_arc,
Edge *check_edge,
Path *clk_path,
MultiCyclePath *mcp,
Crpr crpr,
bool crpr_valid);
Delay sourceClkDelay(const StaState *sta) const;
virtual Required requiredTimeNoCrpr(const StaState *sta) const;
@ -404,18 +387,6 @@ public:
virtual bool ignoreClkLatency(const StaState *sta) const;
protected:
PathEndLatchCheck(Path *path,
TimingArc *check_arc,
Edge *check_edge,
Path *clk_path,
Path *disable,
MultiCyclePath *mcp,
PathDelay *path_delay,
Delay src_clk_arrival,
Crpr crpr,
bool crpr_valid);
private:
Path *disable_path_;
PathDelay *path_delay_;
// Source clk arrival for set_max_delay -ignore_clk_latency.
@ -450,12 +421,6 @@ public:
const StaState *sta) const;
protected:
PathEndOutputDelay(OutputDelay *output_delay,
Path *path,
Path *clk_path,
MultiCyclePath *mcp,
Crpr crpr,
bool crpr_valid);
Arrival tgtClkDelay(const ClockEdge *tgt_clk_edge,
const TimingRole *check_role,
const StaState *sta) const;
@ -491,14 +456,6 @@ public:
const StaState *sta) const;
protected:
PathEndGatedClock(Path *gating_ref,
Path *clk_path,
const TimingRole *check_role,
MultiCyclePath *mcp,
ArcDelay margin,
Crpr crpr,
bool crpr_valid);
const TimingRole *check_role_;
ArcDelay margin_;
};
@ -525,20 +482,12 @@ public:
virtual const Path *dataClkPath() const { return data_clk_path_; }
protected:
PathEndDataCheck(DataCheck *check,
Path *data_path,
Path *data_clk_path,
Path *clk_path,
MultiCyclePath *mcp,
Crpr crpr,
bool crpr_valid);
Path *clkPath(Path *path,
const StaState *sta);
Arrival requiredTimeNoCrpr(const StaState *sta) const;
// setup uses zero cycle default
virtual int setupDefaultCycles() const { return 0; }
private:
Path *data_clk_path_;
DataCheck *check_;
};
@ -588,15 +537,6 @@ public:
virtual bool ignoreClkLatency(const StaState *sta) const;
protected:
PathEndPathDelay(PathDelay *path_delay,
Path *path,
Path *clk_path,
TimingArc *check_arc,
Edge *check_edge,
OutputDelay *output_delay,
Arrival src_clk_arrival,
Crpr crpr,
bool crpr_valid);
void findSrcClkArrival(const StaState *sta);
PathDelay *path_delay_;

View File

@ -449,7 +449,7 @@ PathEndUnconstrained::PathEndUnconstrained(Path *path) :
PathEnd *
PathEndUnconstrained::copy() const
{
return new PathEndUnconstrained(path_);
return new PathEndUnconstrained(*this);
}
bool
@ -512,17 +512,6 @@ PathEndClkConstrained::PathEndClkConstrained(Path *path,
{
}
PathEndClkConstrained::PathEndClkConstrained(Path *path,
Path *clk_path,
Crpr crpr,
bool crpr_valid) :
PathEnd(path),
clk_path_(clk_path),
crpr_(crpr),
crpr_valid_(crpr_valid)
{
}
void
PathEndClkConstrained::setPath(Path *path)
{
@ -765,16 +754,6 @@ PathEndClkConstrainedMcp::PathEndClkConstrainedMcp(Path *path,
{
}
PathEndClkConstrainedMcp::PathEndClkConstrainedMcp(Path *path,
Path *clk_path,
MultiCyclePath *mcp,
Crpr crpr,
bool crpr_valid) :
PathEndClkConstrained(path, clk_path, crpr, crpr_valid),
mcp_(mcp)
{
}
float
PathEndClkConstrainedMcp::targetClkMcpAdjustment(const StaState *sta) const
{
@ -945,24 +924,10 @@ PathEndCheck::PathEndCheck(Path *path,
{
}
PathEndCheck::PathEndCheck(Path *path,
TimingArc *check_arc,
Edge *check_edge,
Path *clk_path,
MultiCyclePath *mcp,
Crpr crpr,
bool crpr_valid) :
PathEndClkConstrainedMcp(path, clk_path, mcp, crpr, crpr_valid),
check_arc_(check_arc),
check_edge_(check_edge)
{
}
PathEnd *
PathEndCheck::copy() const
{
return new PathEndCheck(path_, check_arc_, check_edge_,
clk_path_, mcp_, crpr_, crpr_valid_);
return new PathEndCheck(*this);
}
PathEnd::Type
@ -1129,29 +1094,10 @@ PathEndLatchCheck::PathEndLatchCheck(Path *path,
src_clk_arrival_ = search->pathClkPathArrival(path_);
}
PathEndLatchCheck::PathEndLatchCheck(Path *path,
TimingArc *check_arc,
Edge *check_edge,
Path *clk_path,
Path *disable_path,
MultiCyclePath *mcp,
PathDelay *path_delay,
Delay src_clk_arrival,
Crpr crpr,
bool crpr_valid) :
PathEndCheck(path, check_arc, check_edge, clk_path, mcp, crpr, crpr_valid),
disable_path_(disable_path),
path_delay_(path_delay),
src_clk_arrival_(src_clk_arrival)
{
}
PathEnd *
PathEndLatchCheck::copy() const
{
return new PathEndLatchCheck(path_, check_arc_, check_edge_,
clk_path_, disable_path_, mcp_, path_delay_,
src_clk_arrival_, crpr_, crpr_valid_);
return new PathEndLatchCheck(*this);
}
PathEnd::Type
@ -1357,22 +1303,10 @@ PathEndOutputDelay::PathEndOutputDelay(OutputDelay *output_delay,
{
}
PathEndOutputDelay::PathEndOutputDelay(OutputDelay *output_delay,
Path *path,
Path *clk_path,
MultiCyclePath *mcp,
Crpr crpr,
bool crpr_valid) :
PathEndClkConstrainedMcp(path, clk_path, mcp, crpr, crpr_valid),
output_delay_(output_delay)
{
}
PathEnd *
PathEndOutputDelay::copy() const
{
return new PathEndOutputDelay(output_delay_, path_, clk_path_,
mcp_, crpr_, crpr_valid_);
return new PathEndOutputDelay(*this);
}
PathEnd::Type
@ -1564,24 +1498,10 @@ PathEndGatedClock::PathEndGatedClock(Path *gating_ref,
{
}
PathEndGatedClock::PathEndGatedClock(Path *gating_ref,
Path *clk_path,
const TimingRole *check_role,
MultiCyclePath *mcp,
ArcDelay margin,
Crpr crpr,
bool crpr_valid) :
PathEndClkConstrainedMcp(gating_ref, clk_path, mcp, crpr, crpr_valid),
check_role_(check_role),
margin_(margin)
{
}
PathEnd *
PathEndGatedClock::copy() const
{
return new PathEndGatedClock(path_, clk_path_, check_role_,
mcp_, margin_, crpr_, crpr_valid_);
return new PathEndGatedClock(*this);
}
PathEnd::Type
@ -1680,24 +1600,10 @@ PathEndDataCheck::clkPath(Path *path,
return nullptr;
}
PathEndDataCheck::PathEndDataCheck(DataCheck *check,
Path *data_path,
Path *data_clk_path,
Path *clk_path,
MultiCyclePath *mcp,
Crpr crpr,
bool crpr_valid) :
PathEndClkConstrainedMcp(data_path, clk_path, mcp, crpr, crpr_valid),
data_clk_path_(data_clk_path),
check_(check)
{
}
PathEnd *
PathEndDataCheck::copy() const
{
return new PathEndDataCheck(check_, path_, data_clk_path_,
clk_path_, mcp_, crpr_, crpr_valid_);
return new PathEndDataCheck(*this);
}
PathEnd::Type
@ -1838,30 +1744,10 @@ PathEndPathDelay::PathEndPathDelay(PathDelay *path_delay,
findSrcClkArrival(sta);
}
PathEndPathDelay::PathEndPathDelay(PathDelay *path_delay,
Path *path,
Path *clk_path,
TimingArc *check_arc,
Edge *check_edge,
OutputDelay *output_delay,
Arrival src_clk_arrival,
Crpr crpr,
bool crpr_valid) :
PathEndClkConstrained(path, clk_path, crpr, crpr_valid),
path_delay_(path_delay),
check_arc_(check_arc),
check_edge_(check_edge),
output_delay_(output_delay),
src_clk_arrival_(src_clk_arrival)
{
}
PathEnd *
PathEndPathDelay::copy() const
{
return new PathEndPathDelay(path_delay_, path_, clk_path_,
check_arc_, check_edge_, output_delay_,
src_clk_arrival_, crpr_, crpr_valid_);
return new PathEndPathDelay(*this);
}
PathEnd::Type