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: protected:
PathEndClkConstrained(Path *path, PathEndClkConstrained(Path *path,
Path *clk_path); Path *clk_path);
PathEndClkConstrained(Path *path,
Path *clk_path,
Crpr crpr,
bool crpr_valid);
float sourceClkOffset(const ClockEdge *src_clk_edge, float sourceClkOffset(const ClockEdge *src_clk_edge,
const ClockEdge *tgt_clk_edge, const ClockEdge *tgt_clk_edge,
const TimingRole *check_role, const TimingRole *check_role,
@ -300,11 +295,6 @@ protected:
PathEndClkConstrainedMcp(Path *path, PathEndClkConstrainedMcp(Path *path,
Path *clk_path, Path *clk_path,
MultiCyclePath *mcp); MultiCyclePath *mcp);
PathEndClkConstrainedMcp(Path *path,
Path *clk_path,
MultiCyclePath *mcp,
Crpr crpr,
bool crpr_valid);
float checkMcpAdjustment(const Path *path, float checkMcpAdjustment(const Path *path,
const ClockEdge *tgt_clk_edge, const ClockEdge *tgt_clk_edge,
const StaState *sta) const; const StaState *sta) const;
@ -341,13 +331,6 @@ public:
virtual Delay clkSkew(const StaState *sta); virtual Delay clkSkew(const StaState *sta);
protected: 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; Delay sourceClkDelay(const StaState *sta) const;
virtual Required requiredTimeNoCrpr(const StaState *sta) const; virtual Required requiredTimeNoCrpr(const StaState *sta) const;
@ -404,18 +387,6 @@ public:
virtual bool ignoreClkLatency(const StaState *sta) const; virtual bool ignoreClkLatency(const StaState *sta) const;
protected: 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_; Path *disable_path_;
PathDelay *path_delay_; PathDelay *path_delay_;
// Source clk arrival for set_max_delay -ignore_clk_latency. // Source clk arrival for set_max_delay -ignore_clk_latency.
@ -450,12 +421,6 @@ public:
const StaState *sta) const; const StaState *sta) const;
protected: protected:
PathEndOutputDelay(OutputDelay *output_delay,
Path *path,
Path *clk_path,
MultiCyclePath *mcp,
Crpr crpr,
bool crpr_valid);
Arrival tgtClkDelay(const ClockEdge *tgt_clk_edge, Arrival tgtClkDelay(const ClockEdge *tgt_clk_edge,
const TimingRole *check_role, const TimingRole *check_role,
const StaState *sta) const; const StaState *sta) const;
@ -491,14 +456,6 @@ public:
const StaState *sta) const; const StaState *sta) const;
protected: 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_; const TimingRole *check_role_;
ArcDelay margin_; ArcDelay margin_;
}; };
@ -525,20 +482,12 @@ public:
virtual const Path *dataClkPath() const { return data_clk_path_; } virtual const Path *dataClkPath() const { return data_clk_path_; }
protected: 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, Path *clkPath(Path *path,
const StaState *sta); const StaState *sta);
Arrival requiredTimeNoCrpr(const StaState *sta) const; Arrival requiredTimeNoCrpr(const StaState *sta) const;
// setup uses zero cycle default // setup uses zero cycle default
virtual int setupDefaultCycles() const { return 0; } virtual int setupDefaultCycles() const { return 0; }
private:
Path *data_clk_path_; Path *data_clk_path_;
DataCheck *check_; DataCheck *check_;
}; };
@ -588,15 +537,6 @@ public:
virtual bool ignoreClkLatency(const StaState *sta) const; virtual bool ignoreClkLatency(const StaState *sta) const;
protected: 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); void findSrcClkArrival(const StaState *sta);
PathDelay *path_delay_; PathDelay *path_delay_;

View File

@ -449,7 +449,7 @@ PathEndUnconstrained::PathEndUnconstrained(Path *path) :
PathEnd * PathEnd *
PathEndUnconstrained::copy() const PathEndUnconstrained::copy() const
{ {
return new PathEndUnconstrained(path_); return new PathEndUnconstrained(*this);
} }
bool 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 void
PathEndClkConstrained::setPath(Path *path) 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 float
PathEndClkConstrainedMcp::targetClkMcpAdjustment(const StaState *sta) const 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 * PathEnd *
PathEndCheck::copy() const PathEndCheck::copy() const
{ {
return new PathEndCheck(path_, check_arc_, check_edge_, return new PathEndCheck(*this);
clk_path_, mcp_, crpr_, crpr_valid_);
} }
PathEnd::Type PathEnd::Type
@ -1129,29 +1094,10 @@ PathEndLatchCheck::PathEndLatchCheck(Path *path,
src_clk_arrival_ = search->pathClkPathArrival(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 * PathEnd *
PathEndLatchCheck::copy() const PathEndLatchCheck::copy() const
{ {
return new PathEndLatchCheck(path_, check_arc_, check_edge_, return new PathEndLatchCheck(*this);
clk_path_, disable_path_, mcp_, path_delay_,
src_clk_arrival_, crpr_, crpr_valid_);
} }
PathEnd::Type 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 * PathEnd *
PathEndOutputDelay::copy() const PathEndOutputDelay::copy() const
{ {
return new PathEndOutputDelay(output_delay_, path_, clk_path_, return new PathEndOutputDelay(*this);
mcp_, crpr_, crpr_valid_);
} }
PathEnd::Type 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 * PathEnd *
PathEndGatedClock::copy() const PathEndGatedClock::copy() const
{ {
return new PathEndGatedClock(path_, clk_path_, check_role_, return new PathEndGatedClock(*this);
mcp_, margin_, crpr_, crpr_valid_);
} }
PathEnd::Type PathEnd::Type
@ -1680,24 +1600,10 @@ PathEndDataCheck::clkPath(Path *path,
return nullptr; 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 * PathEnd *
PathEndDataCheck::copy() const PathEndDataCheck::copy() const
{ {
return new PathEndDataCheck(check_, path_, data_clk_path_, return new PathEndDataCheck(*this);
clk_path_, mcp_, crpr_, crpr_valid_);
} }
PathEnd::Type PathEnd::Type
@ -1838,30 +1744,10 @@ PathEndPathDelay::PathEndPathDelay(PathDelay *path_delay,
findSrcClkArrival(sta); 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 * PathEnd *
PathEndPathDelay::copy() const PathEndPathDelay::copy() const
{ {
return new PathEndPathDelay(path_delay_, path_, clk_path_, return new PathEndPathDelay(*this);
check_arc_, check_edge_, output_delay_,
src_clk_arrival_, crpr_, crpr_valid_);
} }
PathEnd::Type PathEnd::Type