#include "defs.h"#include "glob.h"#include "config.h"#include "wn.h"#include "wn_util.h"#include "gnu_config.h"#include "system.h"#include "srcpos.h"#include "tree.h"#include "wfe_expr.h"#include "wfe_misc.h"#include "omp_types.h"#include "omp_directive.h"#include "wfe_omp_directives.h"#include "wfe_omp_check_stack.h"#include <stdio.h>#include "errors.h"#include "const.h"

Go to the source code of this file.
| struct for_clause_list* build_for_clause_list | ( | tree | t, | |
| for_clause_type | f_type, | |||
| schedule_kind_type | s_kind, | |||
| reduction_op_type | red_op | |||
| ) | [read] |
Definition at line 1811 of file omp_directive.cxx.
References schedule_2::chunk_size, f_firstprivate, f_lastprivate, f_nowait, f_ordered, f_private, f_reduction, f_schedule_1, f_schedule_2, Fail_FmtAssertion(), FALSE, malloc, for_clause_list::next, for_clause_list::node, NULL, for_clause_node::ordered_nowait, for_clause_node::reduction_node, reduction::reduction_op, result, schedule_2::schedule_kind, for_clause_node::schedule_kind, for_clause_node::schedule_node, for_clause_list::type, for_clause_node::var_list, and reduction::var_list.
| struct parallel_clause_list* build_parallel_clause_list | ( | tree | t, | |
| parallel_clause_type | p_type, | |||
| default_type | d_type, | |||
| reduction_op_type | red_op | |||
| ) | [read] |
Definition at line 1756 of file omp_directive.cxx.
References parallel_clause_node::defaulttype, parallel_clause_node::expr_no_commas, Fail_FmtAssertion(), FALSE, malloc, parallel_clause_list::next, parallel_clause_list::node, NULL, p_copyin, p_default, p_firstprivate, p_if, p_num_threads, p_private, p_reduction, p_shared, parallel_clause_node::reduction_node, reduction::reduction_op, result, parallel_clause_list::type, parallel_clause_node::var_list, and reduction::var_list.
| struct parallel_for_clause_list* build_parallel_for_clause_list | ( | tree | t, | |
| parallel_for_clause_type | p_type, | |||
| default_type | d_type, | |||
| schedule_kind_type | s_kind, | |||
| reduction_op_type | red_op | |||
| ) | [read] |
Definition at line 1959 of file omp_directive.cxx.
References schedule_2::chunk_size, parallel_for_clause_node::defaulttype, parallel_for_clause_node::expr_no_commas, Fail_FmtAssertion(), FALSE, malloc, parallel_for_clause_list::next, parallel_for_clause_list::node, NULL, parallel_for_clause_node::ordered, p_for_copyin, p_for_copyprivate, p_for_default, p_for_firstprivate, p_for_if, p_for_lastprivate, p_for_num_threads, p_for_ordered, p_for_private, p_for_reduction, p_for_schedule_1, p_for_schedule_2, p_for_shared, parallel_for_clause_node::reduction_node, reduction::reduction_op, result, schedule_2::schedule_kind, parallel_for_clause_node::schedule_kind, parallel_for_clause_node::schedule_node, parallel_for_clause_list::type, parallel_for_clause_node::var_list, and reduction::var_list.
| struct parallel_sections_clause_list* build_parallel_sections_clause_list | ( | tree | t, | |
| parallel_sections_clause_type | p_type, | |||
| default_type | d_type, | |||
| reduction_op_type | red_op | |||
| ) | [read] |
Definition at line 2029 of file omp_directive.cxx.
References parallel_sections_clause_node::defaulttype, parallel_sections_clause_node::expr_no_commas, Fail_FmtAssertion(), FALSE, malloc, parallel_sections_clause_list::next, parallel_sections_clause_list::node, NULL, p_sections_copyin, p_sections_copyprivate, p_sections_default, p_sections_firstprivate, p_sections_if, p_sections_lastprivate, p_sections_num_threads, p_sections_private, p_sections_reduction, p_sections_shared, parallel_sections_clause_node::reduction_node, reduction::reduction_op, result, parallel_sections_clause_list::type, reduction::var_list, and parallel_sections_clause_node::var_list.
| struct sections_clause_list* build_sections_clause_list | ( | tree | t, | |
| sections_clause_type | s_type, | |||
| reduction_op_type | red_op | |||
| ) | [read] |
Definition at line 1866 of file omp_directive.cxx.
References Fail_FmtAssertion(), FALSE, malloc, sections_clause_list::next, sections_clause_list::node, sections_clause_node::nowait, NULL, sections_clause_node::reduction_node, reduction::reduction_op, result, sections_firstprivate, sections_lastprivate, sections_nowait, sections_private, sections_reduction, sections_clause_list::type, reduction::var_list, and sections_clause_node::var_list.
| struct single_clause_list* build_single_clause_list | ( | tree | t, | |
| single_clause_type | s_type | |||
| ) | [read] |
Definition at line 1915 of file omp_directive.cxx.
References Fail_FmtAssertion(), FALSE, malloc, single_clause_list::next, single_clause_list::node, single_clause_node::nowait, NULL, result, single_copyprivate, single_firstprivate, single_nowait, single_private, single_clause_list::type, and single_clause_node::var_list.
| struct for_clause_list* chain_for_list_on | ( | struct for_clause_list * | fclause_list, | |
| struct for_clause_list * | fclause | |||
| ) | [read] |
| struct parallel_for_clause_list* chain_parallel_for_list_on | ( | struct parallel_for_clause_list * | pfclause_list, | |
| struct parallel_for_clause_list * | pfclause | |||
| ) | [read] |
Definition at line 1946 of file omp_directive.cxx.
References parallel_for_clause_list::next, and NULL.
| struct parallel_clause_list* chain_parallel_list_on | ( | struct parallel_clause_list * | pclause_list, | |
| struct parallel_clause_list * | pclause | |||
| ) | [read] |
| struct parallel_sections_clause_list* chain_parallel_sections_list_on | ( | struct parallel_sections_clause_list * | psclause_list, | |
| struct parallel_sections_clause_list * | psclause | |||
| ) | [read] |
Definition at line 2016 of file omp_directive.cxx.
References parallel_sections_clause_list::next, and NULL.
| struct sections_clause_list* chain_sections_list_on | ( | struct sections_clause_list * | sclause_list, | |
| struct sections_clause_list * | sclause | |||
| ) | [read] |
| struct single_clause_list* chain_single_list_on | ( | struct single_clause_list * | sclause_list, | |
| struct single_clause_list * | sclause | |||
| ) | [read] |
Definition at line 1384 of file omp_directive.cxx.
References Fail_FmtAssertion(), printf(), SRCPOS_filenum, SRCPOS_linenum, TREE_CODE, and TREE_OPERAND.
Definition at line 1505 of file omp_directive.cxx.
References end, index(), MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, ST_type, start, step(), TREE_CODE, TREE_OPERAND, TY_mtype, TYPE_ID, WFE_Expand_Expr(), WN_st(), and WN_st_idx().
| void check_for_directive | ( | struct for_clause_list * | clause_list | ) |
Definition at line 413 of file omp_directive.cxx.
References cl(), f_nowait, f_ordered, f_schedule_1, f_schedule_2, Fail_FmtAssertion(), for_clause_list::next, NULL, printf(), SRCPOS_filenum, SRCPOS_linenum, and for_clause_list::type.
| void check_parallel_directive | ( | struct parallel_clause_list * | clause_list | ) |
Definition at line 236 of file omp_directive.cxx.
References cl(), Fail_FmtAssertion(), parallel_clause_list::next, NULL, p_default, p_if, p_num_threads, printf(), SRCPOS_filenum, SRCPOS_linenum, and parallel_clause_list::type.
| void check_parallel_for_directive | ( | struct parallel_for_clause_list * | clause_list | ) |
Definition at line 894 of file omp_directive.cxx.
References cl(), Fail_FmtAssertion(), parallel_for_clause_list::next, NULL, p_for_default, p_for_if, p_for_num_threads, p_for_ordered, p_for_schedule_1, p_for_schedule_2, printf(), SRCPOS_filenum, SRCPOS_linenum, and parallel_for_clause_list::type.
| void check_parallel_sections_directive | ( | struct parallel_sections_clause_list * | clause_list | ) |
Definition at line 1148 of file omp_directive.cxx.
References cl(), Fail_FmtAssertion(), parallel_sections_clause_list::next, NULL, p_sections_default, p_sections_if, p_sections_num_threads, printf(), SRCPOS_filenum, SRCPOS_linenum, and parallel_sections_clause_list::type.
| void check_sections_directive | ( | struct sections_clause_list * | clause_list | ) |
Definition at line 608 of file omp_directive.cxx.
References cl(), Fail_FmtAssertion(), sections_clause_list::next, NULL, printf(), sections_nowait, SRCPOS_filenum, SRCPOS_linenum, and sections_clause_list::type.
| void check_single_directive | ( | struct single_clause_list * | clause_list | ) |
Definition at line 777 of file omp_directive.cxx.
References cl(), Fail_FmtAssertion(), single_clause_list::next, NULL, printf(), single_copyprivate, single_nowait, SRCPOS_filenum, SRCPOS_linenum, and single_clause_list::type.
| void expand_barrier | ( | ) |
| void expand_end_parallel | ( | ) |
Definition at line 1460 of file omp_directive.cxx.
References malloc, WN_list::next, NULL, TREE_CHAIN, TREE_VALUE, WFE_Expand_Expr(), WFE_expand_flush(), WN_list::wn, wn, and WN_CopyNode().
| void expand_start_atomic | ( | ) |
Definition at line 1357 of file omp_directive.cxx.
References FALSE, Gen_String_Sym(), Host_To_Targ_String(), IDENTIFIER_POINTER, MTYPE_STRING, MTYPE_To_TY, NULL, printf(), strlen(), Trace_Omp, and WFE_expand_start_critical().
| void expand_start_do_loop | ( | tree | init_expr, | |
| tree | logical_expr, | |||
| tree | incr_expr, | |||
| struct nesting * | nest | |||
| ) |
Definition at line 1578 of file omp_directive.cxx.
References DECL_INITIAL, DECL_ST, end, Fail_FmtAssertion(), FALSE, index(), MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, NULL, printf(), SRCPOS_filenum, SRCPOS_linenum, ST_st_idx, ST_type, start, step(), TREE_CODE, TREE_OPERAND, TY_mtype, TYPE_ID, WFE_Expand_Expr(), WFE_expand_start_do_loop(), WFE_Lhs_Of_Modify_Expr(), WFE_Stmt_Pop(), WFE_Stmt_Push(), wn, WN_COPY_Tree(), WN_CreateBlock, WN_CreateIdname, WN_DELETE_Tree(), WN_first(), WN_st(), and WN_st_idx().
| void expand_start_for | ( | struct for_clause_list * | clause_list | ) |
Definition at line 449 of file omp_directive.cxx.
References chainon(), check_for_directive(), schedule_2::chunk_size, schedule_2_wn::chunk_size_wn, cl(), f_firstprivate, f_lastprivate, f_nowait, f_ordered, f_private, f_reduction, f_schedule_1, f_schedule_2, For_clause_wn_type::firstprivate_clause, free(), For_clause_wn_type::lastprivate_clause, malloc, reduction_list::next, for_clause_list::next, reduction_list::node, for_clause_list::node, For_clause_wn_type::nowait_clause, NULL, For_clause_wn_type::ordered_clause, prepare_com_clause(), prepare_reduction_clause(), For_clause_wn_type::private_clause, For_clause_wn_type::reduction_clause, for_clause_node::reduction_node, For_clause_wn_type::schedule_1_clause, For_clause_wn_type::schedule_2_clause, schedule_2_wn::schedule_2_kind, schedule_2::schedule_kind, for_clause_node::schedule_kind, for_clause_node::schedule_node, SK_NONE, for_clause_list::type, for_clause_node::var_list, WFE_Expand_Expr(), WFE_expand_start_for(), and wn.
| void expand_start_master | ( | ) |
| void expand_start_ordered | ( | ) |
| void expand_start_parallel | ( | struct parallel_clause_list * | clause_list | ) |
Definition at line 270 of file omp_directive.cxx.
References chainon(), check_parallel_directive(), cl(), Parallel_clause_wn_type::copyin_clause, Parallel_clause_wn_type::default_clause, parallel_clause_node::defaulttype, parallel_clause_node::expr_no_commas, Parallel_clause_wn_type::firstprivate_clause, free(), Parallel_clause_wn_type::if_clause, malloc, MTYPE_is_integral, reduction_list::next, parallel_clause_list::next, no_default, reduction_list::node, parallel_clause_list::node, NULL, Parallel_clause_wn_type::num_threads_clause, p_copyin, p_default, p_firstprivate, p_if, p_num_threads, p_private, p_reduction, p_shared, prepare_com_clause(), prepare_reduction_clause(), Parallel_clause_wn_type::private_clause, Parallel_clause_wn_type::reduction_clause, parallel_clause_node::reduction_node, Parallel_clause_wn_type::shared_clause, parallel_clause_list::type, TYPE_ID, val, parallel_clause_node::var_list, WFE_Expand_Expr(), WFE_expand_start_parallel(), WN_Floatconst(), WN_Intconst(), WN_NE, and WN_rtype().
| void expand_start_parallel_for | ( | struct parallel_for_clause_list * | clause_list | ) |
Definition at line 942 of file omp_directive.cxx.
References chainon(), check_parallel_for_directive(), schedule_2::chunk_size, schedule_2_wn::chunk_size_wn, cl(), Parallel_for_clause_wn_type::copyin_clause, Parallel_for_clause_wn_type::default_clause, parallel_for_clause_node::defaulttype, parallel_for_clause_node::expr_no_commas, Parallel_for_clause_wn_type::firstprivate_clause, free(), Parallel_for_clause_wn_type::if_clause, Parallel_for_clause_wn_type::lastprivate_clause, malloc, MTYPE_is_integral, reduction_list::next, parallel_for_clause_list::next, no_default, parallel_for_clause_list::node, reduction_list::node, NULL, Parallel_for_clause_wn_type::num_threads_clause, Parallel_for_clause_wn_type::ordered_clause, p_for_copyin, p_for_default, p_for_firstprivate, p_for_if, p_for_lastprivate, p_for_num_threads, p_for_ordered, p_for_private, p_for_reduction, p_for_schedule_1, p_for_schedule_2, p_for_shared, prepare_com_clause(), prepare_reduction_clause(), Parallel_for_clause_wn_type::private_clause, Parallel_for_clause_wn_type::reduction_clause, parallel_for_clause_node::reduction_node, Parallel_for_clause_wn_type::schedule_1_clause, Parallel_for_clause_wn_type::schedule_2_clause, schedule_2_wn::schedule_2_kind, schedule_2::schedule_kind, parallel_for_clause_node::schedule_kind, parallel_for_clause_node::schedule_node, Parallel_for_clause_wn_type::shared_clause, SK_NONE, parallel_for_clause_list::type, TYPE_ID, val, parallel_for_clause_node::var_list, WFE_Expand_Expr(), WFE_expand_start_parallel_for(), wn, WN_Floatconst(), WN_Intconst(), WN_NE, and WN_rtype().
| void expand_start_parallel_sections | ( | struct parallel_sections_clause_list * | clause_list | ) |
Definition at line 1183 of file omp_directive.cxx.
References chainon(), check_parallel_sections_directive(), cl(), Parallel_sections_clause_wn_type::copyin_clause, Parallel_sections_clause_wn_type::default_clause, parallel_sections_clause_node::defaulttype, parallel_sections_clause_node::expr_no_commas, Parallel_sections_clause_wn_type::firstprivate_clause, free(), Parallel_sections_clause_wn_type::if_clause, Parallel_sections_clause_wn_type::lastprivate_clause, malloc, MTYPE_is_integral, reduction_list::next, parallel_sections_clause_list::next, no_default, reduction_list::node, parallel_sections_clause_list::node, NULL, Parallel_sections_clause_wn_type::num_threads_clause, p_sections_copyin, p_sections_default, p_sections_firstprivate, p_sections_if, p_sections_lastprivate, p_sections_num_threads, p_sections_private, p_sections_reduction, p_sections_shared, prepare_com_clause(), prepare_reduction_clause(), Parallel_sections_clause_wn_type::private_clause, Parallel_sections_clause_wn_type::reduction_clause, parallel_sections_clause_node::reduction_node, Parallel_sections_clause_wn_type::shared_clause, parallel_sections_clause_list::type, TYPE_ID, val, parallel_sections_clause_node::var_list, WFE_Expand_Expr(), WFE_expand_start_parallel_sections(), WN_Floatconst(), WN_Intconst(), WN_NE, and WN_rtype().
| void expand_start_section | ( | ) |
| void expand_start_sections | ( | struct sections_clause_list * | clause_list | ) |
Definition at line 629 of file omp_directive.cxx.
References chainon(), check_sections_directive(), cl(), Sections_clause_wn_type::firstprivate_clause, free(), Sections_clause_wn_type::lastprivate_clause, malloc, reduction_list::next, sections_clause_list::next, reduction_list::node, sections_clause_list::node, Sections_clause_wn_type::nowait_clause, NULL, prepare_com_clause(), prepare_reduction_clause(), Sections_clause_wn_type::private_clause, Sections_clause_wn_type::reduction_clause, sections_clause_node::reduction_node, sections_firstprivate, sections_lastprivate, sections_nowait, sections_private, sections_reduction, sections_clause_list::type, sections_clause_node::var_list, WFE_expand_start_sections(), and wn.
| void expand_start_single | ( | struct single_clause_list * | clause_list | ) |
Definition at line 806 of file omp_directive.cxx.
References chainon(), check_single_directive(), cl(), Single_clause_wn_type::copyprivate_clause, Single_clause_wn_type::firstprivate_clause, free(), malloc, single_clause_list::next, single_clause_list::node, Single_clause_wn_type::nowait_clause, NULL, prepare_com_clause(), Single_clause_wn_type::private_clause, single_copyprivate, single_firstprivate, single_nowait, single_private, single_clause_list::type, single_clause_node::var_list, WFE_expand_start_single(), and wn.
Definition at line 1483 of file omp_directive.cxx.
References Get_Pre_ST(), malloc, ST_list::next, NULL, ST_list::st, TREE_CHAIN, TREE_VALUE, WFE_expand_threadprivate(), and wn.
Definition at line 133 of file omp_directive.cxx.
References Fail_FmtAssertion(), NULL, SRCPOS_filenum, SRCPOS_linenum, WFE_CS_push(), WFE_Expand_Expr(), wfe_omp_master, and WN_st().
Definition at line 153 of file omp_directive.cxx.
References Get_Pre_ST(), malloc, ST_list::next, NULL, ST_list::st, TREE_CHAIN, and TREE_VALUE.
| void prepare_reduction_clause | ( | struct reduction_list * | reduction_clause_list, | |
| WN_list ** | reduction_clause_wn | |||
| ) |
Definition at line 177 of file omp_directive.cxx.
References Get_Pre_ST(), malloc, reduction_list::next, WN_list::next, reduction_list::node, NULL, OPR_ADD, OPR_BAND, OPR_BIOR, OPR_BXOR, OPR_CAND, OPR_CIOR, OPR_MPY, OPR_SUB, reduction::reduction_op, REDUCTION_OPR_ADD, REDUCTION_OPR_BAND, REDUCTION_OPR_BIOR, REDUCTION_OPR_BXOR, REDUCTION_OPR_CAND, REDUCTION_OPR_CIOR, REDUCTION_OPR_MPY, REDUCTION_OPR_SUB, TREE_CHAIN, TREE_VALUE, reduction::var_list, WN_list::wn, wn, WN_CreatePragma, WN_PRAGMA_REDUCTION, and WN_set_pragma_omp.
Definition at line 82 of file omp_directive.cxx.
References DECL_NAME, fprintf(), HOST_PTR_PRINTF, IDENTIFIER_POINTER, print_node_brief(), TREE_CHAIN, TREE_CODE, TREE_CODE_CLASS, tree_code_name, TREE_PURPOSE, TREE_VALUE, and TYPE_NAME.
1.5.6