void CFS_MGR::dump_abs_tree(ABS_NODE * an, UINT indent) { while (an != NULL) { switch (ABS_NODE_type(an)) { case ABS_BB: fprintf(g_tfile, "\n"); dump_indent(indent); fprintf(g_tfile, "BB%d", IR_BB_id(ABS_NODE_bb(an))); break; case ABS_LOOP: fprintf(g_tfile, "\n"); dump_indent(indent); fprintf(g_tfile, "LOOP: HEAD=BB%d", IR_BB_id(ABS_NODE_loop_head(an))); dump_abs_tree(ABS_NODE_loop_body(an), indent + 4); break; case ABS_IF: fprintf(g_tfile, "\n"); dump_indent(indent); fprintf(g_tfile, "IF: HEAD=BB%d", IR_BB_id(ABS_NODE_if_head(an))); if (ABS_NODE_true_body(an) != NULL) { fprintf(g_tfile, "\n"); dump_indent(indent); fprintf(g_tfile, "TRUE_BODY:"); dump_abs_tree(ABS_NODE_true_body(an), indent + 4); } if (ABS_NODE_false_body(an) != NULL) { fprintf(g_tfile, "\n"); dump_indent(indent); fprintf(g_tfile, "FALSE_BODY:"); dump_abs_tree(ABS_NODE_false_body(an), indent + 4); } break; } an = ABS_NODE_next(an); } }
ABS_NODE * CFS_MGR::new_abs_node(ABS_TYPE ty) { ABS_NODE * a = (ABS_NODE*)xmalloc(sizeof(ABS_NODE)); ABS_NODE_type(a) = ty; return a; }
AbsNode * CfsMgr::new_abs_node(ABS_TYPE ty) { AbsNode * a = (AbsNode*)xmalloc(sizeof(AbsNode)); ABS_NODE_type(a) = ty; return a; }