execution order
John Love-Jensen
eljay@adobe.com
Mon Sep 24 12:46:00 GMT 2007
Hi Kövesdi,
> How the inter-dependency is determined?
Outside of my knowledge. I presume by variable usage analysis.
GCC uses the SSA optimization technique as well, which has helped perform
some impressive optimizations. I'm not sure if SSA is relevant here.
> How can I tell the compiler not to do re-ordering?
Use -O0 - that will tell the compiler not to optimize, which will prevent
re-ordering.
> Is it possible to make such a dependency between them?
If the destructor is not inline, and also is not provided in that same
translation unit (so it isn't "known" at compile time for that translation
unit), and also the global variable being returned is not static (so it has
external access outside of the translation unit), then the compiler cannot
presume that there is no dependency. (Holistic analysis optimizers like
LLVM can still reorder. But, currently, GCC isn't a holistic optimizer - so
that's not a concern.)
HTH,
--Eljay
More information about the Gcc-help
mailing list