*/
/**
- * @file irarch.c
- * @date 28.9.2004
- * @author Sebastian Hack, Michael Beck
- * @brief Machine dependent Firm optimizations.
- *
- * $Id$
+ * @file
+ * @brief Machine dependent Firm optimizations.
+ * @date 28.9.2004
+ * @author Sebastian Hack, Michael Beck
+ * @version $Id$
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
*/
/**
- * @file irarch.h
- * @date 1.10.2004
+ * @file
+ * @brief Some machine dependent optimizations.
+ * @date 1.10.2004
* @author Sebastian Hack
- * @brief Some machine dependent optimizations.
- *
- * $Id$
+ * @version $Id$
*/
-
-#ifndef _FIRM_IR_IRARCH_H_
-#define _FIRM_IR_IRARCH_H_
+#ifndef FIRM_IR_IRARCH_H
+#define FIRM_IR_IRARCH_H
#include "firm_types.h"
*/
void arch_dep_replace_divmod_by_const(ir_node **div, ir_node **mod, ir_node *irn);
-#endif /* _FIRM_IR_IRARCH_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irargs.c
- * Purpose: Support for libcore IR object output.
- * Author: Sebastian Hack
- * Modified by:
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2005 Universitaet Karlsruhe
+/**
+ * @file
+ * @brief Support for libcore IR object output.
+ * @author Sebastian Hack
+ * @version $Id$
*/
-
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
* PURPOSE.
*/
-
-#ifndef _FIRM_IRARGS_H
-#define _FIRM_IRARGS_H
+/**
+ * @file
+ * @brief irargs private declarations
+ * @version $Id$
+ */
+#ifndef FIRM_IR_IRARGS_H
+#define FIRM_IR_IRARGS_H
#include <libcore/lc_printf.h>
*/
/**
- * Some convenience macros for node bitmaps.
- * @author Sebastian Hack
- * @date 10.05.2006
+ * @file
+ * @brief Some convenience macros for node bitmaps.
+ * @author Sebastian Hack
+ * @date 10.05.2006
+ * @version $Id$
*/
-
-#ifndef __FIRM_IRBITSET_H
-#define __FIRM_IRBITSET_H
+#ifndef FIRM_IR_IRBITSET_H
+#define FIRM_IR_IRBITSET_H
#include "bitset.h"
for(elm = bitset_next_set(bs, 0), irn = _bsfe_get_irn(irg, elm); elm != -1; elm = bitset_next_set(bs, elm + 1), irn = _bsfe_get_irn(irg, elm))
-#endif /* __FIRM_IRBITSET_H */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/ircgcons.c
- * Purpose: Construction and removal of interprocedural representation
- * (explicit interprocedural dependencies).
- * Author: Hubert Schmid
- * Modified by:
- * Created: 09.06.2002
- * CVS-ID: $Id$
- * Copyright: (c) 2002-2003 Universität Karlsruhe
+/**
+ * @file
+ * @brief Construction and removal of interprocedural representation
+ * (explicit interprocedural dependencies).
+ * @author Hubert Schmid
+ * @date 09.06.2002
+ * @version $Id$
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/ircgcons.h
- * Purpose: Construction and removal of interprocedural representation
- * (explicit interprocedural dependencies).
- * Author: Hubert Schmid
- * Modified by:
- * Created: 09.06.2002
- * CVS-ID: $Id$
- * Copyright: (c) 2002-2003 Universität Karlsruhe
+/**
+ * @file
+ * @brief Construction and removal of interprocedural representation
+ * (explicit interprocedural dependencies).
+ * @author Hubert Schmid
+ * @date 09.06.2002
+ * @version $Id$
*/
-#ifndef _FIRM_IR_ICGCONS_H_
-#define _FIRM_IR_ICGCONS_H_
+#ifndef FIRM_IR_IRCGCONS_H
+#define FIRM_IR_IRCGCONS_H
#include "firm_types.h"
the ir. Sets ip_view_no in irp. */
void cg_destruct(void);
-#endif /* _FIRM_IR_ICGCONS_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/ircgopt.c
- * Purpose: Removal of unreachable methods.
- * Author: Hubert Schmid
- * Modified by:
- * Created: 09.06.2002
- * CVS-ID: $Id$
- * Copyright: (c) 2002-2003 Universität Karlsruhe
+/**
+ * @file
+ * @brief Removal of unreachable methods.
+ * @author Hubert Schmid
+ * @date 09.06.2002
+ * @version $Id$
*/
-/**
+/*
* Entfernen von nicht erreichbaren (aufrufbaren) Methoden. Die Menge
* der nicht erreichbaren Methoden wird aus der Abschätzung der
* Aufrufrelation bestimmt.
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/ircgopt.h
- * Purpose: Removal of unreachable methods.
- * Author: Hubert Schmid
- * Modified by:
- * Created: 09.06.2002
- * CVS-ID: $Id$
- * Copyright: (c) 2002-2003 Universität Karlsruhe
- */
-
/**
- * @file irgopt.h
- *
- * Entfernen von nicht erreichbaren (aufrufbaren) Methoden. Die Menge
- * der nicht erreichbaren Methoden wird aus der Abschätzung der
- * Aufrufrelation bestimmt.
+ * @file
+ * @brief Removal of unreachable methods.
+ * @author Hubert Schmid
+ * @date 09.06.2002
+ * @version $Id$
+ * @summary
+ * (TODO: translate to english)
+ * Entfernen von nicht erreichbaren (aufrufbaren) Methoden. Die Menge
+ * der nicht erreichbaren Methoden wird aus der Abschätzung der
+ * Aufrufrelation bestimmt.
*/
-#ifndef _FIRM_IR_ICGOPT_H_
-#define _FIRM_IR_ICGOPT_H_
+#ifndef FIRM_IR_ICGOPT_H
+#define FIRM_IR_ICGOPT_H
#include "firm_types.h"
* Frees all interprocedural loop information. */
void gc_irgs(int n_keep, ir_entity *keep_arr[]);
-#endif /* _FIRM_IR_ICGOPT_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/ircons.c
- * Purpose: Various irnode constructors. Automatic construction
- * of SSA representation.
- * Author: Martin Trapp, Christian Schaefer
- * Modified by: Goetz Lindenmaier, Boris Boesler, Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2007 Universität Karlsruhe
+/**
+ * @file
+ * @brief Various irnode constructors. Automatic construction of SSA
+ * representation.
+ * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Boris Boesler
+ Michael Beck
+ * @version $Id$
*/
-
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/ircons.h
- * Purpose: Various irnode constructors. Automatic construction
- * of SSA representation.
- * Author: Martin Trapp, Christian Schaefer
- * Modified by: Goetz Lindenmaier, Boris Boesler, Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2006 Universität Karlsruhe
+/**
+ * @file
+ * @brief Various irnode constructors. Automatic construction of SSA
+ * representation.
+ * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Boris Boesler,
+ * Michael Beck
+ * @version $Id$
*/
-/**
- @todo
+/**@todo
Ideas for improvement:
-# Handle construction of exceptions more comfortable:
Add new constructors that pass the exception region (or better the
*/
/**
- * @file ircons.h
+ * @file
*
* documentation no more supported since 2001
*
* ir node construction.
*
- * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier
- *
* This file documents all datatypes and constructors needed to
* build a FIRM representation of a procedure. The constructors are
* also implemented in this file.
* node.
*
*/
-#ifndef _FIRM_IR_IRCONS_H_
-#define _FIRM_IR_IRCONS_H_
+#ifndef FIRM_IR_IRCONS_H
+#define FIRM_IR_IRCONS_H
#include "firm_common.h"
#include "irnode.h"
*/
typedef ir_node *uninitialized_local_variable_func_t(ir_graph *irg, ir_mode *mode, int pos);
-#endif /* _FIRM_IR_IRCONS_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/ircons_t.h
- * Purpose: Various irnode constructors. Automatic construction
- * of SSA representation.
- * Author: Martin Trapp, Christian Schaefer
- * Modified by: Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2003 Universität Karlsruhe
+/**
+ * @file
+ * @brief Various irnode constructors. Automatic construction
+ * of SSA representation. Private Header
+ * @author Martin Trapp, Christian Schaefer, Michael Beck
+ * @version $Id$
*/
-#ifndef _IRCONS_T_H_
-#define _IRCONS_T_H_
+#ifndef FIRM_IR_IRCONS_T_H
+#define FIRM_IR_IRCONS_T_H
#include "ircons.h"
-# include "irgraph_t.h"
+#include "irgraph_t.h"
/**
* Initializes the graph construction.
#define new_d_Bad() _new_d_Bad()
#define new_d_NoMem() _new_d_NoMem()
-#endif /* _IRCONS_T_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irdump.c
- * Purpose: Write vcg representation of firm to file.
- * Author: Martin Trapp, Christian Schaefer
- * Modified by: Goetz Lindenmaier, Hubert Schmidt
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2006 Universit�t Karlsruhe
+/**
+ * @file
+ * @brief Write vcg representation of firm to file.
+ * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Hubert Schmidt
+ * @version $Id$
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
}
-/*-----------------------------------------------------------------------------*/
-/* Dumps the firm nodes in the loop tree to a graph along with the loop nodes. */
-/*-----------------------------------------------------------------------------*/
+/*----------------------------------------------------------------------------*/
+/* Dumps the firm nodes in the loop tree to a graph along with the loop nodes.*/
+/*----------------------------------------------------------------------------*/
void collect_nodeloop(FILE *F, ir_loop *loop, eset *loopnodes) {
int i, son_number = 0, node_number = 0;
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irdump.h
- * Purpose: Write vcg representation of firm to file.
- * Author: Martin Trapp, Christian Schaefer
- * Modified by: Goetz Lindenmaier, Hubert Schmidt
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2003 Universität Karlsruhe
- */
-
/**
- * @file irdump.h
- *
- * Dump routines for the ir graph and all type information.
+ * @file
+ * @brief Write vcg representation of firm to file.
+ * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Hubert Schmidt
+ * @version $Id$
+ * @summary
+ * Dump routines for the ir graph and all type information.
*
- * @author Martin Trapp, Christian Schaefer
+ * The dump format of most functions is vcg. This is a text based graph
+ * representation. Some use the original format,
+ * but most generate an extended format that is only read by some special
+ * versions of xvcg or by the comercialized version now calles aiSee.
+ * A test version of aiSee is available at
+ * http://www.absint.de/aisee/download/index.htm.
*
- * The dump format of most functions is vcg. This is a text based graph
- * representation. Some use the original format,
- * but most generate an extended format that is only read by some special
- * versions of xvcg or by the comercialized version now calles aiSee.
- * A test version of aiSee is available at
- * http://www.absint.de/aisee/download/index.htm.
+ * We have developed an own advanced viewer called ycomp:
+ * http://www.info.uni-karlsruhe.de/software.php/id=6&lang=en
*
- * Most routines use the name of the passed entity as the name of the
- * file dumped to.
+ * Most routines use the name of the passed entity as the name of the
+ * file dumped to.
*/
-#ifndef _FIRM_IR_IRDUMP_H_
-#define _FIRM_IR_IRDUMP_H_
+#ifndef FIRM_IR_IRDUMP_H
+#define FIRM_IR_IRDUMP_H
#include "irnode.h"
#include "irgraph.h"
*/
void dump_remv_node_info_callback(void *handle);
-#endif /* _FIRM_IR_IRDUMP_H_ */
+#endif
* PURPOSE.
*/
-
-
-#ifndef __IRDUMPT_T_H__
-#define __IRDUMPT_T_H__
+/**
+ * @file
+ * @brief Private header for irdump
+ * @version $Id$
+ */
+#ifndef FIRM_IR_IRDUMPT_T_H
+#define FIRM_IR_IRDUMPT_T_H
#include "irdump.h"
/** Writes vcg representation with title "PRINT_TYPEID(tp)" to file F. */
int dump_type_node(FILE *F, ir_type *tp);
-
-
-#endif /* __IRDUMPT_T_H__ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irdumptxt.c
- * Purpose: Write vcg representation of firm to file.
- * Author: Martin Trapp, Christian Schaefer
- * Modified by: Goetz Lindenmaier, Hubert Schmidt
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2006 Universität Karlsruhe
+/**
+ * @file
+ * @brief Write vcg representation of firm to file.
+ * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Hubert Schmidt
+ * @version $Id$
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
*/
/**
- * @file iredgekinds.h
+ * @file
+ * @breif Declares different kind of edges between nodes
* @date 29.08.2006
* @author Sebastian Hack
- *
- * Copyright (C) 2006 Universitaet Karlsruhe
- * Released under the GPL
*/
-
-#ifndef _IREDGEKINDS_H
-#define _IREDGEKINDS_H
+#ifndef FIRM_IR_IREDGEKINDS_H
+#define FIRM_IR_IREDGEKINDS_H
/** Supported Edge kinds. */
enum _ir_edge_kind_t {
void edges_notify_edge_kind(ir_node *src, int pos, ir_node *tgt, ir_node *old_tgt, ir_edge_kind_t kind, ir_graph *irg);
-#endif /* _IREDGEKINDS_H */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/iredges.c
- * Purpose: Always available outs.
- * Author: Sebastian Hack
- * Modified by: Michael Beck, Andreas Schoesser
- * Created: 14.1.2005
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2006 Universität Karlsruhe
- */
-
/**
- * Always available outs.
- * @author Sebastian Hack
- * @date 14.1.2005
+ * @file
+ * @brief Always available outs.
+ * @author Sebastian Hack, Michael Beck, Andreas Schoesser
+ * @date 14.1.2005
+ * @version $Id$
+ * @summary
+ * This are out-edges (also called def-use edges) that are dynamically
+ * updated as the graph changes.
*/
-
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "xmalloc.h"
/**
-* A function that allows for setting an edge.
-* This abstraction is necessary since different edge kind have
-* different methods of setting edges.
-*/
+ * A function that allows for setting an edge.
+ * This abstraction is necessary since different edge kind have
+ * different methods of setting edges.
+ */
typedef void (set_edge_func_t)(ir_node *src, int pos, ir_node *tgt);
typedef int (get_edge_src_arity_func_t)(const ir_node *src);
typedef ir_node *(get_edge_src_n_func_t)(const ir_node *src, int pos);
/**
-* Additional data for an edge kind.
-*/
+ * Additional data for an edge kind.
+ */
typedef struct {
const char *name;
set_edge_func_t *set_edge;
ir_fprintf(stderr, "Edge Verifier: %+F reachable by %d node(s), but the list contains %d edge(s)\n",
irn, ref_cnt, list_cnt);
- // Matze: buggy if a node has multiple ins pointing at irn
+ /* Matze: buggy if a node has multiple ins pointing at irn */
#if 0
list_for_each(pos, head) {
ir_edge_t *edge = list_entry(pos, ir_edge_t, list);
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/iredges.h
- * Purpose: Public header for the automatically updating outs.
- * Author: Sebastian Hack
- * Created: 3.2.2005
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2005 Universität Karlsruhe
- */
-
/**
- * Public header for the automatically updating outs.
- * @author Sebastian Hack
- * @date 3.2.2005
+ * @file
+ * @brief Public header for the automatically updating outs.
+ * @author Sebastian Hack
+ * @date 3.2.2005
+ * @version $Id$
*/
-
-#ifndef _FIRM_IR_EDGES_H
-#define _FIRM_IR_EDGES_H
+#ifndef FIRM_IR_IREDGES_H
+#define FIRM_IR_IREDGES_H
#include "firm_types.h"
#include "iredgekinds.h"
typedef struct _ir_edge_t ir_edge_t;
#endif
-#if 0
-#ifndef _IR_EDGE_KIND_TYPEDEF_
-#define _IR_EDGE_KIND_TYPEDEF_
-typedef enum _ir_edge_kind_t ir_edge_kind_t;
-#endif /* _IR_EDGE_KIND_TYPEDEF_ */
-#endif
-
/**
* Get the first edge pointing to some node.
* @note There is no order on out edges. First in this context only
/* End Old Interface */
/************************************************************************/
-
-#endif /* _FIRM_IR_EDGES_H */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/iredges_t.h
- * Purpose: Everlasting outs -- private header.
- * Author: Sebastian Hack
- * Modified by: Andreas Schoesser
- * Created: 15.01.2005
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2005 Universit�t Karlsruhe
- */
-
/**
- * everlasting outs.
- * @author Sebastian Hack
- * @date 15.1.2005
+ * @file
+ * @brief Everlasting outs -- private header.
+ * @author Sebastian Hack, Andreas Schoesser
+ * @date 15.01.2005
+ * @version $Id$
*/
-
-#ifndef _FIRM_EDGES_T_H
-#define _FIRM_EDGES_T_H
+#ifndef FIRM_IR_EDGES_T_H
+#define FIRM_IR_EDGES_T_H
#include "firm_config.h"
#include "debug.h"
#define get_block_succ_next(irn, last) _get_irn_out_edge_next(irn, last)
#endif
-
-
-#endif /* _FIRM_EDGES_T_H */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irflag.c
- * Purpose: Flags to control optimizations.
- * Author: Christian Schaefer, Goetz Lindenmaier
- * Modified by:
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1999-2003 Universität Karlsruhe
+/**
+ * @file
+ * @brief Flags to control optimizations.
+ * @author Christian Schaefer, Goetz Lindenmaier
+ * @version $Id$
*/
-
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irflag.h
- * Purpose: Flags to control optimizations.
- * Author: Christian Schaefer, Goetz Lindenmaier
- * Modified by: Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1999-2003 Universität Karlsruhe
- */
-
/**
- * @file irflag.h
- *
+ * @file
+ * @brief Flags to control optimizations.
+ * @author Christian Schaefer, Goetz Lindenmaier, Michael Beck
+ * @version $Id$
+ * @summary
* Flags to customize the behavior of libfirm.
*
- * @author Christian Schaefer
- *
* There are the following groups of flags:
* 1. Optimization flags.
* a) There is a flag, 'optimize' to turn on/off all optimizations.
* 4. Verification flag
* This one controls the behavior of node and type verifications
*/
-#ifndef _FIRM_IR_IRFLAG_H_
-#define _FIRM_IR_IRFLAG_H_
+#ifndef FIRM_IR_IRFLAG_H
+#define FIRM_IR_IRFLAG_H
#include "firm_types.h"
*/
void do_node_verification(firm_verification_t mode);
-#endif /* _FIRM_IR_IRFLAG_H_ */
+#endif
/*
- * Project: libFIRM
- * File name: ir/ir/irflag_t.def
- * Purpose: Flags to control optimizations, inline implementation.
- * Author: Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2004 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
+ * @brief Definitions for optimisation flags
+ * @author Michael Beck
+ * @version $Id$
*/
/** Turn off all optimizations. */
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irgraph.c
- * Purpose: Flags to control optimizations, inline implementation.
- * Author: Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2004 Universität Karlsruhe
- */
-
/**
- * @file irflag_t.h
- *
- * Inline implementation of Optimization flags.
- *
- * @author Michael Beck
+ * @file
+ * @brief Flags to control optimizations, inline implementation.
+ * @author Michael Beck
+ * @version $Id$
*/
-#ifndef _IRFLAG_T_H_
-#define _IRFLAG_T_H_
+#ifndef FIRM_IR_IRFLAG_T_H
+#define FIRM_IR_IRFLAG_T_H
#include "irflag.h"
extern void firm_init_flags(void);
-#endif /* _IRFLAG_T_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irgmod.c
- * Purpose: Support for ir graph modification.
- * Author: Martin Trapp, Christian Schaefer
- * Modified by: Goetz Lindenmaier
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2003 Universität Karlsruhe
+/**
+ * @file
+ * @brief Support for ir graph modification.
+ * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier
+ * @version $Id$
*/
-
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irgmod.h
- * Purpose: Support for ir graph modification.
- * Author: Martin Trapp, Christian Schaefer
- * Modified by: Goetz Lindenmaier
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2003 Universität Karlsruhe
- */
-
/**
- *
- * @file irgmod.h
- *
- * ir graph modification.
- *
- * @author Martin Trapp, Christian Schaefer
+ * @file
+ * @brief Support for ir graph modification.
+ * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier
+ * @version $Id$
*/
-#ifndef _FIRM_IR_IRGMOD_H_
-#define _FIRM_IR_IRGMOD_H_
+#ifndef FIRM_IR_IRGMOD_H
+#define FIRM_IR_IRGMOD_H
#include "firm_types.h"
*/
void part_block(ir_node *node);
-#endif /* ifndef _FIRM_IR_IRGMOD_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irgopt.c
- * Purpose: Optimizations for a whole ir graph, i.e., a procedure.
- * Author: Christian Schaefer, Goetz Lindenmaier
- * Modified by: Sebastian Felis, Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2007 Universität Karlsruhe
+/**
+ * @file
+ * @brief Optimizations for a whole ir graph, i.e., a procedure.
+ * @author Christian Schaefer, Goetz Lindenmaier, Sebastian Felis,
+ * Michael Beck
+ * @version $Id$
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irgopt.h
- * Purpose: Optimizations for a whole ir graph, i.e., a procedure.
- * Author: Christian Schaefer, Goetz Lindenmaier
- * Modified by: Sebastian Felis
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2003 Universität Karlsruhe
- */
-
/**
- * @file irgopt.h
- *
- * Optimizations for a whole ir graph, i.e., a procedure.
- *
- * @author Christian Schaefer, Goetz Lindenmaier
+ * @file
+ * @brief Optimizations for a whole ir graph, i.e., a procedure.
+ * @author Christian Schaefer, Goetz Lindenmaier, Sebastian Felis
+ * @version $Id$
*/
-#ifndef _FIRM_IR_IRGOPT_H_
-#define _FIRM_IR_IRGOPT_H_
+#ifndef FIRM_IR_IRGOPT_H
+#define FIRM_IR_IRGOPT_H
#include "firm_types.h"
*/
void remove_critical_cf_edges(ir_graph *irg);
-#endif /* _FIRM_IR_IRGOPT_H_ */
+#endif
*/
/**
- * Internal irgopt functions.
+ * @file
+ * @brief Internal irgopt functions.
+ * @version $Id$
*/
-
-#ifndef _IRGOPT_T_H
-#define _IRGOPT_T_H
+#ifndef FIRM_IR_IRGOPT_T_H
+#define FIRM_IR_IRGOPT_T_H
//void copy_node (ir_node *n, void *env);
void copy_preds(ir_node *n, void *env);
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irgraph.c
- * Purpose: Entry point to the representation of procedure code.
- * Author: Martin Trapp, Christian Schaefer
- * Modified by: Goetz Lindenmaier, Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2007 Universität Karlsruhe
+/**
+ * @file
+ * @brief Entry point to the representation of procedure code.
+ * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Michael Beck
+ * @version $Id$
*/
-
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irgraph.c
- * Purpose: Entry point to the representation of procedure code.
- * Author: Martin Trapp, Christian Schaefer
- * Modified by: Goetz Lindenmaier
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2003 Universität Karlsruhe
- */
-
/**
- * @file irgraph.h
- *
- * ir graph construction.
- *
- * @author Martin Trapp, Christian Schaefer
+ * @file
+ * @brief Entry point to the representation of procedure code.
+ * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier
+ * @version $Id$
*/
-#ifndef _FIRM_IR_IRGRAPH_H_
-#define _FIRM_IR_IRGRAPH_H_
+#ifndef FIRM_IR_IRGRAPH_H
+#define FIRM_IR_IRGRAPH_H
#include <stddef.h>
*/
size_t register_additional_graph_data(size_t size);
-#endif /* _FIRM_IR_IRGRAPH_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irgraph.c
- * Purpose: Entry point to the representation of procedure code -- internal header.
- * Author: Martin Trapp, Christian Schaefer
- * Modified by: Goetz Lindenmaier, Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2007 Universität Karlsruhe
- */
-
/**
- * @file irgraph_t.h
- *
- * IR graph construction.
+ * @file
+ * @brief Entry point to the representation of procedure code -- internal header.
+ * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Michael Beck
+ * @version $Id$
*/
-#ifndef _IRGRAPH_T_H_
-#define _IRGRAPH_T_H_
+#ifndef FIRM_IR_IRGRAPH_T_H
+#define FIRM_IR_IRGRAPH_T_H
#include "firm_types.h"
#include "irgraph.h"
#define get_irg_estimated_node_cnt(irg) _get_irg_estimated_node_cnt(irg)
#define get_irg_fp_model(irg) _get_irg_fp_model(irg)
-# endif /* _IRGRAPH_T_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irgwalk.c
- * Purpose:
- * Author: Boris Boesler
- * Modified by: Goetz Lindenmaier, Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1999-20036Universität Karlsruhe
- */
-
/**
- * @file irgwalk.c
- *
- * traverse an ir graph
- * - execute the pre function before recursion
- * - execute the post function after recursion
+ * @file
+ * @brief Functions for traversing ir graphs
+ * @author Boris Boesler, Goetz Lindenmaier, Michael Beck
+ * @version $Id$
+ * @summary
+ * traverse an ir graph
+ * - execute the pre function before recursion
+ * - execute the post function after recursion
*/
-
-
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include "irhooks.h"
#include "ircgcons.h"
-#include "eset.h"
+#include "pset_new.h"
#include "array.h"
/**
* Walk over an interprocedural graph (callgraph).
* Visits only graphs in irg_set.
*/
-static void irg_walk_cg(ir_node * node, unsigned long visited, eset * irg_set,
- irg_walk_func *pre, irg_walk_func *post, void * env) {
+static void irg_walk_cg(ir_node * node, unsigned long visited,
+ pset_new_t *irg_set, irg_walk_func *pre,
+ irg_walk_func *post, void * env) {
int i;
ir_graph * rem = current_ir_graph;
ir_node * pred;
if ((get_irn_op(pred) != op_CallBegin
&& get_irn_op(pred) != op_EndReg
&& get_irn_op(pred) != op_EndExcept)
- || eset_contains(irg_set, get_irn_irg(pred))) {
+ || pset_new_contains(irg_set, get_irn_irg(pred))) {
irg_walk_cg(exec, visited, irg_set, pre, post, env);
}
}
assert(get_irn_op(exec) == op_CallBegin
|| get_irn_op(exec) == op_EndReg
|| get_irn_op(exec) == op_EndExcept);
- if (eset_contains(irg_set, get_irn_irg(exec))) {
+ if (pset_new_contains(irg_set, get_irn_irg(exec))) {
current_ir_graph = get_irn_irg(exec);
irg_walk_cg(pred, visited, irg_set, pre, post, env);
current_ir_graph = rem;
/**
* Insert all ir_graphs in irg_set, that are (transitive) reachable.
*/
-static void collect_irgs(ir_node * node, eset * irg_set) {
+static void collect_irgs(ir_node * node, pset_new_t *irg_set) {
if (is_Call(node)) {
int i;
for (i = get_Call_n_callees(node) - 1; i >= 0; --i) {
ir_entity * ent = get_Call_callee(node, i);
ir_graph * irg = get_entity_irg(ent);
- if (irg && !eset_contains(irg_set, irg)) {
- eset_insert(irg_set, irg);
+ if (irg && !pset_new_contains(irg_set, irg)) {
+ pset_new_insert(irg_set, irg);
irg_walk_graph(irg, (irg_walk_func *) collect_irgs, NULL, irg_set);
}
}
assert(is_ir_node(node));
if (get_interprocedural_view()) {
- eset * irg_set = eset_create();
- unsigned long visited;
- ir_graph * irg;
+ pset_new_t irg_set;
+ pset_new_iterator_t iter;
+ unsigned long visited;
+ ir_graph *irg;
assert(get_irp_ip_view_state() == ip_view_valid);
+ pset_new_init(&irg_set);
set_interprocedural_view(0);
- eset_insert(irg_set, current_ir_graph);
- irg_walk(node, (irg_walk_func *) collect_irgs, NULL, irg_set);
+ pset_new_insert(&irg_set, current_ir_graph);
+ irg_walk(node, (irg_walk_func *) collect_irgs, NULL, &irg_set);
set_interprocedural_view(1);
visited = get_max_irg_visited() + 1;
- for (irg = eset_first(irg_set); irg; irg = eset_next(irg_set)) {
+
+ foreach_pset_new(&irg_set, irg, iter) {
set_irg_visited(irg, visited);
}
- irg_walk_cg(node, visited, irg_set, pre, post, env);
- eset_destroy(irg_set);
+ irg_walk_cg(node, visited, &irg_set, pre, post, env);
+ pset_new_destroy(&irg_set);
} else {
set_using_visited(current_ir_graph);
inc_irg_visited(current_ir_graph);
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irgwalk.h
- * Purpose:
- * Author: Boris Boesler
- * Modified by: Goetz Lindenmaier
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1999-2003 Universität Karlsruhe
- */
-
-
/**
- * @file irgwalk.h
+ * @file
+ * @brief Traverse an ir graph
+ * @author Boris Boesler, Goetz Lindenmaier
+ * @version $Id$
+ * @summary
+ * Traverse an ir graph:
+ * - execute the pre function before recursion
+ * - execute the post function after recursion
*
- * Traverse an ir graph.
- *
- * @author Boris Boesler
- *
- * Traverse an ir graph:
- * - execute the pre function before recursion
- * - execute the post function after recursion
- *
- * Uses current_ir_graph (from irgraph.h)!!! Set it to the proper
- * graph before starting the walker.
+ * Uses current_ir_graph (from irgraph.h)!!! Set it to the proper
+ * graph before starting the walker.
*/
-#ifndef _FIRM_IR_IRGWALK_H_
-#define _FIRM_IR_IRGWALK_H_
+#ifndef FIRM_IR_IRGWALK_H
+#define FIRM_IR_IRGWALK_H
#include "firm_types.h"
*/
void irg_walk_anchors(ir_graph *irg, irg_walk_func *pre, irg_walk_func *post, void *env);
-#endif /* _FIRM_IR_IRGWALK_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irgwalk_blk.c
- * Purpose:
- * Author: Michael Beck
- * Modified by:
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1999-2004 Universität Karlsruhe
+/**
+ * @file
+ * @brief Blockwise walker implementation
+ * @author Michael Beck
+ * @version $Id$
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irhooks.c
- * Purpose: Generic hooks for various libFirm functions.
- * Author: Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (C) 1998-2005 Universität Karlsruhe
- */
-
/**
- * @file irhooks.c
- *
- * Generic hooks for various libFirm functions.
- *
- * @author Michael Beck
+ * @file
+ * @brief Generic hooks for various libFirm functions.
+ * @author Michael Beck
+ * @version $Id$
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irhooks.h
- * Purpose: Generic hooks for various libFirm functions.
- * Author: Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (C) 1998-2005 Universität Karlsruhe
- */
-
/**
- * @file irhooks.h
- *
- * Generic hooks for various libFirm functions.
- *
- * @author Michael Beck
+ * @file
+ * @brief Generic hooks for various libFirm functions.
+ * @author Michael Beck
+ * @version $Id$
*/
-#ifndef _FIRM_IR_IRHOOKS_H_
-#define _FIRM_IR_IRHOOKS_H_
+#ifndef FIRM_IR_IRHOOKS_H
+#define FIRM_IR_IRHOOKS_H
#include "firm_config.h"
#include "irop.h"
/* the initializer, move to hooks_t.h some day */
int firm_init_hooks(void);
-#endif /* _FIRM_IR_IRHOOKS_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irmode.c
- * Purpose: Data modes of operations.
- * Author: Martin Trapp, Christian Schaefer
- * Modified by: Goetz Lindenmaier, Mathias Heil
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2003 Universität Karlsruhe
+/**
+ * @file
+ * @brief Data modes of operations.
+ * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Mathias Heil
+ * @version $Id$
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irmode.h
- * Purpose: Data modes of operations.
- * Author: Martin Trapp, Christian Schaefer
- * Modified by: Goetz Lindenmaier, Mathias Heil, Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2007 Universität Karlsruhe
- */
-
/**
- * @file irmode.h
- * irmode -- Modes for ir operators
- *
- * @author Christian Schaefer, Matthias Heil
- *
- * This module specifies the modes that type the firm nodes. It defines
- * a datasturcture that describes a mode and implements constructors and
- * access routines to this datastructure. Further it defines a set of
- * predefined modes.
+ * @file
+ * @brief Data modes of operations.
+ * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Mathias Heil,
+ * Michael Beck
+ * @version $Id$
+ * @summary
+ * This module specifies the modes that type the firm nodes. It defines
+ * a datasturcture that describes a mode and implements constructors and
+ * access routines to this datastructure. Further it defines a set of
+ * predefined modes.
*
- * SEE ALSO:
+ * SEE ALSO:
* UKA tech report 1999-44 for more information about modes.
- *
*/
-
-#ifndef _FIRM_IR_IRMODE_H_
-#define _FIRM_IR_IRMODE_H_
+#ifndef FIRM_IR_IRMODE_H
+#define FIRM_IR_IRMODE_H
#include "firm_types.h"
#include "ident.h"
*/
void set_reference_mode_unsigned_eq(ir_mode *ref_mode, ir_mode *int_mode);
-#endif /* _FIRM_IR_IRMODE_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irmode_t.h
- * Purpose: Data modes of operations -- private header.
- * Author: Martin Trapp, Christian Schaefer
- * Modified by: Goetz Lindenmaier, Mathias Heil, Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2007 Universität Karlsruhe
- */
-
-
/**
- * @file irmode_t.h
+ * @file
+ * @brief Data modes of operations -- private header.
+ * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Mathias Heil,
+ * Michael Beck
+ * @version $Id$
*/
-#ifndef _IRMODE_T_H_
-#define _IRMODE_T_H_
+#ifndef FIRM_IR_IRMODE_T_H
+#define FIRM_IR_IRMODE_T_H
#include <assert.h>
#include "irmode.h"
#define mode_is_float_vector(mode) _mode_is_float_vector(mode)
#define mode_is_int_vector(mode) _mode_is_int_vector(mode)
-#endif /* _IRMODE_T_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irnode.c
- * Purpose: Representation of an intermediate operation.
- * Author: Martin Trapp, Christian Schaefer
- * Modified by: Goetz Lindenmaier, Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2006 Universität Karlsruhe
+/**
+ * @file
+ * @brief Representation of an intermediate operation.
+ * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Michael Beck
+ * @version $Id$
*/
-
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irnode.h
- * Purpose: Representation of an intermediate operation.
- * Author: Martin Trapp, Christian Schaefer
- * Modified by: Goetz Lindenmaier, Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2006 Universität Karlsruhe
+/**
+ * @file
+ * @brief Representation of an intermediate operation.
+ * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Michael Beck
+ * @version $Id$
*/
-#ifndef _FIRM_IR_IRNODE_H_
-#define _FIRM_IR_IRNODE_H_
+#ifndef FIRM_IR_IRNODE_H
+#define FIRM_IR_IRNODE_H
#include <stddef.h>
}
#endif
-#endif /* _FIRM_IR_IRNODE_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irnode_t.h
- * Purpose: Representation of an intermediate operation -- private header.
- * Author: Martin Trapp, Christian Schaefer
- * Modified by: Goetz Lindenmaier, Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2003 Universität Karlsruhe
- */
-
/**
- * @file irnode_t.h
- *
- * Declarations of an ir node.
- *
- * @author Martin Trapp, Christian Schaefer
+ * @file
+ * @brief Representation of an intermediate operation -- private header.
+ * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Michael Beck
+ * @version $Id$
*/
-#ifndef _FIRM_IRNODE_T_H_
-#define _FIRM_IRNODE_T_H_
+#ifndef FIRM_IR_IRNODE_T_H
+#define FIRM_IR_IRNODE_T_H
#include "firm_config.h"
#include "irnode.h"
#define get_irn_ins_or_deps(node) _get_irn_ins_or_deps(node)
#define get_irn_in_or_dep(node, pos) _get_irn_in_or_dep(node, pos)
-#endif /* _FIRM_IRNODE_T_H_ */
+#endif
* @brief A nodeset. This should be prefered over a simple pset, because it
* tries to guarantee deterministic behavior. (and is faster)
* @version $Id$
+ * @note Actually the bits to make the behaviour deterministic are not
+ * implemented yet...
*/
#ifndef _FIRM_IRNODESET_H_
#define _FIRM_IRNODESET_H_
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irop.c
- * Purpose: Representation of opcode of intermediate operation.
- * Author: Christian Schaefer
- * Modified by: Goetz Lindenmaier, Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2006 Universität Karlsruhe
+/**
+ * @file
+ * @brief Representation of opcode of intermediate operation.
+ * @author Christian Schaefer, Goetz Lindenmaier, Michael Beck
+ * @version $Id$
*/
-
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irop.h
- * Purpose: Representation of opcode of intermediate operation.
- * Author: Christian Schaefer
- * Modified by: Goetz Lindenmaier
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2003 Universität Karlsruhe
- */
-
/**
- * @file irop.h
- *
- * Operators of firm nodes.
- *
- * @author Christian Schaefer
+ * @file
+ * @brief Representation of opcode of intermediate operation.
+ * @author Christian Schaefer, Goetz Lindenmaier
+ * @version $Id$
+ * @summary
+ * Operators of firm nodes.
*
* This module specifies the opcodes possible for ir nodes. Their
* definition is close to the operations specified in UKA Tech-Report
* 1999-14
*/
-#ifndef _FIRM_IR_IROP_H_
-#define _FIRM_IR_IROP_H_
+#ifndef FIRM_IR_IROP_H
+#define FIRM_IR_IROP_H
#include "firm_types.h"
/** Returns the ir_op_ops of an ir_op. */
const ir_op_ops *get_op_ops(const ir_op *op);
-#endif /* _FIRM_IR_IROP_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irop_t.h
- * Purpose: Representation of opcode of intermediate operation -- private header.
- * Author: Christian Schaefer
- * Modified by: Goetz Lindenmaier
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2003 Universität Karlsruhe
+/**
+ * @file
+ * @brief Representation of opcode of intermediate operation -- private header.
+ * @author Christian Schaefer, Goetz Lindenmaier
+ * @version $Id$
*/
-#ifndef _IROP_T_H_
-#define _IROP_T_H_
+#ifndef FIRM_IR_IROP_T_H
+#define FIRM_IR_IROP_T_H
#include "firm_config.h"
#include "irop.h"
#define set_op_tag(op, tag) _set_op_tag((op), (tag))
#define get_op_tag(op) _get_op_tag(op)
-#endif /* _IROP_T_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/iropt.c
- * Purpose: iropt --- optimizations intertwined with IR construction.
- * Author: Christian Schaefer
- * Modified by: Goetz Lindenmaier, Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2006 Universität Karlsruhe
+/**
+ * @file
+ * @brief iropt --- optimizations intertwined with IR construction.
+ * @author Christian Schaefer, Goetz Lindenmaier, Michael Beck
+ * @version $Id$
*/
-
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/iropt.h
- * Purpose: iropt --- optimizations of an ir node.
- * Author: Martin Trapp, Christian Schaefer
- * Modified by: Goetz Lindenmaier, Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2003 Universität Karlsruhe
- */
-
/**
- * @file iropt.h
- *
- * Declarations for optimizations of an ir node.
- *
- * @author Martin Trapp, Christian Schaefer
+ * @file
+ * @brief iropt --- optimizations of an ir node.
+ * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Michael Beck
+ * @version $Id$
*/
-#ifndef _FIRM_IR_IROPT_H_
-#define _FIRM_IR_IROPT_H_
+#ifndef FIRM_IR_IROPT_H
+#define FIRM_IR_IROPT_H
#include "firm_types.h"
*/
ir_node *optimize_in_place(ir_node *n);
-#endif /* _FIRM_IR_IROPT_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/iropt_dbg.h
- * Purpose: Debug makros used in iropt.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 2001-2003 Universität Karlsruhe
+/**
+ * @file
+ * @brief Debug makros used in iropt.
+ * @author Goetz Lindenmaier
+ * @version $Id$
*/
-
-#ifndef _IROPT_DBG_H_
-#define _IROPT_DBG_H_
+#ifndef FIRM_IR_IROPT_DBG_H
+#define FIRM_IR_IROPT_DBG_H
#include "dbginfo_t.h"
#include "irhooks.h"
hook_merge_nodes(NULL, 0, &n, 1, HOOK_OPT_CONFIRM_E); \
} while(0)
-#endif /* _IROPT_DBG_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/iropt_t.h
- * Purpose: iropt --- optimizations intertwined with IR construction -- private header.
- * Author: Martin Trapp, Christian Schaefer
- * Modified by: Goetz Lindenmaier, Michael Beck
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2003 Universität Karlsruhe
- */
-
/**
- * @file iropt_t.h
- *
- * Declarations for optimizations intertwined with IR construction.
- *
- * @author Martin Trapp, Christian Schaefer
+ * @file
+ * @brief iropt --- optimizations intertwined with IR construction -- private header.
+ * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Michael Beck
+ * @version $Id$
*/
-
-#ifndef _IROPT_T_H_
-#define _IROPT_T_H_
+#ifndef FIRM_IR_IROPT_T_H
+#define FIRM_IR_IROPT_T_H
#include "iropt.h"
#include "irnode_t.h"
*/
ir_op_ops *firm_set_default_operations(ir_opcode code, ir_op_ops *ops);
-#endif /* _IROPT_T_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irphase.c
- * Purpose: Phase information handling using node indexes.
- * Author: Sebastian Hack
- * Modified by:
- * Created:
- * SVN-ID: $Id$
- * Copyright: (c) 1998-2006 Universitaet Karlsruhe
+/**
+ * @file
+ * @brief Phase information handling using node indexes.
+ * @author Sebastian Hack
+ * @version $Id$
+ * @summary
+ * A phase contains a link to private data for each node in an ir graph.
+ * A phase is independent from the globally visible link field of ir nodes.
*/
-
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irphase_t.c
- * Purpose: Phase information handling using node indexes.
- * Author: Sebastian Hack
- * Modified by:
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2007 Universitaet Karlsruhe
+/**
+ * @file
+ * @brief Phase information handling using node indexes.
+ * @author Sebastian Hack
+ * @version $Id$
*/
-
-#ifndef _FIRM_IR_PHASE_T_H
-#define _FIRM_IR_PHASE_T_H
+#ifndef FIRM_IR_PHASE_T_H
+#define FIRM_IR_PHASE_T_H
#include "firm_types.h"
#include "obst.h"
return res;
}
-#endif /* _FIRM_IR_PHASE_T_H */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irprintf.c
- * Purpose: A little printf helper unterstanding firm types
- * Author: Sebastian Hack
- * Created: 29.11.2004
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2006 Universität Karlsruhe
- */
-
/**
- * @file irprintf.c
- *
- * A little printf helper unterstanding firm types.
- * @author Sebastian Hack
- * @date 29.11.2004
+ * @file
+ * @brief A little printf helper unterstanding firm types
+ * @author Sebastian Hack
+ * @date 29.11.2004
+ * @version $Id$
*/
-
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irprintf.h
- * Purpose: A little printf understanding some firm types.
- * Author: Sebastian Hack
- * Created: 29.11.2004
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2004 Universität Karlsruhe
- */
-
/**
- * @file irprintf.h
- *
- * A little printf understanding some firm types.
- * @author Sebastian Hack
- * @date 29.11.2004
+ * @file
+ * @brief A little printf understanding some firm types.
+ * @author Sebastian Hack
+ * @date 29.11.2004
+ * @version $Id$
*/
-#ifndef _FIRM_IR_IRPRINTF_H_
-#define _FIRM_IR_IRPRINTF_H_
+#ifndef FIRM_IR_IRPRINTF_H
+#define FIRM_IR_IRPRINTF_H
#include "firm_config.h"
#include <libcore/lc_printf.h>
#endif /* WITH_LIBCORE */
-#endif /* _FIRM_IR_IRPRINTF_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irprintf_t.h
- * Purpose: A little printf understanding some firm types.
- * Author: Sebastian Hack
- * Created: 29.11.2004
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2004 Universität Karlsruhe
+/**
+ * @file
+ * @brief A little printf understanding some firm types.
+ * @author Sebastian Hack
+ * @date 29.11.2004
+ * @version $Id$
*/
-
-#ifndef _IRPRINTF_T_H
-#define _IRPRINTF_T_H
+#ifndef FIRM_IR_IRPRINTF_T_H
+#define FIRM_IR_IRPRINTF_T_H
#include "firm_config.h"
#include "irprintf.h"
#endif
-
#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irprog.c
- * Purpose: Entry point to the representation of a whole program.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 2000
- * CVS-ID: $Id$
- * Copyright: (c) 2000-2007 Universität Karlsruhe
+/**
+ * @file
+ * @brief Entry point to the representation of a whole program.
+ * @author Goetz Lindenmaier
+ * @date 2000
+ * @version $Id$
*/
-
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irprog.h
- * Purpose: Entry point to the representation of a whole program.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 2000
- * CVS-ID: $Id$
- * Copyright: (c) 2000-2003 Universität Karlsruhe
- */
-
/**
- * @file irprog.h
+ * @file
+ * @brief Entry point to the representation of a whole program.
+ * @author Goetz Lindenmaier
+ * @date 2000
+ * @version $Id$
+ * @summary
+ * ir representation of a program.
*
- * ir representation of a program.
- *
- * @author Goetz Lindenmaier
- *
- * This file defines a construct that keeps all information about a
- * program:
+ * This file defines a construct that keeps all information about a
+ * program:
* - A reference point to the method to be executed on program start.
* - A list of all procedures.
* - A list of all types.
* - a flag indicating validity of the interprocedural representation.
* - the output file name
*/
-
-#ifndef _FIRM_IR_IRPROG_H_
-#define _FIRM_IR_IRPROG_H_
+#ifndef FIRM_IR_IRPROG_H
+#define FIRM_IR_IRPROG_H
#include "firm_types.h"
#include "irgraph.h"
irg_callee_info_state get_irp_callee_info_state(void);
void set_irp_callee_info_state(irg_callee_info_state s);
-#endif /* ifndef _FIRM_IR_IRPROG_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irprog_t.h
- * Purpose: Entry point to the representation of a whole program 0-- private header.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 2000
- * CVS-ID: $Id$
- * Copyright: (c) 2000-2007 Universität Karlsruhe
- */
-
/**
- * @file irprog_t.h
+ * @file
+ * @brief Entry point to the representation of a whole program 0-- private header.
+ * @author Goetz Lindenmaier
+ * @date 2000
+ * @version $Id$
*/
-
-#ifndef _FIRM_IR_IRPROG_T_H_
-#define _FIRM_IR_IRPROG_T_H_
+#ifndef FIRM_IR_IRPROG_T_H
+#define FIRM_IR_IRPROG_T_H
#ifdef HAVE_CONFIG_H
#include "firm_config.h"
#define get_glob_type() _get_glob_type()
#define get_tls_type() _get_tls_type()
-#endif /* ifndef _FIRM_IR_IRPROG_T_H_ */
+#endif
*/
/**
- * @file irreflect.c
- * @date 9.9.2004
- * @author Sebastian Hack
- * @brief Reflection for Firm operands.
- *
- * $Id$
+ * @file
+ * @brief Reflection for Firm operands.
+ * @author Sebastian Hack
+ * @date 9.9.2004
+ * @version $Id$
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
*/
/**
- * @file irreflect.h
- * @date 9.9.2004
- * @author Sebastian Hack
- * @brief Reflection for Firm operations.
- *
- * $Id$
+ * @file
+ * @brief Reflection for Firm operations.
+ * @author Sebastian Hack
+ * @date 9.9.2004
+ * @version $Id$
*/
-#ifndef _FIRM_IR_REFLECT_H_
-#define _FIRM_IR_REFLECT_H_
+#ifndef FIRM_IR_REFLECT_H
+#define FIRM_IR_REFLECT_H
#include <limits.h>
*/
int rflct_signature_get_index(const rflct_sig_t *sig, int is_use, int num);
-
-#endif /* _FIRM_IR_REFLECT_H_ */
+#endif
*/
/**
- * @file reflect_t.h
- * @date 10.9.2004
- * @author Sebastian Hack
- * @brief Basic (private) data structures for reflection.
- *
- * $Id$
+ * @file
+ * @brief Basic (private) data structures for reflection.
+ * @author Sebastian Hack
+ * @date 10.9.2004
+ * @version $Id$
*/
-
-#ifndef _FIRM_REFLECT_T_H
-#define _FIRM_REFLECT_T_H
+#ifndef FIRM_IR_REFLECT_T_H
+#define FIRM_IR_REFLECT_T_H
void firm_init_rflct(void);
-#endif /* _FIRM_REFLECT_T_H */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irvrfy.c
- * Purpose: Check irnodes for correctness.
- * Author: Christian Schaefer
- * Modified by: Goetz Lindenmaier. Till Riedel. Michael Beck.
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2003 Universität Karlsruhe
+/**
+ * @file
+ * @brief Check irnodes for correctness.
+ * @author Christian Schaefer, Goetz Lindenmaier, Till Riedel, Michael Beck
+ * @version $Id$
*/
-
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irvrfy.h
- * Purpose: Check irnodes for correctness.
- * Author: Christian Schaefer
- * Modified by: Goetz Lindenmaier. Till Riedel
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2003 Universität Karlsruhe
- */
-
/**
- * @file irvrfy.h
- *
- * ir graph verification.
- *
- * @author Christian Schaefer
+ * @file
+ * @brief Check irnodes for correctness.
+ * @author Christian Schaefer, Goetz Lindenmaier, Till Riedel
+ * @version $Id$
*/
-#ifndef _FIRM_IR_IRVRFY_H_
-#define _FIRM_IR_IRVRFY_H_
+#ifndef FIRM_IR_IRVRFY_H
+#define FIRM_IR_IRVRFY_H
#include "firm_types.h"
*/
void vrfy_enable_entity_tests(int enable);
-#endif /* _FIRM_IR_IRVRFY_H_ */
+#endif
* PURPOSE.
*/
-/*
- * Project: libFIRM
- * File name: ir/ir/irvrfy_t.h
- * Purpose: New checker of irnodes for correctness.
- * Author: Michael Beck
- * Modified by:
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2005 Universität Karlsruhe
+/**
+ * @file
+ * @brief New checker of irnodes for correctness.
+ * @author Michael Beck
+ * @version $Id$
*/
-#ifndef _IRVRFY_T_H_
-#define _IRVRFY_T_H_
+#ifndef FIRM_IR_IRVRFY_T_H
+#define FIRM_IR_IRVRFY_T_H
#include "irflag_t.h"
#include "irvrfy.h"
*/
void firm_set_default_verifyer(ir_opcode code, ir_op_ops *ops);
-#endif /* _IRVRFY_T_H_ */
+#endif
* PURPOSE.
*/
-/* -*- c -*- */
-
-/*
- * Project: libFIRM
- * File name: ir/external/pseudo_irg.c
- * Purpose: implementation
- * Author: G"otz Lindenmaier
- * Modified by: Boris Boesler
- * Created: xx.10.2004
- * CVS-ID: $Id$
- * Copyright: (c) 1999-2004 Universität Karlsruhe
+/**
+ * @file
+ * @brief pseudo irg implementation
+ * @author Goetz Lindenmaier, Boris Boesler
+ * @date Oktober 2004
+ * @version $Id$
*/
-
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
* PURPOSE.
*/
-/* -*- c -*- */
-
-/*
- * Project: libFIRM
- * File name: ir/external/pseudo_irg.h
- * Purpose: interface to pseudo irgs
- * Author: G"otz Lindenmaier
- * Modified by: Boris Boesler
- * Created: xx.10.2004
- * CVS-ID: $Id$
- * Copyright: (c) 1999-2004 Universität Karlsruhe
+/**
+ * @file
+ * @brief interface to pseudo irgs
+ * @author Goetz Lindenmaier, Boris Boesler
+ * @date Oktober 2004
+ * @version $Id$
*/
-
-#ifndef _FIRM_IR_PSEUDO_IRG_H_
-#define _FIRM_IR_PSEUDO_IRG_H_
+#ifndef FIRM_IR_PSEUDO_IRG_H
+#define FIRM_IR_PSEUDO_IRG_H
#include "firm_types.h"
void set_visit_pseudo_irgs(int x);
int get_visit_pseudo_irgs(void);
-#endif /* _FIRM_IR_PSEUDO_IRG_H_ */
+#endif