/*
- * Project: libFIRM
- * File name: ir/ana/analyze_irg_agrs.c
- * Purpose: read/write analyze of graph argument, which have mode reference.
- * Author: Beyhan Veliev
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2005 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 analyze_irg_agrs.c
- *
+ * @file
+ * @brief read/write analyze of graph argument, which have mode reference.
+ * @author Beyhan Veliev
+ * @version $Id$
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
/*
- * Project: libFIRM
- * File name: ir/ana/analyze_irg_args.h
- * Purpose: rea/write analyze of graph argument, which have mode reference.
- * Author: Beyhan Veliev
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2005 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 read/write analyze of graph argument, which have mode reference
+ * @author Beyhan Veliev
+ * @version $Id$
*/
-#ifndef _ANALYZE_IRG_ARGS_H_
-#define _ANALYZE_IRG_ARGS_H_
+#ifndef FIRM_ANA_ANALYZE_IRG_ARGS_H
+#define FIRM_ANA_ANALYZE_IRG_ARGS_H
#include "irgraph.h"
#include "entity.h"
*/
void analyze_irg_args_weight(ir_graph *irg);
-#endif /*_ANALYZE_IRG_ARGS_H_ */
+#endif
/*
- * Project: libFIRM
- * File name: ir/ana/callgraph.c
- * Purpose: Representation and computation of the callgraph.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 21.7.2004
- * CVS-ID: $Id$
- * Copyright: (c) 2004-2007 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 Representation and computation of the callgraph.
+ * @author Goetz Lindenmaier
+ * @date 21.7.2004
+ * @version $Id$
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
/*
- * Project: libFIRM
- * File name: ir/ana/callgraph.h
- * Purpose: Representation and computation of the callgraph.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 21.7.2004
- * CVS-ID: $Id$
- * Copyright: (c) 2004-2007 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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.
*/
-#ifndef _CALLGRAPH_H_
-#define _CALLGRAPH_H_
/**
- * @file callgraph.h
- *
- * This file contains the representation of the callgraph.
- * The nodes of the call graph are ir_graphs. The edges between
- * the nodes are calling relations. I.e., if method a calls method
- * b at some point, there is an edge between a and b.
+ * @file
+ * @brief Representation and computation of the callgraph.
+ * @author Goetz Lindenmaier
+ * @date 21.7.2004
+ * @version $Id$
+ * @summary
+ * This file contains the representation of the callgraph.
+ * The nodes of the call graph are ir_graphs. The edges between
+ * the nodes are calling relations. I.e., if method a calls method
+ * b at some point, there is an edge between a and b.
*
- * Further this file contains an algorithm to construct the call
- * graph. The construction of the callgraph uses the callee
- * information in Call nodes to determine which methods are called.
+ * Further this file contains an algorithm to construct the call
+ * graph. The construction of the callgraph uses the callee
+ * information in Call nodes to determine which methods are called.
*
- * Finally this file contains an algorithm that computes backedges
- * in the callgraph, i.e., the algorithm finds possibly recursive calls.
- * The algorithm computes an upper bound of all recursive calls.
+ * Finally this file contains an algorithm that computes backedges
+ * in the callgraph, i.e., the algorithm finds possibly recursive calls.
+ * The algorithm computes an upper bound of all recursive calls.
*/
+#ifndef FIRM_ANA_CALLGRAPH_H
+#define FIRM_ANA_CALLGRAPH_H
+
#include "firm_types.h"
/** Flag to indicate state of callgraph. */
+/*
+ * Copyrigth (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 Implementation of cdep
+ * @version $Id$
+ */
#include <assert.h>
#include <stdlib.h>
#include "irdom.h"
-#ifndef CDEP_H
-#define CDEP_H
+/*
+ * Copyrigth (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 control dependence analysis
+ * @author Chrsitoph Mallon
+ * @version $Id$
+ */
+#ifndef FIRM_ANA_CDEP_H
+#define FIRM_ANA_CDEP_H
#include "firm_types.h"
ir_node *get_unique_cdep(const ir_node *block);
int has_multiple_cdep(const ir_node *block);
-#endif /* CDEP_H */
+#endif
/*
- * Project: libFIRM
- * File name: ir/ana/cgana.c
- * Purpose: Intraprozedural analyses to estimate the call graph.
- * Author: Hubert Schmid
- * Modified by:
- * Created: 09.06.2002
- * CVS-ID: $Id$
- * Copyright: (c) 1999-2003 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
- */
-
-/** @file cgana.c
+ * Copyrigth (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.
*
- * Interprocedural analysis to estimate the calling relation.
+ * Licensees holding valid libFirm Professional Edition licenses may use
+ * this file in accordance with the libFirm Commercial License.
+ * Agreement provided with the Software.
*
- * This analysis computes all entities representing methods that
- * can be called at a Call node. Further it computes a set of
- * methods that are 'free', i.e., their adress is handled by
- * the program directly, or they are visible external.
+ * 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 Intraprozedural analyses to estimate the call graph.
+ * @author Hubert Schmid
+ * @date 09.06.2002
+ * @version $Id$
+ * @summary
+ * Interprocedural analysis to estimate the calling relation.
+ *
+ * This analysis computes all entities representing methods that
+ * can be called at a Call node. Further it computes a set of
+ * methods that are 'free', i.e., their adress is handled by
+ * the program directly, or they are visible external.
+ */
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
/*
- * Project: libFIRM
- * File name: ir/ana/cgana.h
- * Purpose: Intraprozedural analyses to estimate the call graph.
- * Author: Hubert Schmid
- * Modified by:
- * Created: 09.06.2002
- * CVS-ID: $Id$
- * Copyright: (c) 1999-2003 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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.
*/
/**
- * Intraprozedurale Analyse zur Abschätzung der Aufrulrelation. Es
- * wird eine Menge von freien Methoden und anschließend die an den
- * Call-Operationen aufrufbaren Methoden bestimmt.
+ * @file
+ * @brief Intraprozedural analyses to estimate the call graph.
+ * @author Hubert Schmid
+ * @date 09.06.2002
+ * @version $Id$
+ * @summary
+ * @summary
+ * Interprocedural analysis to estimate the calling relation.
*
+ * This analysis computes all entities representing methods that
+ * can be called at a Call node. Further it computes a set of
+ * methods that are 'free', i.e., their adress is handled by
+ * the program directly, or they are visible external.
*/
-
-#ifndef _CGANA_H_
-#define _CGANA_H_
+#ifndef FIRM_ANA_CGANA_H
+#define FIRM_ANA_CGANA_H
#include "entity.h"
void opt_call_addrs(void);
-#endif /* _CGANA_H_ */
+#endif
/*
- * Project: libFIRM
- * File name: ir/opt/construct_loop.c
- * Purpose: Construct some loop infromation.
- * Author: Beyhan Veliev
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2005 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 Construct some loop infromation.
+ * @author Beyhan Veliev
+ * @version $Id$
+ */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
/*
- * Project: libFIRM
- * File name: ir/ana/compute_loop_info.h
- * Purpose: Construct some loop infromation.
- * Author: Beyhan Veliev
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2005 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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.
*/
-#ifndef _COMPUTE_LOOP_INFO_
-#define _COMPUTE_LOOP_INFO_
+
+/**
+ * @file
+ * @brief Construct some loop infromation.
+ * @author Beyhan Veliev
+ * @version $Id$
+ */
+#ifndef FIRM_ANA_COMPUTE_LOOP_INFO_H
+#define FIRM_ANA_COMPUTE_LOOP_INFO_H
#include "irgraph.h"
void compute_loop_info(ir_graph *irg);
-#endif /* _COMPUTE_LOOP_INFO_ */
+#endif
/*
- * Project: libFIRM
- * File name: ir/ana/execfreq.c
- * Purpose: Compute an estimate of basic block executions.
- * Author: Adam M. Szalkowski
- * Modified by:
- * Created: 28.05.2006
- * CVS-ID: $Id$
- * Copyright: (c) 2006 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 Compute an estimate of basic block executions.
+ * @author Adam M. Szalkowski
+ * @date 28.05.2006
+ * @version $Id$
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
unregister_hook(hook_node_info, &ef->hook);
free(ef);
}
-
-#undef ELEM
-#ifndef EXECFREQ_H_
-#define EXECFREQ_H_
/*
- * Project: libFIRM
- * File name: ir/ana/execfreq.h
- * Purpose: Compute an estimate of basic block executions.
- * Author: Adam M. Szalkowski
- * Modified by:
- * Created: 28.05.2006
- * CVS-ID: $Id$
- * Copyright: (c) 2006 Universitaet Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 Compute an estimate of basic block executions.
+ * @author Adam M. Szalkowski
+ * @date 28.05.2006
+ * @version $Id$
+ */
+#ifndef FIRM_ANA_EXECFREQ_H
+#define FIRM_ANA_EXECFREQ_H
+
#include "firm_types.h"
struct ir_exec_freq;
double get_block_execfreq(const ir_exec_freq *ef, const ir_node *block);
unsigned long get_block_execfreq_ulong(const ir_exec_freq *ef, const ir_node *block);
-#endif /* EXECFREQ_H_ */
+#endif
/*
- * Project: libFIRM
- * File name: ir/ana/execution_frequency.c
- * Purpose: Compute an estimate of basic block executions.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 5.11.2004
- * CVS-ID: $Id$
- * Copyright: (c) 2004 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 Compute an estimate of basic block executions.
+ * @author Goetz Lindenmaier
+ * @date 5.11.2004
+ * @version $Id$
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
/*
- * Project: libFIRM
- * File name: ir/ana/execution_frequency.h
- * Purpose: Compute an estimate of basic block executions.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 5.11.2004
- * CVS-ID: $Id$
- * Copyright: (c) 2004 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
- */
-
-#ifndef _EXECUTION_FREQUENCY_H_
-#define _EXECUTION_FREQUENCY_H_
-
-/** @file execution_frequency.h
+ * Copyrigth (C) 1995-2007 University of Karlsruhe. All right reserved.
+ *
+ * This file is part of libFirm.
*
- * Estimate exectution frequencies of blocks.
+ * 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.
*
- * @author Goetz Lindenmaier
+ * 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 Compute an estimate of basic block executions.
+ * @author Goetz Lindenmaier
+ * @date 5.11.2004
+ * @version $Id$
+ * @summary
* We assume the start block of a procedure is executed once. Based on this we
* compute the execution freqency of all blocks.
*
* The computation of the frequencies depends on the count of exception control
- * flow computed during the interval analysis. The interval analysis again
+ * flow computed during the interval analysis. The interval analysis again
* depends on stuff computed here.
*/
+#ifndef FIRM_ANA_EXECUTION_FREQUENCY_H
+#define FIRM_ANA_EXECUTION_FREQUENCY_H
#include "firm_types.h"
void set_irp_exec_freq_state_inconsistent(void);
-
-
-#endif /* _EXECUTION_FREQUENCY_H_ */
+#endif
/*
- * Project: libFIRM
- * File name: ir/ana/field_temperature.c
- * Purpose: Compute an estimate of field temperature, i.e., field access heuristic.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 21.7.2004
- * CVS-ID: $Id$
- * Copyright: (c) 2004 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 Compute an estimate of field temperature, i.e., field access heuristic.
+ * @author Goetz Lindenmaier
+ * @date 21.7.2004
+ * @version $Id$
+ */
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
/*
- * Project: libFIRM
- * File name: ir/ana/field_temperature.h
- * Purpose: Compute an estimate of field temperature, i.e., field access heuristic.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 21.7.2004
- * CVS-ID: $Id$
- * Copyright: (c) 2004-2007 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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.
*/
-#ifndef _FIELD_TEMPERATURE_H_
-#define _FIELD_TEMPERATURE_H_
-
/**
- * @file field_temperature.h
- *
- * @author Goetz Lindenmaier
- *
+ * @file
+ * @brief Compute an estimate of field temperature, i.e., field access heuristic.
+ * @author Goetz Lindenmaier
+ * @date 21.7.2004
+ * @version $Id$
+ * @note
* Watch it! This is highly java dependent.
*
* - All Sel nodes get an array with possibly accessed entities.
*
* - We compute a value for the entity based on the Sel nodes.
*/
+#ifndef FIRM_ANA_FIELD_TEMPERATURE_H
+#define FIRM_ANA_FIELD_TEMPERATURE_H
#include "firm_types.h"
/* The number of array elements we assume if not both bounds are given. */
#define DEFAULT_N_ARRAY_ELEMENTS 1
-
/** The entities that can be accessed by this Sel node. *
int get_Sel_n_accessed_entities(ir_node *sel);
ir_entity *get_Sel_accessed_entity (ir_node *sel, int pos);
int is_jack_rts_class(ir_type *t);
int is_jack_rts_entity(ir_entity *e);
-#endif /* _FIELD_TEMPERATURE_H_ */
+#endif
/*
- * Project: libFIRM
- * File name: ir/ana/height.c
- * Purpose: Compute heights of nodes inside basic blocks
- * Author: Sebastian Hack
- * Modified by:
- * Created: 19.04.2006
- * CVS-ID: $Id$
- * Copyright: (c) 2006 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 Compute heights of nodes inside basic blocks
+ * @author Sebastian Hack
+ * @date 19.04.2006
+ * @version $Id$
+ */
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
/*
- * Project: libFIRM
- * File name: ir/ana/height.h
- * Purpose: Compute heights of nodes inside basic blocks
- * Author: Sebastian Hack
- * Modified by:
- * Created: 19.04.2006
- * CVS-ID: $Id$
- * Copyright: (c) 2006 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 Compute heights of nodes inside basic blocks
+ * @author Sebastian Hack
+ * @date 19.04.2006
+ * @version $Id$
+ */
#ifndef _FIRM_HEIGHTS_H
#define _FIRM_HEIGHTS_H
+/*
+ * Copyrigth (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 Implementation of interval analysis
+ * @version $Id$
+ */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
/*
- * Project: libFIRM
- * File name: ir/ana/interval_analysis.h
- * Purpose: Decompost control flow graph into acylic, hierarchic intervals.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 5.11.2004
- * CVS-ID: $Id$
- * Copyright: (c) 2004-2007 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 interval_analysis.h
- *
+ * @file
+ * @brief Decompost control flow graph into acylic, hierarchic intervals.
+ * @author Goetz Lindenmaier
+ * @date 5.11.2004
+ * @version $Id$
+ * @summary
* Decompost control flow graph into acylic, hierarchic intervals.
*
- * @author Goetz Lindenmaier
- *
* The analysis is based on the control flow looptree. An intervall
* are basically all nodes in a single ir_loop entry, i.e., basic
* blocks and inner loop nodes. The analysis computes a new set of
* operations leaving a block. This depends on stuff computed in
* execution_freqencies.
*/
-
-#ifndef _INTERVAL_ANALYSIS_H_
-#define _INTERVAL_ANALYSIS_H_
-
+#ifndef FIRM_ANA_INTERVAL_ANALYSIS_H
+#define FIRM_ANA_INTERVAL_ANALYSIS_H
#include "firm_types.h"
#define DDMR(X) if(is_ir_node(X)) DDMN(X); else DDML(X)
-
-#endif /* _INTERVAL_ANALYSIS_H_ */
+#endif
/*
- * Project: libFIRM
- * File name: ir/ana/irbackedge.c
- * Purpose: Access function for backedges.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 7.2002
- * CVS-ID: $Id$
- * Copyright: (c) 2002-2003 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 Access function for backedges.
+ * @author Goetz Lindenmaier
+ * @date 7.2002
+ * @version $Id$
+ */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
/*
- * Project: libFIRM
- * File name: ir/ana/irbackedge_t.h
- * Purpose: Access function for backedges -- private header.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 7.2002
- * CVS-ID: $Id$
- * Copyright: (c) 2002-2003 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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.
*/
-#ifndef _IRBACKEDGE_T_H_
-#define _IRBACKEDGE_T_H_
+/**
+ * @file
+ * @brief Access function for backedges -- private header.
+ * @author Goetz Lindenmaier
+ * @date 7.2002
+ * @version $Id$
+ */
+#ifndef FIRM_ANA_IRBACKEDGE_T_H
+#define FIRM_ANA_IRBACKEDGE_T_H
/**
* Allocate a new backedge array on the obstack for given size.
*/
void fix_backedges(struct obstack *obst, ir_node *n);
-#endif /* _IRBACKEDGE_T_H_ */
+#endif
/*
- * Project: libFIRM
- * File name: ir/ana/irscc.c
- * Purpose: Compute the strongly connected regions and build
- * backedge/cfloop datastructures.
- * A variation on the Tarjan algorithm. See also [Trapp:99],
- * Chapter 5.2.1.2.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 7.2002
- * CVS-ID: $Id$
- * Copyright: (c) 2002-2003 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 Compute the strongly connected regions and build backedge/cfloop
+ * datastructures. A variation on the Tarjan algorithm. See also
+ * [Trapp:99], Chapter 5.2.1.2.
+ * @author Goetz Lindenmaier
+ * @date 7.2002
+ * @version $Id$
+ */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
/*
- * Project: libFIRM
- * File name: ir/ana/irconsconfirm.c
- * Purpose: Construction of Confirm nodes
- * Author: Michael Beck
- * Modified by:
- * Created: 6.2005
- * CVS-ID: $Id$
- * Copyright: (C) 2002-2005 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
- */
-
-/**
- * @file irconsconfirm.c
+ * Copyrigth (C) 1995-2007 University of Karlsruhe. All right reserved.
+ *
+ * This file is part of libFirm.
*
- * Construction of Confirm nodes
+ * 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.
*
- * @author Michael Beck
+ * 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 Construction of Confirm nodes
+ * @author Michael Beck
+ * @date 6.2005
+ * @version $Id$
+ */
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
/*
- * Project: libFIRM
- * File name: ir/ana/irconsconfirm.h
- * Purpose: Construction of Confirm nodes
- * Author: Michael Beck
- * Modified by:
- * Created: 6.2005
- * CVS-ID: $Id$
- * Copyright: (C) 2002-2005 University of Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 irconsconfirm.h
- *
- * Construction of Confirm nodes
- *
- * @author Michael Beck
+ * @file
+ * @brief Construction of Confirm nodes
+ * @author Michael Beck
+ * @date 6.2005
+ * @version $Id$
*/
-#ifndef _FIRM_ANA_IRCONSCONFIRM_H_
-#define _FIRM_ANA_IRCONSCONFIRM_H_
+#ifndef FIRM_ANA_IRCONSCONFIRM_H
+#define FIRM_ANA_IRCONSCONFIRM_H
#include "firm_types.h"
-/*
+/**
* Inject Confirm nodes into a graph.
*
* @param irg the graph
*/
void remove_confirms(ir_graph *irg);
-#endif /* _FIRM_ANA_IRCONSCONFIRM_H_ */
+#endif
/*
- * Project: libFIRM
- * File name: ir/ana/irdom.c
- * Purpose: Construct and access dominator / post dominator tree.
- * Author: Goetz Lindenmaier
- * Modified by: Michael Beck, Rubino Geiss
- * Created: 2.2002
- * CVS-ID: $Id$
- * Copyright: (c) 2002-2007 Universitaet Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 Construct and access dominator / post dominator tree.
+ * @author Goetz Lindenmaier, Michael Beck, Rubino Geiss
+ * @date 2.2002
+ * @version $Id$
+ */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
/*
- * Project: libFIRM
- * File name: ir/ana/irdom.h
- * Purpose: Construct and access dominator tree.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 2.2002
- * CVS-ID: $Id$
- * Copyright: (c) 2002-2003 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 irdom.h
- *
+ * @file
+ * @brief Construct and access dominator tree.
+ * @author Goetz Lindenmaier
+ * @date 2.2002
+ * @version $Id$
+ * @summary
* This file contains routines to construct and access dominator information.
*
* The dominator information is stored in three fields of block nodes:
* - dom_depth: a number giving the depth of the block in the dominator
* tree.
* - pre_num: Number in preorder traversal.
- *
- * @author Goetz Lindenmaier
*/
-#ifndef _IRDOM_H_
-#define _IRDOM_H_
+#ifndef FIRM_ANA_IRDOM_H
+#define FIRM_ANA_IRDOM_H
#include "firm_types.h"
/** Frees the post dominator data structures. Sets the flag in irg to "dom_none". */
void free_postdom(ir_graph *irg);
-#endif /* _IRDOM_H_ */
+#endif
/*
- * Project: libFIRM
- * File name: ir/ana/irdom_t.h
- * Purpose: Construct and access dominator tree -- private datastructures.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 2.2002
- * CVS-ID: $Id$
- * Copyright: (c) 2002-2007 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
- */
-
-
-/**
- * @file irdom_t.h
+ * Copyrigth (C) 1995-2007 University of Karlsruhe. All right reserved.
*
- * Dominator information private datastructures.
+ * This file is part of libFirm.
*
- * @author Goetz Lindenmaier
+ * 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 Construct and access dominator tree -- private datastructures.
+ * @author Goetz Lindenmaier
+ * @date 2.2002
+ * @version $Id$
*/
-#ifndef _FIRM_IRDOM_T_H_
-#define _FIRM_IRDOM_T_H_
+#ifndef FIRM_ANA_IRDOM_T_H
+#define FIRM_ANA_IRDOM_T_H
#include "irdom.h"
int dom_depth; /**< depth in dominator-tree */
} ir_dom_info;
-#endif /* _FIRM_IRDOM_T_H_ */
+#endif
/*
- * Project: libFIRM
- * File name: ir/ana/irextbb.c
- * Purpose: Extended basis block support.
- * Author: Michael Beck
- * Modified by:
- * Created: 5.2005
- * CVS-ID: $Id$
- * Copyright: (c) 2002-2005 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
- */
-
-/**
- * @file irextbb.c
+ * Copyrigth (C) 1995-2007 University of Karlsruhe. All right reserved.
+ *
+ * This file is part of libFirm.
*
- * Computes extended basic blocks.
+ * 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.
*
- * @author Michael Beck
+ * 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 Extended basis block support.
+ * @author Michael Beck
+ * @date 5.2005
+ * @version $Id$
+ */
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
/*
- * Project: libFIRM
- * File name: ir/ana/irextbb.h
- * Purpose: Extended basis block support.
- * Author: Michael Beck
- * Modified by:
- * Created: 5.2005
- * CVS-ID: $Id$
- * Copyright: (c) 2002-2005 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 irextbb.h
- *
- * Computes extended basic blocks.
- *
- * @author Michael Beck
+ * @file
+ * @brief Extended basis block support.
+ * @author Michael Beck
+ * @date 5.2005
+ * @version $Id$
*/
-#ifndef _IREXTBB_H_
-#define _IREXTBB_H_
+#ifndef FIRM_ANA_IREXTBB_H
+#define FIRM_ANA_IREXTBB_H
#include "firm_types.h"
#include "execfreq.h"
*/
void irg_extblock_walk_graph(ir_graph *irg, extbb_walk_func *pre, extbb_walk_func *post, void *env);
-#endif /* _IREXTBB_H_ */
+#endif
/*
- * Project: libFIRM
- * File name: ir/ana/irextbb2.c
- * Purpose: Alternate extended basic block computation
- * Author: Matthias Braun
- * Created: 5.2005
- * CVS-ID: $Id$
- * Copyright: (c) 2002-2005 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 irextbb2.c
- *
+ * @file
+ * @brief Alternative extended basic block computation
+ * @author Matthias Braun
+ * @date 5.2005
+ * @version $Id$
+ * @summary
* Alternative algorithm for computing extended basic blocks (using out edges
* and execution frequencies)
- *
- * @author Matthias Braun
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
/*
- * Project: libFIRM
- * File name: ir/ana/irextbb_t.h
- * Purpose: Extended basis block support.
- * Author: Michael Beck
- * Modified by:
- * Created: 5.2005
- * CVS-ID: $Id$
- * Copyright: (c) 2002-2005 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 irextbb_t.h
- *
- * Computes extended basic blocks.
- *
- * @author Michael Beck
+ * @file
+ * @brief Extended basis block support -- private header
+ * @author Michael Beck
+ * @date 5.2005
+ * @version $Id$
*/
-#ifndef _IREXTBB_T_H_
-#define _IREXTBB_T_H_
+#ifndef FIRM_ANA_IREXTBB_T_H
+#define FIRM_ANA_IREXTBB_T_H
#include "irgraph_t.h"
#include "irextbb.h"
#define get_extbb_n_blocks(blk) _get_extbb_n_blocks(blk)
#define get_extbb_leader(blk) _get_extbb_leader(blk)
-#endif /* _IREXTBB_H_ */
+#endif
/*
- * Project: libFIRM
- * File name: ir/ana/irloop_t.h
- * Purpose: Loop datastructure and access functions.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 7.2002
- * CVS-ID: $Id$
- * Copyright: (c) 2002-2003 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 irloop.h
- *
+ * @file
+ * @brief Loop datastructure and access functions.
+ * @author Goetz Lindenmaier
+ * @date 7.2002
+ * @version $Id$
+ * @summary
* Computes backedges in the control and data flow.
*
- * @author Goetz Lindenmaier
- *
+ * @note
* Only Block and Phi/Filter nodes can have incoming backedges.
* Constructs loops data structure: indicates loop nesting.
*/
-
-# ifndef _IRLOOP_H_
-# define _IRLOOP_H_
+# ifndef FIRM_ANA_IRLOOP_H
+# define FIRM_ANA_IRLOOP_H
# include "irgraph.h"
# include "irnode.h"
* belongs to or in inner loops of this block. */
int is_loop_invariant(ir_node *n, ir_node *block);
-
-#endif /* _IRLOOP_H_ */
+#endif
/*
- * Project: libFIRM
- * File name: ir/ana/irloop_t.h
- * Purpose: Loop datastructure and access functions -- private stuff.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 7.2002
- * CVS-ID: $Id$
- * Copyright: (c) 2002-2003 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 irloop_t.h
- * Loop datastructure and access functions -- private stuff.
- *
- * @author Goetz Lindenmaier
+ * @file
+ * @brief Loop datastructure and access functions -- private stuff.
+ * @author Goetz Lindenmaier
+ * @date 7.2002
+ * @version $Id$
*/
+#ifndef FIRM_ANA_IRLOOP_T_H
+#define FIRM_ANA_IRLOOP_T_H
#include "firm_common.h"
#include "irgraph_t.h"
#include "irnode_t.h"
#include "irloop.h"
-#ifndef _IRLOOP_T_H_
-#define _IRLOOP_T_H_
-
/**
* Possible loop flags, can be or'ed.
*/
return n->loop;
}
-
#define is_ir_loop(thing) _is_ir_loop(thing)
#define set_irg_loop(irg, loop) _set_irg_loop(irg, loop)
#define get_irg_loop(irg) _get_irg_loop(irg)
#define get_loop_n_sons(loop) _get_loop_n_sons(loop)
#define get_irn_loop(n) _get_irn_loop(n)
-#endif /* _IRLOOP_T_H_ */
+#endif
/*
- * Project: libFIRM
- * File name: ir/ana/irmemory.c
- * Purpose: Memory disambiguator
- * Author: Michael Beck
- * Modified by:
- * Created: 27.12.2006
- * CVS-ID: $Id$
- * Copyright: (c) 2006-2007 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 Memory disambiguator
+ * @author Michael Beck
+ * @date 27.12.2006
+ * @version $Id$
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
/*
- * Project: libFIRM
- * File name: ir/ana/irmemory.h
- * Purpose: Memory disambiguator
- * Author: Michael Beck
- * Modified by:
- * Created: 27.12.2006
- * CVS-ID: $Id$
- * Copyright: (c) 2006-2007 Universität Karlsruhe
- * License: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
- */
-#ifndef _FIRM_MEMORY_H
-#define _FIRM_MEMORY_H
+ * Copyrigth (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 Memory disambiguator
+ * @author Michael Beck
+ * @date 27.12.2006
+ * @version $Id$
+ */
+#ifndef FIRM_ANA_IRMEMORY_H
+#define FIRM_ANA_IRMEMORY_H
#include "firm_types.h"
*/
void set_irp_memory_disambiguator_options(unsigned options);
-#endif /* _FIRM_MEMORY_H */
+#endif
/*
- * Project: libFIRM
- * File name: ir/ana/irouts.c
- * Purpose: Compute and access out edges.
- * Author: Goetz Lindenmaier
- * Modified by: Michael Beck
- * Created: 1.2002
- * CVS-ID: $Id$
- * Copyright: (c) 2002-2007 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
- */
-
-/**
- * @file irouts.c Compute out edges for ir nodes (also called def-use edges).
+ * Copyrigth (C) 1995-2007 University of Karlsruhe. All right reserved.
+ *
+ * This file is part of libFirm.
*
- * Copyright (C) 2002 by Universitaet Karlsruhe
- * All rights reserved.
+ * 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.
*
- * Authors: Goetz Lindenmaier
+ * 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 Compute and access out edges (also called def-use edges).
+ * @author Goetz Lindenmaier, Michael Beck
+ * @date 1.2002
+ * @version $Id$
+ */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
/*
- * Project: libFIRM
- * File name: ir/ana/irouts.h
- * Purpose: Compute and access out edges.
- * Author: Goetz Lindenmaier
- * Modified by: Michael Beck
- * Created: 1.2002
- * CVS-ID: $Id$
- * Copyright: (c) 2002-2007 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
- */
-
-/**
- * @file irouts.h
+ * Copyrigth (C) 1995-2007 University of Karlsruhe. All right reserved.
+ *
+ * This file is part of libFirm.
*
- * Implements Def-Use edges, also called outedges.
+ * 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.
*
- * @author Goetz Lindenmaier
+ * Licensees holding valid libFirm Professional Edition licenses may use
+ * this file in accordance with the libFirm Commercial License.
+ * Agreement provided with the Software.
*
- * @todo eventually add reverse conrtol flow graph. (If needed.)
+ * 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 Compute and access out edges (also called def-use edges).
+ * @author Goetz Lindenmaier, Michael Beck
+ * @date 1.2002
+ * @version $Id$
*/
-#ifndef _IROUTS_H_
-#define _IROUTS_H_
+#ifndef FIRM_ANA_IROUTS_H
+#define FIRM_ANA_IROUTS_H
#include "firm_types.h"
void free_irg_outs(ir_graph *irg);
void free_irp_outs(void);
-#endif /* _IROUTS_H_ */
+#endif
/*
- * Project: libFIRM
- * File name: ir/ana/irscc.c
- * Purpose: Compute the strongly connected regions and build
+ * Copyrigth (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 Compute the strongly connected regions and build
* backedge/loop datastructures.
* A variation on the Tarjan algorithm. See also [Trapp:99],
* Chapter 5.2.1.2.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 7.2002
- * CVS-ID: $Id$
- * Copyright: (c) 2002-2006 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * @author Goetz Lindenmaier
+ * @date 7.2002
+ * @version $Id$
*/
-
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
/*
- * File name: ir/ana/irsimpletype.c
- * Purpose: Run most simple type analyses.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 22.8.2003
- * CVS-ID: $Id$
- * Copyright: (c) 2003 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
- */
-
-/**
- * @file irsimpletype.c
+ * Copyrigth (C) 1995-2007 University of Karlsruhe. All right reserved.
+ *
+ * This file is part of libFirm.
*
- * Runs most simple type analyses.
+ * 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.
*
- * We compute type information for each node. It is derived from the
- * types of the origines of values, e.g. parameter types can be derived
- * from the method type.
- * The type information so far is saved in the link field.
+ * Licensees holding valid libFirm Professional Edition licenses may use
+ * this file in accordance with the libFirm Commercial License.
+ * Agreement provided with the Software.
*
- * @author Goetz Lindenmaier
+ * 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 Run most simple type analyses.
+ * @author Goetz Lindenmaier
+ * @date 22.8.2003
+ * @version $Id$
+ * @summary
+ * Runs most simple type analyses.
+ *
+ * We compute type information for each node. It is derived from the
+ * types of the origines of values, e.g. parameter types can be derived
+ * from the method type.
+ * The type information so far is saved in the link field.
+ */
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
-# include "irtypeinfo.h"
-# include "irsimpletype.h"
+#include "irtypeinfo.h"
+#include "irsimpletype.h"
-# include "irnode_t.h"
-# include "irprog_t.h"
-# include "irgwalk.h"
-# include "ident.h"
-# include "trouts.h"
+#include "irnode_t.h"
+#include "irprog_t.h"
+#include "irgwalk.h"
+#include "ident.h"
+#include "trouts.h"
#define VERBOSE_UNKNOWN_TYPE(s) printf s
/*
- * Project: libFIRM
- * File name: ir/ana/irsimpletype.h
- * Purpose: Run most simple type analyses.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 22.8.2003
- * CVS-ID: $Id$
- * Copyright: (c) 2003 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 irsimpletype.h
- *
- * We compute type information for each node. It is derived from the
- * types of the origines of values, e.g. parameter types can be derived
- * from the method type.
- * The type information so far is saved in the link field.
- *
- * @author Goetz Lindenmaier
+ * @file
+ * @brief Run most simple type analyses.
+ * @author Goetz Lindenmaier
+ * @date 22.8.2003
+ * @version $Id$
+ * @summary
+ * We compute type information for each node. It is derived from the
+ * types of the origines of values, e.g. parameter types can be derived
+ * from the method type.
+ * The type information so far is saved in the link field.
*/
-# ifndef _IRSIMPLETYPE_H_
-# define _IRSIMPLETYPE_H_
+#ifndef FIRM_ANA_IRSIMPLETYPE_H
+#define FIRM_ANA_IRSIMPLETYPE_H
-# include "irgraph.h"
-# include "irnode.h"
-# include "type.h"
+#include "irgraph.h"
+#include "irnode.h"
+#include "type.h"
*/
/* type *analyse_irn_type(ir_node *node); */
-#endif /* _IRSIMPLETYPE_H_ */
+#endif
-/**
+/*
+ * Copyrigth (C) 1995-2007 University of Karlsruhe. All right reserved.
*
- * @file irtypeinfo.c
+ * This file is part of libFirm.
*
- * Project: libFIRM
- * File name: ir/ana/irtypeinfo.c
- * Purpose: Data structure to hold type information for nodes.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 28.8.2003
- * CVS-ID: $Id$
- * Copyright: (c) 2003 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * 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.
*
- * Data structure to hold type information for nodes.
+ * Licensees holding valid libFirm Professional Edition licenses may use
+ * this file in accordance with the libFirm Commercial License.
+ * Agreement provided with the Software.
*
- * This module defines a field "type" of type "type *" for each ir node.
- * It defines a flag for irgraphs to mark whether the type info of the
- * graph is valid. Further it defines an auxiliary type "initial_type".
+ * 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 Data structure to hold type information for nodes.
+ * @author Goetz Lindenmaier
+ * @date 28.8.2003
+ * @version $Id$
+ * @summary
+ * Data structure to hold type information for nodes.
*
- * The module defines a map that contains pairs (irnode, type). If an irnode
- * is not in the map it is assumed to be initialized, i.e., the initialization
- * requires no compute time. As firm nodes can not be freed and reallocated
- * pointers for nodes are unique (until a call of dead_node_elimination).
+ * This module defines a field "type" of type "type *" for each ir node.
+ * It defines a flag for irgraphs to mark whether the type info of the
+ * graph is valid. Further it defines an auxiliary type "initial_type".
*
+ * The module defines a map that contains pairs (irnode, type). If an irnode
+ * is not in the map it is assumed to be initialized, i.e., the initialization
+ * requires no compute time. As firm nodes can not be freed and reallocated
+ * pointers for nodes are unique (until a call of dead_node_elimination).
*/
-
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
-/**
+/*
+ * Copyrigth (C) 1995-2007 University of Karlsruhe. All right reserved.
*
- * @file irtypeinfo.h
+ * This file is part of libFirm.
*
- * Project: libFIRM
- * File name: ir/ana/irtypeinfo.h
- * Purpose: Data structure to hold type information for nodes.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 28.8.2003
- * CVS-ID: $Id$
- * Copyright: (c) 2003 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * 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.
*
- * Data structure to hold type information for nodes.
+ * Licensees holding valid libFirm Professional Edition licenses may use
+ * this file in accordance with the libFirm Commercial License.
+ * Agreement provided with the Software.
*
- * This module defines a field "type" of type "type *" for each ir node.
- * It defines a flag for irgraphs to mark whether the type info of the
- * graph is valid. Further it defines an auxiliary type "init_type".
+ * 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 Data structure to hold type information for nodes.
+ * @author Goetz Lindenmaier
+ * @date 28.8.2003
+ * @version $Id$
+ * @summary
+ * Data structure to hold type information for nodes.
*
+ * This module defines a field "type" of type "type *" for each ir node.
+ * It defines a flag for irgraphs to mark whether the type info of the
+ * graph is valid. Further it defines an auxiliary type "init_type".
*/
-#ifndef _IRTYPEINFO_H_
-#define _IRTYPEINFO_H_
+#ifndef FIRM_ANA_IRTYPEINFO_H
+#define FIRM_ANA_IRTYPEINFO_H
#include "firm_types.h"
ir_type *get_irn_typeinfo_type(ir_node *n);
void set_irn_typeinfo_type(ir_node *n, ir_type *tp);
-#endif /* _IRTYPEINFO_H_ */
+#endif
+/*
+ * Copyrigth (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 Implementation of phiclass analysis
* @author Daniel Grund, Christian Wuerdig
* @cvsid $Id$
* @date 09.08.2005
-/**
- * Analysis to compute phi congruence classes.
- * @author Daniel Grund
- * @cvsid $Id$
- * @date 15.01.2005
+/*
+ * Copyrigth (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.
*/
-#ifndef _PHICLASS_H_
-#define _PHICLASS_H_
+/**
+ * @file
+ * @brief Analysis to compute phi congruence classes.
+ * @author Daniel Grund
+ * @version $Id$
+ * @date 15.01.2005
+ */
+#ifndef FIRM_ANA_PHICLASS_H
+#define FIRM_ANA_PHICLASS_H
#include "pset.h"
#include "irgraph.h"
*/
void phi_class_free(phi_classes_t *pc);
-#endif /* _PHICLASS_H_ */
+#endif
-/* -*- c -*- */
-
/*
- * Project: libFIRM
- * File name: ir/ana/rta.c
- * Purpose: Interprocedural analysis to improve the call graph estimate.
- * Author: Florian
- * Modified by:
- * Created: 09.06.2002
- * CVS-ID: $Id$
- * Copyright: (c) 1999-2004 Universität Karlsruhe
- * Licence: This file is protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 Interprocedural analysis to improve the call graph estimate.
+ * @author Florian
+ * @version 09.06.2002
+ * @version $Id$
+ */
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
-/* -*- c -*- */
-
/*
- * Project: libFIRM
- * File name: ir/ana/rta.h
- * Purpose: Interprocedural analysis to improve the call graph estimate.
- * Author: Florian
- * Modified by:
- * Created: 09.06.2002
- * CVS-ID: $$
- * Copyright: (c) 1999-2004 Universität Karlsruhe
- * Licence: This file is protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 Interprocedural analysis to improve the call graph estimate.
+ * @author Florian
+ * @date 09.06.2002
+ * @version $Id$
+ * @summary
+ * (TODO translate to english)
* Intraprozedurale Analyse zur Abschätzung der Aufrufrelation. Es wird
* die Menge der instantiierten Klassen bestimmt, und daraus eine Abschätzung
* der aufgerufenen Methoden.
* Fast static analysis of C++ virtual function calls
* OOPSLA 1996
*/
-
-#ifndef _RTA_H_
-#define _RTA_H_
+#ifndef FIRM_ANA_RTA_H
+#define FIRM_ANA_RTA_H
#include "firm_types.h"
/** report for all graphs and types whether they are alive */
void rta_report(void);
-#endif /* not defined _RTA_H_ */
+#endif
/*
* $Log$
/*
- * Project: libFIRM
- * File name: ir/ana/structure.c
- * Purpose: Structure Analysis
- * Author: Michael Beck
- * Modified by:
- * Created: 5.4.2007
- * CVS-ID: $Id: $
- * Copyright: (c) 2007 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 Structure Analysis
+ * @author Michael Beck
+ * @date 5.4.2007
+ * @version $Id$
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
/*
- * Project: libFIRM
- * File name: ir/ana/structure.h
- * Purpose: structure analysis
- * Author: Michael Beck
- * Modified by:
- * Created: 05.04.2007
- * CVS-ID: $Id: $
- * Copyright: (c) 2007 Universität Karlsruhe
- * License: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
- */
-#ifndef _FIRM_STRUCTURE_H
-#define _FIRM_STRUCTURE_H
+ * Copyrigth (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 structure analysis
+ * @author Michael Beck
+ * @date 05.04.2007
+ * @version $Id$
+ */
+#ifndef FIRM_ANA_STRUCTURE_H
+#define FIRM_ANA_STRUCTURE_H
#include "firm_types.h"
*/
void region_tree_walk(ir_reg_tree *tree, irg_reg_walk_func *pre, irg_reg_walk_func *post, void *env);
-#endif /* _FIRM_STRUCTURE_H */
+#endif
/*
- * Project: libFIRM
- * File name: ir/ana/trouts.c
- * Purpose: Reverse edges that reference types/entities.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 29.10.2004
- * CVS-ID: $Id$
- * Copyright: (c) 2004 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 Reverse edges that reference types/entities.
+ * @author Goetz Lindenmaier
+ * @date 29.10.2004
+ * @version $Id$
+ */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
/*
- * Project: libFIRM
- * File name: ir/ana/trouts.h
- * Purpose: Reverse edges that reference types/entities.
- * Author: Goetz Lindenmaier
- * Modified by:
- * Created: 29.10.2004
- * CVS-ID: $Id$
- * Copyright: (c) 2004 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyrigth (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 trouts.h
- *
- * Trouts list all uses of types and entities.
- * Each type gets a list of all Alloc nodes allocating it.
- * Each entity gets two lists:
- * - one containing all accesses (Load, (Call), Store),
- * - and one containing all uses to get a reference (Sel, SymConst).
+ * @file
+ * @brief Reverse edges that reference types/entities.
+ * @author Goetz Lindenmaier
+ * @date 29.10.2004
+ * @version $Id$
+ * @summary
+ * Trouts list all uses of types and entities.
+ * Each type gets a list of all Alloc nodes allocating it.
+ * Each entity gets two lists:
+ * - one containing all accesses (Load, (Call), Store),
+ * - and one containing all uses to get a reference (Sel, SymConst).
*
* @todo
* To list all uses of entities of a type, we also should list all
* static/automatic allocated entities in types. The Alloc nodes
* represent only the dynamic allocated entities.
- *
- * @author Goetz Lindenmaier
- *
*/
-
-# ifndef _TROUTS_H_
-# define _TROUTS_H_
+#ifndef FIRM_ANA_TROUTS_H
+#define FIRM_ANA_TROUTS_H
#include "firm_types.h"
#include "irgraph.h"
/** Free trout data. */
void free_trouts(void);
-
-#endif /* _TROUTS_H_ */
+#endif