|
| AllocUtils (const PhvInfo &phv, const ClotInfo &clot, const Clustering &clustering, const PhvUse &uses, const FieldDefUse &defuse, const ActionPhvConstraints &actions, const LiveRangeShrinking &meta_init, const DarkOverlay &dark_init, const MapFieldToParserStates &field_to_parser_states, const CalcParserCriticalPath &parser_critical_path, const CollectParserInfo &parser_info, const CollectStridedHeaders &strided_headers, const PHV::FieldSliceLiveRangeDB &physical_liverange_db, const ActionSourceTracker &source_tracker, const PHV::Pragmas &pragmas, const AllocSetting &settings, const TableFieldPackOptimization &tablePackOpt) |
|
bool | can_physical_liverange_be_overlaid (const PHV::AllocSlice &a, const PHV::AllocSlice &b) const |
|
bool | has_pack_conflict (const PHV::FieldSlice &fs1, const PHV::FieldSlice &fs2) const |
|
bool | is_referenced (const PHV::Field *f) const |
|
PHV::Slicing::IteratorInterface * | make_slicing_ctx (const PHV::SuperCluster *sc) const |
|
std::list< PHV::SuperCluster * > | make_superclusters () const |
|
const SymBitMatrix & | mutex () const |
|
|
static void | bind_slices (const PHV::ConcreteAllocation &alloc, PhvInfo &phv) |
|
static void | clear_slices (PhvInfo &phv) |
| clear alloc_slices allocated in phv , if any.
|
|
static std::list< PHV::SuperCluster * > | create_strided_clusters (const CollectStridedHeaders &strided_headers, const std::list< PHV::SuperCluster * > &cluster_groups) |
|
static bool | is_clot_allocated (const ClotInfo &clots, const PHV::SuperCluster &sc) |
|
static std::list< PHV::ContainerGroup * > | make_device_container_groups () |
|
static std::list< PHV::SuperCluster * > | remove_clot_allocated_clusters (const ClotInfo &clot, std::list< PHV::SuperCluster * > clusters) |
|
static std::list< PHV::SuperCluster * > | remove_singleton_metadata_slicelist (const std::list< PHV::SuperCluster * > &cluster_groups) |
|
static std::list< PHV::SuperCluster * > | remove_unref_clusters (const PhvUse &uses, const std::list< PHV::SuperCluster * > &cluster_groups_input) |
|
static void | sort_and_merge_alloc_slices (PhvInfo &phv) |
|
static bool | update_refs (AllocSlice &slc, const PhvInfo &p, const FieldDefUse::LocPairSet &refs, FieldUse fuse) |
|
static void | update_slice_refs (PhvInfo &phv, const FieldDefUse &defuse) |
|
AllocUtils is a collection of const references to misc passes that PHV allocation depends on. It also provides some helper methods that are used by different allocation strategies.