X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fopt%2Fopt_confirms.h;h=2afbe7c894b8912994276f4d8f54020e525d6651;hb=44faeb9742640d3498eb4482f98eb1255607c4d6;hp=1584cfb2744812ea6b117637e2a4112a3482eb31;hpb=863d31d7a5c8210432fef88b30fc3e8353131538;p=libfirm diff --git a/ir/opt/opt_confirms.h b/ir/opt/opt_confirms.h index 1584cfb27..2afbe7c89 100644 --- a/ir/opt/opt_confirms.h +++ b/ir/opt/opt_confirms.h @@ -1,26 +1,39 @@ /* - * Project: libFIRM - * File name: ir/opt/opt_confirms.h - * Purpose: Optimizations regarding Confirm nodes - * Author: Michael Beck - * Modified by: - * Created: - * CVS-ID: $Id$ - * Copyright: (c) 1998-2005 Universität Karlsruhe - * License: 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. */ -#ifndef _OPT_CONFIRMS_H_ -#define _OPT_CONFIRMS_H_ -#include "irnode.h" - -/**a - * @file opt_confirms.h +/** + * @file + * @brief Optimizations regarding Confirm nodes. + * @author Michael Beck + * @version $Id$ * * Optimizations regarding Confirm nodes. * These optimizations are not means to be run from * frontends, they are called from iropt. */ +#ifndef FIRM_OPT_CONFIRMS_H +#define FIRM_OPT_CONFIRMS_H + +#include "firm_types.h" + +/** Needed for MSVC to suporess warnings because it doest NOT handle const right. */ +typedef const ir_node *ir_node_cnst_ptr; /** * Check, if the value of a node is != 0. @@ -32,12 +45,12 @@ * @param confirm if n is confirmed to be != 0, returns * the the Confirm-node, else NULL */ -int value_not_zero(ir_node *n, ir_node **confirm); +int value_not_zero(const ir_node *n, ir_node_cnst_ptr *confirm); /** * Check, if the value of a node cannot represent a NULL pointer. * - * - If sel_based_null_check_elim is enabled, all + * - If option sel_based_null_check_elim is enabled, all * Sel nodes can be skipped. * - A SymConst(entity) is NEVER a NULL pointer * - A Const != NULL is NEVER a NULL pointer @@ -47,16 +60,16 @@ int value_not_zero(ir_node *n, ir_node **confirm); * @param confirm if n is confirmed to be != NULL, returns * the the Confirm-node, else NULL */ -int value_not_null(ir_node *n, ir_node **confirm); +int value_not_null(const ir_node *n, ir_node_cnst_ptr *confirm); /** * Possible return values of value_classify(). */ typedef enum _value_classify_sign { - value_classified_unknown = 0, /**< could not classify */ - value_classified_positive = 1, /**< value is positive, i.e. >= 0 */ - value_classified_negative = -1 /**< value is negative, i.e. <= 0 if - no signed zero exists or < 0 else */ + value_classified_unknown = 0, /**< could not classify */ + value_classified_positive = 1, /**< value is positive, i.e. >= 0 */ + value_classified_negative = -1 /**< value is negative, i.e. <= 0 if + no signed zero exists or < 0 else */ } value_classify_sign; /** @@ -79,4 +92,4 @@ value_classify_sign classify_value_sign(ir_node *n); */ tarval *computed_value_Cmp_Confirm(ir_node *cmp, ir_node *left, ir_node *right, pn_Cmp pnc); -#endif /* _OPT_CONFIRMS_H_ */ +#endif /* FIRM_OPT_CONFIRMS_H */