X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=html_dumper.c;h=60be3bd7eb0eda49ea0d70c0e48f82d94fe4e687;hb=48aa7d4df41739507dec1350eadb0b459550455e;hp=deef1be070e25c82f95688490d61796c4eb2f9f0;hpb=d321db650ef79ce34b4841fa8ef47ba7b8aa73a0;p=libfirm diff --git a/html_dumper.c b/html_dumper.c index deef1be07..60be3bd7e 100644 --- a/html_dumper.c +++ b/html_dumper.c @@ -1,11 +1,39 @@ +/* + * Copyright (C) 1995-2008 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. + */ + +/** + * @file + * @brief HTML dumper for PBQP. + * @date 03.10.2008 + * @author Sebastian Buchwald + * @version $Id$ + */ +#include "config.h" + #include "adt/array.h" #include "assert.h" #include "pbqp_edge_t.h" #include "pbqp_node_t.h" +#include "optimal.h" #include "html_dumper.h" #include "kaps.h" -#include "pbqp_t.h" /* Caution: Due to static buffer use only once per statement */ static const char *cost2a(num const cost) @@ -13,7 +41,11 @@ static const char *cost2a(num const cost) static char buf[10]; if (cost == INF_COSTS) return "inf"; - sprintf(buf, "%6d", cost); +#if KAPS_USE_UNSIGNED + sprintf(buf, "%u", cost); +#else + sprintf(buf, "%10lld", cost); +#endif return buf; } @@ -27,7 +59,7 @@ static void dump_vector(FILE *f, vector *vec) unsigned len = vec->len; assert(len > 0); for (index = 0; index < len; ++index) { -#if EXT_GRS_DEBUG +#if KAPS_ENABLE_VECTOR_NAMES fprintf(f, "%s ", vec->entries[index].name, cost2a(vec->entries[index].data)); #else @@ -57,13 +89,13 @@ static void dump_matrix(FILE *f, pbqp_matrix *mat) fprintf(f, "\t\\end{pmatrix}\n"); } -void dump_edge(pbqp *pbqp, pbqp_edge *edge) +void dump_edge(FILE *file, pbqp_edge *edge) { - fputs("\n", pbqp->dump_file); - fprintf(pbqp->dump_file, "\t\\overline\n{C}_{%d,%d}=\n", + fputs("\n", file); + fprintf(file, "\t\\overline\n{C}_{%d,%d}=\n", edge->src->index, edge->tgt->index); - dump_matrix(pbqp->dump_file, edge->costs); - fputs("
", pbqp->dump_file); + dump_matrix(file, edge->costs); + fputs("

", file); } static void dump_edge_costs(pbqp *pbqp) @@ -86,22 +118,21 @@ static void dump_edge_costs(pbqp *pbqp) pbqp_edge *edge = src_node->edges[edge_index]; unsigned tgt_index = edge->tgt->index; if (src_index < tgt_index) { - dump_edge(pbqp, edge); + dump_edge(pbqp->dump_file, edge); } } } fputs("

", pbqp->dump_file); } -void dump_node(pbqp *pbqp, pbqp_node *node) +void dump_node(FILE *file, pbqp_node *node) { - assert(pbqp); - assert(pbqp->dump_file); + assert(file); if (node) { - fprintf(pbqp->dump_file, "\tc%d = ", node->index); - dump_vector(pbqp->dump_file, node->costs); - fputs("
\n", pbqp->dump_file); + fprintf(file, "\tc%d = ", node->index); + dump_vector(file, node->costs); + fputs("
\n", file); } } @@ -115,7 +146,7 @@ static void dump_node_costs(pbqp *pbqp) /* dump node costs */ fputs("

", pbqp->dump_file); for (index = 0; index < pbqp->num_nodes; ++index) { - dump_node(pbqp, get_node(pbqp, index)); + dump_node(pbqp->dump_file, get_node(pbqp, index)); } fputs("

", pbqp->dump_file); } @@ -188,7 +219,7 @@ void dump_simplifyedge(pbqp *pbqp, pbqp_edge *edge) assert(pbqp); assert(pbqp->dump_file); - dump_node(pbqp, edge->src); - dump_edge(pbqp, edge); - dump_node(pbqp, edge->tgt); + dump_node(pbqp->dump_file, edge->src); + dump_edge(pbqp->dump_file, edge); + dump_node(pbqp->dump_file, edge->tgt); }