-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Legalization #476
base: main
Are you sure you want to change the base?
Legalization #476
Conversation
…es have to be written as indicated in the ToDo)
…heck_validity functions
…equivalence checking inside the extended rank view.
…p as constructor.
…on_planarization.hpp. The function has no use in any other context (so far).
Signed-off-by: GitHub Actions <[email protected]>
Signed-off-by: GitHub Actions <[email protected]>
# Conflicts: # include/fiction/algorithms/network_transformation/buffer_removal.hpp
@hibenj No worries, the CI fails on Mac because you accidentally updated the submodules. You should revert those changes to fix this :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
There were too many comments to post at once. Showing the first 25 out of 51. Check the log or trigger a new build to see more.
// check equivalence | ||
mockturtle::equivalence_checking_stats st; | ||
const auto cec_m = mockturtle::equivalence_checking( | ||
*fiction::virtual_miter<fiction::technology_network>(benchmark_network, planarized_b), {}, &st); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
*fiction::virtual_miter<fiction::technology_network>(benchmark_network, planarized_b), {}, &st);
^
fiction::clocked_layout<fiction::tile_based_layout<fiction::cartesian_layout<fiction::offset::ucoord_t>>>>; | ||
auto layout = fiction::orthogonal<gate_layout>(planarized_b, {}, &stats); | ||
|
||
fiction::gate_level_drv_params ps_d{}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: variable 'ps_d' of type 'fiction::gate_level_drv_params' can be declared 'const' [misc-const-correctness]
fiction::gate_level_drv_params ps_d{}; | |
fiction::gate_level_drv_params const ps_d{}; |
mockturtle::equivalence_checking_stats st_o; | ||
|
||
const auto ce = mockturtle::equivalence_checking(*miter, {}, &st_o); | ||
eq = ce.value(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
eq = ce.value();
^
// log results | ||
wiring_reduction_exp(benchmark, benchmark_network.num_pis(), planarized_b.num_virtual_pis(), | ||
benchmark_network.num_pos(), benchmark_network.num_gates(), b.num_gates(), | ||
planarized_b.num_gates(), is_planar, cec_m.value(), eq); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
planarized_b.num_gates(), is_planar, cec_m.value(), eq);
^
wiring_reduction_exp.table(); | ||
} | ||
|
||
return EXIT_SUCCESS; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: no header providing "EXIT_SUCCESS" is directly included [misc-include-cleaner]
experiments/legalization/legalization.cpp:30:
- #include <filesystem>
+ #include <cstdlib>
+ #include <filesystem>
* | ||
* @return Width of the widest rank in the network. | ||
*/ | ||
uint32_t width() const noexcept |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: function 'width' should be marked [[nodiscard]] [modernize-use-nodiscard]
uint32_t width() const noexcept | |
[[nodiscard]] uint32_t width() const noexcept |
{ | ||
for (auto l = 0; l < ranks.size(); ++l) | ||
{ | ||
foreach_node_in_rank(l, std::forward<Fn>(fn)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: implicit conversion changes signedness: 'int' to 'uint32_t' (aka 'unsigned int') [clang-diagnostic-sign-conversion]
foreach_node_in_rank(l, std::forward<Fn>(fn));
^
Additional context
include/fiction/utils/network_utils.hpp:274: in instantiation of function template specialization 'fiction::extended_rank_view<fiction::virtual_pi_networkfiction::technology_network>::foreach_node<(lambda at /github/workspace/include/fiction/utils/network_utils.hpp:276:9)>' requested here
ntk.foreach_node(
^
include/fiction/algorithms/physical_design/orthogonal.hpp:686: in instantiation of function template specialization 'fiction::has_high_degree_fanin_nodes<fiction::extended_rank_view<fiction::virtual_pi_networkfiction::technology_network>>' requested here
or input degree
^
experiments/legalization/legalization.cpp:128: in instantiation of function template specialization 'fiction::orthogonal<fiction::gate_level_layout<fiction::clocked_layout<fiction::tile_based_layout<fiction::cartesian_layout<>>>>, fiction::extended_rank_view<fiction::virtual_pi_networkfiction::technology_network>>' requested here
auto layout = fiction::orthogonal<gate_layout>(planarized_b, {}, &stats);
^
{ | ||
for (auto l = 0; l < ranks.size(); ++l) | ||
{ | ||
foreach_gate_in_rank(l, std::forward<Fn>(fn)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: implicit conversion changes signedness: 'int' to 'uint32_t' (aka 'unsigned int') [clang-diagnostic-sign-conversion]
foreach_gate_in_rank(l, std::forward<Fn>(fn));
^
Additional context
include/fiction/networks/virtual_pi_network.hpp:391: in instantiation of function template specialization 'fiction::extended_rank_view<fiction::virtual_pi_networkfiction::technology_network>::foreach_gate<(lambda at /github/workspace/include/fiction/networks/virtual_pi_network.hpp:393:13)>' requested here
ntk_topo.foreach_gate(
^
include/fiction/networks/virtual_pi_network.hpp:560: in instantiation of member function 'fiction::detail::delete_virtual_pis_impl<fiction::extended_rank_view<fiction::virtual_pi_networkfiction::technology_network>>::run' requested here
auto result = p.run();
^
include/fiction/algorithms/verification/virtual_miter.hpp:23: in instantiation of function template specialization 'fiction::delete_virtual_pis<fiction::extended_rank_view<fiction::virtual_pi_networkfiction::technology_network>>' requested here
return delete_virtual_pis(network);
^
experiments/legalization/legalization.cpp:122: in instantiation of function template specialization 'fiction::virtual_miter<fiction::technology_network, mockturtle::names_viewfiction::technology_network, fiction::extended_rank_view<fiction::virtual_pi_networkfiction::technology_network>>' requested here
*fiction::virtual_miter<fiction::technology_network>(benchmark_network, planarized_b), {}, &st);
^
std::vector<std::vector<node>> ranks; | ||
uint32_t max_rank_width; | ||
|
||
std::shared_ptr<typename mockturtle::network_events<Ntk>::add_event_type> add_event; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: no header providing "mockturtle::network_events" is directly included [misc-include-cleaner]
include/fiction/networks/views/extended_rank_view.hpp:8:
- #include <mockturtle/traits.hpp>
+ #include <mockturtle/networks/events.hpp>
+ #include <mockturtle/traits.hpp>
void insert_in_rank(const node& n) | ||
{ | ||
auto& rank = ranks[this->level(n)]; | ||
rank_pos[n] = rank.size(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: implicit conversion loses integer precision: 'size_type' (aka 'unsigned long') to 'value_type' (aka 'unsigned int') [clang-diagnostic-shorten-64-to-32]
rank_pos[n] = rank.size();
^
Additional context
include/fiction/networks/views/extended_rank_view.hpp:471: in instantiation of member function 'fiction::extended_rank_view<fiction::virtual_pi_networkfiction::technology_network>::insert_in_rank' requested here
insert_in_rank(n);
^
include/fiction/networks/views/extended_rank_view.hpp:142: in instantiation of member function 'fiction::extended_rank_view<fiction::virtual_pi_networkfiction::technology_network>::on_add' requested here
add_event = Ntk::events().register_add_event([this](auto const& n) { on_add(n); });
^
include/fiction/algorithms/network_transformation/node_duplication_planarization.hpp:647: in instantiation of member function 'fiction::extended_rank_view<fiction::virtual_pi_networkfiction::technology_network>::extended_rank_view' requested here
return extended_rank_view(virtual_ntk, ntk_lvls_new);
^
include/fiction/algorithms/network_transformation/node_duplication_planarization.hpp:706: in instantiation of member function 'fiction::detail::node_duplication_planarization_implfiction::technology_network::run' requested here
auto result = p.run(ntk_lvls_new);
^
experiments/legalization/legalization.cpp:114: in instantiation of function template specialization 'fiction::node_duplication_planarizationfiction::technology_network' requested here
const auto planarized_b = fiction::node_duplication_planarization<fiction::technology_network>(b);
^
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
There were too many comments to post at once. Showing the first 25 out of 46. Check the log or trigger a new build to see more.
// check equivalence | ||
mockturtle::equivalence_checking_stats st; | ||
const auto cec_m = mockturtle::equivalence_checking( | ||
*fiction::virtual_miter<fiction::technology_network>(benchmark_network, planarized_b), {}, &st); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
*fiction::virtual_miter<fiction::technology_network>(benchmark_network, planarized_b), {}, &st);
^
fiction::clocked_layout<fiction::tile_based_layout<fiction::cartesian_layout<fiction::offset::ucoord_t>>>>; | ||
auto layout = fiction::orthogonal<gate_layout>(planarized_b, {}, &stats); | ||
|
||
fiction::gate_level_drv_params ps_d{}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: variable 'ps_d' of type 'fiction::gate_level_drv_params' can be declared 'const' [misc-const-correctness]
fiction::gate_level_drv_params ps_d{}; | |
fiction::gate_level_drv_params const ps_d{}; |
mockturtle::equivalence_checking_stats st_o; | ||
|
||
const auto ce = mockturtle::equivalence_checking(*miter, {}, &st_o); | ||
eq = ce.value(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
eq = ce.value();
^
// log results | ||
wiring_reduction_exp(benchmark, benchmark_network.num_pis(), planarized_b.num_virtual_pis(), | ||
benchmark_network.num_pos(), benchmark_network.num_gates(), b.num_gates(), | ||
planarized_b.num_gates(), is_planar, cec_m.value(), eq); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
planarized_b.num_gates(), is_planar, cec_m.value(), eq);
^
wiring_reduction_exp.table(); | ||
} | ||
|
||
return EXIT_SUCCESS; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: no header providing "EXIT_SUCCESS" is directly included [misc-include-cleaner]
experiments/legalization/legalization.cpp:30:
- #include <filesystem>
+ #include <cstdlib>
+ #include <filesystem>
{ | ||
assert(rank_level < ranks.size()); | ||
auto& rank = ranks[rank_level]; | ||
rank_pos[n] = rank.size(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: implicit conversion loses integer precision: 'size_type' (aka 'unsigned long') to 'value_type' (aka 'unsigned int') [clang-diagnostic-shorten-64-to-32]
rank_pos[n] = rank.size();
^
Additional context
include/fiction/networks/views/extended_rank_view.hpp:521: in instantiation of member function 'fiction::extended_rank_view<fiction::virtual_pi_networkfiction::technology_network>::insert_in_rank' requested here
insert_in_rank(n, i);
^
include/fiction/networks/views/extended_rank_view.hpp:140: in instantiation of member function 'fiction::extended_rank_view<fiction::virtual_pi_networkfiction::technology_network>::init_ranks' requested here
init_ranks(ranks);
^
include/fiction/algorithms/network_transformation/node_duplication_planarization.hpp:647: in instantiation of member function 'fiction::extended_rank_view<fiction::virtual_pi_networkfiction::technology_network>::extended_rank_view' requested here
return extended_rank_view(virtual_ntk, ntk_lvls_new);
^
include/fiction/algorithms/network_transformation/node_duplication_planarization.hpp:706: in instantiation of member function 'fiction::detail::node_duplication_planarization_implfiction::technology_network::run' requested here
auto result = p.run(ntk_lvls_new);
^
experiments/legalization/legalization.cpp:114: in instantiation of function template specialization 'fiction::node_duplication_planarizationfiction::technology_network' requested here
const auto planarized_b = fiction::node_duplication_planarization<fiction::technology_network>(b);
^
* @param fn The function to be applied to each primary input. | ||
*/ | ||
template <typename Fn> | ||
void foreach_virtual_pi(Fn&& fn) const |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: forwarding reference parameter 'fn' is never forwarded inside the function body [cppcoreguidelines-missing-std-forward]
void foreach_virtual_pi(Fn&& fn) const
^
* @param fn The function to be applied to each primary input. | ||
*/ | ||
template <typename Fn> | ||
void foreach_virtual_ci(Fn&& fn) const |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: forwarding reference parameter 'fn' is never forwarded inside the function body [cppcoreguidelines-missing-std-forward]
void foreach_virtual_ci(Fn&& fn) const
^
|
||
#if (PROGRESS_BARS) | ||
// initialize a progress bar | ||
mockturtle::progress_bar bar{static_cast<uint32_t>(ntk.num_gates()), "[i] network conversion: |{0}|"}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: no type named 'progress_bar' in namespace 'mockturtle' [clang-diagnostic-error]
mockturtle::progress_bar bar{static_cast<uint32_t>(ntk.num_gates()), "[i] network conversion: |{0}|"};
^
Ntk ntk; | ||
TopoNtkSrc ntk_topo; | ||
|
||
[[nodiscard]] std::pair<Ntk, mockturtle::node_map<mockturtle::signal<Ntk>, Ntk>> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: no header providing "mockturtle::node_map" is directly included [misc-include-cleaner]
include/fiction/networks/virtual_pi_network.hpp:11:
- #include <mockturtle/views/topo_view.hpp>
+ #include <mockturtle/utils/node_map.hpp>
+ #include <mockturtle/views/topo_view.hpp>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
There were too many comments to post at once. Showing the first 25 out of 44. Check the log or trigger a new build to see more.
// check equivalence | ||
mockturtle::equivalence_checking_stats st; | ||
const auto cec_m = mockturtle::equivalence_checking( | ||
*fiction::virtual_miter<fiction::technology_network>(benchmark_network, planarized_b), {}, &st); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
*fiction::virtual_miter<fiction::technology_network>(benchmark_network, planarized_b), {}, &st);
^
fiction::clocked_layout<fiction::tile_based_layout<fiction::cartesian_layout<fiction::offset::ucoord_t>>>>; | ||
auto layout = fiction::orthogonal<gate_layout>(planarized_b, {}, &stats); | ||
|
||
fiction::gate_level_drv_params ps_d{}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: variable 'ps_d' of type 'fiction::gate_level_drv_params' can be declared 'const' [misc-const-correctness]
fiction::gate_level_drv_params ps_d{}; | |
fiction::gate_level_drv_params const ps_d{}; |
mockturtle::equivalence_checking_stats st_o; | ||
|
||
const auto ce = mockturtle::equivalence_checking(*miter, {}, &st_o); | ||
eq = ce.value(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
eq = ce.value();
^
// log results | ||
wiring_reduction_exp(benchmark, benchmark_network.num_pis(), planarized_b.num_virtual_pis(), | ||
benchmark_network.num_pos(), benchmark_network.num_gates(), b.num_gates(), | ||
planarized_b.num_gates(), is_planar, cec_m.value(), eq); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
planarized_b.num_gates(), is_planar, cec_m.value(), eq);
^
wiring_reduction_exp.table(); | ||
} | ||
|
||
return EXIT_SUCCESS; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: no header providing "EXIT_SUCCESS" is directly included [misc-include-cleaner]
experiments/legalization/legalization.cpp:30:
- #include <filesystem>
+ #include <cstdlib>
+ #include <filesystem>
* @param fn The function to be applied to each primary input. | ||
*/ | ||
template <typename Fn> | ||
void foreach_virtual_pi(Fn&& fn) const |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: forwarding reference parameter 'fn' is never forwarded inside the function body [cppcoreguidelines-missing-std-forward]
void foreach_virtual_pi(Fn&& fn) const
^
* @param fn The function to be applied to each primary input. | ||
*/ | ||
template <typename Fn> | ||
void foreach_virtual_ci(Fn&& fn) const |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: forwarding reference parameter 'fn' is never forwarded inside the function body [cppcoreguidelines-missing-std-forward]
void foreach_virtual_ci(Fn&& fn) const
^
Ntk ntk; | ||
TopoNtkSrc ntk_topo; | ||
|
||
[[nodiscard]] std::pair<Ntk, mockturtle::node_map<mockturtle::signal<Ntk>, Ntk>> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: no header providing "mockturtle::node_map" is directly included [misc-include-cleaner]
include/fiction/networks/virtual_pi_network.hpp:11:
- #include <mockturtle/views/topo_view.hpp>
+ #include <mockturtle/utils/node_map.hpp>
+ #include <mockturtle/views/topo_view.hpp>
const auto removed = remove_buffer(tec); | ||
|
||
mockturtle::equivalence_checking_stats st; | ||
const auto cec_m = mockturtle::equivalence_checking(*mockturtle::miter<technology_network>(tec, removed), {}, &st); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
const auto cec_m = mockturtle::equivalence_checking(*mockturtle::miter<technology_network>(tec, removed), {}, &st);
^
mockturtle::equivalence_checking_stats st; | ||
const auto cec_m = mockturtle::equivalence_checking(*mockturtle::miter<technology_network>(tec, removed), {}, &st); | ||
REQUIRE(cec_m.has_value()); | ||
CHECK(cec_m.value() == 1); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
CHECK(cec_m.value() == 1);
^
# Conflicts: # bindings/mnt/pyfiction/include/pyfiction/pybind11_mkdoc_docstrings.hpp
Signed-off-by: GitHub Actions <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
There were too many comments to post at once. Showing the first 25 out of 32. Check the log or trigger a new build to see more.
node_pair(mockturtle::node<Ntk> node1, mockturtle::node<Ntk> node2, uint64_t delay_value) : | ||
pair(node1, node2), | ||
delay(delay_value), | ||
fanin_pair(nullptr) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: field 'delay' will be initialized after field 'fanin_pair' [clang-diagnostic-reorder-ctor]
fanin_pair(nullptr) | |
fanin_pair(nullptr)), | |
delay(delay_value |
Additional context
include/fiction/algorithms/network_transformation/node_duplication_planarization.hpp:324: in instantiation of member function 'fiction::detail::node_pairfiction::technology_network::node_pair' requested here
const node_pair<Ntk> pair = {nodes[0], nodes[0],
^
include/fiction/algorithms/network_transformation/node_duplication_planarization.hpp:404: in instantiation of function template specialization 'fiction::detail::calculate_pairsfiction::technology_network' requested here
auto combinations = calculate_pairs<Ntk>(fis);
^
include/fiction/algorithms/network_transformation/node_duplication_planarization.hpp:605: in instantiation of member function 'fiction::detail::node_duplication_planarization_implfiction::technology_network::compute_slice_delays' requested here
compute_slice_delays(po);
^
include/fiction/algorithms/network_transformation/node_duplication_planarization.hpp:706: in instantiation of member function 'fiction::detail::node_duplication_planarization_implfiction::technology_network::run' requested here
auto result = p.run(ntk_lvls_new);
^
test/algorithms/network_transformation/buffer_removal.cpp:90: in instantiation of function template specialization 'fiction::node_duplication_planarizationfiction::technology_network' requested here
auto planarized_b = fiction::node_duplication_planarization<fiction::technology_network>(_b, dps);
^
node_pair(mockturtle::node<Ntk> node1, mockturtle::node<Ntk> node2, uint64_t delay_value) : | ||
pair(node1, node2), | ||
delay(delay_value), | ||
fanin_pair(nullptr) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: field 'delay' will be initialized after field 'fanin_pair' [clang-diagnostic-reorder-ctor]
fanin_pair(nullptr) | |
fanin_pair(nullptr)), | |
delay(delay_value |
Additional context
include/fiction/algorithms/network_transformation/node_duplication_planarization.hpp:324: in instantiation of member function 'fiction::detail::node_pairfiction::technology_network::node_pair' requested here
const node_pair<Ntk> pair = {nodes[0], nodes[0],
^
include/fiction/algorithms/network_transformation/node_duplication_planarization.hpp:404: in instantiation of function template specialization 'fiction::detail::calculate_pairsfiction::technology_network' requested here
auto combinations = calculate_pairs<Ntk>(fis);
^
include/fiction/algorithms/network_transformation/node_duplication_planarization.hpp:605: in instantiation of member function 'fiction::detail::node_duplication_planarization_implfiction::technology_network::compute_slice_delays' requested here
compute_slice_delays(po);
^
include/fiction/algorithms/network_transformation/node_duplication_planarization.hpp:706: in instantiation of member function 'fiction::detail::node_duplication_planarization_implfiction::technology_network::run' requested here
auto result = p.run(ntk_lvls_new);
^
test/algorithms/network_transformation/node_duplication_planarization.cpp:41: in instantiation of function template specialization 'fiction::node_duplication_planarizationfiction::technology_network' requested here
auto planarized_maj = node_duplication_planarization<technology_network>(tec_b);
^
{ | ||
uint32_t new_bound = bound; | ||
ntk.foreach_fanin(n, | ||
[this, &n, &bound, &new_bound, &return_false](const auto& fi) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: lambda capture 'n' is not used [clang-diagnostic-unused-lambda-capture]
[this, &n, &bound, &new_bound, &return_false](const auto& fi)
^
Additional context
/usr/include/c++/13/type_traits:2557: in instantiation of function template specialization 'fiction::check_planarity_impl<fiction::extended_rank_viewmockturtle::aig_network>::run()::(anonymous class)::operator()' requested here
std::declval<_Fn>()(std::declval<_Args>()...)
^
/usr/include/c++/13/type_traits:2568: while substituting deduced template arguments into function template '_S_test' [with _Fn = (lambda at /github/workspace/include/fiction/algorithms/properties/check_planarity_balanced.hpp:46:38), _Args = (no value)]
typedef decltype(_S_test<_Functor, _ArgTypes...>(0)) type;
^
/usr/include/c++/13/type_traits:2574: in instantiation of template class 'std::__result_of_impl<false, false, (lambda at /github/workspace/include/fiction/algorithms/properties/check_planarity_balanced.hpp:46:38), unsigned long>' requested here
: public __result_of_impl<
^
/usr/include/c++/13/type_traits:2935: in instantiation of template class 'std::__invoke_result<(lambda at /github/workspace/include/fiction/algorithms/properties/check_planarity_balanced.hpp:46:38), unsigned long>' requested here
__void_t<typename _Result::type>>
^
/usr/include/c++/13/type_traits:3089: during template argument deduction for class template partial specialization '__is_invocable_impl<_Result, _Ret, true, __void_t>' [with _Result = std::__invoke_result<(lambda at /github/workspace/include/fiction/algorithms/properties/check_planarity_balanced.hpp:46:38), unsigned long>, _Ret = void]
: __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, _Ret>::type
^
/usr/include/c++/13/type_traits:3089: (skipping 3 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
: __is_invocable_impl<__invoke_result<_Fn, _ArgTypes...>, _Ret>::type
^
libs/mockturtle/include/mockturtle/networks/detail/foreach.hpp:51: in instantiation of variable template specialization 'mockturtle::detail::is_callable_without_index_v<(lambda at /github/workspace/include/fiction/algorithms/properties/check_planarity_balanced.hpp:46:38), unsigned long, void>' requested here
is_callable_without_index_v<Fn, ElementType, void> ||
^
include/fiction/networks/views/extended_rank_view.hpp:332: in instantiation of function template specialization 'mockturtle::detail::foreach_element<__gnu_cxx::__normal_iterator<const unsigned long *, std::vector>, unsigned long, (lambda at /github/workspace/include/fiction/algorithms/properties/check_planarity_balanced.hpp:46:38)>' requested here
mockturtle::detail::foreach_element(rank.cbegin(), rank.cend(), std::forward<Fn>(fn));
^
include/fiction/algorithms/properties/check_planarity_balanced.hpp:44: in instantiation of function template specialization 'fiction::extended_rank_viewmockturtle::aig_network::foreach_node_in_rank<(lambda at /github/workspace/include/fiction/algorithms/properties/check_planarity_balanced.hpp:46:38)>' requested here
ntk.foreach_node_in_rank(r,
^
include/fiction/algorithms/properties/check_planarity_balanced.hpp:114: in instantiation of member function 'fiction::check_planarity_impl<fiction::extended_rank_viewmockturtle::aig_network>::run' requested here
const auto result = p.run();
^
test/algorithms/properties/check_planarity_balanced.cpp:47: in instantiation of function template specialization 'fiction::check_planarity<fiction::extended_rank_viewmockturtle::aig_network>' requested here
const bool planar = check_planarity(tec_r);
^
{ | ||
for (auto l = 0; l < ranks.size(); ++l) | ||
{ | ||
foreach_node_in_rank(l, std::forward<Fn>(fn)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: implicit conversion changes signedness: 'int' to 'uint32_t' (aka 'unsigned int') [clang-diagnostic-sign-conversion]
foreach_node_in_rank(l, std::forward<Fn>(fn));
^
expanded from here
{ | ||
for (auto l = 0; l < ranks.size(); ++l) | ||
{ | ||
foreach_gate_in_rank(l, std::forward<Fn>(fn)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: implicit conversion changes signedness: 'int' to 'uint32_t' (aka 'unsigned int') [clang-diagnostic-sign-conversion]
foreach_gate_in_rank(l, std::forward<Fn>(fn));
^
Additional context
include/fiction/networks/virtual_pi_network.hpp:391: in instantiation of function template specialization 'fiction::extended_rank_view<fiction::virtual_pi_networkfiction::technology_network>::foreach_gate<(lambda at /github/workspace/include/fiction/networks/virtual_pi_network.hpp:393:13)>' requested here
ntk_topo.foreach_gate(
^
include/fiction/networks/virtual_pi_network.hpp:560: in instantiation of member function 'fiction::detail::delete_virtual_pis_impl<fiction::extended_rank_view<fiction::virtual_pi_networkfiction::technology_network>>::run' requested here
auto result = p.run();
^
include/fiction/algorithms/verification/virtual_miter.hpp:23: in instantiation of function template specialization 'fiction::delete_virtual_pis<fiction::extended_rank_view<fiction::virtual_pi_networkfiction::technology_network>>' requested here
return delete_virtual_pis(network);
^
test/algorithms/network_transformation/node_duplication_planarization.cpp:45: in instantiation of function template specialization 'fiction::virtual_miter<fiction::technology_network, fiction::technology_network, fiction::extended_rank_view<fiction::virtual_pi_networkfiction::technology_network>>' requested here
mockturtle::equivalence_checking(*fiction::virtual_miter<technology_network>(tec, planarized_maj), {}, &st);
^
|
||
mockturtle::equivalence_checking_stats st; | ||
const auto cec_m = | ||
mockturtle::equivalence_checking(*fiction::virtual_miter<technology_network>(tec, planarized_maj), {}, &st); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
mockturtle::equivalence_checking(*fiction::virtual_miter<technology_network>(tec, planarized_maj), {}, &st);
^
const auto cec_m = | ||
mockturtle::equivalence_checking(*fiction::virtual_miter<technology_network>(tec, planarized_maj), {}, &st); | ||
REQUIRE(cec_m.has_value()); | ||
CHECK(*cec_m == 1); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
CHECK(*cec_m == 1);
^
|
||
mockturtle::equivalence_checking_stats st; | ||
const auto cec_m = | ||
mockturtle::equivalence_checking(*fiction::virtual_miter<technology_network>(aig, planarized_maj), {}, &st); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
mockturtle::equivalence_checking(*fiction::virtual_miter<technology_network>(aig, planarized_maj), {}, &st);
^
const auto cec_m = | ||
mockturtle::equivalence_checking(*fiction::virtual_miter<technology_network>(aig, planarized_maj), {}, &st); | ||
REQUIRE(cec_m.has_value()); | ||
CHECK(*cec_m == 1); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
CHECK(*cec_m == 1);
^
|
||
mockturtle::equivalence_checking_stats st; | ||
const auto cec_m = | ||
mockturtle::equivalence_checking(*fiction::virtual_miter<technology_network>(aig, planarized_maj), {}, &st); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
mockturtle::equivalence_checking(*fiction::virtual_miter<technology_network>(aig, planarized_maj), {}, &st);
^
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
const auto cec_m = | ||
mockturtle::equivalence_checking(*fiction::virtual_miter<technology_network>(aig, planarized_maj), {}, &st); | ||
REQUIRE(cec_m.has_value()); | ||
CHECK(*cec_m == 1); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
CHECK(*cec_m == 1);
^
|
||
mockturtle::equivalence_checking_stats st; | ||
const auto cec_m = | ||
mockturtle::equivalence_checking(*fiction::virtual_miter<technology_network>(aig, planarized_maj), {}, &st); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
mockturtle::equivalence_checking(*fiction::virtual_miter<technology_network>(aig, planarized_maj), {}, &st);
^
const auto cec_m = | ||
mockturtle::equivalence_checking(*fiction::virtual_miter<technology_network>(aig, planarized_maj), {}, &st); | ||
REQUIRE(cec_m.has_value()); | ||
CHECK(*cec_m == 1); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
CHECK(*cec_m == 1);
^
|
||
mockturtle::equivalence_checking_stats st; | ||
const auto maybe_cec_m = | ||
mockturtle::equivalence_checking(*fiction::virtual_miter<technology_network>(ntk, ntk_r), {}, &st); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
mockturtle::equivalence_checking(*fiction::virtual_miter<technology_network>(ntk, ntk_r), {}, &st);
^
const auto maybe_cec_m = | ||
mockturtle::equivalence_checking(*fiction::virtual_miter<technology_network>(ntk, ntk_r), {}, &st); | ||
REQUIRE(maybe_cec_m.has_value()); | ||
const bool cec_m = *maybe_cec_m; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
const bool cec_m = *maybe_cec_m;
^
|
||
mockturtle::equivalence_checking_stats st; | ||
const auto maybe_cec_m = | ||
mockturtle::equivalence_checking(*fiction::virtual_miter<technology_network>(tec, vpi_r), {}, &st); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
mockturtle::equivalence_checking(*fiction::virtual_miter<technology_network>(tec, vpi_r), {}, &st);
^
const auto maybe_cec_m = | ||
mockturtle::equivalence_checking(*fiction::virtual_miter<technology_network>(tec, vpi_r), {}, &st); | ||
REQUIRE(maybe_cec_m.has_value()); | ||
const bool cec_m = *maybe_cec_m; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
warning: unchecked access to optional value [bugprone-unchecked-optional-access]
const bool cec_m = *maybe_cec_m;
^
Description
Adds the following .hpp and .cpp files:
Molecular QCA Circuits") in order to duplicate nodes on a given PO order. The output is a extended_rank_view of a virtual_pi_network
Fixes # (issue)
Checklist: