We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
Given
#include <stdint.h> uint64_t val, *p; extern uint64_t xtr( uint64_t);
uint64_t caller() { uint64_t x; p = &val; x = 12345123400L; *p = x; return xtr(x); }
clang produces
movq %rax, (%rcx) movabsq $12345123400, %rcx ## imm = 0x2DFD3A248 movq %rcx, (%rax) movabsq $12345123400, %rdi ## imm = 0x2DFD3A248
There was a thread about this bug in:
http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-August/064535.html
The text was updated successfully, but these errors were encountered:
With clang trunk, large constant is no longer materialized twice.
clang trunk
Sorry, something went wrong.
Thanks for checking and closing!
No branches or pull requests
Extended Description
Given
#include <stdint.h>
uint64_t val, *p;
extern uint64_t xtr( uint64_t);
uint64_t caller() {
uint64_t x;
p = &val;
x = 12345123400L;
*p = x;
return xtr(x);
}
clang produces
There was a thread about this bug in:
http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-August/064535.html
The text was updated successfully, but these errors were encountered: