-/* -*- c -*- */
+/*
+ * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved.
+ *
+ * This file is part of libFirm.
+ *
+ * This file may be distributed and/or modified under the terms of the
+ * GNU General Public License version 2 as published by the Free Software
+ * Foundation and appearing in the file LICENSE.GPL included in the
+ * packaging of this file.
+ *
+ * Licensees holding valid libFirm Professional Edition licenses may use
+ * this file in accordance with the libFirm Commercial License.
+ * Agreement provided with the Software.
+ *
+ * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+ * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ */
-#ifndef _EGC_H_
-#define _EGC_H_
+/**
+ * @file
+ * @brief Extended Call Graph
+ * @author Florian
+ * @version $Id$
+ */
+#ifndef FIRM_ANA2_EGC_H
+#define FIRM_ANA2_EGC_H
# include "irgraph.h"
# include "irnode.h"
{
ir_graph *graph;
ir_node *alloc;
- type *tp;
+ ir_type *tp;
struct alloc_info *prev;
} alloc_info_t;
struct graph_info *prev;
} graph_info_t;
+typedef void graph_hnd_t (graph_info_t*, void*);
+typedef void alloc_hnd_t (alloc_info_t*, void*);
+typedef void call_hnd_t (call_info_t*, void*);
+typedef void callEd_hnd_t (callEd_info_t*, void*);
+
/* protos */
void ecg_print_ctx (ctx_info_t*, FILE *stream);
ctx_info_t *get_ctx (graph_info_t*, int);
ctx_info_t *get_main_ctx (void);
-void ecg_init (int);
+void ecg_iterate_graphs (graph_hnd_t*, void*);
+void ecg_iterate_allocs (graph_info_t*, alloc_hnd_t*, void*);
+void ecg_iterate_calls (graph_info_t*, call_hnd_t*, void*);
+void ecg_iterate_callEds (call_info_t*, callEd_hnd_t*, void*);
+
graph_info_t *ecg_get_info (ir_graph*);
alloc_info_t *ecg_get_alloc_info (ir_graph*);
callEd_info_t *ecg_get_callEd_info (ir_node*);
+void ecg_init (int);
void ecg_cleanup (void);
void ecg_report (void);
void ecg_ecg (void);
\f
/*
$Log$
+Revision 1.4 2006/01/13 22:00:15 beck
+renamed all types 'type' to 'ir_type'
+
+Revision 1.3 2004/11/20 21:20:29 liekweg
+Added iterator functions
+
Revision 1.2 2004/11/18 16:36:37 liekweg
Added unique ids for debugging, added access functions