> > -----Ursprüngliche Nachricht----- > > Von: Gcc-help <gcc-help-bounces@xxxxxxxxxxx> Im Auftrag von Segher > > Boessenkool > > Gesendet: Freitag, 4. Dezember 2020 19:33 > > An: Andrea Corallo <andrea.corallo@xxxxxxx> > > Cc: stefan@xxxxxxxxx; gcc-help@xxxxxxxxxxx > > Betreff: Re: Correct way to express to the compiler "this does not get > > clobbered"? > > > > On Fri, Dec 04, 2020 at 07:16:45PM +0100, Andrea Corallo via Gcc-help > wrote: > > > Segher Boessenkool <segher@xxxxxxxxxxxxxxxxxxx> writes: > > > > > > > On Fri, Dec 04, 2020 at 10:52:17AM +0100, Andrea Corallo via > Gcc-help > > wrote: > > > >> stefan@xxxxxxxxx writes: > > > >> I might open a bug but my understanding is that const is > > > >> generally not used for optimizations. Am I wrong? > > > > > > > > extern const int x = 42; > > > > int f(void) { return x; } > > > > > > > > The code generated for f does not load the value for x from memory: > > > > it returns 42 always. > > > > > Are you suggesting we should treat this as a bug? > > > > Huh? No, I am just saying that const *is* used for optimisation, with > > a > dumb > > simple example. Remove const from this code and you get different > > generated machine code (that does load x from memory always). > > > > If you think you have found a missing optimisation, please make a > > self- contained demonstrator for that, and a file a PR? > > > > > > Segher IMHO it's the cprop pass which should get enhanced. Stefan