osprey-gcc-4.2.0/gcc/tree-inline.c File Reference

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "toplev.h"
#include "tree.h"
#include "tree-inline.h"
#include "rtl.h"
#include "expr.h"
#include "flags.h"
#include "params.h"
#include "input.h"
#include "insn-config.h"
#include "varray.h"
#include "hashtab.h"
#include "langhooks.h"
#include "basic-block.h"
#include "tree-iterator.h"
#include "cgraph.h"
#include "intl.h"
#include "tree-mudflap.h"
#include "tree-flow.h"
#include "function.h"
#include "ggc.h"
#include "diagnostic.h"
#include "except.h"
#include "debug.h"
#include "pointer-set.h"
#include "ipa-prop.h"
#include "tree-gimple.h"

Include dependency graph for tree-inline.c:

Go to the source code of this file.

Typedefs

typedef struct functionfunction_p

Functions/Subroutines

static tree declare_return_variable (copy_body_data *, tree, tree, tree *)
static tree copy_generic_body (copy_body_data *)
static bool inlinable_function_p (tree)
static void remap_block (tree *, copy_body_data *)
static tree remap_decls (tree, copy_body_data *)
static void copy_bind_expr (tree *, int *, copy_body_data *)
static tree mark_local_for_remap_r (tree *, int *, void *)
static void unsave_expr_1 (tree)
static tree unsave_r (tree *, int *, void *)
static void declare_inline_vars (tree, tree)
static void remap_save_expr (tree *, void *, int *)
static void add_lexical_block (tree current_block, tree new_block)
static tree copy_decl_to_var (tree, copy_body_data *)
static tree copy_result_decl_to_var (tree, copy_body_data *)
static tree copy_decl_no_change (tree, copy_body_data *)
static tree copy_decl_maybe_to_var (tree, copy_body_data *)
void insert_decl_map (copy_body_data *id, tree key, tree value)
tree remap_decl (tree decl, copy_body_data *id)
static tree remap_type_1 (tree type, copy_body_data *id)
tree remap_type (tree type, copy_body_data *id)
static tree remap_blocks (tree block, copy_body_data *id)
static void copy_statement_list (tree *tp)
tree copy_body_r (tree *tp, int *walk_subtrees, void *data)
static basic_block copy_bb (copy_body_data *id, basic_block bb, int frequency_scale, int count_scale)
static void copy_edges_for_bb (basic_block bb, int count_scale)
static tree remap_decl_1 (tree decl, void *data)
static tree copy_cfg_body (copy_body_data *id, gcov_type count, int frequency, basic_block entry_block_map, basic_block exit_block_map)
static tree copy_body (copy_body_data *id, gcov_type count, int frequency, basic_block entry_block_map, basic_block exit_block_map)
static bool self_inlining_addr_expr (tree value, tree fn)
static void setup_one_parameter (copy_body_data *id, tree p, tree value, tree fn, basic_block bb, tree *vars)
static void initialize_inlined_parameters (copy_body_data *id, tree args, tree static_chain, tree fn, basic_block bb)
bool tree_inlinable_function_p (tree fn)
static tree inline_forbidden_p_1 (tree *nodep, int *walk_subtrees ATTRIBUTE_UNUSED, void *fnp)
static tree inline_forbidden_p (tree fndecl)
int estimate_move_cost (tree type)
static tree estimate_num_insns_1 (tree *tp, int *walk_subtrees, void *data)
int estimate_num_insns (tree expr)
 DEF_VEC_P (function_p)
 DEF_VEC_ALLOC_P (function_p, heap)
static VEC (function_p, heap)
void pop_cfun (void)
static bool expand_call_inline (basic_block bb, tree stmt, tree *tp, void *data)
static bool gimple_expand_calls_inline (basic_block bb, copy_body_data *id)
void optimize_inline_calls (tree fn)
void clone_body (tree clone, tree fn, void *arg_map)
tree copy_tree_r (tree *tp, int *walk_subtrees, void *data ATTRIBUTE_UNUSED)
static tree mark_local_for_remap_r (tree *tp, int *walk_subtrees ATTRIBUTE_UNUSED, void *data)
tree unsave_expr_now (tree expr)
static tree debug_find_tree_1 (tree *tp, int *walk_subtrees ATTRIBUTE_UNUSED, void *data)
bool debug_find_tree (tree top, tree search)
static tree copy_decl_for_dup_finish (copy_body_data *id, tree decl, tree copy)
static tree copy_arguments_for_versioning (tree orig_parm, copy_body_data *id)
static tree copy_static_chain (tree static_chain, copy_body_data *id)
bool tree_versionable_function_p (tree fndecl)
void tree_function_versioning (tree old_decl, tree new_decl, varray_type tree_map, bool update_clones)
tree build_duplicate_type (tree type)

Variables

int flag_inline_trees = 0
static const char * inline_forbidden_reason


Typedef Documentation

Definition at line 1906 of file tree-inline.c.


Function Documentation

static void add_lexical_block ( tree  current_block,
tree  new_block 
) [static]

Definition at line 1929 of file tree-inline.c.

References BLOCK_SUBBLOCKS, BLOCK_SUPERCONTEXT, and TREE_CHAIN.

Referenced by expand_call_inline(), and remap_blocks().

tree build_duplicate_type ( tree  type  ) 

void clone_body ( tree  clone,
tree  fn,
void arg_map 
)

static tree copy_arguments_for_versioning ( tree  orig_parm,
copy_body_data id 
) [static]

Definition at line 2731 of file tree-inline.c.

References remap_decl(), and TREE_CHAIN.

Referenced by tree_function_versioning().

static basic_block copy_bb ( copy_body_data id,
basic_block  bb,
int  frequency_scale,
int  count_scale 
) [static]

static void copy_bind_expr ( tree tp,
int *  walk_subtrees,
copy_body_data id 
) [static]

static tree copy_body ( copy_body_data id,
gcov_type  count,
int  frequency,
basic_block  entry_block_map,
basic_block  exit_block_map 
) [static]

tree copy_body_r ( tree tp,
int *  walk_subtrees,
void data 
)

static tree copy_cfg_body ( copy_body_data id,
gcov_type  count,
int  frequency,
basic_block  entry_block_map,
basic_block  exit_block_map 
) [static]

static tree copy_decl_for_dup_finish ( copy_body_data id,
tree  decl,
tree  copy 
) [static]

static tree copy_decl_maybe_to_var ( tree  decl,
copy_body_data id 
) [static]

Definition at line 2721 of file tree-inline.c.

References copy_decl_no_change(), copy_decl_to_var(), and TREE_CODE.

Referenced by optimize_inline_calls().

static tree copy_decl_no_change ( tree  decl,
copy_body_data id 
) [static]

static tree copy_decl_to_var ( tree  decl,
copy_body_data id 
) [static]

static void copy_edges_for_bb ( basic_block  bb,
int  count_scale 
) [static]

static tree copy_generic_body ( copy_body_data id  )  [static]

Definition at line 988 of file tree-inline.c.

References copy_body_r(), DECL_SAVED_TREE, NULL, and walk_tree().

Referenced by clone_body().

static tree copy_result_decl_to_var ( tree  decl,
copy_body_data id 
) [static]

static void copy_statement_list ( tree tp  )  [static]

static tree copy_static_chain ( tree  static_chain,
copy_body_data id 
) [static]

Definition at line 2748 of file tree-inline.c.

References remap_decl(), and TREE_CHAIN.

Referenced by tree_function_versioning().

tree copy_tree_r ( tree tp,
int *  walk_subtrees,
void *data  ATTRIBUTE_UNUSED 
)

bool debug_find_tree ( tree  top,
tree  search 
)

Definition at line 2580 of file tree-inline.c.

References debug_find_tree_1(), and walk_tree_without_duplicates().

static tree debug_find_tree_1 ( tree tp,
int *walk_subtrees  ATTRIBUTE_UNUSED,
void data 
) [static]

Definition at line 2571 of file tree-inline.c.

References NULL.

static void declare_inline_vars ( tree  block,
tree  vars 
) [static]

static tree declare_return_variable ( copy_body_data id,
tree  return_slot_addr,
tree  modify_dest,
tree use_p 
) [static]

DEF_VEC_ALLOC_P ( function_p  ,
heap   
)

DEF_VEC_P ( function_p   ) 

int estimate_move_cost ( tree  type  ) 

Definition at line 1577 of file tree-inline.c.

References HOST_WIDE_INT, int_size_in_bytes(), MOVE_MAX_PIECES, MOVE_RATIO, and size.

int estimate_num_insns ( tree  expr  ) 

static tree estimate_num_insns_1 ( tree tp,
int *  walk_subtrees,
void data 
) [static]

static bool expand_call_inline ( basic_block  bb,
tree  stmt,
tree tp,
void data 
) [static]

static bool gimple_expand_calls_inline ( basic_block  bb,
copy_body_data id 
) [static]

static void initialize_inlined_parameters ( copy_body_data id,
tree  args,
tree  static_chain,
tree  fn,
basic_block  bb 
) [static]

static bool inlinable_function_p ( tree  fn  )  [static]

static tree inline_forbidden_p ( tree  fndecl  )  [static]

static tree inline_forbidden_p_1 ( tree nodep,
int *walk_subtrees  ATTRIBUTE_UNUSED,
void fnp 
) [static]

void insert_decl_map ( copy_body_data id,
tree  key,
tree  value 
)

Definition at line 134 of file tree-inline.c.

References copy_body_data::decl_map, and splay_tree_insert().

static tree mark_local_for_remap_r ( tree tp,
int *walk_subtrees  ATTRIBUTE_UNUSED,
void data 
) [static]

static tree mark_local_for_remap_r ( tree ,
int *  ,
void  
) [static]

void optimize_inline_calls ( tree  fn  ) 

void pop_cfun ( void   ) 

static void remap_block ( tree block,
copy_body_data id 
) [static]

static tree remap_blocks ( tree  block,
copy_body_data id 
) [static]

tree remap_decl ( tree  decl,
copy_body_data id 
)

static tree remap_decl_1 ( tree  decl,
void data 
) [static]

Definition at line 877 of file tree-inline.c.

References remap_decl().

Referenced by copy_cfg_body().

static tree remap_decls ( tree  decls,
copy_body_data id 
) [static]

static void remap_save_expr ( tree tp,
void st_,
int *  walk_subtrees 
) [static]

tree remap_type ( tree  type,
copy_body_data id 
)

static tree remap_type_1 ( tree  type,
copy_body_data id 
) [static]

static bool self_inlining_addr_expr ( tree  value,
tree  fn 
) [static]

Definition at line 1017 of file tree-inline.c.

References get_base_address(), TREE_CODE, and TREE_OPERAND.

static void setup_one_parameter ( copy_body_data id,
tree  p,
tree  value,
tree  fn,
basic_block  bb,
tree vars 
) [static]

void tree_function_versioning ( tree  old_decl,
tree  new_decl,
varray_type  tree_map,
bool  update_clones 
)

bool tree_inlinable_function_p ( tree  fn  ) 

Definition at line 1325 of file tree-inline.c.

References inlinable_function_p(), and NULL.

bool tree_versionable_function_p ( tree  fndecl  ) 

Definition at line 2766 of file tree-inline.c.

References NULL_TREE, and tree_inlinable_function_p().

Referenced by cgraph_function_versioning().

static void unsave_expr_1 ( tree  expr  )  [static]

tree unsave_expr_now ( tree  expr  ) 

static tree unsave_r ( tree tp,
int *  walk_subtrees,
void data 
) [static]

static VEC ( function_p  ,
heap   
) [static]

Definition at line 1912 of file tree-inline.c.

References cfun, and VEC_safe_push.


Variable Documentation

Definition at line 97 of file tree-inline.c.

const char* inline_forbidden_reason [static]

Definition at line 1330 of file tree-inline.c.


Generated on Wed Apr 8 15:46:45 2009 for Open64 by  doxygen 1.5.6