#define FIRM_ANA_INTERVAL_ANALYSIS_H
#include "firm_types.h"
+#include <stdio.h>
+#include "begin.h"
-/** The ins of regions: regions are loops or blocks.
- *
- * @todo: we should make a type for the regions, or reuse loop_element.
- */
-int get_region_n_ins(void *region);
-void *get_region_in (void *region, int pos);
-void add_region_in (void *region, void *in);
+/** The ins of regions: regions are loops or blocks. */
+FIRM_API int get_region_n_ins(void *region);
+FIRM_API void *get_region_in(void *region, int pos);
+FIRM_API void add_region_in(void *region, void *in);
/** The number of out edges of a region.
*
* This number is useful for evaluation of execution frequencies.
*/
-int get_region_n_outs(void *region);
+FIRM_API int get_region_n_outs(void *region);
/** The number of exception out edges of a region.
*
* This number is useful for evaluation of execution frequencies.
*/
-int get_region_n_exc_outs(void *region);
+FIRM_API int get_region_n_exc_outs(void *region);
/** The control flow operation corresponding to the loop-region in at
* position pos.
*/
-void *get_loop_cfop(void *region, int pos);
+FIRM_API void *get_loop_cfop(void *region, int pos);
/** The algorithm to construct the interval graph.
*
* Constructs the cf loop tree and leaves a valid version of it.
- *
- * @todo: @@@ add flag that states correctness of interval analysis information
- * to irg.
- **/
-void construct_intervals(ir_graph *irg);
-
+ */
+FIRM_API void construct_intervals(ir_graph *irg);
/** frees interval information of all graphs. */
-void free_intervals(void);
-
-
-/** dump a graph with the intervals. File name suffix "-interval". */
-void dump_interval_graph(ir_graph *irg, const char *suffix);
+FIRM_API void free_intervals(void);
+/** dump a vcg graph with the intervals */
+FIRM_API void dump_interval_graph(FILE *out, ir_graph *irg);
-#define DDMR(X) if(is_ir_node(X)) DDMN(X); else DDML(X)
+#include "end.h"
#endif