Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Conversation

AndyAyersMS
Copy link
Member

With this change the responsibility for dumping, logging, and reporting
inline decisions is moved into the JitInlineResult class instead of being
distributed throughout the code base. This insures all the relevant inline
information is handled in a consistent manner.

The JitInlineResult is updated to hold a compiler instance and now
requires a context string describing the what the jit is doing as it evaluates
an inline candidate. There are 4 distinct contexts in use currently.

@AndyAyersMS
Copy link
Member Author

@dotnet/jit-contrib PTAL

* JitInlineResult::report
*
* Dump, log, and report information about an inline decision.
*/

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

new code should use the new function header comment format

@BruceForstall
Copy link

LGTM, modulo nits. Do you see any asm diffs due to different messages?

@AndyAyersMS
Copy link
Member Author

Running diffs now, don't expect to see anything.

@AndyAyersMS
Copy link
Member Author

Updated per feedback. May not have x64 diffs for a while, I'm caught on the wrong side the GUID change. I did verify there we no inlining diffs crossgenning mscorlib.

With this change the responsibility for dumping, logging, and reporting
inline decisions is moved into the JitInlineResult class instead of being
distributed throughout the code base. This insures all the relevant inline
information is handled in a consistent manner.

The JitInlineResult is updated to hold a compiler instance and now
requires a context string describing the what the jit is doing as it evaluates
an inline candidate. There are 4 distinct contexts in use currently.
@AndyAyersMS
Copy link
Member Author

Fixed ctor initializer ordering.

@AndyAyersMS
Copy link
Member Author

@BruceForstall no x64 diffs via ngen...

@CarolEidt
Copy link

LGTM

AndyAyersMS added a commit that referenced this pull request Feb 6, 2016
Inliner refactoring: consolidate logging, reporting and dumping
@AndyAyersMS AndyAyersMS merged commit 22be746 into dotnet:master Feb 6, 2016
@AndyAyersMS AndyAyersMS deleted the InlineRefactor2 branch February 6, 2016 02:08
AndyAyersMS added a commit to AndyAyersMS/coreclr that referenced this pull request Feb 17, 2016
In dotnet#3051 the jit started calling `eeGetClassFullName` for both
caller and callee handles even when dumping was disabled, passed
this information to the logging messages where previously the caller
and callee were identified via other context, and prepared the full
name dump artifacts for all inline decisions rather than the selective
cases handled previously.

This change caused excessive memory use in some tests.

This change makes the calls to `eeGetClassFullName` conditional on
whether dumping is enabled, and does not require these calls for logging
messages.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants