moved firmext code into the backend dir
[libfirm] / ir / be / grgen / analyze_t.h
1 /*
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
7  * Author:      Veit Batz
8  * Created:             22. June 2005
9  * CVS-ID:      $Id$
10  * Copyright:   (c) 2005 Universität Karlsruhe
11  * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
12  */
13
14
15 /**
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
20  * */
21
22 #ifndef _EXT_GRS_ANALYZE_T_H_
23 #define _EXT_GRS_ANALYZE_T_H_
24
25
26 #include "common_t.h"
27 #include "analyze.h"
28
29
30
31
32 /** interface of an ir graph analyzer */
33 struct _ext_grs_analyzer_t
34 {
35         /** a tag identifying an analyzer, to be checked by search planers */
36         const char *tag;
37
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 *);
49
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 *);
58
59         /** this analyzers private data storage area */
60         void *data;
61 };
62
63
64
65
66
67 #endif /*_EXT_GRS_ANALYZE_T_H_*/