osprey-gcc-4.2.0/gcc/omp-low.c File Reference

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
#include "rtl.h"
#include "tree-gimple.h"
#include "tree-inline.h"
#include "langhooks.h"
#include "diagnostic.h"
#include "tree-flow.h"
#include "timevar.h"
#include "flags.h"
#include "function.h"
#include "expr.h"
#include "toplev.h"
#include "tree-pass.h"
#include "ggc.h"
#include "except.h"
#include "gt-omp-low.h"

Include dependency graph for omp-low.c:

Go to the source code of this file.

Data Types

type  omp_context
type  omp_for_data

Functions/Subroutines

static void scan_omp (tree *, omp_context *)
static void lower_omp (tree *, omp_context *)
static tree lookup_decl_in_outer_ctx (tree, omp_context *)
static tree maybe_lookup_decl_in_outer_ctx (tree, omp_context *)
static tree find_omp_clause (tree clauses, enum tree_code kind)
static bool is_parallel_ctx (omp_context *ctx)
static bool is_combined_parallel (struct omp_region *region)
static void extract_omp_for_data (tree for_stmt, struct omp_for_data *fd)
static bool workshare_safe_to_combine_p (basic_block par_entry_bb, basic_block ws_entry_bb)
static tree get_ws_args_for (tree ws_stmt)
static void determine_parallel_type (struct omp_region *region)
static bool is_variable_sized (tree expr)
static bool is_reference (tree decl)
static tree lookup_decl (tree var, omp_context *ctx)
static tree maybe_lookup_decl (tree var, omp_context *ctx)
static tree lookup_field (tree var, omp_context *ctx)
static tree maybe_lookup_field (tree var, omp_context *ctx)
static bool use_pointer_for_field (tree decl, bool shared_p)
static tree omp_copy_decl_2 (tree var, tree name, tree type, omp_context *ctx)
static tree omp_copy_decl_1 (tree var, omp_context *ctx)
static tree build_receiver_ref (tree var, bool by_ref, omp_context *ctx)
static tree build_outer_var_ref (tree var, omp_context *ctx)
static tree build_sender_ref (tree var, omp_context *ctx)
static void install_var_field (tree var, bool by_ref, omp_context *ctx)
static tree install_var_local (tree var, omp_context *ctx)
static void fixup_remapped_decl (tree decl, omp_context *ctx, bool private_debug)
static tree omp_copy_decl (tree var, copy_body_data *cb)
void dump_omp_region (FILE *, struct omp_region *, int)
void debug_omp_region (struct omp_region *)
void debug_all_omp_regions (void)
struct omp_regionnew_omp_region (basic_block bb, enum tree_code type, struct omp_region *parent)
static void free_omp_region_1 (struct omp_region *region)
void free_omp_regions (void)
static omp_contextnew_omp_context (tree stmt, omp_context *outer_ctx)
static void delete_omp_context (splay_tree_value value)
static void fixup_child_record_type (omp_context *ctx)
static void scan_sharing_clauses (tree clauses, omp_context *ctx)
static GTY (())
static void create_omp_child_function (omp_context *ctx)
static void scan_omp_parallel (tree *stmt_p, omp_context *outer_ctx)
static void scan_omp_for (tree *stmt_p, omp_context *outer_ctx)
static void scan_omp_sections (tree *stmt_p, omp_context *outer_ctx)
static void scan_omp_single (tree *stmt_p, omp_context *outer_ctx)
static void check_omp_nesting_restrictions (tree t, omp_context *ctx)
static tree scan_omp_1 (tree *tp, int *walk_subtrees, void *data)
static void build_omp_barrier (tree *stmt_list)
static omp_contextmaybe_lookup_ctx (tree stmt)
tree omp_reduction_init (tree clause, tree type)
static void lower_rec_input_clauses (tree clauses, tree *ilist, tree *dlist, omp_context *ctx)
static void lower_lastprivate_clauses (tree clauses, tree predicate, tree *stmt_list, omp_context *ctx)
static void lower_reduction_clauses (tree clauses, tree *stmt_list, omp_context *ctx)
static void lower_copyprivate_clauses (tree clauses, tree *slist, tree *rlist, omp_context *ctx)
static void lower_send_clauses (tree clauses, tree *ilist, tree *olist, omp_context *ctx)
static void lower_send_shared_vars (tree *ilist, tree *olist, omp_context *ctx)
static void expand_parallel_call (struct omp_region *region, basic_block bb, tree entry_stmt, tree ws_args)
static void maybe_catch_exception (tree *stmt_p)
static tree list2chain (tree list)
static void remove_exit_barrier (struct omp_region *region)
static void remove_exit_barriers (struct omp_region *region)
static void expand_omp_parallel (struct omp_region *region)
static void expand_omp_for_generic (struct omp_region *region, struct omp_for_data *fd, enum built_in_function start_fn, enum built_in_function next_fn)
static void expand_omp_for_static_nochunk (struct omp_region *region, struct omp_for_data *fd)
static void expand_omp_for_static_chunk (struct omp_region *region, struct omp_for_data *fd)
static void expand_omp_for (struct omp_region *region)
static void expand_omp_sections (struct omp_region *region)
static void expand_omp_single (struct omp_region *region)
static void expand_omp_synch (struct omp_region *region)
static void expand_omp (struct omp_region *region)
static void build_omp_regions_1 (basic_block bb, struct omp_region *parent)
static void build_omp_regions (void)
static unsigned int execute_expand_omp (void)
static bool gate_expand_omp (void)
static void lower_omp_sections (tree *stmt_p, omp_context *ctx)
static void lower_omp_single_simple (tree single_stmt, tree *pre_p)
static void lower_omp_single_copy (tree single_stmt, tree *pre_p, omp_context *ctx)
static void lower_omp_single (tree *stmt_p, omp_context *ctx)
static void lower_omp_master (tree *stmt_p, omp_context *ctx)
static void lower_omp_ordered (tree *stmt_p, omp_context *ctx)
static GTY ((param1_is(tree), param2_is(tree)))
static void lower_omp_for_lastprivate (struct omp_for_data *fd, tree *body_p, tree *dlist, struct omp_context *ctx)
static void lower_omp_for (tree *stmt_p, omp_context *ctx)
static void lower_omp_parallel (tree *stmt_p, omp_context *ctx)
static void lower_regimplify (tree *tp, struct walk_stmt_info *wi)
static tree init_tmp_var (tree exp, tree_stmt_iterator *tsi)
static tree save_tmp_var (tree exp, tree_stmt_iterator *tsi)
static tree lower_omp_1 (tree *tp, int *walk_subtrees, void *data)
static unsigned int execute_lower_omp (void)
static bool gate_lower_omp (void)
static bool diagnose_sb_0 (tree *stmt_p, tree branch_ctx, tree label_ctx)
static tree diagnose_sb_1 (tree *tp, int *walk_subtrees, void *data)
static tree diagnose_sb_2 (tree *tp, int *walk_subtrees, void *data)
void diagnose_omp_structured_block_errors (tree fndecl)

Variables

static splay_tree all_contexts
static int parallel_nesting_level
struct omp_regionroot_omp_region
struct tree_opt_pass pass_expand_omp
struct tree_opt_pass pass_lower_omp
static splay_tree all_labels


Function Documentation

static void build_omp_barrier ( tree stmt_list  )  [static]

static void build_omp_regions ( void   )  [static]

static void build_omp_regions_1 ( basic_block  bb,
struct omp_region parent 
) [static]

static tree build_outer_var_ref ( tree  var,
omp_context ctx 
) [static]

static tree build_receiver_ref ( tree  var,
bool  by_ref,
omp_context ctx 
) [static]

static tree build_sender_ref ( tree  var,
omp_context ctx 
) [static]

static void check_omp_nesting_restrictions ( tree  t,
omp_context ctx 
) [static]

static void create_omp_child_function ( omp_context ctx  )  [static]

void debug_all_omp_regions ( void   ) 

Definition at line 750 of file omp-low.c.

References dump_omp_region().

void debug_omp_region ( struct omp_region region  ) 

Definition at line 744 of file omp-low.c.

References dump_omp_region().

static void delete_omp_context ( splay_tree_value  value  )  [static]

static void determine_parallel_type ( struct omp_region region  )  [static]

void diagnose_omp_structured_block_errors ( tree  fndecl  ) 

static bool diagnose_sb_0 ( tree stmt_p,
tree  branch_ctx,
tree  label_ctx 
) [static]

Definition at line 4433 of file omp-low.c.

References build_empty_stmt(), error(), NULL, TREE_CHAIN, and TREE_VALUE.

Referenced by diagnose_sb_2().

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

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

void dump_omp_region ( FILE file,
struct omp_region region,
int  indent 
)

static unsigned int execute_expand_omp ( void   )  [static]

static unsigned int execute_lower_omp ( void   )  [static]

static void expand_omp ( struct omp_region region  )  [static]

static void expand_omp_for ( struct omp_region region  )  [static]

static void expand_omp_for_generic ( struct omp_region region,
struct omp_for_data fd,
enum built_in_function  start_fn,
enum built_in_function  next_fn 
) [static]

static void expand_omp_for_static_chunk ( struct omp_region region,
struct omp_for_data fd 
) [static]

static void expand_omp_for_static_nochunk ( struct omp_region region,
struct omp_for_data fd 
) [static]

static void expand_omp_parallel ( struct omp_region region  )  [static]

static void expand_omp_sections ( struct omp_region region  )  [static]

static void expand_omp_single ( struct omp_region region  )  [static]

static void expand_omp_synch ( struct omp_region region  )  [static]

static void expand_parallel_call ( struct omp_region region,
basic_block  bb,
tree  entry_stmt,
tree  ws_args 
) [static]

static void extract_omp_for_data ( tree  for_stmt,
struct omp_for_data fd 
) [static]

static tree find_omp_clause ( tree  clauses,
enum tree_code  kind 
) [static]

static void fixup_child_record_type ( omp_context ctx  )  [static]

static void fixup_remapped_decl ( tree  decl,
omp_context ctx,
bool  private_debug 
) [static]

static void free_omp_region_1 ( struct omp_region region  )  [static]

Definition at line 788 of file omp-low.c.

References free(), i, omp_region::inner, n, and omp_region::next.

Referenced by free_omp_regions().

void free_omp_regions ( void   ) 

Definition at line 804 of file omp-low.c.

References free_omp_region_1(), n, omp_region::next, NULL, and r.

Referenced by execute_expand_omp(), and make_edges().

static bool gate_expand_omp ( void   )  [static]

Definition at line 3561 of file omp-low.c.

References errorcount, and flag_openmp.

static bool gate_lower_omp ( void   )  [static]

Definition at line 4401 of file omp-low.c.

References flag_openmp.

static tree get_ws_args_for ( tree  ws_stmt  )  [static]

static GTY ( (param1_is(tree), param2_is(tree))   )  [static]

static GTY ( ()   )  [static]

static tree init_tmp_var ( tree  exp,
tree_stmt_iterator tsi 
) [static]

static void install_var_field ( tree  var,
bool  by_ref,
omp_context ctx 
) [static]

static tree install_var_local ( tree  var,
omp_context ctx 
) [static]

Definition at line 631 of file omp-low.c.

References omp_context::cb, insert_decl_map(), and omp_copy_decl_1().

Referenced by scan_sharing_clauses().

static bool is_combined_parallel ( struct omp_region region  )  [inline, static]

static bool is_parallel_ctx ( omp_context ctx  )  [inline, static]

static bool is_reference ( tree  decl  )  [inline, static]

static bool is_variable_sized ( tree  expr  )  [inline, static]

static tree list2chain ( tree  list  )  [static]

Definition at line 2334 of file omp-low.c.

References NULL_TREE, TREE_CHAIN, and TREE_VALUE.

Referenced by expand_omp_parallel().

static tree lookup_decl ( tree  var,
omp_context ctx 
) [inline, static]

static tree lookup_decl_in_outer_ctx ( tree  decl,
omp_context ctx 
) [static]

static tree lookup_field ( tree  var,
omp_context ctx 
) [inline, static]

Definition at line 458 of file omp-low.c.

References omp_context::field_map, n, splay_tree_lookup(), and splay_tree_node_s::value.

static void lower_copyprivate_clauses ( tree  clauses,
tree slist,
tree rlist,
omp_context ctx 
) [static]

static void lower_lastprivate_clauses ( tree  clauses,
tree  predicate,
tree stmt_list,
omp_context ctx 
) [static]

static void lower_omp ( tree stmt_p,
omp_context ctx 
) [static]

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

static void lower_omp_for ( tree stmt_p,
omp_context ctx 
) [static]

static void lower_omp_for_lastprivate ( struct omp_for_data fd,
tree body_p,
tree dlist,
struct omp_context ctx 
) [static]

static void lower_omp_master ( tree stmt_p,
omp_context ctx 
) [static]

static void lower_omp_ordered ( tree stmt_p,
omp_context ctx 
) [static]

static void lower_omp_parallel ( tree stmt_p,
omp_context ctx 
) [static]

static void lower_omp_sections ( tree stmt_p,
omp_context ctx 
) [static]

static void lower_omp_single ( tree stmt_p,
omp_context ctx 
) [static]

static void lower_omp_single_copy ( tree  single_stmt,
tree pre_p,
omp_context ctx 
) [static]

static void lower_omp_single_simple ( tree  single_stmt,
tree pre_p 
) [static]

static void lower_rec_input_clauses ( tree  clauses,
tree ilist,
tree dlist,
omp_context ctx 
) [static]

static void lower_reduction_clauses ( tree  clauses,
tree stmt_list,
omp_context ctx 
) [static]

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

static void lower_send_clauses ( tree  clauses,
tree ilist,
tree olist,
omp_context ctx 
) [static]

static void lower_send_shared_vars ( tree ilist,
tree olist,
omp_context ctx 
) [static]

static void maybe_catch_exception ( tree stmt_p  )  [static]

static omp_context* maybe_lookup_ctx ( tree  stmt  )  [static]

Definition at line 1440 of file omp-low.c.

References n, NULL, splay_tree_lookup(), and splay_tree_node_s::value.

Referenced by lower_omp_1(), and lower_omp_sections().

static tree maybe_lookup_decl ( tree  var,
omp_context ctx 
) [inline, static]

static tree maybe_lookup_decl_in_outer_ctx ( tree  decl,
omp_context ctx 
) [static]

static tree maybe_lookup_field ( tree  var,
omp_context ctx 
) [inline, static]

Definition at line 466 of file omp-low.c.

References omp_context::field_map, n, NULL_TREE, splay_tree_lookup(), and splay_tree_node_s::value.

Referenced by build_receiver_ref().

static omp_context* new_omp_context ( tree  stmt,
omp_context outer_ctx 
) [static]

struct omp_region* new_omp_region ( basic_block  bb,
enum tree_code  type,
struct omp_region parent 
) [read]

static tree omp_copy_decl ( tree  var,
copy_body_data cb 
) [static]

static tree omp_copy_decl_1 ( tree  var,
omp_context ctx 
) [static]

Definition at line 531 of file omp-low.c.

References DECL_NAME, omp_copy_decl_2(), and TREE_TYPE.

Referenced by install_var_local().

static tree omp_copy_decl_2 ( tree  var,
tree  name,
tree  type,
omp_context ctx 
) [static]

tree omp_reduction_init ( tree  clause,
tree  type 
)

static void remove_exit_barrier ( struct omp_region region  )  [static]

static void remove_exit_barriers ( struct omp_region region  )  [static]

Definition at line 2396 of file omp-low.c.

References omp_region::inner, omp_region::next, remove_exit_barrier(), and omp_region::type.

Referenced by execute_expand_omp().

static tree save_tmp_var ( tree  exp,
tree_stmt_iterator tsi 
) [static]

static void scan_omp ( tree stmt_p,
omp_context ctx 
) [static]

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

static void scan_omp_for ( tree stmt_p,
omp_context outer_ctx 
) [static]

static void scan_omp_parallel ( tree stmt_p,
omp_context outer_ctx 
) [static]

static void scan_omp_sections ( tree stmt_p,
omp_context outer_ctx 
) [static]

static void scan_omp_single ( tree stmt_p,
omp_context outer_ctx 
) [static]

static void scan_sharing_clauses ( tree  clauses,
omp_context ctx 
) [static]

static bool use_pointer_for_field ( tree  decl,
bool  shared_p 
) [static]

static bool workshare_safe_to_combine_p ( basic_block  par_entry_bb,
basic_block  ws_entry_bb 
) [static]


Variable Documentation

Definition at line 109 of file omp-low.c.

Definition at line 4427 of file omp-low.c.

int parallel_nesting_level [static]

Definition at line 110 of file omp-low.c.

Referenced by execute_lower_omp(), scan_omp_1(), and scan_omp_parallel().

Initial value:

Definition at line 3566 of file omp-low.c.

Referenced by init_optimization_passes().

Initial value:

Definition at line 4406 of file omp-low.c.

Referenced by init_optimization_passes().

Definition at line 111 of file omp-low.c.

Referenced by make_edges().


Generated on Wed Apr 8 14:19:08 2009 for Open64 by  doxygen 1.5.6