Enable ReJIT all on platforms
authorMukul Sabharwal <mjsabby@gmail.com>
Wed, 13 Apr 2016 09:55:28 +0000 (02:55 -0700)
committerMukul Sabharwal <mjsabby@gmail.com>
Wed, 13 Apr 2016 09:55:28 +0000 (02:55 -0700)
CMakeLists.txt
src/vm/rejit.cpp
src/vm/rejit.h
src/vm/rejit.inl

index 4317736..8bdff34 100644 (file)
@@ -837,11 +837,9 @@ if(NOT DEFINED CLR_CMAKE_PLATFORM_ARCH_ARM64)
   set(FEATURE_READYTORUN 1)
 endif(NOT DEFINED CLR_CMAKE_PLATFORM_ARCH_ARM64)
 
-if (WIN32)
-  if (CLR_CMAKE_PLATFORM_ARCH_AMD64 OR CLR_CMAKE_PLATFORM_ARCH_I386)
-    add_definitions(-DFEATURE_REJIT)
-  endif(CLR_CMAKE_PLATFORM_ARCH_AMD64 OR CLR_CMAKE_PLATFORM_ARCH_I386)
-endif(WIN32)
+if (CLR_CMAKE_PLATFORM_ARCH_AMD64 OR CLR_CMAKE_PLATFORM_ARCH_I386)
+  add_definitions(-DFEATURE_REJIT)
+endif(CLR_CMAKE_PLATFORM_ARCH_AMD64 OR CLR_CMAKE_PLATFORM_ARCH_I386)
 
 add_definitions(-DFEATURE_STANDALONE_SN)
 add_definitions(-DFEATURE_STRONGNAME_DELAY_SIGNING_ALLOWED)
index 587c096..e6f8797 100644 (file)
@@ -178,7 +178,7 @@ CrstStatic ReJitManager::s_csGlobalRequest;
 //---------------------------------------------------------------------------------------
 // Helpers
 
-static DWORD JitFlagsFromProfCodegenFlags(DWORD dwCodegenFlags)
+inline DWORD JitFlagsFromProfCodegenFlags(DWORD dwCodegenFlags)
 {
     LIMITED_METHOD_DAC_CONTRACT;
 
@@ -3111,8 +3111,8 @@ void ReJitManager::Dump(LPCSTR szIntroText)
             "\tInfo 0x%p: State=0x%x, Next=0x%p, Shared=%p, SharedState=0x%x\n",
             pInfo,
             pInfo->GetState(),
-            pInfo->m_pNext,
-            pInfo->m_pShared,
+            (void*)pInfo->m_pNext,
+            (void*)pInfo->m_pShared,
             pInfo->m_pShared->GetState());
 
         switch(pInfo->m_key.m_keyType)
@@ -3120,7 +3120,7 @@ void ReJitManager::Dump(LPCSTR szIntroText)
         case ReJitInfo::Key::kMethodDesc:
             printf(
                 "\t\tMD=0x%p, %s.%s (%s)\n",
-                pInfo->GetMethodDesc(),
+                (void*)pInfo->GetMethodDesc(),
                 pInfo->GetMethodDesc()->m_pszDebugClassName,
                 pInfo->GetMethodDesc()->m_pszDebugMethodName,
                 pInfo->GetMethodDesc()->m_pszDebugMethodSignature);
@@ -3718,10 +3718,10 @@ COR_ILMETHOD * ReJitInfo::GetIL()
 
 
 SharedReJitInfo::SharedReJitInfo()
-    : m_reJitId(InterlockedIncrement(reinterpret_cast<LONG*>(&s_GlobalReJitId))),
-    m_dwInternalFlags(kStateRequested),
+    : m_dwInternalFlags(kStateRequested),
     m_pbIL(NULL),
     m_dwCodegenFlags(0),
+    m_reJitId(InterlockedIncrement(reinterpret_cast<LONG*>(&s_GlobalReJitId))),
     m_pInfoList(NULL)
 {
     LIMITED_METHOD_CONTRACT;
index 4fd9100..d247174 100644 (file)
@@ -37,7 +37,7 @@ class ProfilerFunctionControl : public ICorProfilerFunctionControl
 {
 public:
     ProfilerFunctionControl(LoaderHeap * pHeap);
-    ~ProfilerFunctionControl();
+    virtual ~ProfilerFunctionControl();
 
     // IUnknown functions
     virtual HRESULT __stdcall QueryInterface(REFIID id, void** pInterface);
index 47c314d..8662eea 100644 (file)
@@ -39,25 +39,25 @@ inline ReJitInfo::ReJitInfo(PTR_Module pModule, mdMethodDef methodDef, SharedReJ
 }
 
 inline ReJitInfo::Key::Key() :
-    m_keyType(kUninitialized), 
     m_pMD(NULL),
-    m_methodDef(mdTokenNil)
+    m_methodDef(mdTokenNil),
+    m_keyType(kUninitialized)
 {
     LIMITED_METHOD_CONTRACT;
 }
 
 inline ReJitInfo::Key::Key(PTR_MethodDesc pMD) :
-    m_keyType(kMethodDesc), 
     m_pMD(dac_cast<TADDR>(pMD)),
-    m_methodDef(mdTokenNil)
+    m_methodDef(mdTokenNil),
+    m_keyType(kMethodDesc)
 {
     LIMITED_METHOD_CONTRACT;
 }
 
 inline ReJitInfo::Key::Key(PTR_Module pModule, mdMethodDef methodDef) :
-    m_keyType(kMetadataToken), 
     m_pModule(dac_cast<TADDR>(pModule)),
-    m_methodDef(methodDef)
+    m_methodDef(methodDef),
+    m_keyType(kMetadataToken)
 {
     LIMITED_METHOD_CONTRACT;
 }