@@ -20,6 +20,8 @@ Placer::Placer(const Netlist<>& net_list,
20
20
const t_placer_opts& placer_opts,
21
21
const t_analysis_opts& analysis_opts,
22
22
const t_noc_opts& noc_opts,
23
+ const IntraLbPbPinLookup& pb_gpin_lookup,
24
+ const ClusteredPinAtomPinsLookup& netlist_pin_lookup,
23
25
const std::vector<t_direct_inf>& directs,
24
26
std::shared_ptr<PlaceDelayModel> place_delay_model,
25
27
bool cube_bb,
@@ -28,6 +30,8 @@ Placer::Placer(const Netlist<>& net_list,
28
30
: placer_opts_(placer_opts)
29
31
, analysis_opts_(analysis_opts)
30
32
, noc_opts_(noc_opts)
33
+ , pb_gpin_lookup_(pb_gpin_lookup)
34
+ , netlist_pin_lookup_(netlist_pin_lookup)
31
35
, costs_(placer_opts.place_algorithm, noc_opts.noc)
32
36
, placer_state_(placer_opts.place_algorithm.is_timing_driven(), cube_bb)
33
37
, rng_(placer_opts.seed)
@@ -36,8 +40,6 @@ Placer::Placer(const Netlist<>& net_list,
36
40
, log_printer_(*this , quiet)
37
41
, is_flat_(is_flat) {
38
42
const auto & cluster_ctx = g_vpr_ctx.clustering ();
39
- const auto & device_ctx = g_vpr_ctx.device ();
40
- const auto & atom_ctx = g_vpr_ctx.atom ();
41
43
42
44
pre_place_timing_stats_ = g_vpr_ctx.timing ().stats ;
43
45
@@ -102,11 +104,6 @@ Placer::Placer(const Netlist<>& net_list,
102
104
init_draw_coords ((float )width_fac, placer_state_.blk_loc_registry ());
103
105
}
104
106
105
- // Allocate here because it goes into timing critical code where each memory allocation is expensive
106
- pb_gpin_lookup_ = IntraLbPbPinLookup (device_ctx.logical_block_types );
107
- // Enables fast look-up of atom pins connect to CLB pins
108
- netlist_pin_lookup_ = ClusteredPinAtomPinsLookup (cluster_ctx.clb_nlist , atom_ctx.nlist , pb_gpin_lookup_);
109
-
110
107
// Gets initial cost and loads bounding boxes.
111
108
costs_.bb_cost = net_cost_handler_.comp_bb_cost (e_cost_methods::NORMAL);
112
109
costs_.bb_cost_norm = 1 / costs_.bb_cost ;
0 commit comments