X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Flpp%2Flpp.c;h=9ac76f4cf4f3c42eba24a56d5e00c4bb6af8817f;hb=2cfb4be35e6255d7cd59824e9b7a5eea39705227;hp=85b3093e93c9ec4ae401c9f40daf0534cf7610d0;hpb=7d61ad5fbb6a87bea369c8a01103a92d9ab79a48;p=libfirm diff --git a/ir/lpp/lpp.c b/ir/lpp/lpp.c index 85b3093e9..9ac76f4cf 100644 --- a/ir/lpp/lpp.c +++ b/ir/lpp/lpp.c @@ -412,21 +412,35 @@ void lpp_dump_plain(lpp_t *lpp, FILE *f) { int i; + fprintf(f, lpp->opt_type == lpp_minimize ? "Minimize\n" : "Maximize\n"); for(i = 0; i < lpp->cst_next; ++i) { - const matrix_elem_t *elm; lpp_name_t *cst = lpp->csts[i]; + fprintf(f, "%16s: ", cst->name); matrix_foreach_in_row(lpp->m, cst->nr, elm) { lpp_name_t *var = lpp->vars[elm->col]; /* TODO Perhaps better a define LPP_COL_RHS */ if(elm->col > 0) - fprintf(f, "%+4.1f*%-16s ", elm->val, var->name); + fprintf(f, "%+4.1f %-16s ", elm->val, var->name); + } + + if (i == 0) { + fprintf(f, "\nSubject To\n"); + continue; } fprintf(f, "%3s %+4.1f\n", lpp_cst_op_to_str(cst->type.cst_type), matrix_get(lpp->m, cst->nr, 0)); } + + fprintf(f, "Binary\n"); + for(i = 0; i < lpp->var_next; ++i) { + lpp_name_t *var = lpp->vars[i]; + if (var->type.var_type == lpp_binary) + fprintf(f, "%16s\n", var->name); + } + fprintf(f, "End\n"); } /** @@ -470,20 +484,16 @@ void lpp_serialize(lpp_comm_t *comm, const lpp_t *lpp, int with_names) lpp_writes(comm, name->name); } - { - const matrix_elem_t *elm; - n = 0; - - matrix_foreach(lpp->m, elm) - n++; + n = 0; + matrix_foreach(lpp->m, elm) + n++; - assert(n == matrix_get_entries(lpp->m)); - lpp_writel(comm, n); - matrix_foreach(lpp->m, elm) { - lpp_writel(comm, elm->row); - lpp_writel(comm, elm->col); - lpp_writed(comm, elm->val); - } + assert(n == matrix_get_entries(lpp->m)); + lpp_writel(comm, n); + matrix_foreach(lpp->m, elm) { + lpp_writel(comm, elm->row); + lpp_writel(comm, elm->col); + lpp_writed(comm, elm->val); } }