X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fana%2Fanalyze_irg_args.c;h=b3801de6881b67d27e21ecfb2402d5e85f2be1fe;hb=1b57293234c2f0c753f48c94e0ca0f127b15a27b;hp=7be1f34de0a25e1b6d905028dc8ef0f3a9cb9d4a;hpb=b4c7f089e6255da0347e3cf668970a137cc474ee;p=libfirm diff --git a/ir/ana/analyze_irg_args.c b/ir/ana/analyze_irg_args.c index 7be1f34de..b3801de68 100644 --- a/ir/ana/analyze_irg_args.c +++ b/ir/ana/analyze_irg_args.c @@ -1,28 +1,32 @@ /* - * Project: libFIRM - * File name: ir/ana/analyze_irg_agrs.c - * Purpose: read/write analyze of graph argument, which have mode reference. - * Author: Beyhan Veliev - * Created: - * CVS-ID: $Id$ - * Copyright: (c) 1998-2005 Universität Karlsruhe - * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. + * 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 analyze_irg_agrs.c - * + * @file + * @brief read/write analyze of graph argument, which have mode reference. + * @author Beyhan Veliev + * @version $Id$ */ #ifdef HAVE_CONFIG_H #include "config.h" #endif -#ifdef HAVE_MALLOC_H -# include -#endif -#ifdef HAVE_ALLOCA_H -# include -#endif #ifdef HAVE_STDLIB_H # include #endif @@ -33,6 +37,7 @@ #include "array.h" #include "irprog.h" #include "entity_t.h" +#include "xmalloc.h" #include "analyze_irg_args.h" @@ -83,7 +88,7 @@ static unsigned analyze_arg(ir_node *arg, unsigned bits) } else { ir_op *op = get_irn_op(ptr); - entity *meth_ent; + ir_entity *meth_ent; if (op == op_SymConst && get_SymConst_kind(ptr) == symconst_addr_ent) { meth_ent = get_SymConst_entity(ptr); @@ -182,7 +187,7 @@ static unsigned analyze_arg(ir_node *arg, unsigned bits) * * @param irg The ir graph to analyze. */ -static void analyze_ent_args(entity *ent) +static void analyze_ent_args(ir_entity *ent) { ir_graph *irg; ir_node *irg_args, *arg; @@ -268,7 +273,7 @@ static void analyze_ent_args(entity *ent) */ void analyze_irg_args(ir_graph *irg) { - entity *ent; + ir_entity *ent; if (irg == get_const_code_irg()) return; @@ -285,12 +290,14 @@ void analyze_irg_args(ir_graph *irg) * Compute for a method with pointer parameter(s) * if they will be read or written. */ -ptr_access_kind get_method_param_access(entity *ent, int pos) +ptr_access_kind get_method_param_access(ir_entity *ent, int pos) { ir_type *mtp = get_entity_type(ent); - int is_variadic = get_method_variadicity(mtp) == variadicity_variadic; +#ifndef NDEBUG + int is_variadic = get_method_variadicity(mtp) == variadicity_variadic; assert(0 <= pos && (is_variadic || pos < get_method_n_params(mtp))); +#endif if (ent->attr.mtd_attr.param_access) { if (pos < ARR_LEN(ent->attr.mtd_attr.param_access)) @@ -389,7 +396,7 @@ static float calc_method_param_weight(ir_node *arg) * * @param ent The entity of the ir_graph. */ -static void analyze_method_params_weight(entity *ent) +static void analyze_method_params_weight(ir_entity *ent) { ir_type *mtp; ir_graph *irg; @@ -441,12 +448,14 @@ static void analyze_method_params_weight(entity *ent) * Compute for a method with pointer parameter(s) * if they will be read or written. */ -float get_method_param_weight(entity *ent, int pos) +float get_method_param_weight(ir_entity *ent, int pos) { ir_type *mtp = get_entity_type(ent); - int is_variadic = get_method_variadicity(mtp) == variadicity_variadic; +#ifndef NDEBUG + int is_variadic = get_method_variadicity(mtp) == variadicity_variadic; assert(0 <= pos && (is_variadic || pos < get_method_n_params(mtp))); +#endif if (ent->attr.mtd_attr.param_weight) { if (pos < ARR_LEN(ent->attr.mtd_attr.param_weight)) @@ -472,7 +481,7 @@ float get_method_param_weight(entity *ent, int pos) */ void analyze_irg_args_weight(ir_graph *irg) { - entity *ent; + ir_entity *ent; ent = get_irg_entity(irg); if (! ent)