Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Zwinkau
libfirm
Commits
9b716841
Commit
9b716841
authored
Apr 26, 2007
by
Matthias Braun
Browse files
added license infos
[r13472]
parent
c903769f
Changes
51
Hide whitespace changes
Inline
Side-by-side
ir/ana/analyze_irg_args.c
View file @
9b716841
/*
* 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 Universitt 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"
...
...
ir/ana/analyze_irg_args.h
View file @
9b716841
/*
* 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
ir/ana/callgraph.c
View file @
9b716841
/*
* 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 Universitt 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"
...
...
ir/ana/callgraph.h
View file @
9b716841
/*
* 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. */
...
...
ir/ana/cdep.c
View file @
9b716841
/*
* 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"
...
...
ir/ana/cdep.h
View file @
9b716841
#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
ir/ana/cgana.c
View file @
9b716841
/*
* 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 Universitt 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
...
...
ir/ana/cgana.h
View file @
9b716841
/*
* 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
ir/ana/compute_loop_info.c
View file @
9b716841
/*
* 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 Universitt 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
...
...
ir/ana/compute_loop_info.h
View file @
9b716841
/*
* 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 Universitt 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
ir/ana/execfreq.c
View file @
9b716841
/*
* 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
ir/ana/execfreq.h
View file @
9b716841
#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
ir/ana/execution_frequency.c
View file @
9b716841
/*
* 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 Universitt 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"
...
...
ir/ana/execution_frequency.h
View file @
9b716841
/*
* 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"