Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00068 #ifndef wnmp_INCLUDED
00069 #define wnmp_INCLUDED "wn_mp.h"
00070
00071 #ifndef __ELF_H__
00072 #include <elf.h>
00073 #endif
00074
00075 #ifndef dwarf_DST_INCLUDED
00076 #include "dwarf_DST.h"
00077 #endif
00078
00079 #ifndef pu_info_INCLUDED
00080 #include "pu_info.h"
00081 #endif
00082
00083 #ifndef cxx_template_INCLUDED
00084 #include "cxx_template.h"
00085 #endif
00086
00087 #ifdef __cplusplus
00088 extern "C" {
00089 #endif
00090
00091 extern WN * lower_mp (WN *, WN *, INT32);
00092 extern void LowerMP_PU_Init (void);
00093
00094 extern WN * Gen_MP_Getlock ( ST * lock );
00095 extern WN * Gen_MP_Unlock ( ST * lock ) ;
00096 extern WN * Gen_MP_Setlock ( void );
00097 extern WN * Gen_MP_Unsetlock ( void );
00098
00099
00100 typedef DYN_ARRAY<WN *> REDUCTION_LIST;
00101 extern INT
00102 MP_Reduction_Combine_Cycles(REDUCTION_LIST *rlist, BOOL *using_critical);
00103
00104 typedef enum {
00105 MPP_UNKNOWN,
00106 MPP_COPYIN,
00107 MPP_CRITICAL_SECTION,
00108 MPP_SINGLE,
00109 MPP_ORPHANED_SINGLE,
00110 MPP_PDO,
00111 MPP_ORPHANED_PDO,
00112 MPP_PARALLEL_DO,
00113 MPP_PARALLEL_REGION
00114 } MP_process_type;
00115
00116 extern WN * Gen_OMP_Begin_SPR (MP_process_type mpt);
00117 extern WN * Gen_OMP_End_SPR (MP_process_type mpt);
00118
00119 extern BOOL Is_Nonpod_Finalization_IF(WN *wn, BOOL *is_first_and_last);
00120
00121 extern void Move_Non_POD_Finalization_Code(WN *block);
00122
00123 extern void MP_Fix_Dependence_Graph(PU_Info *parent_pu_info,
00124 PU_Info *child_pu_info, WN *child_wn);
00125 extern WN * Copy_Non_MP_Tree ( WN * tree );
00126
00127 extern DST_IDX Find_DST_From_ST ( ST *st, PU_Info *pu_info );
00128 extern void
00129 Create_New_DST ( DST_INFO_IDX dst, ST *st , BOOL append_to_nested );
00130
00131 extern BOOL WN_has_pragma_with_side_effect ( WN *wn );
00132
00133
00134 #ifdef __cplusplus
00135 }
00136 #endif
00137
00138 #endif