#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"

Go to the source code of this file.
Definition at line 1428 of file omp-low.c.
References build_function_call_expr(), built_in_decls, gimplify_and_add(), and NULL.
Referenced by expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_omp_single(), and lower_rec_input_clauses().
Definition at line 3522 of file omp-low.c.
References build_omp_regions_1(), calculate_dominance_info(), CDI_DOMINATORS, ENTRY_BLOCK_PTR, gcc_assert, and NULL.
Referenced by execute_expand_omp().
| static void build_omp_regions_1 | ( | basic_block | bb, | |
| struct omp_region * | parent | |||
| ) | [static] |
Definition at line 3467 of file omp-low.c.
References bsi_end_p(), bsi_last(), bsi_stmt(), CDI_DOMINATORS, omp_region::cont, determine_parallel_type(), omp_region::exit, first_dom_son(), gcc_assert, new_omp_region(), next_dom_son(), OMP_DIRECTIVE_P, omp_region::outer, region, si, TREE_CODE, and omp_region::type.
Referenced by build_omp_regions().
| static tree build_outer_var_ref | ( | tree | var, | |
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 562 of file omp-low.c.
References build_fold_indirect_ref(), build_receiver_ref(), DECL_VALUE_EXPR, gcc_unreachable, is_global_var(), is_parallel_ctx(), is_reference(), is_variable_sized(), lookup_decl(), maybe_lookup_decl_in_outer_ctx(), omp_context::outer, TREE_OPERAND, use_pointer_for_field(), and x.
Referenced by lower_lastprivate_clauses(), lower_rec_input_clauses(), and lower_reduction_clauses().
| static tree build_receiver_ref | ( | tree | var, | |
| bool | by_ref, | |||
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 539 of file omp-low.c.
References build3, build_fold_indirect_ref(), lookup_field(), maybe_lookup_field(), NULL, omp_context::receiver_decl, TREE_TYPE, and x.
Referenced by build_outer_var_ref(), lower_copyprivate_clauses(), and lower_rec_input_clauses().
| static tree build_sender_ref | ( | tree | var, | |
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 597 of file omp-low.c.
References build3, lookup_field(), NULL, omp_context::sender_decl, and TREE_TYPE.
Referenced by lower_copyprivate_clauses(), lower_send_clauses(), and lower_send_shared_vars().
| static void check_omp_nesting_restrictions | ( | tree | t, | |
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 1251 of file omp-low.c.
References find_omp_clause(), NULL, OMP_CLAUSE_ORDERED, OMP_CLAUSES, OMP_CRITICAL_NAME, omp_context::outer, omp_context::stmt, TREE_CODE, and warning.
Referenced by scan_omp_1().
| static void create_omp_child_function | ( | omp_context * | ctx | ) | [static] |
Definition at line 1101 of file omp-low.c.
References allocate_struct_function(), BLOCK, build_decl, build_function_type_list(), omp_context::cb, cfun, current_function_decl, DECL_ARG_TYPE, DECL_ARGUMENTS, DECL_ARTIFICIAL, DECL_CONTEXT, DECL_EXTERNAL, DECL_IGNORED_P, DECL_INITIAL, DECL_RESULT, DECL_SOURCE_LOCATION, DECL_UNINLINABLE, copy_body_data::dst_fn, EXPR_LOCATION, get_identifier(), make_node, NULL_TREE, ptr_type_node, omp_context::receiver_decl, copy_body_data::src_cfun, omp_context::stmt, TREE_PUBLIC, TREE_STATIC, TREE_USED, and void_type_node.
Referenced by scan_omp_parallel().
| void debug_omp_region | ( | struct omp_region * | region | ) |
| static void delete_omp_context | ( | splay_tree_value | value | ) | [static] |
Definition at line 856 of file omp-low.c.
References omp_context::cb, DECL_ABSTRACT_ORIGIN, copy_body_data::decl_map, omp_context::field_map, NULL, omp_context::record_type, splay_tree_delete(), TREE_CHAIN, TYPE_FIELDS, and XDELETE.
| static void determine_parallel_type | ( | struct omp_region * | region | ) | [static] |
Definition at line 363 of file omp-low.c.
References c, omp_region::entry, omp_region::exit, find_omp_clause(), get_ws_args_for(), omp_region::inner, omp_region::is_combined_parallel, last_stmt(), NULL, OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_SCHEDULE_KIND, OMP_CLAUSE_SCHEDULE_STATIC, OMP_FOR_CLAUSES, single_succ(), omp_region::type, workshare_safe_to_combine_p(), and omp_region::ws_args.
Referenced by build_omp_regions_1().
Definition at line 4597 of file omp-low.c.
References walk_stmt_info::callback, current_function_decl, DECL_SAVED_TREE, diagnose_sb_1(), diagnose_sb_2(), memset, NULL, splay_tree_compare_pointers(), splay_tree_delete(), splay_tree_new(), walk_stmts(), walk_stmt_info::want_locations, and walk_stmt_info::want_return_expr.
Referenced by c_gimple_diagnostics_recursively().
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().
Definition at line 4471 of file omp-low.c.
References walk_stmt_info::info, LABEL_EXPR_LABEL, NULL, NULL_TREE, OMP_BODY, OMP_CLAUSES, OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_COND, OMP_FOR_INCR, OMP_FOR_INIT, OMP_FOR_PRE_BODY, splay_tree_insert(), TREE_CODE, tree_cons, walk_stmts(), and walk_tree().
Referenced by diagnose_omp_structured_block_errors().
Definition at line 4525 of file omp-low.c.
References CASE_LABEL, diagnose_sb_0(), GOTO_DESTINATION, i, walk_stmt_info::info, lab, len, n, NULL, NULL_TREE, OMP_BODY, OMP_CLAUSES, OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_COND, OMP_FOR_INCR, OMP_FOR_INIT, OMP_FOR_PRE_BODY, splay_tree_lookup(), SWITCH_LABELS, TREE_CODE, TREE_VEC_ELT, TREE_VEC_LENGTH, vec, walk_stmts(), and walk_tree().
Referenced by diagnose_omp_structured_block_errors().
| void dump_omp_region | ( | FILE * | file, | |
| struct omp_region * | region, | |||
| int | indent | |||
| ) |
Definition at line 719 of file omp-low.c.
References omp_region::cont, omp_region::entry, omp_region::exit, fprintf(), basic_block_def::index, omp_region::inner, omp_region::next, tree_code_name, and omp_region::type.
Referenced by debug_all_omp_regions(), debug_omp_region(), and execute_expand_omp().
| static unsigned int execute_expand_omp | ( | void | ) | [static] |
Definition at line 3533 of file omp-low.c.
References build_omp_regions(), CDI_DOMINATORS, CDI_POST_DOMINATORS, cleanup_tree_cfg(), dump_file, dump_omp_region(), expand_omp(), fprintf(), free_dominance_info(), free_omp_regions(), and remove_exit_barriers().
| static unsigned int execute_lower_omp | ( | void | ) | [static] |
Definition at line 4381 of file omp-low.c.
References current_function_decl, DECL_SAVED_TREE, delete_omp_context(), gcc_assert, lower_omp(), NULL, parallel_nesting_level, splay_tree_s::root, scan_omp(), splay_tree_compare_pointers(), splay_tree_delete(), and splay_tree_new().
| static void expand_omp | ( | struct omp_region * | region | ) | [static] |
Definition at line 3418 of file omp-low.c.
References expand_omp_for(), expand_omp_parallel(), expand_omp_sections(), expand_omp_single(), expand_omp_synch(), gcc_unreachable, omp_region::inner, omp_region::next, and omp_region::type.
Referenced by execute_expand_omp().
| static void expand_omp_for | ( | struct omp_region * | region | ) | [static] |
Definition at line 3124 of file omp-low.c.
References omp_for_data::chunk_size, omp_region::cont, omp_region::entry, omp_region::exit, expand_omp_for_generic(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), extract_omp_for_data(), omp_for_data::have_ordered, last_stmt(), NULL, OMP_CLAUSE_SCHEDULE_STATIC, pop_gimplify_context(), push_gimplify_context(), omp_for_data::sched_kind, and omp_region::sched_kind.
Referenced by expand_omp().
| 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] |
Definition at line 2586 of file omp-low.c.
References alloc_stmt_list(), append_to_statement_list(), args, boolean_type_node, BSI_CONTINUE_LINKING, bsi_insert_after(), bsi_last(), bsi_remove(), BSI_SAME_STMT, bsi_start(), bsi_stmt(), build2, build3, build_and_jump(), build_fold_addr_expr(), build_function_call_expr(), built_in_decls, omp_for_data::chunk_size, omp_for_data::cond_code, omp_region::cont, create_empty_bb(), create_tmp_var, EDGE_FALLTHRU, EDGE_FALSE_VALUE, EDGE_TRUE_VALUE, omp_region::entry, omp_region::exit, fold_convert(), gcc_assert, get_formal_tmp_var(), gimplify_and_add(), is_combined_parallel(), l1, l2, long_integer_type_node, make_edge(), omp_for_data::n1, omp_for_data::n2, NULL, OMP_RETURN_NOWAIT, remove_edge(), si, single_succ(), single_succ_edge(), omp_for_data::step, TREE_ADDRESSABLE, tree_block_label(), TREE_CODE, tree_cons, TREE_TYPE, omp_for_data::v, and void_type_node.
Referenced by expand_omp_for().
| static void expand_omp_for_static_chunk | ( | struct omp_region * | region, | |
| struct omp_for_data * | fd | |||
| ) | [static] |
Definition at line 2952 of file omp-low.c.
References alloc_stmt_list(), append_to_statement_list(), body_bb, boolean_type_node, BSI_CONTINUE_LINKING, bsi_insert_after(), bsi_last(), bsi_remove(), BSI_SAME_STMT, bsi_start(), bsi_stmt(), build2, build3, build_and_jump(), build_function_call_expr(), build_int_cst(), build_omp_barrier(), built_in_decls, omp_for_data::chunk_size, omp_for_data::cond_code, omp_region::cont, create_empty_bb(), EDGE_FALLTHRU, EDGE_FALSE_VALUE, EDGE_TRUE_VALUE, omp_region::entry, omp_region::exit, fold_build2, fold_convert(), gcc_assert, get_formal_tmp_var(), get_initialized_tmp_var(), gimplify_and_add(), is_gimple_val(), l1, l2, l4, make_edge(), n, omp_for_data::n1, omp_for_data::n2, NULL, OMP_RETURN_NOWAIT, remove_edge(), s0, si, single_succ(), single_succ_edge(), omp_for_data::step, tree_block_label(), TREE_CODE, TREE_TYPE, omp_for_data::v, and void_type_node.
Referenced by expand_omp_for().
| static void expand_omp_for_static_nochunk | ( | struct omp_region * | region, | |
| struct omp_for_data * | fd | |||
| ) | [static] |
Definition at line 2780 of file omp-low.c.
References alloc_stmt_list(), append_to_statement_list(), body_bb, boolean_type_node, BSI_CONTINUE_LINKING, bsi_insert_after(), bsi_last(), bsi_remove(), BSI_SAME_STMT, bsi_start(), bsi_stmt(), build2, build3, build_and_jump(), build_function_call_expr(), build_int_cst(), build_omp_barrier(), built_in_decls, omp_for_data::cond_code, omp_region::cont, create_empty_bb(), EDGE_FALLTHRU, EDGE_FALSE_VALUE, EDGE_TRUE_VALUE, omp_region::entry, omp_region::exit, find_edge(), fold_build2, fold_convert(), gcc_assert, get_formal_tmp_var(), gimplify_and_add(), is_gimple_val(), l1, l2, make_edge(), n, omp_for_data::n1, omp_for_data::n2, NULL, OMP_RETURN_NOWAIT, q, remove_edge(), s0, si, single_succ(), single_succ_edge(), omp_for_data::step, tree_block_label(), TREE_CODE, TREE_TYPE, omp_for_data::v, and void_type_node.
Referenced by expand_omp_for().
| static void expand_omp_parallel | ( | struct omp_region * | region | ) | [static] |
Definition at line 2416 of file omp-low.c.
References BLOCK_VARS, bsi_end_p(), bsi_insert_after(), bsi_last(), bsi_next(), bsi_remove(), BSI_SAME_STMT, bsi_start(), bsi_stmt(), build1, CDI_DOMINATORS, CDI_POST_DOMINATORS, cfun, cgraph_add_new_function(), cleanup_tree_cfg(), DECL_ARGUMENTS, DECL_CONTEXT, DECL_INITIAL, DECL_SAVED_TREE, DECL_STRUCT_FUNCTION, edge::dest, EDGE_FALLTHRU, omp_region::entry, omp_region::exit, expand_parallel_call(), edge::flags, free_dominance_info(), function, gcc_assert, is_combined_parallel(), last_stmt(), list2chain(), make_edge(), move_sese_region_to_fn(), NULL, NULL_TREE, OMP_PARALLEL_DATA_ARG, OMP_PARALLEL_FN, remove_edge(), si, single_succ(), single_succ_edge(), split_block(), STRIP_NOPS, TREE_CHAIN, TREE_CODE, TREE_OPERAND, void_type_node, and omp_region::ws_args.
Referenced by expand_omp().
| static void expand_omp_sections | ( | struct omp_region * | region | ) | [static] |
Definition at line 3183 of file omp-low.c.
References BSI_CONTINUE_LINKING, bsi_insert_after(), bsi_last(), bsi_remove(), BSI_SAME_STMT, bsi_start(), bsi_stmt(), build2, build3, build_function_call_expr(), build_int_cst(), built_in_decls, omp_region::cont, create_empty_bb(), create_tmp_var, EDGE_COUNT, EDGE_FALLTHRU, omp_region::entry, omp_region::exit, edge::flags, gcc_assert, i, omp_region::inner, is_combined_parallel(), l1, l2, len, make_edge(), make_tree_vec, omp_region::next, NULL, OMP_RETURN_NOWAIT, OMP_SECTION_LAST, basic_block_def::prev_bb, redirect_edge_pred(), redirect_edge_succ(), si, single_pred_edge(), single_succ(), single_succ_edge(), tree_block_label(), TREE_CODE, tree_cons, TREE_VEC_ELT, unsigned_type_node, omp_for_data::v, and void_type_node.
Referenced by expand_omp().
| static void expand_omp_single | ( | struct omp_region * | region | ) | [static] |
Definition at line 3348 of file omp-low.c.
References alloc_stmt_list(), bsi_insert_after(), bsi_last(), bsi_remove(), BSI_SAME_STMT, bsi_stmt(), build_omp_barrier(), EDGE_FALLTHRU, omp_region::entry, omp_region::exit, find_omp_clause(), edge::flags, gcc_assert, OMP_CLAUSE_COPYPRIVATE, OMP_RETURN_NOWAIT, OMP_SINGLE_CLAUSES, si, single_succ_edge(), and TREE_CODE.
Referenced by expand_omp().
| static void expand_omp_synch | ( | struct omp_region * | region | ) | [static] |
Definition at line 3385 of file omp-low.c.
References bsi_last(), bsi_remove(), bsi_stmt(), EDGE_FALLTHRU, omp_region::entry, omp_region::exit, edge::flags, gcc_assert, si, single_succ_edge(), and TREE_CODE.
Referenced by expand_omp().
| static void expand_parallel_call | ( | struct omp_region * | region, | |
| basic_block | bb, | |||
| tree | entry_stmt, | |||
| tree | ws_args | |||
| ) | [static] |
Definition at line 2155 of file omp-low.c.
References args, BSI_CONTINUE_LINKING, bsi_insert_after(), bsi_last(), bsi_start(), build1, build2, build3, build_and_jump(), build_fold_addr_expr(), build_function_call_expr(), build_int_cst(), built_in_decls, c, chainon(), cond, create_artificial_label(), create_empty_bb(), create_tmp_var, edge::dest, EDGE_FALLTHRU, EDGE_FALSE_VALUE, EDGE_TRUE_VALUE, find_omp_clause(), fold_convert(), gcc_unreachable, get_formal_tmp_var(), gimple_boolify(), gimplify_and_add(), omp_region::inner, integer_zerop(), is_combined_parallel(), make_edge(), NULL, null_pointer_node, NULL_TREE, OMP_CLAUSE_IF, OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_NUM_THREADS_EXPR, OMP_PARALLEL_CLAUSES, OMP_PARALLEL_DATA_ARG, OMP_PARALLEL_FN, pop_gimplify_context(), push_gimplify_context(), remove_edge(), omp_region::sched_kind, si, split_block(), edge::src, tmp, tree_cons, TREE_TYPE, omp_region::type, unsigned_type_node, val, and void_type_node.
Referenced by expand_omp_parallel().
| static void extract_omp_for_data | ( | tree | for_stmt, | |
| struct omp_for_data * | fd | |||
| ) | [static] |
Definition at line 152 of file omp-low.c.
References build_int_cst(), omp_for_data::chunk_size, omp_for_data::cond_code, DECL_P, fold_build1, fold_build2, omp_for_data::for_stmt, gcc_assert, gcc_unreachable, omp_for_data::have_nowait, omp_for_data::have_ordered, integer_one_node, integer_zero_node, omp_for_data::n1, omp_for_data::n2, NULL, NULL_TREE, OMP_CLAUSE_CHAIN, OMP_CLAUSE_CODE, OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR, OMP_CLAUSE_SCHEDULE_KIND, OMP_CLAUSE_SCHEDULE_RUNTIME, OMP_CLAUSE_SCHEDULE_STATIC, OMP_FOR_CLAUSES, OMP_FOR_COND, OMP_FOR_INCR, OMP_FOR_INIT, omp_for_data::pre, omp_for_data::sched_kind, omp_for_data::step, TREE_CODE, TREE_OPERAND, TREE_TYPE, and omp_for_data::v.
Referenced by expand_omp_for(), get_ws_args_for(), lower_omp_for(), and workshare_safe_to_combine_p().
Definition at line 121 of file omp-low.c.
References NULL_TREE, OMP_CLAUSE_CHAIN, and OMP_CLAUSE_CODE.
Referenced by check_omp_nesting_restrictions(), determine_parallel_type(), expand_omp_single(), expand_parallel_call(), lower_lastprivate_clauses(), lower_omp_sections(), lower_omp_single(), and scan_omp_parallel().
| static void fixup_child_record_type | ( | omp_context * | ctx | ) | [static] |
Definition at line 881 of file omp-low.c.
References build_decl, build_pointer_type(), omp_context::cb, copy_node, DECL_CONTEXT, DECL_NAME, f, omp_context::field_map, layout_type(), nreverse(), NULL, omp_context::receiver_decl, omp_context::record_type, remap_type(), splay_tree_insert(), copy_body_data::src_fn, TREE_CHAIN, TREE_TYPE, TYPE_FIELDS, TYPE_NAME, and variably_modified_type_p().
Referenced by scan_omp_parallel().
| static void fixup_remapped_decl | ( | tree | decl, | |
| omp_context * | ctx, | |||
| bool | private_debug | |||
| ) | [static] |
Definition at line 642 of file omp-low.c.
References omp_context::cb, copy_body_r(), DECL_HAS_VALUE_EXPR_P, DECL_SIZE, DECL_SIZE_UNIT, DECL_VALUE_EXPR, error_mark_node, lookup_decl(), NULL, remap_decl(), remap_type(), SET_DECL_VALUE_EXPR, size, TREE_CONSTANT, TREE_TYPE, TYPE_SIZE, TYPE_SIZE_UNIT, and walk_tree().
Referenced by scan_sharing_clauses().
| 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().
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().
Definition at line 319 of file omp-low.c.
References bb_for_stmt(), build_int_cst(), omp_for_data::chunk_size, EDGE_COUNT, extract_omp_for_data(), fold_convert(), gcc_unreachable, long_integer_type_node, omp_for_data::n1, omp_for_data::n2, NULL, NULL_TREE, omp_for_data::step, TREE_CODE, tree_cons, and unsigned_type_node.
Referenced by determine_parallel_type().
Definition at line 3907 of file omp-low.c.
References ACONCAT, append_to_statement_list(), args, bind(), BIND_EXPR_BODY, BIND_EXPR_VARS, BLOCK, BLOCK_VARS, build3, build_fold_addr_expr(), build_function_call_expr(), built_in_decls, cgraph_varpool_finalize_decl(), chainon(), create_tmp_var_raw(), DECL_ARTIFICIAL, DECL_COMMON, DECL_IGNORED_P, DECL_NAME, get_identifier(), gimplify_and_add(), IDENTIFIER_POINTER, lock(), lower_omp(), make_node, maybe_catch_exception(), n, NULL, OMP_CRITICAL_BODY, OMP_CRITICAL_NAME, OMP_RETURN_NOWAIT, pop_gimplify_context(), ptr_type_node, push_gimplify_context(), splay_tree_compare_pointers(), splay_tree_insert(), splay_tree_lookup(), splay_tree_new_ggc, tree_cons, TREE_PUBLIC, TREE_SIDE_EFFECTS, TREE_STATIC, splay_tree_node_s::value, and void_type_node.
| static GTY | ( | () | ) | [static] |
Definition at line 1076 of file omp-low.c.
References alloca, ASM_FORMAT_PRIVATE_NAME, current_function_decl, DECL_ASSEMBLER_NAME, get_identifier(), IDENTIFIER_LENGTH, IDENTIFIER_POINTER, len, memcpy, prefix, and strcpy.
| static tree init_tmp_var | ( | tree | exp, | |
| tree_stmt_iterator * | tsi | |||
| ) | [static] |
Definition at line 4222 of file omp-low.c.
References build2, COMPLEX_TYPE, create_tmp_var, DECL_COMPLEX_GIMPLE_REG_P, EXPR_LOCUS, NULL, SET_EXPR_LOCUS, TREE_CODE, TREE_TYPE, tsi_link_before(), TSI_SAME_STMT, and tsi_stmt().
| static void install_var_field | ( | tree | var, | |
| bool | by_ref, | |||
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 607 of file omp-low.c.
References build_decl, build_pointer_type(), DECL_ABSTRACT_ORIGIN, DECL_NAME, omp_context::field_map, gcc_assert, insert_field_into_struct(), omp_context::record_type, splay_tree_insert(), splay_tree_lookup(), and TREE_TYPE.
Referenced by scan_sharing_clauses().
| 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] |
Definition at line 142 of file omp-low.c.
References omp_region::is_combined_parallel.
Referenced by expand_omp_for_generic(), expand_omp_parallel(), expand_omp_sections(), and expand_parallel_call().
| static bool is_parallel_ctx | ( | omp_context * | ctx | ) | [inline, static] |
Definition at line 133 of file omp-low.c.
References omp_context::stmt, and TREE_CODE.
Referenced by build_outer_var_ref(), lower_lastprivate_clauses(), omp_copy_decl(), and scan_sharing_clauses().
Definition at line 432 of file omp-low.c.
Referenced by build_outer_var_ref(), convert_to_void(), lower_copyprivate_clauses(), lower_lastprivate_clauses(), lower_rec_input_clauses(), lower_reduction_clauses(), lower_send_clauses(), resolve_address_of_overloaded_function(), and scan_sharing_clauses().
Definition at line 424 of file omp-low.c.
References TREE_CONSTANT, TREE_TYPE, and TYPE_SIZE_UNIT.
Referenced by build_outer_var_ref(), lower_rec_input_clauses(), lower_send_clauses(), and scan_sharing_clauses().
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] |
Definition at line 442 of file omp-low.c.
References omp_context::cb, copy_body_data::decl_map, n, splay_tree_lookup(), and splay_tree_node_s::value.
Referenced by build_outer_var_ref(), fixup_remapped_decl(), lower_lastprivate_clauses(), lower_rec_input_clauses(), and lower_reduction_clauses().
| static tree lookup_decl_in_outer_ctx | ( | tree | decl, | |
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 1498 of file omp-low.c.
References gcc_assert, omp_context::is_nested, maybe_lookup_decl(), NULL, omp_context::outer, and up.
Referenced by lower_copyprivate_clauses(), lower_send_clauses(), and lower_send_shared_vars().
| 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] |
Definition at line 1987 of file omp-low.c.
References build2, build_fold_addr_expr(), build_fold_indirect_ref(), build_receiver_ref(), build_sender_ref(), c, gimplify_and_add(), omp_context::is_nested, is_reference(), lookup_decl_in_outer_ctx(), OMP_CLAUSE_CHAIN, OMP_CLAUSE_CODE, OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_DECL, use_pointer_for_field(), void_type_node, and x.
Referenced by lower_omp_single_copy().
| static void lower_lastprivate_clauses | ( | tree | clauses, | |
| tree | predicate, | |||
| tree * | stmt_list, | |||
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 1841 of file omp-low.c.
References alloc_stmt_list(), append_to_statement_list(), build3, build_fold_indirect_ref(), build_outer_var_ref(), c, find_omp_clause(), gimplify_and_add(), is_parallel_ctx(), is_reference(), lookup_decl(), NULL, OMP_CLAUSE_CHAIN, OMP_CLAUSE_CODE, OMP_CLAUSE_DECL, OMP_CLAUSE_LASTPRIVATE, OMP_PARALLEL_CLAUSES, omp_context::outer, omp_context::stmt, void_type_node, and x.
Referenced by lower_omp_for_lastprivate(), and lower_omp_sections().
| static void lower_omp | ( | tree * | stmt_p, | |
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 4365 of file omp-low.c.
References walk_stmt_info::callback, walk_stmt_info::info, lower_omp_1(), memset, walk_stmt_info::val_only, walk_stmts(), and walk_stmt_info::want_locations.
Referenced by execute_lower_omp(), GTY(), lower_omp_for(), lower_omp_master(), lower_omp_ordered(), lower_omp_parallel(), lower_omp_sections(), and lower_omp_single().
Definition at line 4257 of file omp-low.c.
References build_empty_stmt(), DECL_HAS_VALUE_EXPR_P, DECL_P, errorcount, gcc_assert, walk_stmt_info::info, init_tmp_var(), walk_stmt_info::is_lhs, lower_omp_for(), lower_omp_master(), lower_omp_ordered(), lower_omp_parallel(), lower_omp_sections(), lower_omp_single(), lower_regimplify(), maybe_lookup_ctx(), NULL_TREE, OMP_DIRECTIVE_P, save_tmp_var(), TREE_CODE, TREE_OPERAND, walk_stmt_info::tsi, TYPE_P, and walk_stmt_info::val_only.
Referenced by lower_omp().
| static void lower_omp_for | ( | tree * | stmt_p, | |
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 4045 of file omp-low.c.
References append_to_statement_list(), BIND_EXPR_BODY, BIND_EXPR_VARS, omp_context::block_vars, build3, omp_context::cb, copy_body_data::dst_fn, extract_omp_for_data(), get_formal_tmp_var(), omp_for_data::have_nowait, is_gimple_min_invariant(), lower_omp(), lower_omp_for_lastprivate(), lower_rec_input_clauses(), lower_reduction_clauses(), make_node, maybe_catch_exception(), NULL, NULL_TREE, OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_COND, OMP_FOR_INCR, OMP_FOR_INIT, OMP_FOR_PRE_BODY, OMP_RETURN_NOWAIT, pop_gimplify_context(), push_gimplify_context(), record_vars_into(), TREE_CODE, TREE_OPERAND, TREE_SIDE_EFFECTS, and void_type_node.
Referenced by lower_omp_1().
| static void lower_omp_for_lastprivate | ( | struct omp_for_data * | fd, | |
| tree * | body_p, | |||
| tree * | dlist, | |||
| struct omp_context * | ctx | |||
| ) | [static] |
Definition at line 4000 of file omp-low.c.
References append_to_statement_list(), boolean_type_node, build2, build_int_cst(), cond, omp_for_data::cond_code, omp_for_data::for_stmt, gimplify_and_add(), host_integerp(), HOST_WIDE_INT, integer_zerop(), lower_lastprivate_clauses(), omp_for_data::n1, omp_for_data::n2, NULL, OMP_FOR_CLAUSES, omp_for_data::step, step(), TREE_INT_CST_LOW, TREE_TYPE, omp_for_data::v, and void_type_node.
Referenced by lower_omp_for().
| static void lower_omp_master | ( | tree * | stmt_p, | |
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 3826 of file omp-low.c.
References append_to_statement_list(), bind(), BIND_EXPR_BODY, BIND_EXPR_VARS, BLOCK, omp_context::block_vars, BLOCK_VARS, boolean_type_node, build1, build2, build3, build_and_jump(), build_function_call_expr(), built_in_decls, chainon(), gimplify_and_add(), integer_zero_node, lab, lower_omp(), make_node, maybe_catch_exception(), NULL, OMP_MASTER_BODY, OMP_RETURN_NOWAIT, pop_gimplify_context(), push_gimplify_context(), TREE_SIDE_EFFECTS, void_type_node, and x.
Referenced by lower_omp_1().
| static void lower_omp_ordered | ( | tree * | stmt_p, | |
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 3866 of file omp-low.c.
References append_to_statement_list(), bind(), BIND_EXPR_BODY, BIND_EXPR_VARS, BLOCK, omp_context::block_vars, BLOCK_VARS, build3, build_function_call_expr(), built_in_decls, chainon(), gimplify_and_add(), lower_omp(), make_node, maybe_catch_exception(), NULL, OMP_ORDERED_BODY, OMP_RETURN_NOWAIT, pop_gimplify_context(), push_gimplify_context(), TREE_SIDE_EFFECTS, void_type_node, and x.
Referenced by lower_omp_1().
| static void lower_omp_parallel | ( | tree * | stmt_p, | |
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 4127 of file omp-low.c.
References alloc_stmt_list(), append_to_statement_list(), bind(), BIND_EXPR_BODY, BIND_EXPR_VARS, omp_context::block_vars, build2, build3, build_fold_addr_expr(), omp_context::cb, create_tmp_var, copy_body_data::dst_fn, fold_convert(), lower_omp(), lower_rec_input_clauses(), lower_reduction_clauses(), lower_send_clauses(), lower_send_shared_vars(), make_node, maybe_catch_exception(), NULL, NULL_TREE, OMP_PARALLEL_BODY, OMP_PARALLEL_CLAUSES, OMP_PARALLEL_DATA_ARG, pop_gimplify_context(), push_gimplify_context(), omp_context::receiver_decl, omp_context::record_type, record_vars_into(), omp_context::sender_decl, TREE_TYPE, and void_type_node.
Referenced by lower_omp_1().
| static void lower_omp_sections | ( | tree * | stmt_p, | |
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 3588 of file omp-low.c.
References alloc_stmt_list(), append_to_statement_list(), bind(), BIND_EXPR_BODY, BLOCK, omp_context::block_vars, build3, omp_context::cb, copy_body_data::dst_fn, find_omp_clause(), gcc_assert, i, len, lower_lastprivate_clauses(), lower_omp(), lower_rec_input_clauses(), lower_reduction_clauses(), make_node, maybe_catch_exception(), maybe_lookup_ctx(), NULL, NULL_TREE, OMP_CLAUSE_NOWAIT, OMP_RETURN_NOWAIT, OMP_SECTION_BODY, OMP_SECTION_LAST, OMP_SECTIONS_BODY, OMP_SECTIONS_CLAUSES, pop_gimplify_context(), push_gimplify_context(), record_vars_into(), TREE_SIDE_EFFECTS, tsi_end_p(), tsi_next(), tsi_start(), tsi_stmt(), and void_type_node.
Referenced by lower_omp_1().
| static void lower_omp_single | ( | tree * | stmt_p, | |
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 3784 of file omp-low.c.
References append_to_statement_list(), bind(), BIND_EXPR_BODY, BIND_EXPR_VARS, BLOCK, omp_context::block_vars, BLOCK_VARS, build3, chainon(), find_omp_clause(), lower_omp(), lower_omp_single_copy(), lower_omp_single_simple(), lower_rec_input_clauses(), make_node, maybe_catch_exception(), NULL, OMP_CLAUSE_NOWAIT, OMP_RETURN_NOWAIT, OMP_SINGLE_BODY, OMP_SINGLE_CLAUSES, pop_gimplify_context(), push_gimplify_context(), omp_context::record_type, TREE_SIDE_EFFECTS, and void_type_node.
Referenced by lower_omp_1().
| static void lower_omp_single_copy | ( | tree | single_stmt, | |
| tree * | pre_p, | |||
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 3728 of file omp-low.c.
References append_to_statement_list(), args, boolean_type_node, build1, build2, build3, build_and_jump(), build_fold_addr_expr(), build_function_call_expr(), build_int_cst(), build_pointer_type(), built_in_decls, create_artificial_label(), create_tmp_var, fold_convert(), gimplify_and_add(), l1, l2, lower_copyprivate_clauses(), NULL, OMP_SINGLE_BODY, OMP_SINGLE_CLAUSES, omp_context::receiver_decl, omp_context::record_type, omp_context::sender_decl, tree_cons, and void_type_node.
Referenced by lower_omp_single().
Definition at line 3686 of file omp-low.c.
References build3, build_function_call_expr(), built_in_decls, gimplify_and_add(), NULL, OMP_SINGLE_BODY, and void_type_node.
Referenced by lower_omp_single().
| static void lower_rec_input_clauses | ( | tree | clauses, | |
| tree * | ilist, | |||
| tree * | dlist, | |||
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 1603 of file omp-low.c.
References alloc_stmt_list(), append_to_statement_list(), args, boolean_type_node, build2, build3, build_fold_addr_expr_with_type(), build_fold_indirect_ref(), build_function_call_expr(), build_int_cst(), build_omp_barrier(), build_outer_var_ref(), build_receiver_ref(), built_in_decls, c, c_kind, create_tmp_var_raw(), DECL_HAS_VALUE_EXPR_P, DECL_NAME, DECL_P, DECL_VALUE_EXPR, dtor(), fold_convert(), gcc_assert, gcc_unreachable, gimple_add_tmp_var(), gimplify_and_add(), gimplify_stmt(), IDENTIFIER_POINTER, is_global_var(), is_reference(), is_variable_sized(), lookup_decl(), maybe_lookup_decl(), NULL, OMP_CLAUSE_CHAIN, OMP_CLAUSE_CODE, OMP_CLAUSE_COPYIN, OMP_CLAUSE_DECL, OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_CLAUSE_PRIVATE, OMP_CLAUSE_PRIVATE_DEBUG, OMP_CLAUSE_REDUCTION, OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_PLACEHOLDER, OMP_CLAUSE_SHARED, omp_reduction_init(), ptr, SET_DECL_VALUE_EXPR, TREE_CODE, tree_cons, TREE_CONSTANT, TREE_NO_WARNING, TREE_OPERAND, TREE_TYPE, tsi_link_before(), TSI_SAME_STMT, tsi_start(), TYPE_SIZE_UNIT, use_pointer_for_field(), void_type_node, and x.
Referenced by lower_omp_for(), lower_omp_parallel(), lower_omp_sections(), and lower_omp_single().
| static void lower_reduction_clauses | ( | tree | clauses, | |
| tree * | stmt_list, | |||
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 1897 of file omp-low.c.
References addr(), append_to_statement_list(), build1, build2, build_fold_addr_expr(), build_fold_indirect_ref(), build_function_call_expr(), build_outer_var_ref(), built_in_decls, c, count, DECL_HAS_VALUE_EXPR_P, fold_build2, gimplify_and_add(), is_reference(), lookup_decl(), NULL, OMP_CLAUSE_CHAIN, OMP_CLAUSE_CODE, OMP_CLAUSE_DECL, OMP_CLAUSE_REDUCTION, OMP_CLAUSE_REDUCTION_CODE, OMP_CLAUSE_REDUCTION_MERGE, OMP_CLAUSE_REDUCTION_PLACEHOLDER, save_expr(), SET_DECL_VALUE_EXPR, TREE_TYPE, void_type_node, and x.
Referenced by lower_omp_for(), lower_omp_parallel(), and lower_omp_sections().
| static void lower_regimplify | ( | tree * | tp, | |
| struct walk_stmt_info * | wi | |||
| ) | [static] |
Definition at line 4202 of file omp-low.c.
References fb_lvalue, fb_rvalue, gcc_assert, gimplify_expr(), gs, GS_ALL_DONE, is_gimple_formal_tmp_var(), is_gimple_lvalue(), is_gimple_val(), walk_stmt_info::is_lhs, NULL, omp_for_data::pre, walk_stmt_info::tsi, tsi_link_before(), TSI_SAME_STMT, and walk_stmt_info::val_only.
Referenced by lower_omp_1().
| static void lower_send_clauses | ( | tree | clauses, | |
| tree * | ilist, | |||
| tree * | olist, | |||
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 2025 of file omp-low.c.
References build2, build_fold_addr_expr(), build_sender_ref(), c, gcc_unreachable, gimplify_and_add(), is_global_var(), omp_context::is_nested, is_reference(), is_variable_sized(), lookup_decl_in_outer_ctx(), OMP_CLAUSE_CHAIN, OMP_CLAUSE_CODE, OMP_CLAUSE_COPYIN, OMP_CLAUSE_DECL, OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_CLAUSE_REDUCTION, use_pointer_for_field(), val, void_type_node, and x.
Referenced by lower_omp_parallel().
| static void lower_send_shared_vars | ( | tree * | ilist, | |
| tree * | olist, | |||
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 2105 of file omp-low.c.
References build2, build_fold_addr_expr(), build_sender_ref(), DECL_ABSTRACT_ORIGIN, DECL_HAS_VALUE_EXPR_P, f, gimplify_and_add(), omp_context::is_nested, lookup_decl_in_outer_ctx(), maybe_lookup_decl(), NULL, omp_context::record_type, TREE_CHAIN, TYPE_FIELDS, use_pointer_for_field(), void_type_node, and x.
Referenced by lower_omp_parallel().
Definition at line 2306 of file omp-low.c.
References append_to_statement_list(), build2, build_function_call_expr(), built_in_decls, EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW, f, flag_exceptions, gimplify_and_add(), lang_protect_cleanup_actions, NULL, TREE_OPERAND, and void_type_node.
Referenced by GTY(), lower_omp_for(), lower_omp_master(), lower_omp_ordered(), lower_omp_parallel(), lower_omp_sections(), and lower_omp_single().
| 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] |
Definition at line 450 of file omp-low.c.
References omp_context::cb, copy_body_data::decl_map, n, NULL_TREE, splay_tree_lookup(), and splay_tree_node_s::value.
Referenced by lookup_decl_in_outer_ctx(), lower_rec_input_clauses(), lower_send_shared_vars(), maybe_lookup_decl_in_outer_ctx(), and omp_copy_decl().
| static tree maybe_lookup_decl_in_outer_ctx | ( | tree | decl, | |
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 1518 of file omp-low.c.
References omp_context::is_nested, maybe_lookup_decl(), NULL, omp_context::outer, and up.
Referenced by build_outer_var_ref(), and scan_sharing_clauses().
| 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] |
Definition at line 819 of file omp-low.c.
References copy_body_data::block, omp_context::cb, cfun, cgraph_node(), current_function_decl, omp_context::depth, NULL, omp_copy_decl(), splay_tree_compare_pointers(), splay_tree_insert(), splay_tree_new(), and XCNEW.
| struct omp_region* new_omp_region | ( | basic_block | bb, | |
| enum tree_code | type, | |||
| struct omp_region * | parent | |||
| ) | [read] |
Definition at line 759 of file omp-low.c.
References omp_region::entry, omp_region::inner, omp_region::next, omp_region::outer, region, omp_region::type, and xcalloc().
Referenced by build_omp_regions_1(), and make_edges().
| static tree omp_copy_decl | ( | tree | var, | |
| copy_body_data * | cb | |||
| ) | [static] |
Definition at line 679 of file omp-low.c.
References omp_context::cb, create_artificial_label(), current_function_decl, DECL_CONTEXT, decl_function_context(), error_mark_node, insert_decl_map(), is_global_var(), is_parallel_ctx(), maybe_lookup_decl(), NULL, omp_context::outer, copy_body_data::src_fn, and TREE_CODE.
Referenced by new_omp_context().
| 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] |
Definition at line 512 of file omp-low.c.
References omp_context::block_vars, build_decl, copy, current_function_decl, DECL_ARTIFICIAL, DECL_COMPLEX_GIMPLE_REG_P, DECL_CONTEXT, DECL_IGNORED_P, DECL_SEEN_IN_BIND_EXPR_P, TREE_ADDRESSABLE, TREE_CHAIN, and TREE_USED.
Referenced by omp_copy_decl_1().
Definition at line 1534 of file omp-low.c.
References build_real(), fold_convert(), gcc_assert, gcc_unreachable, HONOR_INFINITIES, integer_minus_one_node, integer_one_node, integer_zero_node, INTEGRAL_TYPE_P, max, min, NULL, OMP_CLAUSE_REDUCTION_CODE, real_arithmetic(), real_inf(), real_maxval(), REAL_VALUE_TYPE, SCALAR_FLOAT_TYPE_P, TYPE_MAX_VALUE, TYPE_MIN_VALUE, and TYPE_MODE.
Referenced by lower_rec_input_clauses().
| static void remove_exit_barrier | ( | struct omp_region * | region | ) | [static] |
Definition at line 2358 of file omp-low.c.
References bsi_end_p(), bsi_last(), bsi_prev(), bsi_stmt(), omp_region::exit, FOR_EACH_EDGE, gcc_assert, OMP_RETURN_NOWAIT, si, edge::src, and TREE_CODE.
Referenced by remove_exit_barriers().
| 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] |
Definition at line 4240 of file omp-low.c.
References build2, COMPLEX_TYPE, create_tmp_var, DECL_COMPLEX_GIMPLE_REG_P, EXPR_LOCUS, NULL, SET_EXPR_LOCUS, TREE_CODE, TREE_TYPE, tsi_link_after(), TSI_SAME_STMT, and tsi_stmt().
| static void scan_omp | ( | tree * | stmt_p, | |
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 1407 of file omp-low.c.
References walk_stmt_info::callback, walk_stmt_info::info, input_location, memset, NULL, scan_omp_1(), walk_stmts(), walk_stmt_info::want_bind_expr, and walk_stmt_info::want_locations.
Referenced by execute_lower_omp(), scan_omp_1(), scan_omp_for(), scan_omp_parallel(), scan_omp_sections(), scan_omp_single(), and scan_sharing_clauses().
Definition at line 1330 of file omp-low.c.
References BIND_EXPR_VARS, omp_context::cb, check_omp_nesting_restrictions(), DECL_P, EXPR_HAS_LOCATION, EXPR_LOCATION, walk_stmt_info::info, input_location, insert_decl_map(), new_omp_context(), NULL, NULL_TREE, OMP_BODY, OMP_DIRECTIVE_P, parallel_nesting_level, remap_decl(), remap_type(), scan_omp(), scan_omp_for(), scan_omp_parallel(), scan_omp_sections(), scan_omp_single(), TREE_CHAIN, TREE_CODE, and TYPE_P.
Referenced by scan_omp().
| static void scan_omp_for | ( | tree * | stmt_p, | |
| omp_context * | outer_ctx | |||
| ) | [static] |
Definition at line 1192 of file omp-low.c.
References new_omp_context(), OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_COND, OMP_FOR_INCR, OMP_FOR_INIT, OMP_FOR_PRE_BODY, scan_omp(), and scan_sharing_clauses().
Referenced by scan_omp_1().
| static void scan_omp_parallel | ( | tree * | stmt_p, | |
| omp_context * | outer_ctx | |||
| ) | [static] |
Definition at line 1149 of file omp-low.c.
References build_decl, build_empty_stmt(), omp_context::cb, create_omp_child_function(), create_tmp_var_name(), omp_context::default_kind, copy_body_data::dst_fn, empty_body_p(), omp_context::field_map, find_omp_clause(), fixup_child_record_type(), omp_context::is_nested, layout_type(), new_omp_context(), NULL, OMP_CLAUSE_COPYIN, OMP_CLAUSE_DEFAULT_SHARED, OMP_CLAUSES, OMP_PARALLEL_BODY, OMP_PARALLEL_CLAUSES, OMP_PARALLEL_FN, optimize, parallel_nesting_level, omp_context::receiver_decl, omp_context::record_type, scan_omp(), scan_sharing_clauses(), splay_tree_compare_pointers(), splay_tree_new(), TYPE_FIELDS, and TYPE_NAME.
Referenced by scan_omp_1().
| static void scan_omp_sections | ( | tree * | stmt_p, | |
| omp_context * | outer_ctx | |||
| ) | [static] |
Definition at line 1212 of file omp-low.c.
References new_omp_context(), OMP_SECTIONS_BODY, OMP_SECTIONS_CLAUSES, scan_omp(), and scan_sharing_clauses().
Referenced by scan_omp_1().
| static void scan_omp_single | ( | tree * | stmt_p, | |
| omp_context * | outer_ctx | |||
| ) | [static] |
Definition at line 1226 of file omp-low.c.
References build_decl, create_tmp_var_name(), omp_context::field_map, layout_type(), new_omp_context(), NULL, OMP_SINGLE_BODY, OMP_SINGLE_CLAUSES, omp_context::record_type, scan_omp(), scan_sharing_clauses(), splay_tree_compare_pointers(), splay_tree_new(), TYPE_FIELDS, and TYPE_NAME.
Referenced by scan_omp_1().
| static void scan_sharing_clauses | ( | tree | clauses, | |
| omp_context * | ctx | |||
| ) | [static] |
Definition at line 925 of file omp-low.c.
References c, omp_context::default_kind, fixup_remapped_decl(), gcc_assert, gcc_unreachable, install_var_field(), install_var_local(), is_global_var(), is_parallel_ctx(), is_reference(), is_variable_sized(), maybe_lookup_decl_in_outer_ctx(), OMP_CLAUSE_CHAIN, OMP_CLAUSE_CODE, OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT, OMP_CLAUSE_DEFAULT_KIND, OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_IF, OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_CLAUSE_NOWAIT, OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_OPERAND, OMP_CLAUSE_ORDERED, OMP_CLAUSE_PRIVATE, OMP_CLAUSE_PRIVATE_DEBUG, OMP_CLAUSE_REDUCTION, OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE, OMP_CLAUSE_REDUCTION_PLACEHOLDER, OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_SET_CODE, OMP_CLAUSE_SHARED, omp_context::outer, scan_omp(), TREE_ADDRESSABLE, TREE_READONLY, and use_pointer_for_field().
Referenced by scan_omp_for(), scan_omp_parallel(), scan_omp_sections(), and scan_omp_single().
Definition at line 477 of file omp-low.c.
References AGGREGATE_TYPE_P, DECL_EXTERNAL, DECL_HAS_VALUE_EXPR_P, TREE_ADDRESSABLE, TREE_CODE, TREE_STATIC, and TREE_TYPE.
Referenced by build_outer_var_ref(), lower_copyprivate_clauses(), lower_rec_input_clauses(), lower_send_clauses(), lower_send_shared_vars(), and scan_sharing_clauses().
| static bool workshare_safe_to_combine_p | ( | basic_block | par_entry_bb, | |
| basic_block | ws_entry_bb | |||
| ) | [static] |
Definition at line 284 of file omp-low.c.
References omp_for_data::chunk_size, extract_omp_for_data(), gcc_assert, is_gimple_min_invariant(), last_stmt(), omp_for_data::n1, omp_for_data::n2, omp_for_data::step, and TREE_CODE.
Referenced by determine_parallel_type().
splay_tree all_contexts [static] |
splay_tree all_labels [static] |
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:
{
"ompexp",
gate_expand_omp,
execute_expand_omp,
NULL,
NULL,
0,
0,
PROP_gimple_any,
PROP_gimple_lomp,
0,
0,
TODO_dump_func,
0
}
Definition at line 3566 of file omp-low.c.
Referenced by init_optimization_passes().
Initial value:
{
"omplower",
gate_lower_omp,
execute_lower_omp,
NULL,
NULL,
0,
0,
PROP_gimple_any,
PROP_gimple_lomp,
0,
0,
TODO_dump_func,
0
}
Definition at line 4406 of file omp-low.c.
Referenced by init_optimization_passes().
1.5.6