X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fopt%2Floop_unrolling.c;h=7e52ea5166bc5cbc13a16b1d01fe40e6970475f5;hb=ef4cfdedf59f357727d1f5f53032c4fbd6774aed;hp=851461dbb4ea6e7107b18cea9dcf90991e8948ab;hpb=77402d90eda5171ba1377a3fb79cfcc161bc9d25;p=libfirm diff --git a/ir/opt/loop_unrolling.c b/ir/opt/loop_unrolling.c index 851461dbb..7e52ea516 100644 --- a/ir/opt/loop_unrolling.c +++ b/ir/opt/loop_unrolling.c @@ -1,3 +1,22 @@ +/* + * 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. + */ + /** * * @file loop_unrolling.c @@ -10,24 +29,14 @@ * Created: 16.11.2004 * CVS-ID: $Id$ * Copyright: (c) 2004 Universität Karlsruhe - * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif -#ifdef HAVE_STRING_H #include -#endif -#ifdef HAVE_MALLOC_H -#include -#endif -#ifdef HAVE_ALLOCA_H -#include -#endif - -#include "loop_unrolling.h" +#include "iroptimize.h" #include "irnode_t.h" #include "irgwalk.h" #include "ircons.h" @@ -38,10 +47,11 @@ #include "trouts.h" #include "hashptr.h" #include "pset.h" -#include "strength_red.h" +#include "strength_red_t.h" #include "compute_loop_info.h" #include "irdump.h" #include "irtools.h" +#include "xmalloc.h" /* We will unroll maximal 4-times. */ #define MAX_UNROLL 4 @@ -62,6 +72,7 @@ static int set_cmp(const void *elt, const void *key, size_t size) { const copies_t *c1 = elt; const copies_t *c2 = key; + (void) size; return c1->irn != c2->irn; } @@ -102,6 +113,8 @@ set_preds (set *l_n, copies_t *value, induct_var_info *info, int unroll_factor, ir_node *loop_head; int i, p, irn_arity; copies_t key, *value_pred; + (void) env; + if(value->copy[0] == NULL || get_irn_op(value->irn) != get_irn_op(value->copy[0])) return; @@ -949,10 +962,10 @@ void optimize_loop_unrolling(ir_graph *irg /* unroll factor, max body size */) // construct_cf_backedges(irg); /* Call algorithm that computes the dominator trees. */ - compute_doms(irg); + assure_doms(irg); /* Call algorithm that computes the out edges */ - compute_irg_outs(irg); + assure_irg_outs(irg); collect_phiprojs(irg);