/*
- * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
* PURPOSE.
*/
-/*
- * 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.
- */
-#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.
* @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
* @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;
/**
*/
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 */