osprey-gcc/gcc/tree-nested.c File Reference

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
#include "rtl.h"
#include "tm_p.h"
#include "function.h"
#include "tree-dump.h"
#include "tree-inline.h"
#include "tree-gimple.h"
#include "tree-iterator.h"
#include "tree-flow.h"
#include "cgraph.h"
#include "expr.h"
#include "langhooks.h"
#include "ggc.h"
#include "gt-tree-nested.h"

Include dependency graph for tree-nested.c:

Go to the source code of this file.

Data Types

type  var_map_elt
type  nesting_info
type  walk_stmt_info

Defines

#define create_tmp_var   cant_use_create_tmp_var_here_dummy

Functions/Subroutines

static hashval_t var_map_hash (const void *x)
static int var_map_eq (const void *x, const void *y)
static tree create_tmp_var_for (struct nesting_info *info, tree type, const char *prefix)
tree build_addr (tree exp)
static void insert_field_into_struct (tree type, tree field)
static tree get_frame_type (struct nesting_info *info)
static bool use_pointer_in_frame (tree decl)
static tree lookup_field_for_decl (struct nesting_info *info, tree decl, enum insert_option insert)
static tree get_chain_decl (struct nesting_info *info)
static tree get_chain_field (struct nesting_info *info)
static tree init_tmp_var (struct nesting_info *info, tree exp, tree_stmt_iterator *tsi)
static tree tsi_gimplify_val (struct nesting_info *info, tree exp, tree_stmt_iterator *tsi)
static tree save_tmp_var (struct nesting_info *info, tree exp, tree_stmt_iterator *tsi)
static GTY (())
static tree lookup_tramp_for_decl (struct nesting_info *info, tree decl, enum insert_option insert)
static tree get_nl_goto_field (struct nesting_info *info)
static void walk_stmts (struct walk_stmt_info *wi, tree *tp)
static void walk_function (walk_tree_fn callback, struct nesting_info *info)
static void walk_all_functions (walk_tree_fn callback, struct nesting_info *root)
static bool check_for_nested_with_variably_modified (tree fndecl, tree orig_fndecl)
static struct nesting_infocreate_nesting_tree (struct cgraph_node *cgn)
static tree get_static_chain (struct nesting_info *info, tree target_context, tree_stmt_iterator *tsi)
static tree get_frame_field (struct nesting_info *info, tree target_context, tree field, tree_stmt_iterator *tsi)
static tree convert_nonlocal_reference (tree *tp, int *walk_subtrees, void *data)
static tree convert_local_reference (tree *tp, int *walk_subtrees, void *data)
static tree convert_nl_goto_reference (tree *tp, int *walk_subtrees, void *data)
static tree convert_nl_goto_receiver (tree *tp, int *walk_subtrees, void *data)
static tree convert_tramp_reference (tree *tp, int *walk_subtrees, void *data)
static tree convert_call_expr (tree *tp, int *walk_subtrees, void *data)
static void convert_all_function_calls (struct nesting_info *root)
static void finalize_nesting_tree_1 (struct nesting_info *root)
static void finalize_nesting_tree (struct nesting_info *root)
static void free_nesting_tree (struct nesting_info *root)
void lower_nested_functions (tree fndecl)


Define Documentation

#define create_tmp_var   cant_use_create_tmp_var_here_dummy

Definition at line 125 of file tree-nested.c.

Referenced by abs_replacement(), adjust_accumulator_values(), adjust_return_value(), build_stack_save_restore(), conditional_replacement(), create_expression_by_pieces(), create_iv(), create_one_component_var(), create_temp(), create_tmp_from_val(), cxx_omp_clause_apply_fn(), determine_invariantness_stmt(), do_return_redirection(), expand_omp_for_generic(), expand_omp_sections(), expand_parallel_call(), factor_computed_gotos(), gimple_push_cleanup(), gimplify_cond_expr(), gimplify_decl_expr(), gimplify_init_ctor_eval_range(), gimplify_omp_atomic_pipeline(), gimplify_one_sizepos(), gimplify_parameters(), gimplify_return_expr(), honor_protect_cleanup_actions(), ifc_temp_var(), init_tmp_var(), insert_extra_phis(), insert_fake_stores(), insert_into_preds_of_block(), ix86_gimplify_va_arg(), lambda_loopnest_to_gcc_loopnest(), lbv_to_gcc_expression(), lle_to_gcc_expression(), lower_function_body(), lower_omp_parallel(), lower_omp_single_copy(), lower_try_finally_switch(), make_rename_temp(), mf_build_check_statement_for(), mf_decl_cache_locals(), perfect_nestify(), replace_uses_equiv_to_x_with_y(), rewrite_address_base(), rs6000_gimplify_va_arg(), s390_gimplify_va_arg(), save_tmp_var(), sh_gimplify_va_arg_expr(), sparc_gimplify_va_arg(), tree_divmod_fixed_value(), tree_gen_edge_profiler(), tree_mod_pow2(), tree_mod_subtract(), tree_optimize_tail_calls_1(), tree_unroll_loop(), vect_build_loop_niters(), vect_create_addr_base_for_vector_ref(), vect_create_cond_for_align_checks(), vect_create_data_ref_ptr(), vect_gen_niters_for_prolog_loop(), vect_generate_tmps_on_preheader(), vect_get_new_vect_var(), vect_pattern_recog_1(), vect_update_ivs_after_vectorizer(), voidify_wrapper_expr(), xstormy16_expand_builtin_va_arg(), and xtensa_gimplify_va_arg_expr().


Function Documentation

tree build_addr ( tree  exp  ) 

static bool check_for_nested_with_variably_modified ( tree  fndecl,
tree  orig_fndecl 
) [static]

static void convert_all_function_calls ( struct nesting_info root  )  [static]

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

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

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

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

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

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

static struct nesting_info* create_nesting_tree ( struct cgraph_node *  cgn  )  [static, read]

static tree create_tmp_var_for ( struct nesting_info info,
tree  type,
const char *  prefix 
) [static]

static void finalize_nesting_tree ( struct nesting_info root  )  [static]

static void finalize_nesting_tree_1 ( struct nesting_info root  )  [static]

static void free_nesting_tree ( struct nesting_info root  )  [static]

static tree get_chain_decl ( struct nesting_info info  )  [static]

static tree get_chain_field ( struct nesting_info info  )  [static]

static tree get_frame_field ( struct nesting_info info,
tree  target_context,
tree  field,
tree_stmt_iterator tsi 
) [static]

static tree get_frame_type ( struct nesting_info info  )  [static]

static tree get_nl_goto_field ( struct nesting_info info  )  [static]

static tree get_static_chain ( struct nesting_info info,
tree  target_context,
tree_stmt_iterator tsi 
) [static]

static GTY ( ()   )  [static]

static tree init_tmp_var ( struct nesting_info info,
tree  exp,
tree_stmt_iterator tsi 
) [static]

static void insert_field_into_struct ( tree  type,
tree  field 
) [static]

static tree lookup_field_for_decl ( struct nesting_info info,
tree  decl,
enum insert_option  insert 
) [static]

static tree lookup_tramp_for_decl ( struct nesting_info info,
tree  decl,
enum insert_option  insert 
) [static]

void lower_nested_functions ( tree  fndecl  ) 

static tree save_tmp_var ( struct nesting_info info,
tree  exp,
tree_stmt_iterator tsi 
) [static]

static tree tsi_gimplify_val ( struct nesting_info info,
tree  exp,
tree_stmt_iterator tsi 
) [static]

static bool use_pointer_in_frame ( tree  decl  )  [static]

static int var_map_eq ( const void x,
const void y 
) [static]

Definition at line 116 of file tree-nested.c.

References a, b, and var_map_elt::old.

Referenced by create_nesting_tree().

static hashval_t var_map_hash ( const void x  )  [static]

Definition at line 109 of file tree-nested.c.

References a, htab_hash_pointer, and var_map_elt::old.

Referenced by create_nesting_tree().

static void walk_all_functions ( walk_tree_fn  callback,
struct nesting_info root 
) [static]

Definition at line 627 of file tree-nested.c.

References nesting_info::inner, nesting_info::next, and walk_function().

Referenced by lower_nested_functions().

static void walk_function ( walk_tree_fn  callback,
struct nesting_info info 
) [static]

static void walk_stmts ( struct walk_stmt_info wi,
tree tp 
) [static]


Generated on Wed Apr 8 14:22:25 2009 for Open64 by  doxygen 1.5.6