mirror of
https://github.com/YosysHQ/yosys.git
synced 2026-10-06 01:53:53 +02:00
signorm: add timers
This commit is contained in:
@@ -671,6 +671,10 @@ int main(int argc, char **argv)
|
||||
total_ns += gc_ns;
|
||||
timedat.insert(make_tuple(gc_ns,
|
||||
RTLIL::OwningIdString::garbage_collection_count(), "id_gc"));
|
||||
total_ns += signorm_ns;
|
||||
timedat.insert(make_tuple(signorm_ns, signorm_count, "signorm"));
|
||||
total_ns += signorm_restore_ns;
|
||||
timedat.insert(make_tuple(signorm_restore_ns, signorm_restore_count, "signorm_restore"));
|
||||
}
|
||||
|
||||
if (timing_details)
|
||||
|
||||
@@ -132,6 +132,12 @@ namespace RTLIL
|
||||
struct PortBit;
|
||||
};
|
||||
|
||||
// TODO clean up?
|
||||
extern int64_t signorm_ns;
|
||||
extern int signorm_count;
|
||||
extern int64_t signorm_restore_ns;
|
||||
extern int signorm_restore_count;
|
||||
|
||||
struct RTLIL::IdString
|
||||
{
|
||||
struct Storage {
|
||||
|
||||
@@ -251,6 +251,7 @@ struct RTLIL::SigNormIndex
|
||||
}
|
||||
|
||||
void restore_connections() {
|
||||
int64_t start = PerformanceTimer::query();
|
||||
flush_connections();
|
||||
pool<Wire *> wires;
|
||||
for (auto const &bit : sigmap.database)
|
||||
@@ -278,6 +279,11 @@ struct RTLIL::SigNormIndex
|
||||
}
|
||||
|
||||
restored_connections = module->connections_.size();
|
||||
|
||||
int64_t time_ns = PerformanceTimer::query() - start;
|
||||
Pass::subtract_from_current_runtime_ns(time_ns);
|
||||
signorm_restore_ns += time_ns;
|
||||
++signorm_restore_count;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -318,6 +324,10 @@ void RTLIL::Design::bufNormalize(bool enable)
|
||||
module->bufNormalize();
|
||||
}
|
||||
|
||||
int64_t signorm_ns;
|
||||
int signorm_count;
|
||||
int64_t signorm_restore_ns;
|
||||
int signorm_restore_count;
|
||||
void RTLIL::Design::sigNormalize(bool enable)
|
||||
{
|
||||
if (!enable)
|
||||
@@ -359,8 +369,13 @@ void RTLIL::Design::sigNormalize(bool enable)
|
||||
flagSigNormalized = true;
|
||||
}
|
||||
|
||||
int64_t start = PerformanceTimer::query();
|
||||
for (auto module : modules())
|
||||
module->sigNormalize();
|
||||
int64_t time_ns = PerformanceTimer::query() - start;
|
||||
Pass::subtract_from_current_runtime_ns(time_ns);
|
||||
signorm_ns += time_ns;
|
||||
++signorm_count;
|
||||
}
|
||||
|
||||
void RTLIL::Module::sigNormalize()
|
||||
|
||||
Reference in New Issue
Block a user