On 05/01/2013 02:32 PM, David Malcolm wrote:
I had a go at writing a custom pass to try to locate places where GCC
makes use of global state.

You can see the pass here (which I implemented using gcc-python-plugin):
https://gcc-python-plugin.readthedocs.org/en/latest/working-with-c.html#finding-global-variables

A build log from recompiling gcc using this pass can be seen at:
http://fedorapeople.org/~dmalcolm/gcc/2013-05-01/make.log
(about 12MB in size; I killed it when I saw that stage 1 was done).

I'm sure there are quite a few false positives in there.

Hope this is helpful.  FWIW I had an earlier version of the pass which
merely gave *declaration* sites for global variables, rather than all
*uses* of such variables.
I wonder how useful it would be to filter out the source line information, then produce a histogram of which global state is hit the most often across the build. That'd give us an interesting hitlist as we start trying to remove the global state.

jeff

Reply via email to