On 05/05/2019 15:31, Marģers . via fpc-devel wrote:
As mentioned in a previous message, fpc trunk
supports a volatile
intrinsic:
http://wiki.freepascal.org/FPC_New_Features_Trunk#Support_for_.22volatile.22_intrinsic
My bad, I didn't know about volatile intrinsic.
So, does it mean that compiler is allowed to
optimize any variable, even promote global
variables to registers, as long they are not in
volatile(...)?
The compiler would also need to prove that no writes can happen through
aliases for the duration that they are kept in registers. It has no
support for this yet.
LLVM does have support for this though, and does perform such
optimisations on code generated by FPC via the LLVM backend.
Jonas
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel