@@ -145,7 +145,34 @@ class NativeCodeVersion
145
145
146
146
#ifdef FEATURE_CODE_VERSIONING
147
147
148
-
148
+ enum class RejitFlags : uint32_t
149
+ {
150
+ // The profiler has requested a ReJit, so we've allocated stuff, but we haven't
151
+ // called back to the profiler to get any info or indicate that the ReJit has
152
+ // started. (This Info can be 'reused' for a new ReJit if the
153
+ // profiler calls RequestRejit again before we transition to the next state.)
154
+ kStateRequested = 0x00000000 ,
155
+
156
+ // The CLR has initiated the call to the profiler's GetReJITParameters() callback
157
+ // but it hasn't completed yet. At this point we have to assume the profiler has
158
+ // committed to a specific IL body, even if the CLR doesn't know what it is yet.
159
+ // If the profiler calls RequestRejit we need to allocate a new ILCodeVersion
160
+ // and call GetReJITParameters() again.
161
+ kStateGettingReJITParameters = 0x00000001 ,
162
+
163
+ // We have asked the profiler about this method via ICorProfilerFunctionControl,
164
+ // and have thus stored the IL and codegen flags the profiler specified.
165
+ kStateActive = 0x00000002 ,
166
+
167
+ kStateMask = 0x0000000F ,
168
+
169
+ // Indicates that the method being ReJITted is an inliner of the actual
170
+ // ReJIT request and we should not issue the GetReJITParameters for this
171
+ // method.
172
+ kSuppressParams = 0x80000000 ,
173
+
174
+ support_use_as_flags // Enable the template functions in enum_class_flags.h
175
+ };
149
176
150
177
class ILCodeVersion
151
178
{
@@ -184,33 +211,6 @@ class ILCodeVersion
184
211
HRESULT SetActiveNativeCodeVersion (NativeCodeVersion activeNativeCodeVersion);
185
212
#endif // DACCESS_COMPILE
186
213
187
- enum RejitFlags
188
- {
189
- // The profiler has requested a ReJit, so we've allocated stuff, but we haven't
190
- // called back to the profiler to get any info or indicate that the ReJit has
191
- // started. (This Info can be 'reused' for a new ReJit if the
192
- // profiler calls RequestRejit again before we transition to the next state.)
193
- kStateRequested = 0x00000000 ,
194
-
195
- // The CLR has initiated the call to the profiler's GetReJITParameters() callback
196
- // but it hasn't completed yet. At this point we have to assume the profiler has
197
- // committed to a specific IL body, even if the CLR doesn't know what it is yet.
198
- // If the profiler calls RequestRejit we need to allocate a new ILCodeVersion
199
- // and call GetReJITParameters() again.
200
- kStateGettingReJITParameters = 0x00000001 ,
201
-
202
- // We have asked the profiler about this method via ICorProfilerFunctionControl,
203
- // and have thus stored the IL and codegen flags the profiler specified.
204
- kStateActive = 0x00000002 ,
205
-
206
- kStateMask = 0x0000000F ,
207
-
208
- // Indicates that the method being ReJITted is an inliner of the actual
209
- // ReJIT request and we should not issue the GetReJITParameters for this
210
- // method.
211
- kSuppressParams = 0x80000000
212
- };
213
-
214
214
RejitFlags GetRejitState () const ;
215
215
BOOL GetEnableReJITCallback () const ;
216
216
BOOL IsDeoptimized () const ;
@@ -388,15 +388,15 @@ class ILCodeVersionNode
388
388
PTR_COR_ILMETHOD GetIL () const ;
389
389
DWORD GetJitFlags () const ;
390
390
const InstrumentedILOffsetMapping* GetInstrumentedILMap () const ;
391
- ILCodeVersion:: RejitFlags GetRejitState () const ;
391
+ RejitFlags GetRejitState () const ;
392
392
BOOL GetEnableReJITCallback () const ;
393
393
PTR_ILCodeVersionNode GetNextILVersionNode () const ;
394
394
BOOL IsDeoptimized () const ;
395
395
#ifndef DACCESS_COMPILE
396
396
void SetIL (COR_ILMETHOD* pIL);
397
397
void SetJitFlags (DWORD flags);
398
398
void SetInstrumentedILMap (SIZE_T cMap, COR_IL_MAP * rgMap);
399
- void SetRejitState (ILCodeVersion:: RejitFlags newState);
399
+ void SetRejitState (RejitFlags newState);
400
400
void SetEnableReJITCallback (BOOL state);
401
401
void SetNextILVersionNode (ILCodeVersionNode* pNextVersionNode);
402
402
#endif
@@ -406,7 +406,7 @@ class ILCodeVersionNode
406
406
const mdMethodDef m_methodDef;
407
407
const ReJITID m_rejitId;
408
408
PTR_ILCodeVersionNode m_pNextILVersionNode; // Never modified after being added to the linked list
409
- Volatile<ILCodeVersion:: RejitFlags> m_rejitState;
409
+ Volatile<RejitFlags> m_rejitState;
410
410
VolatilePtr<COR_ILMETHOD, PTR_COR_ILMETHOD> m_pIL;
411
411
Volatile<DWORD> m_jitFlags;
412
412
InstrumentedILOffsetMapping m_instrumentedILMap;
0 commit comments