blob: 00ebf9441f29d03fe2ce357010e405b30bf9617d [file] [log] [blame]
/*
Find placement for group of atom blocks in complex block
Author: Jason Luu
*/
#ifndef CLUSTER_PLACEMENT_H
#define CLUSTER_PLACEMENT_H
#include "arch_types.h"
std::vector<t_cluster_placement_stats> alloc_and_load_cluster_placement_stats();
bool get_next_primitive_list(
t_cluster_placement_stats& cluster_placement_stats,
const PackMolecules& molecules,
const PackMoleculeId molecule_id,
const MoleculeStats& molecule_stats,
vtr::vector<MoleculeBlockId,t_pb_graph_node*>& primitives_list);
void commit_primitive(t_cluster_placement_stats& cluster_placement_stats,
const t_pb_graph_node *primitive);
void set_mode_cluster_placement_stats(const t_pb_graph_node *complex_block,
int mode);
void reset_cluster_placement_stats(
t_cluster_placement_stats& cluster_placement_stats);
void free_cluster_placement_stats(std::vector<t_cluster_placement_stats>& cluster_placement_stats_list);
int get_array_size_of_molecule(const t_pack_molecule *molecule);
bool exists_free_primitive_for_atom_block(
t_cluster_placement_stats& cluster_placement_stats,
const AtomBlockId blk_id);
void reset_tried_but_unused_cluster_placements(
t_cluster_placement_stats& cluster_placement_stats);
#endif