* returns the name of a type or <ERROR> if mode is NOT a mode object.
* in the later case, sets bad
*/
-const char *get_type_name_ex(type *tp, int *bad)
+const char *get_type_name_ex(ir_type *tp, int *bad)
{
if (is_type(tp))
return get_type_name(tp);
* prints the edge from a type S to a type T with additional info fmt, ...
* to the file F
*/
-static void print_type_type_edge(FILE *F, type *S, type *T, const char *fmt, ...)
+static void print_type_type_edge(FILE *F, ir_type *S, ir_type *T, const char *fmt, ...)
{
va_list ap;
* prints the edge from a type T to an entity E with additional info fmt, ...
* to the file F
*/
-static void print_type_ent_edge(FILE *F, type *T, entity *E, const char *fmt, ...)
+static void print_type_ent_edge(FILE *F, ir_type *T, entity *E, const char *fmt, ...)
{
va_list ap;
* prints the edge from an entity E to a type T with additional info fmt, ...
* to the file F
*/
-static void print_ent_type_edge(FILE *F, entity *E, type *T, const char *fmt, ...)
+static void print_ent_type_edge(FILE *F, entity *E, ir_type *T, const char *fmt, ...)
{
va_list ap;
* prints the edge from a node N to a type T with additional info fmt, ...
* to the file F
*/
-static void print_node_type_edge(FILE *F, const ir_node *N, type *T, const char *fmt, ...)
+static void print_node_type_edge(FILE *F, const ir_node *N, ir_type *T, const char *fmt, ...)
{
va_list ap;
* prints the edge from a type E to an enumeration item item with additional info fmt, ...
* to the file F
*/
-static void print_enum_item_edge(FILE *F, type *E, int item, const char *fmt, ...)
+static void print_enum_item_edge(FILE *F, ir_type *E, int item, const char *fmt, ...)
{
va_list ap;
ir_graph *rem = current_ir_graph;
current_ir_graph = irg;
- for (i = 0; i < get_irp_n_irgs(); i++)
+ for (i = get_irp_n_irgs() - 1; i >= 0; --i)
ird_set_irg_link(get_irp_irg(i), NULL);
irg_walk_graph(current_ir_graph, clear_link, collect_node, current_ir_graph);
if (opt_dump_analysed_type_info) {
if (get_irg_typeinfo_state(current_ir_graph) == ir_typeinfo_consistent ||
get_irg_typeinfo_state(current_ir_graph) == ir_typeinfo_inconsistent) {
- type *tp = get_irn_typeinfo_type(n);
+ ir_type *tp = get_irn_typeinfo_type(n);
if (tp != firm_none_type)
fprintf(F, "[%s] ", get_type_name_ex(tp, &bad));
else
#undef X
};
+/** the lookup table for Proj(CopyB) names */
+static const pns_lookup_t copyb_lut[] = {
+#define X(a) { pn_CopyB_##a, #a }
+ X(M),
+ X(X_except),
+ X(M_except)
+#undef X
+};
+
+/** the lookup table for Proj(InstOf) names */
+static const pns_lookup_t instof_lut[] = {
+#define X(a) { pn_InstOf_##a, #a }
+ X(M),
+ X(X_except),
+ X(res),
+ X(M_except),
+#undef X
+};
+
+/** the lookup table for Proj(Raise) names */
+static const pns_lookup_t raise_lut[] = {
+#define X(a) { pn_Raise_##a, #a }
+ X(M),
+ X(X),
+#undef X
+};
+
+/** the lookup table for Proj(Bound) names */
+static const pns_lookup_t bound_lut[] = {
+#define X(a) { pn_Bound_##a, #a }
+ X(M),
+ X(X_except),
+ X(res),
+ X(M_except)
+#undef X
+};
/** the Proj lookup table */
static const proj_lookup_t proj_lut[] = {
{ iro_Mod, E(mod_lut) },
{ iro_Load, E(load_lut) },
{ iro_Store, E(store_lut) },
- { iro_Alloc, E(alloc_lut) }
+ { iro_Alloc, E(alloc_lut) },
+ { iro_CopyB, E(copyb_lut) },
+ { iro_InstOf, E(instof_lut) },
+ { iro_Raise, E(raise_lut) },
+ { iro_Bound, E(bound_lut) }
#undef E
};
fprintf (F, "%s ", get_pnc_string(get_Proj_proj(n)));
else if (code == iro_Proj && get_irn_opcode(get_Proj_pred(pred)) == iro_Start)
fprintf (F, "Arg %ld ", proj_nr);
+ else if (code == iro_Cond && get_irn_mode(get_Cond_selector(pred)) != mode_b)
+ fprintf (F, "%ld ", proj_nr);
else {
unsigned i, j, f = 0;
}
#if 0
-static int print_type_info(FILE *F, type *tp) {
+static int print_type_info(FILE *F, ir_type *tp) {
int bad = 0;
if (get_type_state(tp) == layout_undefined) {
return bad;
}
-static void print_typespecific_info(FILE *F, type *tp) {
+static void print_typespecific_info(FILE *F, ir_type *tp) {
switch (get_type_tpop_code(tp)) {
case tpo_class:
{
}
#endif
-static void print_typespecific_vcgattr(FILE *F, type *tp) {
+static void print_typespecific_vcgattr(FILE *F, ir_type *tp) {
switch (get_type_tpop_code(tp)) {
case tpo_class:
{
}
-int dump_type_node(FILE *F, type *tp)
+int dump_type_node(FILE *F, ir_type *tp)
{
int bad = 0;
}
#undef X
-static void dump_enum_item(FILE *F, type *tp, int pos)
+static void dump_enum_item(FILE *F, ir_type *tp, int pos)
{
char buf[1024];
ident *id = get_enumeration_nameid(tp, pos);
} break;
case k_type:
{
- type *tp = (type *)tore;
+ ir_type *tp = (ir_type *)tore;
dump_type_node(F, tp);
/* and now the edges */
switch (get_type_tpop_code(tp)) {
} break; /* case k_entity */
case k_type:
{
- type *tp = (type *)tore;
+ ir_type *tp = (ir_type *)tore;
if (tp == get_glob_type()) break;
switch (get_type_tpop_code(tp)) {
case tpo_class: {
* only the requested irg but also all irgs that can be reached
* from irg.
*/
- for (i = 0; i < get_irp_n_irgs(); i++) {
+ for (i = get_irp_n_irgs() - 1; i >= 0; --i) {
ir_node **arr = ird_get_irg_link(get_irp_irg(i));
if (arr) {
dump_graph_from_list(f, get_irp_irg(i));
dump_graph_info(F, irg);
print_dbg_info(F, get_entity_dbg_info(ent));
- for (i = 0; i < get_irp_n_irgs(); i++) {
+ for (i = get_irp_n_irgs() - 1; i >= 0; --i) {
ir_graph *irg = get_irp_irg(i);
list_tuple *lists = ird_get_irg_link(irg);
/* dump common blocked ir graph */
construct_block_lists(irg);
- for (i = 0; i < get_irp_n_irgs(); i++) {
+ for (i = get_irp_n_irgs() - 1; i >= 0; --i) {
ir_node **arr = ird_get_irg_link(get_irp_irg(i));
if (arr) {
dump_graph_from_list(f, get_irp_irg(i));
void dump_callgraph(const char *suffix) {
FILE *F;
- int i, n_irgs = get_irp_n_irgs();
+ int i;
int rem = edge_label;
edge_label = 1;
//ident *prefix = new_id_from_str("java/");
F = vcg_open_name("Callgraph", suffix);
dump_vcg_header(F, "Callgraph", NULL);
- for (i = 0; i < n_irgs; ++i) {
+ for (i = get_irp_n_irgs() - 1; i >= 0; --i) {
ir_graph *irg = get_irp_irg(i);
entity *ent = get_irg_entity(irg);
int j, n_callees = get_irg_n_callees(irg);
dump_vcg_header(f, "All_graphs", NULL);
/* collect nodes in all irgs reachable in call graph*/
- for (i = 0; i < get_irp_n_irgs(); i++)
+ for (i = get_irp_n_irgs() - 1; i >= 0; --i)
ird_set_irg_link(get_irp_irg(i), NULL);
cg_walk(clear_link, collect_node, NULL);
/* dump all graphs */
- for (i = 0; i < get_irp_n_irgs(); i++) {
+ for (i = get_irp_n_irgs() - 1; i >= 0; --i) {
current_ir_graph = get_irp_irg(i);
assert(ird_get_irg_link(current_ir_graph));
dump_graph_from_list(f, current_ir_graph);
void dump_all_ir_graphs(dump_graph_func *dmp_grph, const char *suffix) {
int i;
- for (i = get_irp_n_irgs() - 1; i >= 0; --i) {
+ for (i = get_irp_n_irgs() - 1; i >= 0; --i)
dmp_grph(get_irp_irg(i), suffix);
- }
}