* @param type type of iterator variable
* @param entry the iterator
*/
-#define foreach_set(set, type, entry) for (entry = (type) set_first(set); entry; entry = (type) set_next(set))
+#define foreach_set(set, type, entry) for (entry = (type*)set_first(set); entry; entry = (type*)set_next(set))
/** @cond PRIVATE */
stat_ev_cnt_decl(fwd);
stat_ev_cnt_decl(cross);
- foreach_set (dfs->edges, dfs_edge_t*, edge) {
+ foreach_set (dfs->edges, dfs_edge_t, edge) {
dfs_node_t *src = edge->s;
dfs_node_t *tgt = edge->t;
assert(res->pre_num == res->post_num);
res->pre_order = XMALLOCN(dfs_node_t*, res->pre_num);
res->post_order = XMALLOCN(dfs_node_t*, res->post_num);
- foreach_set (res->nodes, dfs_node_t*, node) {
+ foreach_set (res->nodes, dfs_node_t, node) {
assert(node->pre_num < res->pre_num);
assert(node->post_num < res->post_num);
int i, n = 0;
ir_fprintf(file, "digraph G {\nranksep=0.5\n");
- foreach_set (dfs->nodes, dfs_node_t*, node) {
+ foreach_set (dfs->nodes, dfs_node_t, node) {
nodes[n++] = node;
}
#endif
}
- foreach_set (dfs->edges, dfs_edge_t*, edge)
+ foreach_set (dfs->edges, dfs_edge_t, edge)
dfs_dump_edge(edge, file);
ir_fprintf(file, "}\n");
be_emit_cstring("\t.align 2\n");
- foreach_set(sym_or_tv, sym_or_tv_t*, entry) {
+ foreach_set(sym_or_tv, sym_or_tv_t, entry) {
emit_constant_name(entry);
be_emit_cstring(":\n");
be_emit_write_line();
{
memperm_t *memperm;
- foreach_set(env->memperms, memperm_t*, memperm) {
+ foreach_set(env->memperms, memperm_t, memperm) {
ir_node **nodes = ALLOCAN(ir_node*, memperm->entrycount);
memperm_entry_t *entry;
ir_node *blockend;
}
/* process each spilled node */
- foreach_set(env->spills, spill_info_t*, si) {
+ foreach_set(env->spills, spill_info_t, si) {
ir_node *to_spill = si->to_spill;
ir_node **copies = NEW_ARR_F(ir_node*, 0);
double all_remat_costs = 0; /** costs when we would remat all nodes */
* above in the arg_set and insert it into the schedule.
*/
in = XMALLOCN(ir_node*, n_projs);
- foreach_set(arg_set, perm_proj_t*, pp) {
+ foreach_set(arg_set, perm_proj_t, pp) {
in[pp->pos] = pp->arg;
}
* arguments to the projs (new phi arguments).
*/
insert_after = perm;
- foreach_set(arg_set, perm_proj_t*, pp) {
+ foreach_set(arg_set, perm_proj_t, pp) {
ir_node *proj = new_r_Proj(perm, get_irn_mode(pp->arg), pp->pos);
pp->proj = proj;
assert(arch_get_irn_register(pp->arg));
int i;
i = 0;
- foreach_set(env->spills, spill_t*, spill) {
+ foreach_set(env->spills, spill_t, spill) {
spills[i++] = spill;
}
if (nvals > 0) {
do_scalar_replacements(irg, sels, nvals, modes);
- foreach_set(set_ent, scalars_t*, value) {
+ foreach_set(set_ent, scalars_t, value) {
free_entity(value->ent);
}