obstack_1grow(&color_obst, '\0');
color_rgb[num] = rgb_def;
obstack_1grow(&color_obst, '\0');
color_rgb[num] = rgb_def;
static void dump_node_mode(FILE *F, ir_node *n)
{
const ir_op_ops *ops = get_op_ops(get_irn_op(n));
static void dump_node_mode(FILE *F, ir_node *n)
{
const ir_op_ops *ops = get_op_ops(get_irn_op(n));
/** Dumps a node and its edges but not the block edge */
static void dump_node_wo_blockedge(ir_node *n, void *env)
{
/** Dumps a node and its edges but not the block edge */
static void dump_node_wo_blockedge(ir_node *n, void *env)
{
/** Dumps a node and its edges. */
static void dump_node_with_edges(ir_node *n, void *env)
{
/** Dumps a node and its edges. */
static void dump_node_with_edges(ir_node *n, void *env)
{
dump_node_wo_blockedge(n, env);
if (!node_floats(n))
dump_ir_block_edge(F, n);
dump_node_wo_blockedge(n, env);
if (!node_floats(n))
dump_ir_block_edge(F, n);
dump_block_edge_hook(F, block);
/* dump the nodes that go into the block */
dump_block_edge_hook(F, block);
/* dump the nodes that go into the block */
/** dumps the edges between nodes and their type or entity attributes. */
static void dump_node2type_edges(ir_node *n, void *env)
{
/** dumps the edges between nodes and their type or entity attributes. */
static void dump_node2type_edges(ir_node *n, void *env)
{
char buf[1024];
ir_enum_const *ec = get_enumeration_const(tp, pos);
ident *id = get_enumeration_const_nameid(ec);
char buf[1024];
ir_enum_const *ec = get_enumeration_const(tp, pos);
ident *id = get_enumeration_const_nameid(ec);
/** Dumps a type or entity and it's edges. */
static void dump_type_info(type_or_ent tore, void *env)
{
/** Dumps a type or entity and it's edges. */
static void dump_type_info(type_or_ent tore, void *env)
{
print_ent_type_edge(F,ent, get_entity_type(ent), ENT_TYPE_EDGE_ATTR);
if (is_Class_type(get_entity_owner(ent))) {
for (i = get_entity_n_overwrites(ent) - 1; i >= 0; --i)
print_ent_type_edge(F,ent, get_entity_type(ent), ENT_TYPE_EDGE_ATTR);
if (is_Class_type(get_entity_owner(ent))) {
for (i = get_entity_n_overwrites(ent) - 1; i >= 0; --i)
- print_ent_ent_edge(F,ent, get_entity_overwrites(ent, i), 0, -1, ENT_OVERWRITES_EDGE_ATTR);
+ print_ent_ent_edge(F, ent, get_entity_overwrites(ent, i), 0, ird_color_none, ENT_OVERWRITES_EDGE_ATTR);
if (value) {
print_ent_node_edge(F, ent, value, ENT_VALUE_EDGE_ATTR, i);
dump_const_expression(F, value);
if (value) {
print_ent_node_edge(F, ent, value, ENT_VALUE_EDGE_ATTR, i);
dump_const_expression(F, value);
- print_ent_ent_edge(F, ent, get_compound_ent_value_member(ent, i), 0, -1, ENT_CORR_EDGE_ATTR, i);
+ print_ent_ent_edge(F, ent, get_compound_ent_value_member(ent, i), 0, ird_color_none, ENT_CORR_EDGE_ATTR, i);
/*
fprintf(F, "edge: { sourcename: \"%p\" targetname: \"%p\" "
ENT_CORR_EDGE_ATTR "}\n", GET_ENTID(ent),
/*
fprintf(F, "edge: { sourcename: \"%p\" targetname: \"%p\" "
ENT_CORR_EDGE_ATTR "}\n", GET_ENTID(ent),
/* The edges */
print_type_ent_edge(F, get_entity_owner(ent), ent, TYPE_MEMBER_EDGE_ATTR);
for (i = get_entity_n_overwrites(ent) - 1; i >= 0; --i)
/* The edges */
print_type_ent_edge(F, get_entity_owner(ent), ent, TYPE_MEMBER_EDGE_ATTR);
for (i = get_entity_n_overwrites(ent) - 1; i >= 0; --i)
- print_ent_ent_edge(F, get_entity_overwrites(ent, i), ent, 0, -1, ENT_OVERWRITES_EDGE_ATTR);
+ print_ent_ent_edge(F, get_entity_overwrites(ent, i), ent, 0, ird_color_none, ENT_OVERWRITES_EDGE_ATTR);
int i;
for (i = get_irn_n_outs(n) - 1; i >= 0; --i) {
ir_node *succ = get_irn_out(n, i);
int i;
for (i = get_irn_n_outs(n) - 1; i >= 0; --i) {
ir_node *succ = get_irn_out(n, i);
dump_ir_data_edges(F, b);
/* dump the nodes that go into the block */
dump_ir_data_edges(F, b);
/* dump the nodes that go into the block */
if (eset_contains(extnodes, n))
overrule_nodecolor = ird_color_block_inout;
dump_node(F, n);
if (eset_contains(extnodes, n))
overrule_nodecolor = ird_color_block_inout;
dump_node(F, n);
fprintf(F, "\" status:clustered color:lightblue\n");
/* dump the nodes that go into the block */
fprintf(F, "\" status:clustered color:lightblue\n");
/* dump the nodes that go into the block */
if (!eset_contains(loopnodes, n))
overrule_nodecolor = ird_color_block_inout;
dump_node(F, n);
if (!eset_contains(loopnodes, n))
overrule_nodecolor = ird_color_block_inout;
dump_node(F, n);
/* xvcg expects only <CR> so we need "b"inary mode (for win32) */
out = fopen(file_name, "wb");
obstack_free(&obst, file_name);
/* xvcg expects only <CR> so we need "b"inary mode (for win32) */
out = fopen(file_name, "wb");
obstack_free(&obst, file_name);
out = fopen(file_name, "wb");
obstack_free(&obst, file_name);
out = fopen(file_name, "wb");
obstack_free(&obst, file_name);
/**
* Wrapper around dump_all_ir_graphs().
*/
static int dump_all_ir_graphs_wrapper(ir_prog *irp, void *context)
{
/**
* Wrapper around dump_all_ir_graphs().
*/
static int dump_all_ir_graphs_wrapper(ir_prog *irp, void *context)
{
- size_t len = strlen(suffix);
- struct pass_t *pass = xmalloc(sizeof(*pass) + len);
+ size_t len = strlen(suffix) + 1;
+ pass_t *pass = XMALLOCF(pass_t, suffix, len);
ir_prog_pass_t *res = def_prog_pass_constructor(
&pass->pass, name ? name : "dump_all_graphs", dump_all_ir_graphs_wrapper);
ir_prog_pass_t *res = def_prog_pass_constructor(
&pass->pass, name ? name : "dump_all_graphs", dump_all_ir_graphs_wrapper);