X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fopt%2Fopt_polymorphy.h;h=05e1df3b88107afee6fd2f31cada4dea56de41b6;hb=f2c2e45eb4e677fef5bf6a8e418b2a22441172d5;hp=8ba92c03f9b4bf346dc62d82e345b0c175b391c3;hpb=8eb0a1256d88d68e762c1f087bffadca68dc5c12;p=libfirm diff --git a/ir/opt/opt_polymorphy.h b/ir/opt/opt_polymorphy.h index 8ba92c03f..05e1df3b8 100644 --- a/ir/opt/opt_polymorphy.h +++ b/ir/opt/opt_polymorphy.h @@ -1,27 +1,42 @@ /* - * Project: libFIRM - * File name: ir/opt/opt_polymorphy.h - * Purpose: Optimize polymorphic Sel and Load nodes. - * Author: - * Created: - * CVS-ID: $Id$ - * Copyright: (c) 2005 Universität Karlsruhe - * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. + * 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 - * +/** + * @file + * @brief Optimize polymorphic Sel and Load nodes. + * @author Goetz Lindenmaier, Michael Beck + * @version $Id$ + * @summary * This file subsumes optimization code from cgana. */ +#ifndef FIRM_OPT_OPT_POLYMORPHY_H +#define FIRM_OPT_OPT_POLYMORPHY_H -#ifndef _OPT_POLYMORPHY_H_ -#define _OPT_POLYMORPHY_H_ - -#include "irnode.h" +#include "firm_types.h" /** * Transform Sel(Alloc)[method] - * to SymC[method] + * to SymC[method] under the following conditions: + * + * - opt_dyn_meth_dispatch must be set + * - the method is not overwritten OR + * - the dynamic type is known */ ir_node *transform_node_Sel(ir_node *node); @@ -33,6 +48,6 @@ ir_node *transform_node_Sel(ir_node *node); * a tuple, or replace the Projs of the load. * Therefore we call this optimization in ldstopt. */ -ir_node *transform_node_Load(ir_node *n); +ir_node *transform_polymorph_Load(ir_node *n); -#endif /* _OPT_POLYMORPHY_H_ */ +#endif /* FIRM_OPT_OPT_POLYMORPHY_H */