-
Notifications
You must be signed in to change notification settings - Fork 59
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
Avoiding "warning: extra assignment introduced:" #175
Comments
I forgot to mention: avoiding these warnings without changing the code to |
This is a bug in the compiler. I see two possible fixes.
|
vbgl
added a commit
that referenced
this issue
Jun 22, 2022
vbgl
added a commit
that referenced
this issue
Jun 22, 2022
vbgl
added a commit
that referenced
this issue
Jun 22, 2022
vbgl
added a commit
that referenced
this issue
Jun 22, 2022
vbgl
added a commit
that referenced
this issue
Jun 22, 2022
vbgl
added a commit
that referenced
this issue
Jun 22, 2022
bgregoir
pushed a commit
that referenced
this issue
Jun 22, 2022
vbgl
added a commit
that referenced
this issue
Jun 27, 2022
eponier
pushed a commit
that referenced
this issue
Jun 30, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
While trying to remove all compilation warnings from libjbn, I reached a point where I was not able to progress. I start by explaining the impact of the issue and then the issue.
In
libjbn
, for instance, insike751
instantiation, there are ~130MOV
instructions that are being inserted by the compiler which can (most likely) be removed. These have the formREG1 :r= #MOV_64(REG2);
whereREG2
is notRSP
orRIP
.This also happens in libjade: for instance, in Kyber768 avx2 version I can find ~40 possible occurrences of these and a couple of them in Keccak.
I isolated this behavior in a small example which I attach and inline below. The following Jasmin code:
Which produces the following warning:
Before the code corresponding to the
add
function is inlined (ap = add(ap, bp);
), a copy ofbp
is created.The produced assembly is the following:
How can I (or if it is currently possible) avoid these extra assignments (given that they are unecessary and affect performance/code size)?
test1_jazz.txt
test1_s.txt
The text was updated successfully, but these errors were encountered: