2 * Project: libFIRM/extension module/graph rewriting system
3 * File name: ext/grs/analyze.h
4 * Purpose: provides an interface for incremental and from scratch
5 * analysis for the collection of information needed by
6 * apropriate search planers
8 * Created: 22. June 2005
10 * Copyright: (c) 2005 Universität Karlsruhe
11 * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
16 * @file ext/grs/analyze.h
17 * @brief provides an interface for incremental and from scratch
18 * analysis for the collection of information needed by
19 * apropriate search planers
22 #ifndef _EXT_GRS_ANALYZE_T_H_
23 #define _EXT_GRS_ANALYZE_T_H_
32 /** interface of an ir graph analyzer */
33 struct _ext_grs_analyzer_t
35 /** a tag identifying an analyzer, to be checked by search planers */
38 /** perform a from scratch analysis of a given ir graph */
39 void (*analyze) (struct _ext_grs_analyzer_t *, ir_graph *);
40 /** free the result of the last analysis done on the given
41 * ir graph by this analyzer */
42 void (*free_ana_result) (ext_grs_analyzer_t *, ir_graph *);
43 /** enable incremantal analysis for the given ir graph */
44 void (*enable_incr_ana) (struct _ext_grs_analyzer_t *, ir_graph *);
45 /** disable incremantal analysis for the given ir graph */
46 void (*disable_incr_ana) (struct _ext_grs_analyzer_t *, ir_graph *);
47 /** dump the current analysis result */
48 void (*dump_ana_result) (struct _ext_grs_analyzer_t *, ir_graph *);
50 /** from scratch analysis of all ir graphs building a global data set */
51 void (*analyze_global) (struct _ext_grs_analyzer_t *);
52 /** enable global incremantal analysis building a global data set */
53 void (*enable_global_incr_ana) (struct _ext_grs_analyzer_t *);
54 /** disable global incremantal analysis building a global data set */
55 void (*disable_global_incr_ana) (struct _ext_grs_analyzer_t *);
56 /** dump the current global analysis result */
57 void (*dump_global_ana_result) (struct _ext_grs_analyzer_t *);
59 /** this analyzers private data storage area */
67 #endif /*_EXT_GRS_ANALYZE_T_H_*/