return F;
}
+/* Write the irnode and all its attributes to the file passed. */
int dump_irnode_to_file(FILE *F, ir_node *n) {
int i, bad = 0;
char comma;
case iro_Cond: {
fprintf(F, " condition kind: %s\n", get_Cond_kind(n) == dense ? "dense" : "fragmentary");
fprintf(F, " default ProjNr: %ld\n", get_Cond_defaultProj(n));
+ if (get_Cond_jmp_pred(n) != COND_JMP_PRED_NONE)
+ fprintf(F, " jump prediction: %s\n", get_cond_jmp_predicate_name(get_Cond_jmp_pred(n)));
} break;
case iro_Alloc: {
fprintf(F, " allocating entity of type: %s \n", get_type_name_ex(get_Alloc_type(n), &bad));
} break;
case iro_Free: {
fprintf(F, " freeing entity of type %s \n", get_type_name_ex(get_Free_type(n), &bad));
+ fprintf(F, " allocated on: the %s\n", (get_Free_where(n) == stack_alloc) ? "stack" : "heap");
} break;
case iro_Sel: {
entity *ent = get_Sel_entity(n);
if (is_Method_type(get_entity_type(ent))) {
unsigned mask = get_entity_additional_properties(ent);
+ unsigned cc = get_method_calling_convention(get_entity_type(ent));
if (mask) {
fprintf(F, "\n%s additional prop: ", prefix);
- if (mask & irg_const_function) fprintf(F, "const_function, ");
- if (mask & irg_pure_function) fprintf(F, "pure_function, ");
- if (mask & irg_noreturn_function) fprintf(F, "noreturn_function, ");
- if (mask & irg_nothrow_function) fprintf(F, "nothrow_function, ");
- if (mask & irg_naked_function) fprintf(F, "naked_function, ");
+ if (mask & mtp_property_const) fprintf(F, "const_function, ");
+ if (mask & mtp_property_pure) fprintf(F, "pure_function, ");
+ if (mask & mtp_property_noreturn) fprintf(F, "noreturn_function, ");
+ if (mask & mtp_property_nothrow) fprintf(F, "nothrow_function, ");
+ if (mask & mtp_property_naked) fprintf(F, "naked_function, ");
+ }
+ fprintf(F, "\n%s calling convention: ", prefix);
+ if (cc & cc_reg_param) fprintf(F, "regparam, ");
+ if (cc & cc_this_call) fprintf(F, "thiscall, ");
+ if (IS_CDECL(cc))
+ fprintf(F, "cdecl");
+ else if (IS_STDCALL(cc))
+ fprintf(F, "stdcall");
+ else {
+ fprintf(F, (cc & cc_last_on_top) ? "last param on top, " : "first param on top, ");
+ fprintf(F, (cc & cc_callee_clear_stk) ? "callee clear stack" : "caller clear stack");
}
}