Eliminate write-only variables
Joseph S. Myers
joseph@codesourcery.com
Mon May 19 17:45:00 GMT 2014
On Sun, 18 May 2014, Sandra Loosemore wrote:
> Hmmmm, I'm guessing this was some concern about invalid code motion around a
> setjmp. Our original analysis document lists "F does not call setjmp" as a
> requirement for the optimization, so this was probably a case where we were
> being excessively conservative.
Reading my internal analysis from 24 Nov 2005, it was in terms of
converting a function-local static variable to automatic. The concern may
well have been about "the values of objects of automatic storage duration
that are local to the function containing the invocation of the
corresponding setjmp macro that do not have volatile-qualified type and
have been changed between the setjmp invocation and longjmp call are
indeterminate" meaning that program that's valid when the variable is
static can become invalid on converting it to automatic. Of course that
depends on the particular uses of the variable (whether it's possible for
it to be changed between the two calls); I think we can presume the
existing optimizations (that deal with everything except the final store)
already deal with keeping the transformations valid in the presence of
setjmp / longjmp.
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Gcc-patches
mailing list