Lines Matching defs:ic

379 find_levels_r(opt_state_t *opt_state, struct icode *ic, struct block *b)
383 if (isMarked(ic, b))
386 Mark(ic, b);
390 find_levels_r(opt_state, ic, JT(b));
391 find_levels_r(opt_state, ic, JF(b));
407 find_levels(opt_state_t *opt_state, struct icode *ic)
410 unMarkAll(ic);
411 find_levels_r(opt_state, ic, ic->root);
2078 opt_blks(opt_state_t *opt_state, struct icode *ic, int do_stmts)
2084 maxlevel = ic->root->level;
2086 find_inedges(opt_state, ic->root);
2118 find_inedges(opt_state, ic->root);
2181 opt_loop(opt_state_t *opt_state, struct icode *ic, int do_stmts)
2187 opt_dump(opt_state, ic);
2201 find_levels(opt_state, ic);
2202 find_dom(opt_state, ic->root);
2203 find_closure(opt_state, ic->root);
2204 find_ud(opt_state, ic->root);
2205 find_edom(opt_state, ic->root);
2206 opt_blks(opt_state, ic, do_stmts);
2210 opt_dump(opt_state, ic);
2265 bpf_optimize(struct icode *ic, char *errbuf)
2276 opt_init(&opt_state, ic);
2277 opt_loop(&opt_state, ic, 0);
2278 opt_loop(&opt_state, ic, 1);
2279 intern_blocks(&opt_state, ic);
2283 opt_dump(&opt_state, ic);
2286 opt_root(&ic->root);
2290 opt_dump(&opt_state, ic);
2298 make_marks(struct icode *ic, struct block *p)
2300 if (!isMarked(ic, p)) {
2301 Mark(ic, p);
2303 make_marks(ic, JT(p));
2304 make_marks(ic, JF(p));
2310 * Mark code array such that isMarked(ic->cur_mark, i) is true
2314 mark_code(struct icode *ic)
2316 ic->cur_mark += 1;
2317 make_marks(ic, ic->root);
2355 intern_blocks(opt_state_t *opt_state, struct icode *ic)
2365 mark_code(ic);
2369 if (!isMarked(ic, opt_state->blocks[i]))
2372 if (!isMarked(ic, opt_state->blocks[j]))
2449 count_blocks(struct icode *ic, struct block *p)
2451 if (p == 0 || isMarked(ic, p))
2453 Mark(ic, p);
2454 return count_blocks(ic, JT(p)) + count_blocks(ic, JF(p)) + 1;
2462 number_blks_r(opt_state_t *opt_state, struct icode *ic, struct block *p)
2466 if (p == 0 || isMarked(ic, p))
2469 Mark(ic, p);
2480 number_blks_r(opt_state, ic, JT(p));
2481 number_blks_r(opt_state, ic, JF(p));
2503 count_stmts(struct icode *ic, struct block *p)
2507 if (p == 0 || isMarked(ic, p))
2509 Mark(ic, p);
2510 n = count_stmts(ic, JT(p)) + count_stmts(ic, JF(p));
2520 opt_init(opt_state_t *opt_state, struct icode *ic)
2531 unMarkAll(ic);
2532 n = count_blocks(ic, ic->root);
2536 unMarkAll(ic);
2538 number_blks_r(opt_state, ic, ic->root);
2689 convert_code_r(conv_state_t *conv_state, struct icode *ic, struct block *p)
2697 if (p == 0 || isMarked(ic, p))
2699 Mark(ic, p);
2701 if (convert_code_r(conv_state, ic, JF(p)) == 0)
2703 if (convert_code_r(conv_state, ic, JT(p)) == 0)
2876 icode_to_fcode(struct icode *ic, struct block *root, u_int *lenp,
2895 unMarkAll(ic);
2896 n = *lenp = count_stmts(ic, root);
2908 unMarkAll(ic);
2909 if (convert_code_r(&conv_state, ic, root))
2977 dot_dump_node(struct icode *ic, struct block *block, struct bpf_program *prog,
2983 if (block == NULL || isMarked(ic, block))
2985 Mark(ic, block);
3005 dot_dump_node(ic, JT(block), prog, out);
3006 dot_dump_node(ic, JF(block), prog, out);
3010 dot_dump_edge(struct icode *ic, struct block *block, FILE *out)
3012 if (block == NULL || isMarked(ic, block))
3014 Mark(ic, block);
3022 dot_dump_edge(ic, JT(block), out);
3023 dot_dump_edge(ic, JF(block), out);
3046 dot_dump(struct icode *ic, char *errbuf)
3052 f.bf_insns = icode_to_fcode(ic, ic->root, &f.bf_len, errbuf);
3057 unMarkAll(ic);
3058 dot_dump_node(ic, ic->root, &f, out);
3059 unMarkAll(ic);
3060 dot_dump_edge(ic, ic->root, out);
3068 plain_dump(struct icode *ic, char *errbuf)
3073 f.bf_insns = icode_to_fcode(ic, ic->root, &f.bf_len, errbuf);
3083 opt_dump(opt_state_t *opt_state, struct icode *ic)
3093 status = dot_dump(ic, errbuf);
3095 status = plain_dump(ic, errbuf);