Fw: Possible missed optimization opportunity with const?
Kalle Olavi Niemitalo
Thu Sep 1 06:14:00 GMT 2016
Toshi Morita <firstname.lastname@example.org> writes:
> what is the correct way to define a pointer to a hardware
> register at 0x1234 which contains immutable data?
It seems "extern const int foo;" with "-Wl,--defsym,foo=0x1234"
almost works, except GCC then uses a RIP-relative reference on
amd64 and that can cause a relocation overflow.
I also tried wrapping the read in an __attribute__((const))
function, which means the return value does not depend on
int __attribute__((const)) getfoo()
return *(const int *) 0x1234;
but GCC emitted two reads anyhow.
More information about the Gcc-help