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
00036
00037 #ifndef anl_dir_attribute_INCLUDED
00038 #define anl_dir_attribute_INCLUDED
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053 class ANL_FUNC_ENTRY;
00054 class ANL_SRCPOS;
00055
00056
00057 class ANL_PRAGMA_ATTRIBUTE
00058 {
00059 private:
00060
00061 enum ANL_PRAGMA_ATTR_KIND
00062 {
00063 ANL_UNKNOWN_ATTR,
00064 ANL_PREFETCH_REF_ATTR,
00065 ANL_DISTRIBUTE_ATTR,
00066 ANL_REDISTRIBUTE_ATTR,
00067 ANL_DISTRIBUTE_RESHAPE_ATTR,
00068 ANL_DYNAMIC_ATTR,
00069 ANL_COPYIN_ATTR,
00070 ANL_NUMTHREADS_ATTR,
00071 ANL_PAGE_PLACE_ATTR,
00072 ANL_CONCURRENTIZE,
00073 ANL_NOCONCURRENTIZE,
00074 ANL_ASSERT_PERMUTATION,
00075 ANL_ASSERT_CONCURRENT_CALL,
00076 ANL_ASSERT_DO,
00077 ANL_ASSERT_DOPREFER,
00078 ANL_IVDEP,
00079 ANL_FLUSH,
00080 ANL_NUM_ATTRS
00081 };
00082
00083 ANL_PRAGMA_ATTR_KIND _pragma_kind;
00084 WN *_apragma;
00085 ANL_FUNC_ENTRY *_func_entry;
00086 INT32 _enclosing_construct_level;
00087 MEM_POOL *_pool;
00088
00089 static void _Append_Arg_Numbers(ANL_CBUF *cbuf,
00090 INT32 val1,
00091 INT32 val2);
00092
00093 BOOL _Is_Assertion();
00094 void _Write_Distribution(ANL_CBUF *cbuf, WN **next);
00095 void _Write_Pragma_Arguments(ANL_CBUF *cbuf);
00096 void _Write_Pragma(ANL_CBUF *cbuf);
00097
00098 public:
00099
00100
00101
00102 static BOOL Is_ProMpf_Pragma_Attribute(WN *stmt);
00103
00104
00105
00106
00107 ANL_PRAGMA_ATTRIBUTE(WN *apragma,
00108 INT32 enclosing_construct_level,
00109 ANL_FUNC_ENTRY *func_entry,
00110 MEM_POOL *pool);
00111
00112
00113
00114
00115 BOOL Is_Pragma_Construct_Attribute(INT32 construct_level);
00116 BOOL Is_Region_Construct_Attribute(INT32 construct_level);
00117 BOOL Is_Loop_Construct_Attribute(INT32 construct_level);
00118
00119
00120
00121
00122 WN *Next_Stmt();
00123
00124 void Write(ANL_CBUF *cbuf, INT32 id);
00125
00126
00127 };
00128
00129 #endif