summaryrefslogtreecommitdiff
path: root/src/jit/inlinepolicy.h
diff options
context:
space:
mode:
authorAndy Ayers <andya@microsoft.com>2016-06-07 15:09:16 -0700
committerAndy Ayers <andya@microsoft.com>2016-06-07 15:09:16 -0700
commit3dec80f0a06a477b5e831b2944a86db43333e64a (patch)
tree1d2d97f5092cb8f8f984cdf22b2b842809d2b1a4 /src/jit/inlinepolicy.h
parent99ae542eafab693351819de623e0618ad6e5ae94 (diff)
downloadcoreclr-3dec80f0a06a477b5e831b2944a86db43333e64a.tar.gz
coreclr-3dec80f0a06a477b5e831b2944a86db43333e64a.tar.bz2
coreclr-3dec80f0a06a477b5e831b2944a86db43333e64a.zip
Inliner: allow replay log to override force inlines
ReplayPolicy only impacts discretionary inlines, so could not control force inline candidates. This has lead to some confusion during inline studies. Since most cases of force inline are performance related, allow replay to override and control these force inline candidates. This might be useful down the road to study how likely it is that a force inline directive is either unnecessary or perhaps even detremental to performance.
Diffstat (limited to 'src/jit/inlinepolicy.h')
-rw-r--r--src/jit/inlinepolicy.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/jit/inlinepolicy.h b/src/jit/inlinepolicy.h
index 4b71106515..3965b8df87 100644
--- a/src/jit/inlinepolicy.h
+++ b/src/jit/inlinepolicy.h
@@ -348,6 +348,9 @@ public:
// Construct a ReplayPolicy
ReplayPolicy(Compiler* compiler, bool isPrejitRoot);
+ // Policy observations
+ void NoteBool(InlineObservation obs, bool value) override;
+
// Optional observations
void NoteContext(InlineContext* context) override
{
@@ -379,6 +382,7 @@ private:
static CritSecObject s_XmlReaderLock;
InlineContext* m_InlineContext;
IL_OFFSETX m_Offset;
+ bool m_WasForceInline;
};
#endif // defined(DEBUG) || defined(INLINE_DATA)