From 9b716841c3b0865b86af8d3890b3914060c37ed0 Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Thu, 26 Apr 2007 12:53:25 +0000 Subject: [PATCH] added license infos [r13472] --- ir/ana/analyze_irg_args.c | 30 ++++++++++++------ ir/ana/analyze_irg_args.h | 37 +++++++++++++++------- ir/ana/callgraph.c | 33 ++++++++++++++------ ir/ana/callgraph.h | 58 +++++++++++++++++++++-------------- ir/ana/cdep.c | 24 +++++++++++++++ ir/ana/cdep.h | 31 +++++++++++++++++-- ir/ana/cgana.c | 45 ++++++++++++++++----------- ir/ana/cgana.h | 47 ++++++++++++++++++---------- ir/ana/compute_loop_info.c | 30 +++++++++++++----- ir/ana/compute_loop_info.h | 37 +++++++++++++++------- ir/ana/execfreq.c | 35 ++++++++++++++------- ir/ana/execfreq.h | 40 ++++++++++++++++-------- ir/ana/execution_frequency.c | 33 ++++++++++++++------ ir/ana/execution_frequency.h | 47 +++++++++++++++------------- ir/ana/field_temperature.c | 32 +++++++++++++------ ir/ana/field_temperature.h | 43 +++++++++++++++----------- ir/ana/height.c | 32 +++++++++++++------ ir/ana/height.h | 32 +++++++++++++------ ir/ana/interval_analysis.c | 23 ++++++++++++++ ir/ana/interval_analysis.h | 44 +++++++++++++++------------ ir/ana/irbackedge.c | 32 +++++++++++++------ ir/ana/irbackedge_t.h | 38 +++++++++++++++-------- ir/ana/ircfscc.c | 37 ++++++++++++++-------- ir/ana/irconsconfirm.c | 36 +++++++++++++--------- ir/ana/irconsconfirm.h | 43 +++++++++++++++----------- ir/ana/irdom.c | 32 +++++++++++++------ ir/ana/irdom.h | 41 +++++++++++++++---------- ir/ana/irdom_t.h | 43 ++++++++++++++------------ ir/ana/irextbb.c | 36 +++++++++++++--------- ir/ana/irextbb.h | 41 ++++++++++++++----------- ir/ana/irextbb2.c | 34 +++++++++++++-------- ir/ana/irextbb_t.h | 41 ++++++++++++++----------- ir/ana/irloop.h | 44 ++++++++++++++++----------- ir/ana/irloop_t.h | 42 ++++++++++++++----------- ir/ana/irmemory.c | 33 ++++++++++++++------ ir/ana/irmemory.h | 41 +++++++++++++++++-------- ir/ana/irouts.c | 37 ++++++++++++---------- ir/ana/irouts.h | 43 ++++++++++++++------------ ir/ana/irscc.c | 34 +++++++++++++++------ ir/ana/irsimpletype.c | 59 +++++++++++++++++++++--------------- ir/ana/irsimpletype.h | 55 +++++++++++++++++++-------------- ir/ana/irtypeinfo.c | 50 ++++++++++++++++++------------ ir/ana/irtypeinfo.h | 47 +++++++++++++++++----------- ir/ana/phiclass.c | 21 +++++++++++++ ir/ana/phiclass.h | 35 ++++++++++++++++----- ir/ana/rta.c | 35 +++++++++++++-------- ir/ana/rta.h | 41 ++++++++++++++++--------- ir/ana/structure.c | 33 ++++++++++++++------ ir/ana/structure.h | 41 +++++++++++++++++-------- ir/ana/trouts.c | 32 +++++++++++++------ ir/ana/trouts.h | 54 ++++++++++++++++++--------------- 51 files changed, 1289 insertions(+), 675 deletions(-) diff --git a/ir/ana/analyze_irg_args.c b/ir/ana/analyze_irg_args.c index 0ec10e5a9..bb7bde849 100644 --- a/ir/ana/analyze_irg_args.c +++ b/ir/ana/analyze_irg_args.c @@ -1,17 +1,27 @@ /* - * 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" diff --git a/ir/ana/analyze_irg_args.h b/ir/ana/analyze_irg_args.h index e4b6d50b1..ac73cacac 100644 --- a/ir/ana/analyze_irg_args.h +++ b/ir/ana/analyze_irg_args.h @@ -1,15 +1,30 @@ /* - * 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" @@ -51,4 +66,4 @@ float get_method_param_weight(ir_entity *ent, int pos); */ void analyze_irg_args_weight(ir_graph *irg); -#endif /*_ANALYZE_IRG_ARGS_H_ */ +#endif diff --git a/ir/ana/callgraph.c b/ir/ana/callgraph.c index 99281082a..bb81379ee 100644 --- a/ir/ana/callgraph.c +++ b/ir/ana/callgraph.c @@ -1,13 +1,28 @@ /* - * 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" diff --git a/ir/ana/callgraph.h b/ir/ana/callgraph.h index d6feb151a..502edd12f 100644 --- a/ir/ana/callgraph.h +++ b/ir/ana/callgraph.h @@ -1,33 +1,45 @@ /* - * 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. */ diff --git a/ir/ana/cdep.c b/ir/ana/cdep.c index de40a6b80..f2b0fb5a2 100644 --- a/ir/ana/cdep.c +++ b/ir/ana/cdep.c @@ -1,3 +1,27 @@ +/* + * 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 #include #include "irdom.h" diff --git a/ir/ana/cdep.h b/ir/ana/cdep.h index 270a15afa..4d1bf2226 100644 --- a/ir/ana/cdep.h +++ b/ir/ana/cdep.h @@ -1,5 +1,30 @@ -#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" @@ -24,4 +49,4 @@ int is_iterated_cdep_on(ir_node *dependee, ir_node *candidate); ir_node *get_unique_cdep(const ir_node *block); int has_multiple_cdep(const ir_node *block); -#endif /* CDEP_H */ +#endif diff --git a/ir/ana/cgana.c b/ir/ana/cgana.c index 614f4d102..23cf68c1e 100644 --- a/ir/ana/cgana.c +++ b/ir/ana/cgana.c @@ -1,25 +1,36 @@ /* - * 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 diff --git a/ir/ana/cgana.h b/ir/ana/cgana.h index ea9829645..eb97c06b6 100644 --- a/ir/ana/cgana.h +++ b/ir/ana/cgana.h @@ -1,24 +1,39 @@ /* - * 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" @@ -83,4 +98,4 @@ void free_irp_callee_info(void); void opt_call_addrs(void); -#endif /* _CGANA_H_ */ +#endif diff --git a/ir/ana/compute_loop_info.c b/ir/ana/compute_loop_info.c index 4c47516aa..1256f83d3 100644 --- a/ir/ana/compute_loop_info.c +++ b/ir/ana/compute_loop_info.c @@ -1,14 +1,28 @@ /* - * 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 diff --git a/ir/ana/compute_loop_info.h b/ir/ana/compute_loop_info.h index f8cfcf184..f94b6261e 100644 --- a/ir/ana/compute_loop_info.h +++ b/ir/ana/compute_loop_info.h @@ -1,18 +1,33 @@ /* - * 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 diff --git a/ir/ana/execfreq.c b/ir/ana/execfreq.c index 22fdfb903..3172856ad 100644 --- a/ir/ana/execfreq.c +++ b/ir/ana/execfreq.c @@ -1,13 +1,28 @@ /* - * 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" @@ -371,5 +386,3 @@ free_execfreq(ir_exec_freq *ef) unregister_hook(hook_node_info, &ef->hook); free(ef); } - -#undef ELEM diff --git a/ir/ana/execfreq.h b/ir/ana/execfreq.h index c633950b8..42a5ec4ac 100644 --- a/ir/ana/execfreq.h +++ b/ir/ana/execfreq.h @@ -1,16 +1,32 @@ -#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; @@ -40,4 +56,4 @@ void free_execfreq(ir_exec_freq *ef); 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 diff --git a/ir/ana/execution_frequency.c b/ir/ana/execution_frequency.c index bc8972fe3..2ae6f7915 100644 --- a/ir/ana/execution_frequency.c +++ b/ir/ana/execution_frequency.c @@ -1,13 +1,28 @@ /* - * 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" diff --git a/ir/ana/execution_frequency.h b/ir/ana/execution_frequency.h index da28770b7..137abf2ca 100644 --- a/ir/ana/execution_frequency.h +++ b/ir/ana/execution_frequency.h @@ -1,31 +1,38 @@ /* - * 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" @@ -83,6 +90,4 @@ exec_freq_state get_irp_exec_freq_state(void); void set_irp_exec_freq_state_inconsistent(void); - - -#endif /* _EXECUTION_FREQUENCY_H_ */ +#endif diff --git a/ir/ana/field_temperature.c b/ir/ana/field_temperature.c index e062b5737..5c86b4f21 100644 --- a/ir/ana/field_temperature.c +++ b/ir/ana/field_temperature.c @@ -1,15 +1,29 @@ /* - * 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 diff --git a/ir/ana/field_temperature.h b/ir/ana/field_temperature.h index 9c830976a..38a4b646c 100644 --- a/ir/ana/field_temperature.h +++ b/ir/ana/field_temperature.h @@ -1,23 +1,29 @@ /* - * 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. @@ -26,13 +32,14 @@ * * - 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); @@ -105,4 +112,4 @@ typedef enum { int is_jack_rts_class(ir_type *t); int is_jack_rts_entity(ir_entity *e); -#endif /* _FIELD_TEMPERATURE_H_ */ +#endif diff --git a/ir/ana/height.c b/ir/ana/height.c index c067adabc..93def5762 100644 --- a/ir/ana/height.c +++ b/ir/ana/height.c @@ -1,15 +1,29 @@ /* - * 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 diff --git a/ir/ana/height.h b/ir/ana/height.h index b0ab2ff5a..ec07add1f 100644 --- a/ir/ana/height.h +++ b/ir/ana/height.h @@ -1,15 +1,29 @@ /* - * 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 diff --git a/ir/ana/interval_analysis.c b/ir/ana/interval_analysis.c index 26a362efd..37a563b81 100644 --- a/ir/ana/interval_analysis.c +++ b/ir/ana/interval_analysis.c @@ -1,4 +1,27 @@ +/* + * 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 diff --git a/ir/ana/interval_analysis.h b/ir/ana/interval_analysis.h index e141747ef..c00603b88 100644 --- a/ir/ana/interval_analysis.h +++ b/ir/ana/interval_analysis.h @@ -1,22 +1,31 @@ /* - * 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 @@ -26,10 +35,8 @@ * 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" @@ -80,5 +87,4 @@ void dump_interval_graph(ir_graph *irg, const char *suffix); #define DDMR(X) if(is_ir_node(X)) DDMN(X); else DDML(X) - -#endif /* _INTERVAL_ANALYSIS_H_ */ +#endif diff --git a/ir/ana/irbackedge.c b/ir/ana/irbackedge.c index 7345032bc..49a65a6ea 100644 --- a/ir/ana/irbackedge.c +++ b/ir/ana/irbackedge.c @@ -1,15 +1,29 @@ /* - * 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 diff --git a/ir/ana/irbackedge_t.h b/ir/ana/irbackedge_t.h index 4aee09326..6b13d3b9b 100644 --- a/ir/ana/irbackedge_t.h +++ b/ir/ana/irbackedge_t.h @@ -1,17 +1,31 @@ /* - * 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. @@ -30,4 +44,4 @@ void new_backedge_info(ir_node *n); */ void fix_backedges(struct obstack *obst, ir_node *n); -#endif /* _IRBACKEDGE_T_H_ */ +#endif diff --git a/ir/ana/ircfscc.c b/ir/ana/ircfscc.c index b573c1f94..9235e0a1b 100644 --- a/ir/ana/ircfscc.c +++ b/ir/ana/ircfscc.c @@ -1,18 +1,31 @@ /* - * 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 diff --git a/ir/ana/irconsconfirm.c b/ir/ana/irconsconfirm.c index 3c38eafd7..e775082e6 100644 --- a/ir/ana/irconsconfirm.c +++ b/ir/ana/irconsconfirm.c @@ -1,23 +1,29 @@ /* - * 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 diff --git a/ir/ana/irconsconfirm.h b/ir/ana/irconsconfirm.h index 30e5bd251..b7ab78071 100644 --- a/ir/ana/irconsconfirm.h +++ b/ir/ana/irconsconfirm.h @@ -1,28 +1,35 @@ /* - * 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 @@ -52,4 +59,4 @@ void construct_confirms(ir_graph *irg); */ void remove_confirms(ir_graph *irg); -#endif /* _FIRM_ANA_IRCONSCONFIRM_H_ */ +#endif diff --git a/ir/ana/irdom.c b/ir/ana/irdom.c index 056000b8a..3568972a9 100644 --- a/ir/ana/irdom.c +++ b/ir/ana/irdom.c @@ -1,15 +1,29 @@ /* - * 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 diff --git a/ir/ana/irdom.h b/ir/ana/irdom.h index 38307fe53..8a48401ad 100644 --- a/ir/ana/irdom.h +++ b/ir/ana/irdom.h @@ -1,18 +1,29 @@ /* - * 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: @@ -21,11 +32,9 @@ * - 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" @@ -251,4 +260,4 @@ void free_dom(ir_graph *irg); /** Frees the post dominator data structures. Sets the flag in irg to "dom_none". */ void free_postdom(ir_graph *irg); -#endif /* _IRDOM_H_ */ +#endif diff --git a/ir/ana/irdom_t.h b/ir/ana/irdom_t.h index 1544829c7..fba93d9a8 100644 --- a/ir/ana/irdom_t.h +++ b/ir/ana/irdom_t.h @@ -1,26 +1,31 @@ /* - * 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" @@ -38,4 +43,4 @@ typedef struct ir_dom_info { int dom_depth; /**< depth in dominator-tree */ } ir_dom_info; -#endif /* _FIRM_IRDOM_T_H_ */ +#endif diff --git a/ir/ana/irextbb.c b/ir/ana/irextbb.c index 610d3132b..9cbd30813 100644 --- a/ir/ana/irextbb.c +++ b/ir/ana/irextbb.c @@ -1,23 +1,29 @@ /* - * 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 diff --git a/ir/ana/irextbb.h b/ir/ana/irextbb.h index 472fe031b..f62885d20 100644 --- a/ir/ana/irextbb.h +++ b/ir/ana/irextbb.h @@ -1,24 +1,31 @@ /* - * 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" @@ -185,4 +192,4 @@ void irg_extblock_walk(ir_extblk *blk, extbb_walk_func *pre, extbb_walk_func *po */ void irg_extblock_walk_graph(ir_graph *irg, extbb_walk_func *pre, extbb_walk_func *post, void *env); -#endif /* _IREXTBB_H_ */ +#endif diff --git a/ir/ana/irextbb2.c b/ir/ana/irextbb2.c index a18d12dd4..3c007af64 100644 --- a/ir/ana/irextbb2.c +++ b/ir/ana/irextbb2.c @@ -1,21 +1,31 @@ /* - * 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" diff --git a/ir/ana/irextbb_t.h b/ir/ana/irextbb_t.h index 4c576f737..4e6c1e9b2 100644 --- a/ir/ana/irextbb_t.h +++ b/ir/ana/irextbb_t.h @@ -1,24 +1,31 @@ /* - * 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" @@ -152,4 +159,4 @@ _get_extbb_leader(ir_extblk *blk) #define get_extbb_n_blocks(blk) _get_extbb_n_blocks(blk) #define get_extbb_leader(blk) _get_extbb_leader(blk) -#endif /* _IREXTBB_H_ */ +#endif diff --git a/ir/ana/irloop.h b/ir/ana/irloop.h index 6672a1291..65db1cd42 100644 --- a/ir/ana/irloop.h +++ b/ir/ana/irloop.h @@ -1,28 +1,37 @@ /* - * 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" @@ -220,5 +229,4 @@ void free_all_loop_information (void); * belongs to or in inner loops of this block. */ int is_loop_invariant(ir_node *n, ir_node *block); - -#endif /* _IRLOOP_H_ */ +#endif diff --git a/ir/ana/irloop_t.h b/ir/ana/irloop_t.h index 4a6433484..62d0ee15b 100644 --- a/ir/ana/irloop_t.h +++ b/ir/ana/irloop_t.h @@ -1,30 +1,37 @@ /* - * 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. */ @@ -121,7 +128,6 @@ _get_irn_loop(const ir_node *n) { 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) @@ -130,4 +136,4 @@ _get_irn_loop(const ir_node *n) { #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 diff --git a/ir/ana/irmemory.c b/ir/ana/irmemory.c index 0009a8752..aede05ba4 100644 --- a/ir/ana/irmemory.c +++ b/ir/ana/irmemory.c @@ -1,13 +1,28 @@ /* - * 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" diff --git a/ir/ana/irmemory.h b/ir/ana/irmemory.h index 70326346d..cf26a802c 100644 --- a/ir/ana/irmemory.h +++ b/ir/ana/irmemory.h @@ -1,16 +1,31 @@ /* - * 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" @@ -188,4 +203,4 @@ void set_irg_memory_disambiguator_options(ir_graph *irg, unsigned options); */ void set_irp_memory_disambiguator_options(unsigned options); -#endif /* _FIRM_MEMORY_H */ +#endif diff --git a/ir/ana/irouts.c b/ir/ana/irouts.c index 6f12c37b7..cf20039e2 100644 --- a/ir/ana/irouts.c +++ b/ir/ana/irouts.c @@ -1,24 +1,29 @@ /* - * 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 diff --git a/ir/ana/irouts.h b/ir/ana/irouts.h index 3790dce57..a9db76036 100644 --- a/ir/ana/irouts.h +++ b/ir/ana/irouts.h @@ -1,26 +1,31 @@ /* - * 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" @@ -90,4 +95,4 @@ void free_ip_outs(void); void free_irg_outs(ir_graph *irg); void free_irp_outs(void); -#endif /* _IROUTS_H_ */ +#endif diff --git a/ir/ana/irscc.c b/ir/ana/irscc.c index bd640cd88..1e80ba1f3 100644 --- a/ir/ana/irscc.c +++ b/ir/ana/irscc.c @@ -1,18 +1,32 @@ /* - * 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 diff --git a/ir/ana/irsimpletype.c b/ir/ana/irsimpletype.c index a53ca5639..a1d8426dd 100644 --- a/ir/ana/irsimpletype.c +++ b/ir/ana/irsimpletype.c @@ -1,39 +1,48 @@ /* - * 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 diff --git a/ir/ana/irsimpletype.h b/ir/ana/irsimpletype.h index 28298b149..0ec16857e 100644 --- a/ir/ana/irsimpletype.h +++ b/ir/ana/irsimpletype.h @@ -1,31 +1,40 @@ /* - * 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" @@ -66,4 +75,4 @@ void free_simple_type_information(void); */ /* type *analyse_irn_type(ir_node *node); */ -#endif /* _IRSIMPLETYPE_H_ */ +#endif diff --git a/ir/ana/irtypeinfo.c b/ir/ana/irtypeinfo.c index 3ec3895f3..5a6cb20e4 100644 --- a/ir/ana/irtypeinfo.c +++ b/ir/ana/irtypeinfo.c @@ -1,30 +1,40 @@ -/** +/* + * 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 diff --git a/ir/ana/irtypeinfo.h b/ir/ana/irtypeinfo.h index 7ed47cdf3..d985dae0c 100644 --- a/ir/ana/irtypeinfo.h +++ b/ir/ana/irtypeinfo.h @@ -1,26 +1,37 @@ -/** +/* + * 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" @@ -91,4 +102,4 @@ void set_irp_typeinfo_inconsistent(void); ir_type *get_irn_typeinfo_type(ir_node *n); void set_irn_typeinfo_type(ir_node *n, ir_type *tp); -#endif /* _IRTYPEINFO_H_ */ +#endif diff --git a/ir/ana/phiclass.c b/ir/ana/phiclass.c index 4f75ca5c2..a089bc968 100644 --- a/ir/ana/phiclass.c +++ b/ir/ana/phiclass.c @@ -1,4 +1,25 @@ +/* + * 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 diff --git a/ir/ana/phiclass.h b/ir/ana/phiclass.h index 2f731b406..db4f972f1 100644 --- a/ir/ana/phiclass.h +++ b/ir/ana/phiclass.h @@ -1,12 +1,31 @@ -/** - * 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" @@ -54,4 +73,4 @@ phi_classes_t *phi_class_new_from_set(ir_graph *irg, ir_nodeset_t *all_phis, int */ void phi_class_free(phi_classes_t *pc); -#endif /* _PHICLASS_H_ */ +#endif diff --git a/ir/ana/rta.c b/ir/ana/rta.c index 9ce2be47d..bfe87c075 100644 --- a/ir/ana/rta.c +++ b/ir/ana/rta.c @@ -1,18 +1,29 @@ -/* -*- 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 diff --git a/ir/ana/rta.h b/ir/ana/rta.h index c55922b18..7e04a991b 100644 --- a/ir/ana/rta.h +++ b/ir/ana/rta.h @@ -1,18 +1,30 @@ -/* -*- 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. @@ -29,9 +41,8 @@ * 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" @@ -61,7 +72,7 @@ int rta_is_alive_graph(ir_graph *graph); /** report for all graphs and types whether they are alive */ void rta_report(void); -#endif /* not defined _RTA_H_ */ +#endif /* * $Log$ diff --git a/ir/ana/structure.c b/ir/ana/structure.c index 5b18d42b1..a2eb17e8c 100644 --- a/ir/ana/structure.c +++ b/ir/ana/structure.c @@ -1,13 +1,28 @@ /* - * 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" diff --git a/ir/ana/structure.h b/ir/ana/structure.h index ad381d9db..9dfca17b7 100644 --- a/ir/ana/structure.h +++ b/ir/ana/structure.h @@ -1,16 +1,31 @@ /* - * 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" @@ -205,4 +220,4 @@ ir_reg_tree *construct_region_tree(ir_graph *irg); */ 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 diff --git a/ir/ana/trouts.c b/ir/ana/trouts.c index 0d12f4abf..db33e0403 100644 --- a/ir/ana/trouts.c +++ b/ir/ana/trouts.c @@ -1,15 +1,29 @@ /* - * 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 diff --git a/ir/ana/trouts.h b/ir/ana/trouts.h index 59033076c..44b76c439 100644 --- a/ir/ana/trouts.h +++ b/ir/ana/trouts.h @@ -1,35 +1,42 @@ /* - * 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" @@ -130,5 +137,4 @@ void compute_trouts(void); /** Free trout data. */ void free_trouts(void); - -#endif /* _TROUTS_H_ */ +#endif -- 2.20.1