-
-
Notifications
You must be signed in to change notification settings - Fork 250
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
Disable dynamic function dispatching for native or arch-specific builds #1659
Conversation
902b8f0
to
e1e15a7
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #1659 +/- ##
============================================
+ Coverage 0 83.03% +83.03%
============================================
Files 0 134 +134
Lines 0 10336 +10336
Branches 0 2813 +2813
============================================
+ Hits 0 8583 +8583
- Misses 0 1055 +1055
- Partials 0 698 +698 ☔ View full report in Codecov by Sentry. |
e1e15a7
to
1e57620
Compare
All compile time CPU features checks is implemented. |
1e57620
to
4bea06a
Compare
Rebased. |
I like how it is split into |
functable.c
Outdated
|
||
#include "zbuild.h" | ||
#include "zendian.h" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This dependency can be removed from win32/ makefiles. And the one below should be added.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This dependency is not direct now, but indirect, through cpu_functions.h
.
As I see the dependencies in win32/Makefile.*
were broken before this PR.
For example, win32/Makefile.arm
has a dependency on x86 file $(SRCDIR)/arch/x86/x86_features.h
.
If we need actual nmake support (without cmake), I suggest fix the nmake-dependencies with separate PRs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can try to fix the nmake dependencies when all the "more important" changes have been merged... It would help a lot if people would create issues when there is something wrong in the nmake Makefiles as I can't track all the changes if pull requests are merged in batches. I try to check most of the new pull requests at least once a week (unless I'm tagged in the pull request), but my time is limited due to other projects that are more important.
I don't see any of the new header files added to the win32/ makefiles, those should probably go in so the dependency handling works properly. I think perhaps the I have only done a quick review so far, but what I have looked at so far looks good. I agree that the separation looks good. |
I have never looked up if cl.exe can generate dependency information for Windows. Even if it can, there's always issue that there is no sed-like tool to reformat the output so it matches the format nmake expects. |
Time to ditch nmake like I've been saying for years. :) |
nmake is still getting new features... It's just that some people use older versions, for example version that is bundled with Visual C++ 2017.9 ... |
I can't locate a nmake change log anywhere.. |
4bea06a
to
1e1e080
Compare
Rebased. @Dead2, Renamed cpu_functions.h to arch_functions.h. |
4b939cc
to
a8897ef
Compare
Develop ca0e463 Feb 21
Develop Native=on
PR #1659 Native=off
PR #1659 Native=on
Develop w/native=ON vs PR w/native=ON compression speedup:
PR w/native=ON vs PR #1681 w/native=OFF:
Looks like a decent speedup to me. |
My suggestion:
into separate PR.
What do your think about this plan? |
@phprus I think that is a good plan and would probably ensure we get it all merged the fastest. 👍 |
|
0a66293
to
c88339f
Compare
Ready for review. |
8dbfe71
to
a25d5a7
Compare
a25d5a7
to
95a3f65
Compare
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
…ros. Fix it if AVX is enabled. Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
…_INIT Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
95a3f65
to
660b36b
Compare
Rebased onto develop |
@@ -546,6 +561,12 @@ jobs: | |||
gcov-exec: gcov-10 | |||
codecov: macos_gcc | |||
|
|||
- name: macOS Clang Native Instructions (ARM64) | |||
os: macos-14 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we use macos-latest
here instead? If there is a reason, perhaps it should be commented?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The macos-latest workflow label currently uses the macOS 12 runner image.
Therefore we need macos-14 (first ARM64 runner).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see. Got it.
Another implementation of PR #1645.
Main differences: