Optimization of conditional access to globals: thread-unsafe?
Andi Kleen
andi@firstfloor.org
Mon Oct 29 11:57:00 GMT 2007
Tomash Brechko <tomash.brechko@gmail.com> writes:
> - optimization in question might well turn out to be misoptimization
> for anything but microbenchmarks (read LKML for cache flush/dirty
> page issues).
See http://gcc.gnu.org/ml/gcc/2007-10/msg00607.html for a test case
that shows where it can go horrible wrong (optimized code significantly
slower than unoptimized code) Admittedly it is a constructed
one, but I don't think it is that unrealistic.
> - there's also a good talk on lawyer-ish vs attached-to-reality
> approach. I personally doubt those who continue to advise to use
> volatile are actually writing such multithreaded programs. Most
> argue just for the fun of it.
Also they don't volunteer to audit multi-million LOC code bases to add
volatile everywhere. That has to be always taken into account. For
the compiler it is a relatively simple localized change and then the
computer does all the work. For the compiled programs
auditing/changing this would be a huge effort done by humans.
-Andi
More information about the Gcc
mailing list