Uh oh!
There was an error while loading. Please reload this page.
Cleanup BitArray code - #38780
Conversation
Gnbrkm41
commented
Jul 4, 2020
Are the libraries test pipelines w/ ARM machines still run manually? It would be great if someone can trigger the pipeline manually if those aren't run for PR evaluations (I remember them not running by default some time ago). |
ghost
commented
Jul 5, 2020
Tagging subscribers to this area: @eiriktsarpalis |
kunalspathak
commented
Jul 6, 2020
I thought they were automatically triggered if anything under |
safern
commented
Jul 6, 2020
We had to remove them from PRs because of the reduced hardware availability we have, however we do run them against a checked coreclr when coreclr is touched, so if you don't want to go through the manual trigger dance, you can push a dummy commit that changes any file under coreclr. |
kunalspathak
commented
Jul 6, 2020
Thanks @safern for confirming. I have triggered a run manually. |
Gnbrkm41
commented
Jul 7, 2020
Seeing some failing System.Net tests; those seem unrelated? the arm64 tests didn't seem to run as a result of those failures. |
kunalspathak
commented
Jul 7, 2020
I just triggered another run. |
tannergooding
commented
Jul 22, 2020
@Gnbrkm41, this looks good. Could we have a disassembly and/or perf numbers hsowing the improvement, however? |
Gnbrkm41
commented
Jul 28, 2020
Some numbers:
Ran on my RPi 3b+; Not really seeing any huge problems standing out... |
437cbb0 to
017fe6dCompareGnbrkm41
commented
Aug 14, 2020
Finally got around to get the assembly output. Not exactly sure why I'm seeing |
kunalspathak
commented
Aug 14, 2020
Thanks for getting the diffs. I don't see that you have added |
I created a regular console app that calls into Perhaps it's an inlining thing? I can obtain the JitDump for both builds if it helps. |
kunalspathak
commented
Aug 14, 2020
Sure, can you attach Jitdump them as well? Want to see where it is coming from. |
Gnbrkm41
commented
Aug 14, 2020
Had to compress because the raw dumps were totalling 22MB. |
I don't think they're only present in one of them? I find exactly three occurences of |
kunalspathak
commented
Aug 14, 2020
Interesting. I don't see "Debug.Fail()" anywhere in the asms that you shared. I am guessing the sequence is for movz x0, #0xd1ffab1e movk x0, #0xd1ffab1eLSL #16 movk x0, #0xd1ffab1eLSL #32mov w1, #7mov v9.d[0], v8.d[1]bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE movz x0, #0xd1ffab1e movk x0, #0xd1ffab1eLSL #16 movk x0, #0xd1ffab1eLSL #32 ldr x1,[x0]@tannergooding should double check before we merge it. |
There was a problem hiding this comment.
My guess is that we don't need these anymore - if I remember correctly those PRs make the JIT recognise those Create calls and store the data in memory during codegen, so the code can load the data from memory - so I expect it to result in about the same, or perhaps better code. It's been a while since I've rebased the branch so I could make the change while I'm rebasing and see how it turns out.
eiriktsarpalis
commented
Sep 30, 2020
This PR has been open for a while, is there any remaining work needed to be done to get it merged? |
Gnbrkm41
commented
Oct 1, 2020
I think we want to verify that this doesn't introduce any regressions and as @stephentoub mentioned we could perhaps also clean the code up a bit, following the recent change in the JIT that allows us to get rid of I'll rebase the branch first and see how the disasm / benchmark turns out, as I've been seeing some oddities around the disassembled code (where we were seeing calls to |
* This commit addresses some of the comments raised during the initial PR of the vectorised BitArray code, such as using new API/intrinsics. Also highlights a couple potential improvements.
Gnbrkm41
commented
Nov 10, 2020
Unfortunately, I don't expect to be able to work on the PR for some time. If any of you folks have concerns with this being open for several months, please do feel free to close the PR - I could eventually work on this again when I'm able to. |
kunalspathak
commented
Nov 10, 2020
Thank you @Gnbrkm41 for confirming. Feel free to reopen when you get time. |
This PR addresses some of the comments raised during the initial PR of the vectorised BitArray code, such as using new API/intrinsics. Also highlights a couple potential improvements.
cc @kunalspathak@tannergooding @echesakovMSFT (ARM intrinsics related people I can remember from the top of my head)