never set the startblock to bad (even without the self-referencing loop)
[libfirm] / ir / ir / irgopt.h
index 786dff6..062345b 100644 (file)
  *
  * @author Christian Schaefer, Goetz Lindenmaier
  */
+#ifndef _FIRM_IR_IRGOPT_H_
+#define _FIRM_IR_IRGOPT_H_
 
-# ifndef _IRGOPT_H_
-# define _IRGOPT_H_
-
-# include "irgraph.h"
+#include "firm_types.h"
 
 /** Applies local optimizations (see iropt.h) to all nodes reachable from node n.
  *
@@ -166,15 +165,19 @@ void inline_small_irgs(ir_graph *irg, int size);
  *
  *  For a heuristic this inlineing uses firm node counts.  It does
  *  not count auxiliary nodes as Proj, Tuple, End, Start, Id, Sync.
- *
- *  @param maxsize   Do not inline any calls if a method has more than
- *                   maxsize firm nodes.  It may reach this limit by
- *                   inlineing.
- *  @param leavesize Inline leave functions if they have less than leavesize
- *                   nodes.
- *  @param size      Inline all function smaller than size.
+ *  If the ignore_runtime flag is set, calls to functions marked with the
+ *  mtp_property_runtime property are ignored.
+ *
+ *  @param maxsize         Do not inline any calls if a method has more than
+ *                         maxsize firm nodes.  It may reach this limit by
+ *                         inlineing.
+ *  @param leavesize       Inline leave functions if they have less than leavesize
+ *                         nodes.
+ *  @param size            Inline all function smaller than size.
+ *  @param ignore_runtime  count a function only calling runtime functions as
+ *                         leave
  */
-void inline_leave_functions(int maxsize, int leavesize, int size);
+void inline_leave_functions(int maxsize, int leavesize, int size, int ignore_runtime);
 
 /** Code Placement.
  *
@@ -206,4 +209,4 @@ void place_code(ir_graph *irg);
  */
 void remove_critical_cf_edges(ir_graph *irg);
 
-# endif /* _IRGOPT_H_ */
+#endif /* _FIRM_IR_IRGOPT_H_ */