/*
- * Project: libFIRM
- * File name: ir/ir/irgopt.h
- * Purpose: Optimizations for a whole ir graph, i.e., a procedure.
- * Author: Christian Schaefer, Goetz Lindenmaier
- * Modified by: Sebastian Felis
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2003 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved.
+ *
+ * This file is part of libFirm.
+ *
+ * This file may be distributed and/or modified under the terms of the
+ * GNU General Public License version 2 as published by the Free Software
+ * Foundation and appearing in the file LICENSE.GPL included in the
+ * packaging of this file.
+ *
+ * Licensees holding valid libFirm Professional Edition licenses may use
+ * this file in accordance with the libFirm Commercial License.
+ * Agreement provided with the Software.
+ *
+ * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+ * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE.
*/
/**
- * @file irgopt.h
- *
- * Optimizations for a whole ir graph, i.e., a procedure.
- *
- * @author Christian Schaefer, Goetz Lindenmaier
+ * @file
+ * @brief Optimizations for a whole ir graph, i.e., a procedure.
+ * @author Christian Schaefer, Goetz Lindenmaier, Sebastian Felis
+ * @version $Id$
*/
-#ifndef _FIRM_IR_IRGOPT_H_
-#define _FIRM_IR_IRGOPT_H_
+#ifndef FIRM_IR_IRGOPT_H
+#define FIRM_IR_IRGOPT_H
#include "firm_types.h"
*
* 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 /* _FIRM_IR_IRGOPT_H_ */
+#endif