Ulrich Weigand wrote:
Andrew Stubbs ams@codesourcery.com wrote:
Some discussion later, they decided it would be better to implement the optimization using inter-procedural dead store analysis: http://gcc.gnu.org/ml/gcc-patches/2008-07/msg01602.html
I agree that this would be a much nicer way ...
Maybe this is something we should be working on then?
So basically we're left with this patch that does something we want, but not in a way that can go upstream. :(
For avoidance of doubt, we (CodeSourcery) aren't attached to the current implementation. If someone wants us to go do a better one, that would be fun. But, on the other hand, the current implementation works, and delivers a significant improvement on EEMBC.
The one concern I have is that the patch introduces a user-visible construct: the -fremove-local-statics command line option. If we add this now, and users add the flag to their Makefiles, and then it goes away later on, users' builds could break.
I think it's reasonable for the option to be named that, no matter what implementation it has. At worst, we could always have a Linaro-specific hack to accept the option and ignore it; certainly, CodeSourcery will support this command-line option in our tools going forward "forever".
Thanks,