Esempio n. 1
0
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);
	}
}
Esempio n. 2
0
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;
}
Esempio n. 3
0
AbsNode * CfsMgr::new_abs_node(ABS_TYPE ty)
{
    AbsNode * a = (AbsNode*)xmalloc(sizeof(AbsNode));
    ABS_NODE_type(a) = ty;
    return a;
}