Merge pull request #607 from litghost/add_absl_flat_hash_map

Add absl::flat_hash_map.
This commit is contained in:
gatecat 2021-03-09 08:48:25 +00:00 committed by GitHub
commit d1f44fe91a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 11 additions and 1 deletions

3
.gitmodules vendored
View File

@ -4,3 +4,6 @@
[submodule "fpga-interchange-schema"]
path = 3rdparty/fpga-interchange-schema
url = https://github.com/SymbiFlow/fpga-interchange-schema.git
[submodule "3rdparty/abseil-cpp"]
path = 3rdparty/abseil-cpp
url = https://github.com/abseil/abseil-cpp.git

1
3rdparty/abseil-cpp vendored Submodule

@ -0,0 +1 @@
Subproject commit a76698790753d2ec71f655cdc84d61bcb27780d4

View File

@ -171,6 +171,8 @@ if (NOT DEFINED CURRENT_GIT_VERSION)
)
endif()
add_subdirectory(3rdparty/abseil-cpp EXCLUDE_FROM_ALL)
if (BUILD_TESTS)
add_subdirectory(3rdparty/googletest/googletest ${CMAKE_CURRENT_BINARY_DIR}/generated/3rdparty/googletest EXCLUDE_FROM_ALL)
enable_testing()
@ -272,6 +274,9 @@ foreach (family ${ARCH})
# Include the family-specific CMakeFile
include(${family}/family.cmake)
foreach (target ${family_targets})
target_link_libraries(${target} PRIVATE absl::flat_hash_map)
target_link_libraries(${target} PRIVATE absl::flat_hash_set)
# Include family-specific source files to all family targets and set defines appropriately
target_include_directories(${target} PRIVATE ${family}/ ${CMAKE_CURRENT_BINARY_DIR}/generated/)
target_compile_definitions(${target} PRIVATE NEXTPNR_NAMESPACE=nextpnr_${family} ARCH_${ufamily} ARCHNAME=${family})

View File

@ -27,6 +27,7 @@
*/
#include "router2.h"
#include <absl/container/flat_hash_map.h>
#include <algorithm>
#include <boost/container/flat_map.hpp>
#include <chrono>
@ -190,7 +191,7 @@ struct Router2
}
}
std::unordered_map<WireId, int> wire_to_idx;
absl::flat_hash_map<WireId, int> wire_to_idx;
std::vector<PerWireData> flat_wires;
PerWireData &wire_data(WireId w) { return flat_wires[wire_to_idx.at(w)]; }