-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Update ARM feature and CPU detection (supersedes #36464) #36485
Conversation
I applied these changes on-top of #35318 (without rebase) and still get
But there are more features for:
1.4.2 gives:
|
05572fd
to
cfc5a73
Compare
.... There was a bug in the error checking. I guess I never had any hardware to test where LLVM is not able to detect... (cortex-a57 only basically....) The fix is the second commit. You should be able to just cherry pick that for testing (assuming it compiles....) |
cfc5a73
to
1b09d1e
Compare
Great, now working!
Although I did hit a non-fatal bug when I first generated a function after build (after running above):
|
This PR should change nothing regarding relocation, especially if you are not manually specifying any target during compilation. Running it in debugger might give you at least some idea when/where/on which function/code it happens. You can also try specifying the cpu target |
Those relocation warnings look like #35460 |
Indeed:
|
And you are indeed on LLVM10 |
1b09d1e
to
60dbb8d
Compare
60dbb8d
to
18bd658
Compare
@yuyichao what would count as success here? Should we try to run julia tests on some of the added aarch64 CPU’s? Is now the time to do that? |
The PR is already done and is just waiting to see if anyone else have any comments before merging. (though I did make another update due to recent LLVM 11 addition and that I managed to find the TRM for cortex-a78 and cortex-x1.) It's impossible to test on all CPUs and I don't think that's required for merging. If you do have non cortex-a57, carmel or neoverse-n1 to test that would be nice. And since the commit was in a "finished" state when I first pushed it the test can be done at any time. |
The code was using two different `std::pair` types to pass this info around as remnant of an earlier version and the auto conversion between the two types does not retain the meaning we want... Use a custom struct to hold the info to guard against this kind of errors in the future.
* Clean up old LLVM version check * Clean up old cores that'll probably not be used (and some that are removed from LLVM) * Add document about data sources * Update AArch64 feature list to match changes to the LLVM ones * ARMv8.4 - ARMv8.6 support * Add all known cores that I can find and all information I can find about them * Remove a few A64 only cores from AArch32 CPU list * Rename Apple cores (following LLVM) * SVE register size Co-authored-by: Ian <[email protected]>
18bd658
to
e0e3825
Compare
I noticed that #36502 was backported to 1.5-rc2, so wondered if this could be? cc. @KristofferC |
I mentioned backporting in that one because of the one bug fix in it. But if the whole pr is considered backportable then this one should be the same. The second commit here is also k8nd of a bug fix. |
I think that's logical, and agree that the 2nd commit is a bug fix. @KristofferC would a backport be acceptable? |
I messed up #36464 with an accidental blank force push, so that PR can't be reopened. This is the replacement
Updates ARM feature and CPU detection
cc. @yuyichao