37 const int max_slicing_tries_i = 256;
41 ContainerGroupsBySize make_container_groups_by_size()
const;
43 struct PreSliceResult {
44 std::list<SuperCluster *> clusters;
51 PreSliceResult pre_slice_all(
const Allocation &empty_alloc,
52 const std::list<SuperCluster *> &clusters,
60 struct RefinedSuperClusterSet {
61 std::list<PHV::SuperCluster *> normal;
62 std::list<PHV::SuperCluster *> deparser_zero;
63 std::list<PHV::SuperCluster *> strided;
66 std::deque<std::pair<int, const PHV::SuperCluster *>> normal_sc_que()
const;
70 void sort_normal_clusters(std::list<PHV::SuperCluster *> &clusters)
const;
74 RefinedSuperClusterSet prepare_refined_set(
const std::list<SuperCluster *> &clusters)
const;
80 struct AllocResultWithSlicingDetails {
83 std::list<PHV::SuperCluster *> best_slicing;
84 int best_slicing_idx = 0;
87 explicit AllocResultWithSlicingDetails(
const Transaction &tx) : rst(tx) {}
88 explicit AllocResultWithSlicingDetails(
AllocError *err) : rst(err) {}
90 friend std::ostream &operator<<(std::ostream &,
const AllocResultWithSlicingDetails &);
93 AllocResultWithSlicingDetails slice_and_allocate_sc(
95 const ContainerGroupsBySize &container_groups,
AllocatorMetrics &alloc_metrics,
96 const int max_slicings = 128)
const;
108std::ostream &operator<<(std::ostream &,
const GreedyAllocator::AllocResultWithSlicingDetails &);
ScoreContext is the allocation context that is updated and passed down during allocation.
Definition utils_v2.h:178