blob: 4d0125a06977d87094ef046a0dd1019b7f6c4c0a [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"
t_cluster_placement_stats* alloc_and_load_cluster_placement_stats();
bool get_next_primitive_list(
t_cluster_placement_stats* cluster_placement_stats,
const t_pack_molecule* molecule,
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(
t_cluster_placement_stats* cluster_placement_stats);
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