differentiate between Bad and Deleted (because of exchange) nodes, this avoid some...
[libfirm] / include / libfirm / irio.h
index 89ed8b8..0fe4ee5 100644 (file)
@@ -22,6 +22,9 @@
  * @brief   Import/export textual representation of firm.
  * @author  Moritz Kroll
  * @version $Id$
+ *
+ * Note: The file format is not considered stable yet. So expect
+ * incompatibilities between file formats of different libfirm versions.
  */
 #ifndef FIRM_IR_IRIO_H
 #define FIRM_IR_IRIO_H
 #include <stdio.h>
 
 #include "firm_types.h"
+#include "begin.h"
 
 /**
- * Exports the given ir graph to the given file in a textual form.
+ * Exports the whole irp to the given file in a textual form.
  *
- * @param irg       the ir graph
  * @param filename  the name of the resulting file
  *
+ * Exports all types, all ir graphs, and the constant graph.
+ */
+FIRM_API void ir_export(const char *filename);
+
+/**
+ * same as ir_export but writes to a FILE*
+ */
+FIRM_API void ir_export_file(FILE *output, const char *outputname);
+
+/**
+ * Write the given ir graph to a stream in a textual format
+ *
+ * @param irg         the ir graph
+ * @param output      output stream the irg is written to
+ * @param outputname  a name for the output stream (used for error messages)
+ *
  * Exports the type graph used by the given graph and the graph itself.
  */
-void ir_export_irg(ir_graph *irg, const char *filename);
+FIRM_API void ir_export_irg(ir_graph *irg, FILE *output,
+                            const char *outputname);
 
 /**
  * Imports the data stored in the given file.
@@ -47,6 +67,13 @@ void ir_export_irg(ir_graph *irg, const char *filename);
  *
  * Imports any type graphs and ir graphs contained in the file.
  */
-void ir_import(const char *filename);
+FIRM_API void ir_import(const char *filename);
+
+/**
+ * same as ir_import but imports from a FILE*
+ */
+FIRM_API void ir_import_file(FILE *input, const char *inputname);
+
+#include "end.h"
 
 #endif