*
* @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.
*
*
* 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.
*
*/
void remove_critical_cf_edges(ir_graph *irg);
-# endif /* _IRGOPT_H_ */
+#endif /* _FIRM_IR_IRGOPT_H_ */