summaryrefslogtreecommitdiff
path: root/src/inc
diff options
context:
space:
mode:
authornoahfalk <noahfalk@microsoft.com>2017-07-24 17:38:30 -0700
committernoahfalk <noahfalk@microsoft.com>2017-07-24 17:38:30 -0700
commitfd1998903d5eef356f27c54e5a9d490711cbc9e7 (patch)
treeb1d3d7ff1978483060a0f7c879b22006edd417b4 /src/inc
parent39cd3cfcb078154f9b595ae476f2c5fb7b445e18 (diff)
downloadcoreclr-fd1998903d5eef356f27c54e5a9d490711cbc9e7.tar.gz
coreclr-fd1998903d5eef356f27c54e5a9d490711cbc9e7.tar.bz2
coreclr-fd1998903d5eef356f27c54e5a9d490711cbc9e7.zip
Add the runtime code versioning feature
This makes tiered compilation work properly with profiler ReJIT, and positions the runtime to integrate other versioning related features together in the future. See the newly added code-versioning design-doc in this commit for more information. Breaking changes for profilers: See code-versioning-profiler-breaking-changes.md for more details.
Diffstat (limited to 'src/inc')
-rw-r--r--src/inc/corhlpr.h4
-rw-r--r--src/inc/corjit.h4
-rw-r--r--src/inc/shash.h1
3 files changed, 8 insertions, 1 deletions
diff --git a/src/inc/corhlpr.h b/src/inc/corhlpr.h
index 02555c9ec3..5b263a5382 100644
--- a/src/inc/corhlpr.h
+++ b/src/inc/corhlpr.h
@@ -633,6 +633,10 @@ extern "C" {
class COR_ILMETHOD_DECODER : public COR_ILMETHOD_FAT
{
public:
+ // This returns an uninitialized decoder, suitable for placement new but nothing
+ // else. Use with caution.
+ COR_ILMETHOD_DECODER() {}
+
// Typically the ONLY way you should access COR_ILMETHOD is through
// this constructor so format changes are easier.
COR_ILMETHOD_DECODER(const COR_ILMETHOD* header)
diff --git a/src/inc/corjit.h b/src/inc/corjit.h
index e6e8257afe..39eafe2a89 100644
--- a/src/inc/corjit.h
+++ b/src/inc/corjit.h
@@ -152,8 +152,10 @@ public:
#if defined(_TARGET_ARM_)
CORJIT_FLAG_RELATIVE_CODE_RELOCS = 41, // JIT should generate PC-relative address computations instead of EE relocation records
#else // !defined(_TARGET_ARM_)
- CORJIT_FLAG_UNUSED11 = 41
+ CORJIT_FLAG_UNUSED11 = 41,
#endif // !defined(_TARGET_ARM_)
+
+ CORJIT_FLAG_NO_INLINING = 42 // JIT should not inline any called method into this method
};
CORJIT_FLAGS()
diff --git a/src/inc/shash.h b/src/inc/shash.h
index cece2dd345..1650ca15b4 100644
--- a/src/inc/shash.h
+++ b/src/inc/shash.h
@@ -327,6 +327,7 @@ class SHash : public TRAITS
count_t m_tableSize;
count_t m_index;
+
Index(const SHash *hash, BOOL begin)
: m_table(hash->m_table),
m_tableSize(hash->m_tableSize),