-/* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Martin Trapp, Christian Schaefer
-**
-** Declarations for optimizations intertwined with IR construction.
+/*
+ * Project: libFIRM
+ * File name: ir/ir/iropt.h
+ * Purpose: iropt --- optimizations of an ir node.
+ * Author: Martin Trapp, Christian Schaefer
+ * Modified by: Goetz Lindenmaier
+ * Created:
+ * CVS-ID: $Id$
+ * Copyright: (c) 1998-2003 Universität Karlsruhe
+ * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ */
+
+/**
+* @file iropt.h
+*
+* Declarations for optimizations of an ir node.
+*
+* @author Martin Trapp, Christian Schaefer
*/
+
# ifndef _IROPT_H_
# define _IROPT_H_
# include "irnode.h"
# include "irgraph.h"
# include "irflag.h"
-# include "pset.h"
-# include "tune.h"
-
-/* optimize_in_place (n) may change the contents of the ir_node itself,
- [e.g. by making it a Id-node], but does not change its identity.
- So it is safe to be called on already referenced nodes.
-
- optimize_in_place (n) returns a pointer to a node equivalent to `n'
- which should be used instead of `n'.
-
- optimize (n) may deallocate `n' and everything allocated after `n'! */
+/** If the expression referenced can be evaluated statically
+ * computed_value returns a tarval representing the result.
+ * Else returns tarval_bad. */
tarval *computed_value (ir_node *n);
-pset *new_identities (void);
-void del_identities (pset *value_table);
-
-ir_node *optimize (ir_node *n);
+/** Applies all optimizations to n that are expressible as a pattern
+ * in Firm, i.e., they need not a walk of the graph.
+ * Returns a better node for n. Does not free n -- other nodes could
+ * reference n.
+ *
+ * An equivalent optimization is applied in the constructors defined in
+ * ircons.ch. There n is freed if a better node could be found.
+ */
ir_node *optimize_in_place (ir_node *n);
-
-void optimize_graph (ir_graph *irg);
-
-
# endif /* _IROPT_H_ */