@@ -74,114 +74,34 @@ enum class IdentFlag {
74
74
75
75
// / \note This needs to be kept in sync with kmp.h enum sched_type.
76
76
// / Todo: Update kmp.h to include this file, and remove the enums in kmp.h
77
+ // / To complete this, more enum values will need to be moved here.
77
78
enum class OMPScheduleType {
78
- // For typed comparisons, not a valid schedule
79
- None = 0 ,
80
-
81
- // Schedule algorithms
82
- BaseStaticChunked = 1 ,
83
- BaseStatic = 2 ,
84
- BaseDynamicChunked = 3 ,
85
- BaseGuidedChunked = 4 ,
86
- BaseRuntime = 5 ,
87
- BaseAuto = 6 ,
88
- BaseTrapezoidal = 7 ,
89
- BaseGreedy = 8 ,
90
- BaseBalanced = 9 ,
91
- BaseGuidedIterativeChunked = 10 ,
92
- BaseGuidedAnalyticalChunked = 11 ,
93
- BaseSteal = 12 ,
94
-
95
- // with chunk adjustment (e.g., simd)
96
- BaseStaticBalancedChunked = 13 ,
97
- BaseGuidedSimd = 14 ,
98
- BaseRuntimeSimd = 15 ,
99
-
100
- // static schedules algorithims for distribute
101
- BaseDistributeChunked = 27 ,
102
- BaseDistribute = 28 ,
103
-
104
- // Modifier flags to be combined with schedule algorithms
105
- ModifierUnordered = (1 << 5 ),
106
- ModifierOrdered = (1 << 6 ),
107
- ModifierNomerge = (1 << 7 ),
108
- ModifierMonotonic = (1 << 29 ),
109
- ModifierNonmonotonic = (1 << 30 ),
110
-
111
- // Masks combining multiple flags
112
- OrderingMask = ModifierUnordered | ModifierOrdered | ModifierNomerge,
113
- MonotonicityMask = ModifierMonotonic | ModifierNonmonotonic,
114
- ModifierMask = OrderingMask | MonotonicityMask,
115
-
116
- // valid schedule type values, without monotonicity flags
117
- UnorderedStaticChunked = BaseStaticChunked | ModifierUnordered, // 33
118
- UnorderedStatic = BaseStatic | ModifierUnordered, // 34
119
- UnorderedDynamicChunked = BaseDynamicChunked | ModifierUnordered, // 35
120
- UnorderedGuidedChunked = BaseGuidedChunked | ModifierUnordered, // 36
121
- UnorderedRuntime = BaseRuntime | ModifierUnordered, // 37
122
- UnorderedAuto = BaseAuto | ModifierUnordered, // 38
123
- UnorderedTrapezoidal = BaseTrapezoidal | ModifierUnordered, // 39
124
- UnorderedGreedy = BaseGreedy | ModifierUnordered, // 40
125
- UnorderedBalanced = BaseBalanced | ModifierUnordered, // 41
126
- UnorderedGuidedIterativeChunked =
127
- BaseGuidedIterativeChunked | ModifierUnordered, // 42
128
- UnorderedGuidedAnalyticalChunked =
129
- BaseGuidedAnalyticalChunked | ModifierUnordered, // 43
130
- UnorderedSteal = BaseSteal | ModifierUnordered, // 44
131
-
132
- UnorderedStaticBalancedChunked =
133
- BaseStaticBalancedChunked | ModifierUnordered, // 45
134
- UnorderedGuidedSimd = BaseGuidedSimd | ModifierUnordered, // 46
135
- UnorderedRuntimeSimd = BaseRuntimeSimd | ModifierUnordered, // 47
136
-
137
- OrderedStaticChunked = BaseStaticChunked | ModifierOrdered, // 65
138
- OrderedStatic = BaseStatic | ModifierOrdered, // 66
139
- OrderedDynamicChunked = BaseDynamicChunked | ModifierOrdered, // 67
140
- OrderedGuidedChunked = BaseGuidedChunked | ModifierOrdered, // 68
141
- OrderedRuntime = BaseRuntime | ModifierOrdered, // 69
142
- OrderedAuto = BaseAuto | ModifierOrdered, // 70
143
- OrderdTrapezoidal = BaseTrapezoidal | ModifierOrdered, // 71
144
-
145
- OrderedDistributeChunked = BaseDistributeChunked | ModifierOrdered, // 91
146
- OrderedDistribute = BaseDistribute | ModifierOrdered, // 92
147
-
148
- NomergeUnorderedStaticChunked =
149
- BaseStaticChunked | ModifierUnordered | ModifierNomerge, // 161
150
- NomergeUnorderedStatic =
151
- BaseStatic | ModifierUnordered | ModifierNomerge, // 162
152
- NomergeUnorderedDynamicChunked =
153
- BaseDynamicChunked | ModifierUnordered | ModifierNomerge, // 163
154
- NomergeUnorderedGuidedChunked =
155
- BaseGuidedChunked | ModifierUnordered | ModifierNomerge, // 164
156
- NomergeUnorderedRuntime =
157
- BaseRuntime | ModifierUnordered | ModifierNomerge, // 165
158
- NomergeUnorderedAuto = BaseAuto | ModifierUnordered | ModifierNomerge, // 166
159
- NomergeUnorderedTrapezoidal =
160
- BaseTrapezoidal | ModifierUnordered | ModifierNomerge, // 167
161
- NomergeUnorderedGreedy =
162
- BaseGreedy | ModifierUnordered | ModifierNomerge, // 168
163
- NomergeUnorderedBalanced =
164
- BaseBalanced | ModifierUnordered | ModifierNomerge, // 169
165
- NomergeUnorderedGuidedIterativeChunked =
166
- BaseGuidedIterativeChunked | ModifierUnordered | ModifierNomerge, // 170
167
- NomergeUnorderedGuidedAnalyticalChunked =
168
- BaseGuidedAnalyticalChunked | ModifierUnordered | ModifierNomerge, // 171
169
- NomergeUnorderedSteal =
170
- BaseSteal | ModifierUnordered | ModifierNomerge, // 172
171
-
172
- NomergeOrderedStaticChunked =
173
- BaseStaticChunked | ModifierOrdered | ModifierNomerge, // 193
174
- NomergeOrderedStatic = BaseStatic | ModifierOrdered | ModifierNomerge, // 194
175
- NomergeOrderedDynamicChunked =
176
- BaseDynamicChunked | ModifierOrdered | ModifierNomerge, // 195
177
- NomergeOrderedGuidedChunked =
178
- BaseGuidedChunked | ModifierOrdered | ModifierNomerge, // 196
179
- NomergeOrderedRuntime =
180
- BaseRuntime | ModifierOrdered | ModifierNomerge, // 197
181
- NomergeOrderedAuto = BaseAuto | ModifierOrdered | ModifierNomerge, // 198
182
- NomergeOrderedTrapezoidal =
183
- BaseTrapezoidal | ModifierOrdered | ModifierNomerge, // 199
184
-
79
+ StaticChunked = 33 ,
80
+ Static = 34 , // static unspecialized
81
+ DynamicChunked = 35 ,
82
+ GuidedChunked = 36 , // guided unspecialized
83
+ Runtime = 37 ,
84
+ Auto = 38 , // auto
85
+
86
+ StaticBalancedChunked = 45 , // static with chunk adjustment (e.g., simd)
87
+ GuidedSimd = 46 , // guided with chunk adjustment
88
+ RuntimeSimd = 47 , // runtime with chunk adjustment
89
+
90
+ OrderedStaticChunked = 65 ,
91
+ OrderedStatic = 66 , // ordered static unspecialized
92
+ OrderedDynamicChunked = 67 ,
93
+ OrderedGuidedChunked = 68 ,
94
+ OrderedRuntime = 69 ,
95
+ OrderedAuto = 70 , // ordered auto
96
+
97
+ DistributeChunked = 91 , // distribute static chunked
98
+ Distribute = 92 , // distribute static unspecialized
99
+
100
+ ModifierMonotonic =
101
+ (1 << 29 ), // Set if the monotonic schedule modifier was present
102
+ ModifierNonmonotonic =
103
+ (1 << 30 ), // Set if the nonmonotonic schedule modifier was present
104
+ ModifierMask = ModifierMonotonic | ModifierNonmonotonic,
185
105
LLVM_MARK_AS_BITMASK_ENUM (/* LargestValue */ ModifierMask)
186
106
};
187
107
0 commit comments