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

Make JitOptRepeat available in Release builds #100494

Merged

Conversation

BruceForstall
Copy link
Member

Also, fix a problem in superpmi.py asmdiffs for Release builds where we got a divide by zero because release builds don't have PerfScore.

@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 Apr 1, 2024
@BruceForstall
Copy link
Member Author

@AndyAyersMS PTAL
cc @dotnet/jit-contrib

Copy link
Contributor

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


CONFIG_INTEGER(JitDoIfConversion, W("JitDoIfConversion"), 1) // Perform If conversion

#endif // defined(OPT_CONFIG)

CONFIG_INTEGER(JitEnableOptRepeat, W("JitEnableOptRepeat"), 0) // If zero, do not allow JitOptRepeat
CONFIG_METHODSET(JitOptRepeat, W("JitOptRepeat")) // Runs optimizer multiple times on specified methods
Copy link
Member

Choose a reason for hiding this comment

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

I wonder - maybe it's worth making its default value * so it will be enough to only define DOTNET_JitEnableOptRepeat ?

Copy link
Member Author

Choose a reason for hiding this comment

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

METHODSET doesn't have a default value.

I thought about getting rid of DOTNET_JitEnableOptRepeat but after #94250 is merged, which enables OptRepeat in stress, I want a way to disable OptRepeat in stress.

Maybe we could instead have (after #94250 is merged):

  1. Default: OptRepeat enabled in stress.
  2. DOTNET_JitOptRepeat=method set: enable OptRepeat for exactly the specified methods
  3. DOTNET_JitEnableOptRepeat=0: disable OptRepeat in stress. Or maybe name it DOTNET_JitEnableOptRepeatStress to be clear that's all it affects?
    • But, perhaps weirdly, if you set DOTNET_JitOptRepeat=* and DOTNET_JitEnableOptRepeat=0, we still enable OptRepeat? (Maybe leaning towards renaming to DOTNET_JitEnableOptRepeatStress?)

Also, fix a problem in superpmi.py asmdiffs for Release builds
where we got a divide by zero because release builds don't have
PerfScore.
@BruceForstall BruceForstall force-pushed the MakeOptRepeatAvailableInRelease branch from fa9652d to e6004c3 Compare April 1, 2024 22:29
@BruceForstall BruceForstall merged commit 282891d into dotnet:main Apr 2, 2024
110 checks passed
@BruceForstall BruceForstall deleted the MakeOptRepeatAvailableInRelease branch April 2, 2024 01:57
matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
Also, fix a problem in superpmi.py asmdiffs for Release builds
where we got a divide by zero because release builds don't have
PerfScore.
@github-actions github-actions bot locked and limited conversation to collaborators May 2, 2024
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.

3 participants