#include "gnu_config.h"#include "system.h"#include "gnu/tree.h"#include "cp-tree.h"#include "wn.h"#include "wn_util.h"#include "wfe_misc.h"#include "wfe_stmt.h"#include "omp_types.h"#include "omp_directive.h"#include "wfe_omp_directives.h"#include "wfe_omp_check_stack.h"#include "tree_symtab.h"#include "stdio.h"#include "errors.h"#include "const.h"#include "erglob.h"#include <stack>

Go to the source code of this file.
| enum PRAGMA_TYPE |
Definition at line 2642 of file wfe_omp_directives.cxx.
References OPR_LDID, OPR_STID, and WN_operator().
Definition at line 2649 of file wfe_omp_directives.cxx.
References Equiv_Expression(), FALSE, INT, TRUE, WN_Equiv(), WN_kid(), and WN_kid_count().
Definition at line 2691 of file wfe_omp_directives.cxx.
References Find_Same_Location(), INT, NULL, OPR_BLOCK, Same_Location(), tmp, WN_kid(), WN_kid_count(), and WN_operator().
Definition at line 2730 of file wfe_omp_directives.cxx.
References find(), Find_Same_Location(), FmtAssert, Is_True, OPR_ADD, OPR_BLOCK, OPR_SUB, Same_Location(), store(), WN_Add, WN_first(), WN_Intconst(), WN_kid(), WN_kid0(), WN_kid1(), WN_last(), WN_operator(), and WN_rtype().
Referenced by Atomic_Direct(), WFE_expand_end_atomic(), and WGEN_expand_end_atomic().
Definition at line 2662 of file wfe_omp_directives.cxx.
References Direct_Memory(), Equiv_Expression(), FALSE, OPCODE_is_load(), OPCODE_is_store(), WN_kid0(), WN_kid1(), WN_offset(), WN_opcode(), and WN_st().
| void WFE_check_barrier | ( | ) |
Definition at line 2839 of file wfe_omp_directives.cxx.
References cs, msg, NULL, OPR_BLOCK, SRCPOS_filenum, SRCPOS_linenum, WFE_bind_to_same(), WFE_CS_top(), wfe_cscf, WFE_is_top(), wfe_omp_barrier, wfe_omp_critical, WFE_omp_error(), wfe_omp_for, wfe_omp_master, wfe_omp_ordered, wfe_omp_parallel, wfe_omp_sections, wfe_omp_single, WFE_Set_LFnum(), WFE_Stmt_Top(), and WN_operator().
Referenced by WFE_expand_barrier().
| void WFE_check_critical | ( | char * | name | ) |
Definition at line 2529 of file wfe_omp_directives.cxx.
References msg, NULL, WFE_CS_Find_fgname(), WFE_CS_top(), wfe_omp_critical, and WFE_omp_error().
Referenced by WFE_expand_start_critical().
Definition at line 197 of file wfe_omp_directives.cxx.
Referenced by WFE_check_for(), WFE_check_parallel(), WFE_check_parallel_for(), WFE_check_parallel_sections(), WFE_check_sections(), and WFE_check_single().
Definition at line 157 of file wfe_omp_directives.cxx.
References fprintf(), SCLASS_FORMAL_REF, and WN_st().
Referenced by WFE_check_for(), WFE_check_parallel(), WFE_check_parallel_for(), WFE_check_parallel_sections(), WFE_check_sections(), and WFE_check_single().
| void WFE_check_flush | ( | ) |
Definition at line 2917 of file wfe_omp_directives.cxx.
References cs, msg, NULL, OPR_BLOCK, SRCPOS_filenum, SRCPOS_linenum, WFE_CS_top(), wfe_cscf, WFE_is_top(), WFE_omp_error(), WFE_Set_LFnum(), WFE_Stmt_Top(), and WN_operator().
Referenced by WFE_expand_flush().
Definition at line 743 of file wfe_omp_directives.cxx.
References clause_firstprivate, clause_lastprivate, clause_private, clause_reduction, fprintf(), msg, NULL, OPR_BLOCK, OPR_DO_LOOP, ST_is_thread_private, WFE_bind_to_same(), WFE_Check_Cflag(), WFE_check_default(), WFE_check_firstprivate(), WFE_check_lastprivate(), WFE_check_private(), WFE_check_reduction(), WFE_CS_Find_Rtn(), WFE_CS_top(), wfe_omp_critical, WFE_omp_error(), wfe_omp_for, wfe_omp_master, wfe_omp_ordered, wfe_omp_parallel, wfe_omp_sections, wfe_omp_single, WN_first(), WN_index, WN_next(), WN_operator(), check_stmt::wn_prag, WN_pragma(), WN_PRAGMA_COPYIN, WN_PRAGMA_COPYPRIVATE, WN_PRAGMA_DEFAULT, WN_PRAGMA_FIRSTPRIVATE, WN_PRAGMA_IF, WN_PRAGMA_LASTLOCAL, WN_PRAGMA_LOCAL, WN_PRAGMA_MPSCHEDTYPE, WN_PRAGMA_NUMTHREADS, WN_PRAGMA_REDUCTION, WN_st(), and WN_st_idx().
Referenced by WFE_expand_end_for().
Definition at line 168 of file wfe_omp_directives.cxx.
References fprintf(), SCLASS_FORMAL_REF, ST_is_const_var, and WN_st().
Referenced by WFE_check_for(), WFE_check_parallel_for(), WFE_check_parallel_sections(), and WFE_check_sections().
| void WFE_check_master | ( | ) |
Definition at line 2471 of file wfe_omp_directives.cxx.
References msg, NULL, WFE_bind_to_same(), WFE_CS_top(), WFE_omp_error(), wfe_omp_for, wfe_omp_master, wfe_omp_parallel, wfe_omp_sections, and wfe_omp_single.
| void WFE_check_ordered | ( | ) |
Definition at line 2768 of file wfe_omp_directives.cxx.
References clause_ordered, msg, NULL, WFE_CS_Find(), WFE_CS_Find_Cflag(), WFE_CS_top(), wfe_omp_critical, WFE_omp_error(), wfe_omp_for, wfe_omp_parallel, and wfe_omp_parallel_for.
Referenced by WFE_expand_end_ordered().
Definition at line 216 of file wfe_omp_directives.cxx.
References msg, NULL, ST_is_thread_private, WFE_check_default(), WFE_check_firstprivate(), WFE_check_private(), WFE_check_reduction(), WFE_CS_top(), WFE_omp_error(), WN_first(), WN_next(), check_stmt::wn_prag, WN_pragma(), WN_PRAGMA_COPYIN, WN_PRAGMA_COPYPRIVATE, WN_PRAGMA_DEFAULT, WN_PRAGMA_FIRSTPRIVATE, WN_PRAGMA_IF, WN_PRAGMA_LOCAL, WN_PRAGMA_MPSCHEDTYPE, WN_PRAGMA_NUMTHREADS, WN_PRAGMA_REDUCTION, and WN_st().
Referenced by WFE_expand_end_parallel().
Definition at line 1794 of file wfe_omp_directives.cxx.
References clause_firstprivate, clause_lastprivate, clause_private, clause_reduction, fprintf(), msg, NULL, OPR_BLOCK, OPR_DO_LOOP, ST_is_thread_private, WFE_Check_Cflag(), WFE_check_default(), WFE_check_firstprivate(), WFE_check_lastprivate(), WFE_check_private(), WFE_check_reduction(), WFE_CS_top(), WFE_omp_error(), WN_first(), WN_index, WN_next(), WN_operator(), check_stmt::wn_prag, WN_pragma(), WN_PRAGMA_COPYIN, WN_PRAGMA_COPYPRIVATE, WN_PRAGMA_DEFAULT, WN_PRAGMA_FIRSTPRIVATE, WN_PRAGMA_IF, WN_PRAGMA_LASTLOCAL, WN_PRAGMA_LOCAL, WN_PRAGMA_MPSCHEDTYPE, WN_PRAGMA_NUMTHREADS, WN_PRAGMA_REDUCTION, and WN_st().
Referenced by WFE_expand_end_parallel_for().
Definition at line 2181 of file wfe_omp_directives.cxx.
References clause_firstprivate, clause_lastprivate, clause_private, clause_reduction, msg, NULL, ST_is_thread_private, WFE_Check_Cflag(), WFE_check_default(), WFE_check_firstprivate(), WFE_check_lastprivate(), WFE_check_private(), WFE_check_reduction(), WFE_CS_top(), WFE_omp_error(), WN_first(), WN_next(), check_stmt::wn_prag, WN_pragma(), WN_PRAGMA_COPYIN, WN_PRAGMA_COPYPRIVATE, WN_PRAGMA_DEFAULT, WN_PRAGMA_FIRSTPRIVATE, WN_PRAGMA_IF, WN_PRAGMA_LASTLOCAL, WN_PRAGMA_LOCAL, WN_PRAGMA_MPSCHEDTYPE, WN_PRAGMA_NUMTHREADS, WN_PRAGMA_REDUCTION, and WN_st().
Referenced by WFE_expand_end_parallel_sections().
Definition at line 139 of file wfe_omp_directives.cxx.
References fprintf(), SCLASS_FORMAL_REF, ST_is_const_var, and WN_st().
Referenced by WFE_check_for(), WFE_check_parallel(), WFE_check_parallel_for(), WFE_check_parallel_sections(), WFE_check_sections(), and WFE_check_single().
Definition at line 187 of file wfe_omp_directives.cxx.
References fprintf(), ST_is_const_var, and WN_st().
Referenced by WFE_check_for(), WFE_check_parallel(), WFE_check_parallel_for(), WFE_check_parallel_sections(), WFE_check_sections(), and WFE_check_single().
| void WFE_check_section | ( | ) |
Definition at line 1427 of file wfe_omp_directives.cxx.
References i, msg, NULL, WFE_CS_Find(), WFE_CS_top(), WFE_omp_error(), wfe_omp_parallel_sections, and wfe_omp_sections.
Referenced by WFE_expand_end_section().
Definition at line 1095 of file wfe_omp_directives.cxx.
References clause_firstprivate, clause_lastprivate, clause_private, clause_reduction, msg, NULL, ST_is_thread_private, WFE_bind_to_same(), WFE_Check_Cflag(), WFE_check_default(), WFE_check_firstprivate(), WFE_check_lastprivate(), WFE_check_private(), WFE_check_reduction(), WFE_CS_Find_Rtn(), WFE_CS_top(), wfe_omp_critical, WFE_omp_error(), wfe_omp_for, wfe_omp_master, wfe_omp_ordered, wfe_omp_parallel, wfe_omp_sections, wfe_omp_single, WN_first(), WN_next(), check_stmt::wn_prag, WN_pragma(), WN_PRAGMA_COPYIN, WN_PRAGMA_COPYPRIVATE, WN_PRAGMA_DEFAULT, WN_PRAGMA_FIRSTPRIVATE, WN_PRAGMA_IF, WN_PRAGMA_LASTLOCAL, WN_PRAGMA_LOCAL, WN_PRAGMA_MPSCHEDTYPE, WN_PRAGMA_NUMTHREADS, WN_PRAGMA_REDUCTION, WN_st(), and WN_st_idx().
Referenced by WFE_expand_end_sections().
| void WFE_check_single | ( | ) |
Definition at line 1468 of file wfe_omp_directives.cxx.
References clause_copyprivate, clause_firstprivate, clause_private, clause_reduction, find(), check_stmt::kind, msg, NULL, ST_is_thread_private, WFE_bind_to_same(), WFE_Check_Cflag(), WFE_check_default(), WFE_check_firstprivate(), WFE_check_private(), WFE_check_reduction(), WFE_CS_enclose(), WFE_CS_Find(), WFE_CS_Find_Rtn(), WFE_CS_top(), wfe_omp_critical, WFE_omp_error(), wfe_omp_for, wfe_omp_master, wfe_omp_ordered, wfe_omp_parallel, wfe_omp_parallel_for, wfe_omp_sections, wfe_omp_single, WN_first(), WN_next(), check_stmt::wn_prag, WN_pragma(), WN_PRAGMA_COPYIN, WN_PRAGMA_COPYPRIVATE, WN_PRAGMA_DEFAULT, WN_PRAGMA_FIRSTPRIVATE, WN_PRAGMA_IF, WN_PRAGMA_LOCAL, WN_PRAGMA_MPSCHEDTYPE, WN_PRAGMA_NUMTHREADS, WN_PRAGMA_REDUCTION, WN_st(), and WN_st_idx().
Referenced by WFE_expand_end_single().
Definition at line 2994 of file wfe_omp_directives.cxx.
References fprintf(), Get_Current_PU, Get_ST, ST_list::next, NULL, PU_lexical_level, SCLASS_PSTATIC, ST_is_thread_private, ST_level, ST_storage_class(), and ST_list::var.
Referenced by WFE_expand_threadprivate().
| void WFE_expand_barrier | ( | ) |
| void WFE_expand_end_atomic | ( | ) |
| void WFE_expand_end_critical | ( | ) |
Definition at line 3054 of file wfe_omp_directives.cxx.
References WFE_Stmt_Pop().
Referenced by expand_end_do_loop().
| void WFE_expand_end_for | ( | ) |
| void WFE_expand_end_master | ( | ) |
| void WFE_expand_end_ordered | ( | ) |
| void WFE_expand_end_parallel | ( | ) |
| void WFE_expand_end_parallel_for | ( | ) |
| void WFE_expand_end_parallel_sections | ( | ) |
Definition at line 2460 of file wfe_omp_directives.cxx.
Referenced by expand_end_parallel_sections().
| void WFE_expand_end_section | ( | ) |
| void WFE_expand_end_sections | ( | ) |
| void WFE_expand_end_single | ( | ) |
| void WFE_expand_start_atomic | ( | ) |
Definition at line 3041 of file wfe_omp_directives.cxx.
References NULL, WFE_Stmt_Append(), WFE_Stmt_Push(), WN_CreateBlock, and WN_CreateDO.
Referenced by expand_start_do_loop().
| void WFE_expand_start_for | ( | struct For_clause_wn_type * | for_clause_wn | ) |
| void WFE_expand_start_master | ( | ) |
| void WFE_expand_start_ordered | ( | ) |
| void WFE_expand_start_parallel | ( | struct Parallel_clause_wn_type * | parallel_clause_wn | ) |
| void WFE_expand_start_parallel_for | ( | struct Parallel_for_clause_wn_type * | parallel_for_clause_wn | ) |
| void WFE_expand_start_parallel_sections | ( | struct Parallel_sections_clause_wn_type * | parallel_sections_clause_wn | ) |
Definition at line 2291 of file wfe_omp_directives.cxx.
Referenced by expand_start_parallel_sections().
| void WFE_expand_start_section | ( | ) |
| void WFE_expand_start_sections | ( | struct Sections_clause_wn_type * | sections_clause_wn | ) |
| void WFE_expand_start_single | ( | struct Single_clause_wn_type * | single_clause_wn | ) |
| static BOOL WFE_handle_non_pods | ( | tree | var, | |
| WN * | block, | |||
| PRAGMA_TYPE | p | |||
| ) | [static] |
Definition at line 531 of file wfe_omp_directives.cxx.
References BOOL, c, d, dtor_call_stack, FALSE, FIRSTPRIVATE, Get_ST, PRIVATE, Set_TY_is_non_pod(), ST_type, TRUE, WFE_maybe_call_copy_ctor(), WFE_maybe_call_default_ctor(), and WN_INSERT_BlockLast.
Referenced by WFE_expand_start_for(), WFE_expand_start_parallel(), WFE_expand_start_parallel_for(), WFE_expand_start_parallel_sections(), WFE_expand_start_sections(), and WFE_expand_start_single().
Definition at line 284 of file wfe_omp_directives.cxx.
References args, DECL_CONSTRUCTOR_P, DECL_COPY_CONSTRUCTOR_P, FALSE, FUNCTION_FIRST_USER_PARMTYPE, Is_True, TREE_CHAIN, TREE_CODE, TREE_PURPOSE, TRUE, and void_list_node.
Referenced by WFE_maybe_call_default_ctor().
Definition at line 439 of file wfe_omp_directives.cxx.
References i, node, NULL, OPR_BLOCK, OPR_CALL, ST_st_idx, WN_COPY_Tree(), WN_first(), WN_has_sym, WN_kid(), WN_kid0(), WN_kid1(), WN_kid_count(), WN_next(), WN_operator(), WN_st(), and WN_st_idx().
Referenced by WFE_maybe_localize_vars().
Definition at line 360 of file wfe_omp_directives.cxx.
References CLASSTYPE_NON_POD_P, DECL_COMPLETE_CONSTRUCTOR_P, DECL_COMPLETE_DESTRUCTOR_P, DECL_COPY_CONSTRUCTOR_P, FALSE, FmtAssert, Get_ST, MTYPE_V, NULL, Pointer_Mtype, ST_name, ST_st_idx, TREE_CHAIN, TREE_CODE, TREE_TYPE, TRUE, TYPE_METHODS, WN_actual, WN_Call, WN_COPY_Tree(), WN_CreateParm, WN_kid0(), WN_Lda(), WN_PARM_BY_VALUE, WN_rtype(), WN_Set_Call_Default_Flags, and WN_ty().
Referenced by WFE_handle_non_pods().
Definition at line 302 of file wfe_omp_directives.cxx.
References CLASSTYPE_NON_POD_P, DECL_COMPLETE_CONSTRUCTOR_P, DECL_COMPLETE_DESTRUCTOR_P, FALSE, FmtAssert, Get_ST, MTYPE_V, NULL, Pointer_Mtype, ST_name, ST_st_idx, TREE_CHAIN, TREE_CODE, TREE_TYPE, TRUE, TYPE_HAS_DEFAULT_CONSTRUCTOR, TYPE_METHODS, WFE_is_default_constructor(), WN_actual, WN_Call, WN_COPY_Tree(), WN_CreateParm, WN_kid0(), WN_Lda(), WN_PARM_BY_VALUE, WN_rtype(), WN_Set_Call_Default_Flags, and WN_ty().
Referenced by WFE_handle_non_pods().
Definition at line 416 of file wfe_omp_directives.cxx.
References dtor_call_stack, Is_True, OPR_BLOCK, OPR_CALL, OPR_REGION, WN_INSERT_BlockLast, WN_operator(), and WN_region_body.
Referenced by WFE_expand_end_for(), WFE_expand_end_parallel(), WFE_expand_end_parallel_for(), WFE_expand_end_parallel_sections(), WFE_expand_end_sections(), and WFE_expand_end_single().
Definition at line 488 of file wfe_omp_directives.cxx.
References alloca, CLASS_PREG, CLASS_VAR, CURRENT_SYMTAB, EXPORT_LOCAL, FmtAssert, Is_True, local_node_stack, New_ST(), OPR_BLOCK, OPR_PRAGMA, OPR_REGION, Save_Str(), SCLASS_AUTO, Set_ST_addr_passed(), Set_ST_addr_saved(), sprintf(), ST_addr_passed(), ST_addr_saved(), ST_class, ST_Init(), ST_name, ST_type, strlen(), WFE_localize_var(), WN_operator(), WN_region_body, and WN_st().
Referenced by WFE_expand_end_for(), WFE_expand_end_parallel(), WFE_expand_end_parallel_for(), WFE_expand_end_parallel_sections(), WFE_expand_end_sections(), and WFE_expand_end_single().
| void WFE_omp_error | ( | CHECK_STMT * | cs, | |
| bool | chkflag, | |||
| char * | msg | |||
| ) |
Definition at line 112 of file wfe_omp_directives.cxx.
References dirname, ErrMsg(), check_stmt::kind, sprintf(), wfe_omp_for, wfe_omp_parallel, wfe_omp_parallel_for, wfe_omp_parallel_sections, wfe_omp_sections, and wfe_omp_single.
Referenced by WFE_check_barrier(), WFE_check_critical(), WFE_check_flush(), WFE_check_for(), WFE_check_master(), WFE_check_ordered(), WFE_check_parallel(), WFE_check_parallel_for(), WFE_check_parallel_sections(), WFE_check_section(), WFE_check_sections(), and WFE_check_single().
Definition at line 82 of file wfe_omp_directives.cxx.
References getenv(), strcmp(), Trace_Omp, TRUE, and WFE_CS_Init().
Referenced by WFE_Init().
| WN* WFE_region | ( | REGION_KIND | kind | ) |
Definition at line 90 of file wfe_omp_directives.cxx.
References region, WFE_Stmt_Append(), WFE_Stmt_Push(), WN_CreateBlock, and WN_CreateRegion.
Referenced by WFE_expand_start_for(), WFE_expand_start_master(), WFE_expand_start_parallel(), WFE_expand_start_parallel_for(), WFE_expand_start_parallel_sections(), WFE_expand_start_sections(), and WFE_expand_start_single().
Definition at line 60 of file wfe_omp_directives.cxx.
Referenced by WFE_expand_start_for(), WFE_expand_start_parallel(), WFE_expand_start_parallel_for(), WFE_expand_start_parallel_sections(), WFE_expand_start_sections(), WFE_expand_start_single(), WFE_handle_non_pods(), WFE_maybe_call_dtors(), WGEN_expand_start_for(), WGEN_expand_start_parallel(), WGEN_expand_start_sections(), WGEN_expand_start_single(), WGEN_handle_non_pods(), and WGEN_maybe_call_dtors().
Definition at line 71 of file wfe_omp_directives.cxx.
Referenced by WFE_expand_start_for(), WFE_expand_start_parallel(), WFE_expand_start_parallel_for(), WFE_expand_start_parallel_sections(), WFE_expand_start_sections(), WFE_expand_start_single(), WFE_maybe_localize_vars(), WGEN_expand_start_for(), WGEN_expand_start_parallel(), WGEN_expand_start_sections(), WGEN_expand_start_single(), WGEN_maybe_localize_vars(), and WGEN_process_omp_clause().
Definition at line 79 of file wfe_omp_directives.cxx.
1.5.6