/* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Martin Trapp, Christian Schaefer
-**
+* All rights reserved.
+*
+* Authors: Martin Trapp, Christian Schaefer
+*
*/
/* $Id$ */
Submitted-By: Esmond Pitt <ejp@ausmelb.oz.AU>
Archive-name: dynamic-hash
- ** Dynamic hashing, after CACM April 1988 pp 446-457, by Per-Ake Larson.
- ** Coded into C, with minor code improvements, and with hsearch(3) interface,
- ** by ejp@ausmelb.oz, Jul 26, 1988: 13:16;
+ * Dynamic hashing, after CACM April 1988 pp 446-457, by Per-Ake Larson.
+ * Coded into C, with minor code improvements, and with hsearch(3) interface,
+ * by ejp@ausmelb.oz, Jul 26, 1988: 13:16;
TODO: Fix Esmond's ugly MixedCapsIdentifiers ;->
*/
/** Collect all method entities that can be called here **/
collect_impls(method, set, &size, &open);
- /** Gefunden Entitaeten in ein Feld kopieren, ev. Unbekannten
+/**
Vorgaenger einfuegen. **/
if (size == 0 && !open) {
/* keine implementierte überschriebene Methode */
/* Copyright (C) 2002 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Goetz Lindenmaier
-**
-** irbackedges.c Access function for backedges.
-**
+* All rights reserved.
+*
+* Authors: Goetz Lindenmaier
+*
+* irbackedges.c Access function for backedges.
+*
*/
/* $Id$ */
/* Copyright (C) 2002 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Goetz Lindenmaier
-**
-** irdom.c --- Dominator tree.
-**
+* All rights reserved.
+*
+* Authors: Goetz Lindenmaier
+*
+* irdom.c --- Dominator tree.
+*
*/
/* $Id$ */
if (current_ir_graph->outs_state != outs_consistent)
compute_outs(current_ir_graph);
- /** Initialize the temporary information, add link to parent. We don't do
+/**
this with a standard walker as passing the parent to the sons isn't
simple. **/
used = 0;
/* Copyright (C) 2002 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Goetz Lindenmaier
-**
-** irdom.h: This file contains routines to construct and access dominator
-** information.
-** The dominator information is stored in three fields of block nodes:
-** idom: a reference to the block that is the immediate dominator of
-** this block.
-** dom_depth: a number giving the depth of the block in the dominator
-** tree.
-** pre_num: Number in preorder traversal.
+* All rights reserved.
+*
+* Authors: Goetz Lindenmaier
+*
+* irdom.h: This file contains routines to construct and access dominator
+* information.
+* The dominator information is stored in three fields of block nodes:
+* idom: a reference to the block that is the immediate dominator of
+* this block.
+* dom_depth: a number giving the depth of the block in the dominator
+* tree.
+* pre_num: Number in preorder traversal.
*/
/* $Id$ */
/* Copyright (C) 2002 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Goetz Lindenmaier
-**
-** irdom_t.h: private datastructures
+* All rights reserved.
+*
+* Authors: Goetz Lindenmaier
+*
+* irdom_t.h: private datastructures
*/
/* $Id$ */
/* Copyright (C) 2002 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Goetz Lindenmaier
-**
-** irloops.h: Computes backedges in the control and data flow.
-** Only Block and Phi/Filter nodes can have incoming backedges.
-** Constructs loops data structure: indicates loop nesting.
+* All rights reserved.
+*
+* Authors: Goetz Lindenmaier
+*
+* irloops.h: Computes backedges in the control and data flow.
+* Only Block and Phi/Filter nodes can have incoming backedges.
+* Constructs loops data structure: indicates loop nesting.
*/
/* $Id$ */
/* Copyright (C) 2002 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Goetz Lindenmaier
-**
-** irloops_t.h:
+* All rights reserved.
+*
+* Authors: Goetz Lindenmaier
+*
+* irloops_t.h:
*/
/* $Id$ */
/* Copyright (C) 2002 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Goetz Lindenmaier
-**
-** irouts.c --- Compute out edges for ir nodes (also called def-use
-** edges).
-**
+* All rights reserved.
+*
+* Authors: Goetz Lindenmaier
+*
+* irouts.c --- Compute out edges for ir nodes (also called def-use
+* edges).
+*
*/
/* $Id$ */
/* Copyright (C) 2002 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Goetz Lindenmaier
-**
-** irouts.h: Implements Def-Use edges, also called outedges.
-** @@@ eventually add reverse conrtol flow graph. (If needed.)
+* All rights reserved.
+*
+* Authors: Goetz Lindenmaier
+*
+* irouts.h: Implements Def-Use edges, also called outedges.
+* @@@ eventually add reverse conrtol flow graph. (If needed.)
*/
/* $Id$ */
/* Copyright (C) 2002 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Goetz Lindenmaier
-**
-** irscc.c Computing the strongly connected regions and building
-** backedge/loop datastructures.
-**
+* All rights reserved.
+*
+* Authors: Goetz Lindenmaier
+*
+* irscc.c Computing the strongly connected regions and building
+* backedge/loop datastructures.
+*
*/
/* $Id$ */
/* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Martin Trapp, Christian Schaefer
-**
+* All rights reserved.
+*
+* Authors: Martin Trapp, Christian Schaefer
+*
*/
/* $Id$ */
/* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Martin Trapp, Christian Schaefer, Goetz Lindenmaier.
-**
-** firm.h: Central FIRM header.
-**
-**
-**
-**
+* All rights reserved.
+*
+* Authors: Martin Trapp, Christian Schaefer, Goetz Lindenmaier.
+*
+* firm.h: Central FIRM header.
+*
+*
+*
+*
FIRM is a full graph based intermediate representation in SSA Form
with a novel concept to model side effects. It allows fast, aggressive
optimizations.
irgwalk: walker for ir graphs.
irvrfy: verify the correctness of a firm node.
-**
+*
*/
/* $Id$ */
/* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Martin Trapp, Christian Schaefer &
-** Goetz Lindenmaier
-**
-** firm_common.c:
+* All rights reserved.
+*
+* Authors: Martin Trapp, Christian Schaefer &
+* Goetz Lindenmaier
+*
+* firm_common.c:
*/
/* $Id$ */
/* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Martin Trapp, Christian Schaefer &
-** Goetz Lindenmaier
-**
-** firm_common.h: common firm declarations
+* All rights reserved.
+*
+* Authors: Martin Trapp, Christian Schaefer &
+* Goetz Lindenmaier
+*
+* firm_common.h: common firm declarations
*/
/* $Id$ */
/* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Martin Trapp, Christian Schaefer &
-** Goetz Lindenmaier
-**
-** firm_common_t.h: preprocessor flags
+* All rights reserved.
+*
+* Authors: Martin Trapp, Christian Schaefer &
+* Goetz Lindenmaier
+*
+* firm_common_t.h: preprocessor flags
*/
/* $Id$ */
/* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Martin Trapp, Christian Schaefer
-**
+* All rights reserved.
+*
+* Authors: Martin Trapp, Christian Schaefer
+*
*/
/* $Id$ */
/* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Martin Trapp, Christian Schaefer
-**
+* All rights reserved.
+*
+* Authors: Martin Trapp, Christian Schaefer
+*
*/
/* $Id$ */
/*
-** Copyright (C) 2001 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Goetz Lindenmaier
-**
-** dbginfo: This is a empty implementation of the Firm interface to
-** debugging support. It only guarantees that the Firm library compiles
-** and runs without any real debugging support.
-** The functions herein are declared weak so that they can be overriden
-** by a real implementation.
+* Copyright (C) 2001 by Universitaet Karlsruhe
+* All rights reserved.
+*
+* Authors: Goetz Lindenmaier
+*
+* dbginfo: This is a empty implementation of the Firm interface to
+* debugging support. It only guarantees that the Firm library compiles
+* and runs without any real debugging support.
+* The functions herein are declared weak so that they can be overriden
+* by a real implementation.
*/
/* $Id$ */
/*
-** Copyright (C) 2001 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Goetz Lindenmaier
-**
-** dbginfo: This is the Firm interface to debugging support. Firm requires
-** a debugging module fulfilling this interface, else no debugging information
-** is passed to the backend.
-** The interface requires a datatype representing the debugging information.
-** Firm supports administrating a reference to the debug information
-** in every firm node. Further Firm optimizations call routines to
-** propagate debug information from old nodes to new nodes if the optimization
-** replaces the old ones by the new ones.
-**
+* Copyright (C) 2001 by Universitaet Karlsruhe
+* All rights reserved.
+*
+* Authors: Goetz Lindenmaier
+*
+* dbginfo: This is the Firm interface to debugging support. Firm requires
+* a debugging module fulfilling this interface, else no debugging information
+* is passed to the backend.
+* The interface requires a datatype representing the debugging information.
+* Firm supports administrating a reference to the debug information
+* in every firm node. Further Firm optimizations call routines to
+* propagate debug information from old nodes to new nodes if the optimization
+* replaces the old ones by the new ones.
+*
*/
/* $Id$ */
typedef struct type type;
#endif
-/****s* dbginfo/dbg_info
+/**
*
- * NAME
- * dbg_info - An abstract data type containing information for
+ * An abstract data type containing information for
* debugging support.
- * NOTE
* This datatype is not defined in the firm library, but pointers
* to this type can be stored in firm nodes.
- * SEE ALSO
- * SOURCE
*/
typedef struct dbg_info dbg_info;
/* Routines to access the field of an ir node containing the
debugging information. */
INLINE void set_type_dbg_info(type *tp, dbg_info* db);
INLINE dbg_info *get_type_dbg_info(type *tp);
-/*****/
-/****s* dbginfo/dbg_action
+/**
*
- * NAME
- * dbg_action - An enumeration indicating the action performed by a
+ * An enumeration indicating the action performed by a
* transformation.
- * NOTE
- * SOURCE
*/
typedef enum {
dbg_error = 0,
dbg_write_after_read,
dbg_max
} dbg_action;
-/*****/
-/****f* dbginfo/dbg_action_2_str
+/**
+ *
+ * converts enum to string
*
- * NAME
- * dbg_action_2_str - converts enum to string
- * SYNOPSIS
- * INPUTS
- * RESULT
- ***
*/
static const char* dbg_action_2_str(dbg_action a) {
switch(a) {
}
-/****f* dbginfo/dbg_init
+/**
*
- * NAME
- * dbg_init - initializes the debug support.
- * SYNOPSIS
- * void dbg_init( void (merge_pair)(ir_node *nw, ir_node *old, dbg_action info),
- * void (merge_sets)(ir_node **new_nodes, int n_new_nodes,
- * ir_node **old_nodes, int n_old_nodes,
- * dbg_action info));
- * INPUTS
- * Pointers to two functions that merge the debug information when a
- * transformation of a firm graph is performed.
- * Firm transformations call one of these functions.
+ * initializes the debug support.
+ * @param Pointers to two functions that merge the debug information when a
+ * @param transformation of a firm graph is performed.
+ * @param Firm transformations call one of these functions.
* - dbg_info_merge_pair() is called in the following situation:
- * The optimization replaced the old node by the new one. The new node
- * might be a recent allocated node not containing any debug information,
- * or just another node from somewhere in the graph with the same
- * semantics.
+ * @param The optimization replaced the old node by the new one. The new node
+ * @param might be a recent allocated node not containing any debug information,
+ * @param or just another node from somewhere in the graph with the same
+ * @param semantics.
* - dbg_info_merge_sets() is called in the following situation:
- * The optimization replaced a subgraph by another subgraph. There is no
- * obviouse mapping between single nodes in both subgraphs. The optimization
- * simply passes two lists to the debug module, one containing the nodes in
- * the old subgraph, the other containing the nodes in the new subgraph.
- * The same node can be in both lists.
- * Further both functions pass an enumeration indicating the action
- * performed by the transformation, e.g. the kind of optimization performed.
- * RESULT
- * No result.
- ***
+ * @param The optimization replaced a subgraph by another subgraph. There is no
+ * @param obviouse mapping between single nodes in both subgraphs. The optimization
+ * @param simply passes two lists to the debug module, one containing the nodes in
+ * @param the old subgraph, the other containing the nodes in the new subgraph.
+ * @param The same node can be in both lists.
+ * @param Further both functions pass an enumeration indicating the action
+ * @param performed by the transformation, e.g. the kind of optimization performed.
+ * @return No result.
+ *
*/
/*
-** Copyright (C) 2001 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Authors: Goetz Lindenmaier
-**
-** dbginfo: This is a empty implementation of the Firm interface to
-** debugging support. It only guarantees that the Firm library compiles
-** and runs without any real debugging support.
-** The functions herein are declared weak so that they can be overriden
-** by a real implementation.
+* Copyright (C) 2001 by Universitaet Karlsruhe
+* All rights reserved.
+*
+* Authors: Goetz Lindenmaier
+*
+* dbginfo: This is a empty implementation of the Firm interface to
+* debugging support. It only guarantees that the Firm library compiles
+* and runs without any real debugging support.
+* The functions herein are declared weak so that they can be overriden
+* by a real implementation.
*/
/* $Id$ */