+/*
+ * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved.
+ *
+ * This file is part of libFirm.
+ *
+ * This file may be distributed and/or modified under the terms of the
+ * GNU General Public License version 2 as published by the Free Software
+ * Foundation and appearing in the file LICENSE.GPL included in the
+ * packaging of this file.
+ *
+ * Licensees holding valid libFirm Professional Edition licenses may use
+ * this file in accordance with the libFirm Commercial License.
+ * Agreement provided with the Software.
+ *
+ * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+ * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ */
-
-#ifndef __IRDUMPT_T_H__
-#define __IRDUMPT_T_H__
+/**
+ * @file
+ * @brief Private header for irdump
+ * @version $Id$
+ */
+#ifndef FIRM_IR_IRDUMPT_T_H
+#define FIRM_IR_IRDUMPT_T_H
#include "irdump.h"
#define DEFAULT_ENUM_ITEM_ATTRIBUTE " "
/* Attributes of edges between Firm nodes */
-#define INTRA_DATA_EDGE_ATTR "class:1 priority:50"
-#define INTER_DATA_EDGE_ATTR "class:16 priority:10"
-#define BLOCK_EDGE_ATTR "class:2 priority:50 linestyle:dotted"
-#define CF_EDGE_ATTR "class:13 priority:60 color:red"
-#define EXC_CF_EDGE_ATTR "class:18 priority:60 color:blue"
-#define INTRA_MEM_EDGE_ATTR "class:14 priority:50 color:blue"
-#define INTER_MEM_EDGE_ATTR "class:17 priority:10 color:blue"
-#define DOMINATOR_EDGE_ATTR "class:15 color:red"
+#define INTRA_DATA_EDGE_ATTR "class:1 priority:50"
+#define INTER_DATA_EDGE_ATTR "class:16 priority:10"
+#define BLOCK_EDGE_ATTR "class:2 priority:50 linestyle:dotted"
+#define CF_EDGE_ATTR "class:13 priority:60 color:red"
+#define EXC_CF_EDGE_ATTR "class:18 priority:60 color:blue"
+#define INTRA_MEM_EDGE_ATTR "class:14 priority:50 color:blue"
+#define INTER_MEM_EDGE_ATTR "class:17 priority:10 color:blue"
+#define DOMINATOR_EDGE_ATTR "class:15 color:red"
+#define POSTDOMINATOR_EDGE_ATTR "class:19 color:red linestyle:dotted"
#define BACK_EDGE_ATTR "linestyle:dashed "
#define ENT_CORR_EDGE_ATTR "label: \"value %d corresponds to \" "
#define TYPE_MEMBER_EDGE_ATTR "class: 12 label: \"member\" color:blue"
#define ENUM_ITEM_NODE_ATTR "color: green"
-#define CALLGRAPH_EDGE_ATTR "calls"
+/* #define CALLGRAPH_EDGE_ATTR "calls" */
#define PRINT_NODEID(X) fprintf(F, "n%ld", get_irn_node_nr(X))
#define PRINT_TYPEID(X) fprintf(F, "\"t%ld\"", get_type_nr(X))
#define PRINT_CONSTBLKID(X,Y) fprintf(F, "n%ldb%ld", get_irn_node_nr(X),get_irn_node_nr(Y))
#define PRINT_LOOPID(X) fprintf(F, "l%d", get_loop_loop_nr(X))
#define PRINT_ITEMID(X,Y) fprintf(F, "i%ldT%d", get_type_nr(X), (Y))
+#define PRINT_EXTBBID(X) fprintf(F, "x%ld", get_irn_node_nr(X))
extern int dump_dominator_information_flag;
-extern bool opt_dump_pointer_values_to_info;
+extern int opt_dump_pointer_values_to_info;
+extern int opt_dump_analysed_type_info;
FILE *vcg_open (ir_graph *irg, const char * suffix1, const char *suffix2);
FILE *vcg_open_name (const char *name, const char *suffix);
void vcg_close (FILE *F);
-const char *get_ent_dump_name(entity *ent);
-const char *get_type_name_ex(type *tp, int *bad);
+const char *get_ent_dump_name(ir_entity *ent);
+const char *get_type_name_ex(ir_type *tp, int *bad);
const char *get_mode_name_ex(ir_mode *mode, int *bad);
/**
* dump the name of a node n to the File F.
int
dump_node_opcode(FILE *F, ir_node *n);
-#endif /* __IRDUMPT_T_H__ */
+int dump_node_label(FILE *F, ir_node *n);
+
+
+/** Writes vcg representation with title "PRINT_TYPEID(tp)" to file F. */
+int dump_type_node(FILE *F, ir_type *tp);
+
+#endif /* FIRM_IR_IRDUMPT_T_H */