Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JIT: refactor instrumentation code #47509

Merged
merged 2 commits into from
Jan 28, 2021

Conversation

AndyAyersMS
Copy link
Member

Refactor fgInstrument and related methods and classes, so that the strategies
for block and class instrumentation are clearly separated out, and can be
varied.

Refactor `fgInstrument` and related methods and classes, so that the strategies
for block and class instrumentation are clearly separated out, and can be
varied.
@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 27, 2021
@AndyAyersMS
Copy link
Member Author

@dotnet/jit-contrib PTAL
cc @davidwrighton

This is essentially a no-diff change, save that the schemas will now interleave count and class probe elements. If that's undesirable I can revise to keep them in separate ranges of the schema. I am sharing some under-utilized fields in BasicBlock to keep track of the block to (base) schema index.

This should be the last prerequisite change before I implement the sparse instrumentation scheme described in #46882.

Might be a bit tricky to review given all the code that has moved around.

@AndyAyersMS
Copy link
Member Author

/azp run runtime-jit-experimental

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@AndyAyersMS
Copy link
Member Author

/azp run runtime-jit-experimental

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@AndyAyersMS
Copy link
Member Author

Experimental failures are the "expected" ones in OSR/EhWriteThru (same as in #47476). All the PGO tests passed.

Copy link
Member

@BruceForstall BruceForstall left a comment

Choose a reason for hiding this comment

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

LGTM

// ClassProbeInstrumentor::SuppressProbes: clean up if we're not instrumenting
//
// Notes:
// Currently we're hijacking the gtCallStubAddre of the call node to hold
Copy link
Member

Choose a reason for hiding this comment

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

nit: => gtStubCallStubAddre => gtStubCallStubAddr

Copy link
Member Author

Choose a reason for hiding this comment

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

Thanks. Will fix in the next PR...

@AndyAyersMS AndyAyersMS merged commit ba6fb5d into dotnet:master Jan 28, 2021
@AndyAyersMS AndyAyersMS deleted the RefactorInstrumentation branch January 28, 2021 02:28
@AndyAyersMS AndyAyersMS mentioned this pull request Jan 28, 2021
54 tasks
@ghost ghost locked as resolved and limited conversation to collaborators Feb 27, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants