-
Notifications
You must be signed in to change notification settings - Fork 127
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
[SVE] Remove all instances of sizeless structures #310
[SVE] Remove all instances of sizeless structures #310
Conversation
Hello Naoki! Thanks a lot for working on that patch.
|
Hello Pierre, I have already reported the ICE to Francesco, but the following is the shortened source code for reproducing the ICE.
|
Thanks for reporting the GCC ICE. I've just pushed a fix to the gcc-10 branch . The patch also applies cleanly to the GCC 10.1 sources, if you're building from tarballs rather than git. A workaround for broken compilers is to compile with |
* Update CI settings
Hello Richard, Thank you for fixing the bug. I still cannot build the library with gcc-10 because of "Error: unknown pseudo-op: `.variant_pcs'." I have to try with newer binutils. |
I believe the following is another bug in gcc-10.
|
And this one?
|
The optimization flags causing those bugs are -fstrict-aliasing for bug2.c, and -ftree-vrp for bug3.c. |
So, I succeeded in building the library with "-fno-shrink-wrap -fno-strict-aliasing -fno-tree-vrp" options. I added a new CI setting with gcc-10 to .travis.yml. In this setting, binutils-2.34 and qemu 5.0.0 built by me are used. These are downloaded from my web server and installed under /opt/local. |
Thanks for raising this. I'll try to fix For If an array contains Like you say, |
Thank you for your explanation. But I still don't understand why it is undefined.
|
Hi. The problem isn't so much with the cast itself, but that the intrinsics implicitly dereference their pointer arguments. C and C++ only allow a pointer So for example in:
the loop setting up the |
I modified the code in SLEEF so that it complies with the aliasing rules. |
Dear Naoki, |
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.
Approving on behalf of @PierreBlanchard
Thank you Naoki for working on this, and for raising the issues with gcc.
Thank you @rsandifo-arm for fixing the issues, and thank you @PierreBlanchard for verifying the patch.
Good team work! :)
Francesco
Thanks for reporting this. It was fixed in GCC 10.2, which was released earlier today. |
This patch removes all instances of sizeless structures, as stated in issue #309.
It still does not build with gcc-10 with SVE because of the ICE. Please help me coming up with a workaround.