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

SPMI: Add and utilize number of contexts with diffs #76011

Merged
merged 5 commits into from
Sep 24, 2022

Conversation

jakobbotsch
Copy link
Member

Previously, if there was any diff in a collection, that collection would be shown in all tables (i.e. Overall, FullOpts, MinOpts). The main reason was that we only had "has diffs" information on a per-collection basis, not for each of the categories. This changes SPMI to communicate back for each category how many contexts had diffs in them, and uses this to hide tables/rows without any diffs, and to show this information under details.

Previously, if there was any diff in a collection, that collection would
be shown in all tables (i.e. Overall, FullOpts, MinOpts). The main
reason was that we only had "has diffs" information on a per-collection
basis, not for each of the categories. This changes SPMI to communicate
back for each category how many contexts had diffs in them, and uses
this to hide tables/rows without any diffs, and to show this information
under details.
@ghost ghost assigned jakobbotsch Sep 22, 2022
@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 Sep 22, 2022
@ghost
Copy link

ghost commented Sep 22, 2022

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

Issue Details

Previously, if there was any diff in a collection, that collection would be shown in all tables (i.e. Overall, FullOpts, MinOpts). The main reason was that we only had "has diffs" information on a per-collection basis, not for each of the categories. This changes SPMI to communicate back for each category how many contexts had diffs in them, and uses this to hide tables/rows without any diffs, and to show this information under details.

Author: jakobbotsch
Assignees: jakobbotsch
Labels:

area-CodeGen-coreclr

Milestone: -

@jakobbotsch
Copy link
Member Author

jakobbotsch commented Sep 22, 2022

cc @dotnet/jit-contrib PTAL @kunalspathak. This makes the hiding of rows/tables a bit more granular, but keeps the table in the "top level view" when there are actual diffs.

I debated whether to display "No MinOpts diffs found." in place of the table, but decided to not show anything in the end.

@kunalspathak
Copy link
Member

Do you mind making a change in jit to trigger spmi-diff?

@jakobbotsch
Copy link
Member Author

Not sure why it shows TP diffs in MinOpts, that is unexpected. I will investigate.

You can see the effect of this PR on the x64 asmdiffs, which no longer show the MinOpts table since there are no MinOpts diffs (the spurious arm64 diffs remain -- we should probably look into this asap).

@jakobbotsch
Copy link
Member Author

Hmm, looks like our rolling jit build is broken:

[15:02:28] try 1: a2b181158fe21fc3be8ce09467f969228c8424eb

[15:02:28] try 2: db5c43370d41cc8efa6c4908c2a74daeb83462db

[15:02:28] try 3: d01e92cc38a179ffae3f81fdcdc3e82ba0a87ba9

D:\a\_work\1\s\src\coreclr\scripts\jitrollingbuild.py:288: DeprecationWarning: The 'warn' function is deprecated, use 'warning' instead

  logging.warn("Warning: the baseline found is not built with the first git hash with JIT code changes; there may be extraneous diffs")

[15:02:28] Warning: the baseline found is not built with the first git hash with JIT code changes; there may be extraneous diffs

@jakobbotsch
Copy link
Member Author

Looks like the internal JIT rolling build was not triggered on either of those JIT commits (a2b1811 and db5c433); instead it was triggered on b5b2af0 ~1.5 hours later. The net effect is that we uploaded a rolling JIT for a commit hash that is unrelated to the JIT.
Hopefully this is just a temporary fluke. I can see that it properly triggered on the latest JIT commit b4ac094.

Copy link
Member

@kunalspathak kunalspathak left a comment

Choose a reason for hiding this comment

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

Don't forget to revert the forwardsub.cpp change :)

@jakobbotsch
Copy link
Member Author

/azp run runtime-coreclr superpmi-replay

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@jakobbotsch
Copy link
Member Author

superpmi-replay timed out in one of the replay legs and the log is empty -- will retry.
The runtime test run failure is #76041.

@jakobbotsch jakobbotsch merged commit 985eedd into dotnet:main Sep 24, 2022
@jakobbotsch jakobbotsch deleted the superpmi-num-contexts-with-diffs branch September 24, 2022 07:43
@ghost ghost locked as resolved and limited conversation to collaborators Oct 24, 2022
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