becopyilp: Inline struct size_red_t into struct ilp_env_t.
[libfirm] / ir / kaps / bucket.h
1 /*
2  * This file is part of libFirm.
3  * Copyright (C) 2012 University of Karlsruhe.
4  */
5
6 /**
7  * @file
8  * @brief   Buckets for nodes and edges.
9  * @date    30.11.2008
10  * @author  Sebastian Buchwald
11  */
12 #ifndef KAPS_BUCKET_H
13 #define KAPS_BUCKET_H
14
15 #include "bucket_t.h"
16
17 int edge_bucket_contains(pbqp_edge_bucket_t bucket, pbqp_edge_t *edge);
18 void edge_bucket_free(pbqp_edge_bucket_t *bucket);
19 unsigned edge_bucket_get_length(pbqp_edge_bucket_t bucket);
20 void edge_bucket_init(pbqp_edge_bucket_t *bucket);
21 void edge_bucket_insert(pbqp_edge_bucket_t *bucket, pbqp_edge_t *edge);
22 pbqp_edge_t *edge_bucket_pop(pbqp_edge_bucket_t *bucket);
23
24 int node_bucket_contains(pbqp_node_bucket_t bucket, pbqp_node_t *node);
25 void node_bucket_copy(pbqp_node_bucket_t *dst, pbqp_node_bucket_t src);
26 void node_bucket_deep_copy(pbqp_t *pbqp, pbqp_node_bucket_t *dst, pbqp_node_bucket_t src);
27 void node_bucket_free(pbqp_node_bucket_t *bucket);
28 unsigned node_bucket_get_length(pbqp_node_bucket_t bucket);
29 void node_bucket_init(pbqp_node_bucket_t *bucket);
30 void node_bucket_insert(pbqp_node_bucket_t *bucket, pbqp_node_t *node);
31 pbqp_node_t *node_bucket_pop(pbqp_node_bucket_t *bucket);
32 void node_bucket_remove(pbqp_node_bucket_t *bucket, pbqp_node_t *node);
33 void node_bucket_shrink(pbqp_node_bucket_t *bucket, unsigned len);
34 void node_bucket_update(pbqp_t *pbqp, pbqp_node_bucket_t bucket);
35
36 #endif /* KAPS_BUCKET_H */