1/* Tree inlining hooks and declarations. 2 Copyright 2001, 2003, 2004, 2005 Free Software Foundation, Inc. 3 Contributed by Alexandre Oliva <aoliva@redhat.com> 4 5This file is part of GCC. 6 7GCC is free software; you can redistribute it and/or modify 8it under the terms of the GNU General Public License as published by 9the Free Software Foundation; either version 2, or (at your option) 10any later version. 11 12GCC is distributed in the hope that it will be useful, 13but WITHOUT ANY WARRANTY; without even the implied warranty of 14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15GNU General Public License for more details. 16 17You should have received a copy of the GNU General Public License 18along with GCC; see the file COPYING. If not, write to 19the Free Software Foundation, 51 Franklin Street, Fifth Floor, 20Boston, MA 02110-1301, USA. */ 21 22#ifndef GCC_TREE_INLINE_H 23#define GCC_TREE_INLINE_H 24 25#include "varray.h" 26/* Function prototypes. */ 27 28void optimize_inline_calls (tree); 29bool tree_inlinable_function_p (tree); 30tree copy_tree_r (tree *, int *, void *); 31void clone_body (tree, tree, void *); 32void save_body (tree, tree *, tree *); 33int estimate_move_cost (tree type); 34void push_cfun (struct function *new_cfun); 35void pop_cfun (void); 36int estimate_num_insns (tree expr); 37bool tree_versionable_function_p (tree); 38void tree_function_versioning (tree, tree, varray_type); 39 40/* Copy a declaration when one function is substituted inline into 41 another. It is used also for versioning. */ 42extern tree copy_decl_for_dup (tree, tree, tree, bool); 43 44/* 0 if we should not perform inlining. 45 1 if we should expand functions calls inline at the tree level. 46 2 if we should consider *all* functions to be inline 47 candidates. */ 48 49extern int flag_inline_trees; 50 51#endif /* GCC_TREE_INLINE_H */ 52