-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
ILC: Add property for target processor tuning #108540
Comments
Tagging subscribers to this area: @agocke, @sbomer, @vitek-karas |
Native AOT can only add this if the underlying code generator supports this. I don't think RyuJIT supports this. I'll move this to the codegen area path so that relevant feature team can consider/decide this. |
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
We generally intentionally avoid any kind of processor-specific tuning as it complicates test matrix a lot for questionable benefits. So yeah, JIT doesn't have |
@EgorBo Thanks for the explanation. Does this mean that RyuJIT doesn't consider the current processor's cache hierarchy, branch prediction capabilities, etc. when generating machine code? If so then this could be one potential area for improvement (which I'm sure I'm not the first one to suggest). @MichalStrehovsky Would you be the right person to answer my second question about how to see all the ILC args used for compilation? |
Correct. We might eventually rely on some CPU-specific details when (if) we implement partial loop unrolling etc. but for now I can't think of a case where any of that could help us. E.g. for the "branch prediction capabilities" we have a more profitable Dynamic PGO. |
ILC does not have an option to print its own command line. You can find the full command line passed to ILC in the |
So I guess the best approach would be to leverage Dynamic PGO within Native AOT somehow. Looks like there is already issue #94052 about it but no activity for the past year. Is it somewhere on the long-term roadmap? |
Please follow up in #94052 directly. Closing this issue. |
Description
Currently there is the
IlcInstructionSet
property that works (I assume) in a similar way to the-march
option for GCC and Clang, but I can't find any ILC property that corresponds to the-mtune
option. Is target processor tuning functionality available in ILC? If so, can a property be created to configure it? If not, can it be added?Also, is there a property that can be set to show all the ILC args used for compilation such as
--instruction-set
? I tried settingIlcVerboseLogging
but it doesn't print out the ILC args despite printing out a lot of other information.Reproduction Steps
N/A
Expected behavior
Target processor tuning is available
Actual behavior
Only target processor architecture selection is available
Regression?
No response
Known Workarounds
No response
Configuration
No response
Other information
No response
The text was updated successfully, but these errors were encountered: