Fw: Possible missed optimization opportunity with const?

Toshi Morita tm314159@yahoo.com
Thu Sep 1 07:19:00 GMT 2016


Kalle wrote:

> 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
> global memory:
> 
> int __attribute__((const)) getfoo() 
> {
>   return *(const int *) 0x1234;
> }
> 

> but GCC emitted two reads anyhow.

Yep. It should not be this hard to do this.

Toshi



More information about the Gcc-help mailing list