osprey/kg++fe/gnu/tree-inline.c File Reference

#include "config.h"
#include "system.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 "integrate.h"
#include "varray.h"
#include "hashtab.h"
#include "splay-tree.h"
#include "langhooks.h"
#include "c-common.h"

Include dependency graph for tree-inline.c:

Go to the source code of this file.

Data Types

type  inline_data

Defines

#define INSNS_PER_STMT   (10)
#define WALK_SUBTREE(NODE)
#define WALK_SUBTREE_TAIL(NODE)

Functions/Subroutines

static tree declare_return_variable PARAMS ((inline_data *, tree *))
static tree copy_body_r PARAMS ((tree *, int *, void *))
static tree copy_body PARAMS ((inline_data *))
static void expand_calls_inline PARAMS ((tree *, inline_data *))
static int inlinable_function_p PARAMS ((tree, inline_data *))
static tree
initialize_inlined_parameters 
PARAMS ((inline_data *, tree, tree))
static void remap_block PARAMS ((tree, tree, inline_data *))
static void copy_scope_stmt PARAMS ((tree *, int *, inline_data *))
static tree find_alloca_call PARAMS ((tree))
static tree remap_decl (tree decl, inline_data *id)
static void remap_block (tree scope_stmt, tree decls, inline_data *id)
static void copy_scope_stmt (tree *tp, int *walk_subtrees, inline_data *id)
static tree copy_body_r (tree *tp, int *walk_subtrees, void *data)
static tree copy_body (inline_data *id)
static tree initialize_inlined_parameters (inline_data *id, tree args, tree fn)
static tree declare_return_variable (struct inline_data *id, tree *use_stmt)
int tree_inlinable_function_p (tree fn)
static tree find_alloca_call_1 (tree *tp, walk_subtrees, data)
static tree find_alloca_call (tree exp)
static tree find_builtin_longjmp_call_1 (tree *tp, walk_subtrees, data)
static tree find_builtin_longjmp_call (tree exp)
static int inlinable_function_p (tree fn, inline_data *id)
static tree expand_call_inline (tree *tp, int *walk_subtrees, void *data)
static void expand_calls_inline (tree *tp, inline_data *id)
void optimize_inline_calls (tree fn)
void clone_body (tree clone, tree fn, void *arg_map)
tree walk_tree (tree *tp, walk_tree_fn func, void *data, void *htab_)
tree walk_tree_without_duplicates (tree *tp, walk_tree_fn func, void *data)
tree copy_tree_r (tree *tp, int *walk_subtrees, data)
void remap_save_expr (tree *tp, void *st_, tree fn, int *walk_subtrees)

Variables

int flag_inline_trees = 0


Define Documentation

#define INSNS_PER_STMT   (10)

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

Referenced by inlinable_function_p().

#define WALK_SUBTREE ( NODE   ) 

Value:

do              \
    {             \
      result = walk_tree (&(NODE), func, data, htab); \
      if (result)         \
  return result;          \
    }             \
  while (0)

#define WALK_SUBTREE_TAIL ( NODE   ) 

Value:

do              \
    {             \
       tp = & (NODE);         \
       goto tail_recurse;       \
    }             \
  while (0)

Referenced by walk_tree().


Function Documentation

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

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

Referenced by maybe_clone_body().

static tree copy_body ( inline_data id  )  [static]

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

static void copy_scope_stmt ( tree tp,
int *  walk_subtrees,
inline_data id 
) [static]

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

References copy_tree_r(), NULL, NULL_TREE, remap_block(), and SCOPE_STMT_BLOCK.

Referenced by copy_body_r().

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

static tree declare_return_variable ( struct inline_data id,
tree use_stmt 
) [static]

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

static void expand_calls_inline ( tree tp,
inline_data id 
) [static]

static tree find_alloca_call ( tree  exp  )  [static]

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

References find_alloca_call_1(), NULL, and walk_tree_without_duplicates().

Referenced by inlinable_function_p().

static tree find_alloca_call_1 ( tree tp,
walk_subtrees  ,
data   
) [static]

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

References alloca_call_p(), and NULL.

Referenced by find_alloca_call().

static tree find_builtin_longjmp_call ( tree  exp  )  [static]

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

References find_builtin_longjmp_call_1(), NULL, and walk_tree_without_duplicates().

Referenced by inlinable_function_p().

static tree find_builtin_longjmp_call_1 ( tree tp,
walk_subtrees  ,
data   
) [static]

static tree initialize_inlined_parameters ( inline_data id,
tree  args,
tree  fn 
) [static]

static int inlinable_function_p ( tree  fn,
inline_data id 
) [static]

void optimize_inline_calls ( tree  fn  ) 

static tree find_alloca_call PARAMS ( (tree  )  [static]

static void copy_scope_stmt PARAMS ( (tree *, int *, inline_data *)   )  [static]

static void remap_block PARAMS ( (tree, tree, inline_data *)   )  [static]

static tree initialize_inlined_parameters PARAMS ( (inline_data *, tree, tree  )  [static]

static int inlinable_function_p PARAMS ( (tree, inline_data *)   )  [static]

static void expand_calls_inline PARAMS ( (tree *, inline_data *)   )  [static]

static tree copy_body PARAMS ( (inline_data *)   )  [static]

static tree copy_body_r PARAMS ( (tree *, int *, void *)   )  [static]

static tree declare_return_variable PARAMS ( (inline_data *, tree *)   )  [static]

static void remap_block ( tree  scope_stmt,
tree  decls,
inline_data id 
) [static]

static tree remap_decl ( tree  decl,
inline_data id 
) [static]

void remap_save_expr ( tree tp,
void st_,
tree  fn,
int *  walk_subtrees 
)

int tree_inlinable_function_p ( tree  fn  ) 

tree walk_tree ( tree tp,
walk_tree_fn  func,
void data,
void htab_ 
)

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

References abort, BLOCK, COMPLEX_TYPE, CONSTRUCTOR_ELTS, DECL_INITIAL, DECL_P, DECL_SIZE, DECL_SIZE_UNIT, DECL_STMT_DECL, first_rtl_op(), htab_find_slot(), i, INSERT, IS_EXPR_CODE_CLASS, len, lineno, NULL_TREE, result, statement_code_p, STMT_LINENO, STMT_LINENO_FOR_FN_P, TREE_CHAIN, TREE_CODE, TREE_CODE_CLASS, TREE_IMAGPART, TREE_OPERAND, TREE_REALPART, TREE_TYPE, TREE_VALUE, TREE_VEC_ELT, TREE_VEC_LENGTH, TYPE_ARG_TYPES, TYPE_DOMAIN, TYPE_MAX_VALUE, TYPE_METHOD_BASETYPE, TYPE_MIN_VALUE, TYPE_OFFSET_BASETYPE, TYPE_SIZE, TYPE_SIZE_UNIT, variably_modified_type_p(), WALK_SUBTREE, and WALK_SUBTREE_TAIL.

Referenced by add_candidate_1(), add_referenced_var(), analyze_function(), analyze_variable(), break_out_target_exprs(), browse_tree(), c_expand_body(), cgraph_create_edges(), cgraph_varpool_analyze_pending_decls(), collect_dfa_stats(), computation_cost(), contains_label_p(), convert_local_reference(), convert_nonlocal_reference(), convert_tramp_reference(), copy_bb(), copy_body(), copy_body_r(), copy_generic_body(), copy_if_shared_r(), count_uses_and_derefs(), cp_genericize(), cxx_unsave_expr_now(), determine_use_iv_cost_condition(), diagnose_sb_1(), diagnose_sb_2(), discover_nonconstant_array_refs(), estimate_num_insns(), execute_early_warn_uninitialized(), execute_optimize_stdarg(), expand_call_inline(), expand_calls_inline(), finalize_nrv(), find_new_referenced_vars(), find_referenced_vars(), find_single_pointer_decl(), fixup_remapped_decl(), fold_stmt(), fold_stmt_inplace(), fold_stmt_r(), for_each_template_parm(), force_var_cost(), gimplify_body(), gimplify_decl_expr(), gimplify_init_constructor(), gimplify_init_ctor_preeval(), instantiate_decls(), instantiate_decls_1(), mark_all_vars_used(), memory_address_same(), move_block_to_fn(), move_stmt_r(), record_call_1(), remap_decl(), remap_type(), remap_type_1(), scalarize_ldst(), scan_for_refs(), scan_for_static_refs(), scan_function(), split_address_cost(), sra_walk_expr(), TB_update_up(), tree_nrv(), tree_overlaps_hard_reg_set(), unsave_expr_now(), unshare_all_trees(), unshare_body(), unshare_expr(), unvisit_body(), verify_stmt(), verify_stmt_tree(), verify_stmts(), walk_stmts(), and walk_tree_without_duplicates().

tree walk_tree_without_duplicates ( tree tp,
walk_tree_fn  func,
void data 
)


Variable Documentation


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