diff options
author | Andy Ayers <andya@microsoft.com> | 2016-06-07 15:09:16 -0700 |
---|---|---|
committer | Andy Ayers <andya@microsoft.com> | 2016-06-07 15:09:16 -0700 |
commit | 3dec80f0a06a477b5e831b2944a86db43333e64a (patch) | |
tree | 1d2d97f5092cb8f8f984cdf22b2b842809d2b1a4 /src/jit/inlinepolicy.h | |
parent | 99ae542eafab693351819de623e0618ad6e5ae94 (diff) | |
download | coreclr-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.h | 4 |
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) |