http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59992
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Created attachment 31990 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31990&action=edit gcc49-pr59992.patch Untested fix. On the E(1) E(2) testcase in -O0 built --enable-checking=yes cc1 it improves: variable tracking :1099.23 (91%) usr 0.10 ( 3%) sys1102.71 (91%) wall 102786 kB (13%) ggc var-tracking dataflow : 2.04 ( 0%) usr 0.05 ( 2%) sys 2.09 ( 0%) wall 0 kB ( 0%) ggc var-tracking emit : 0.23 ( 0%) usr 0.00 ( 0%) sys 0.22 ( 0%) wall 4999 kB ( 1%) ggc to: variable tracking : 2.84 ( 2%) usr 0.03 ( 1%) sys 2.88 ( 2%) wall 109819 kB (13%) ggc var-tracking dataflow : 2.08 ( 2%) usr 0.05 ( 2%) sys 2.13 ( 2%) wall 0 kB ( 0%) ggc var-tracking emit : 0.22 ( 0%) usr 0.00 ( 0%) sys 0.22 ( 0%) wall 4999 kB ( 1%) ggc and on the slightly reduced testcase in the patch (just E(1), i.e. half the number of basic blocks): variable tracking : 265.96 (85%) usr 0.16 (14%) sys 267.11 (84%) wall 51380 kB (12%) ggc var-tracking dataflow : 1.93 ( 1%) usr 0.03 ( 3%) sys 1.98 ( 1%) wall 0 kB ( 0%) ggc var-tracking emit : 0.11 ( 0%) usr 0.00 ( 0%) sys 0.11 ( 0%) wall 2499 kB ( 1%) ggc to: variable tracking : 1.55 ( 3%) usr 0.02 ( 2%) sys 1.56 ( 3%) wall 54897 kB (13%) ggc var-tracking dataflow : 2.00 ( 4%) usr 0.05 ( 5%) sys 2.05 ( 4%) wall 0 kB ( 0%) ggc var-tracking emit : 0.11 ( 0%) usr 0.00 ( 0%) sys 0.12 ( 0%) wall 2499 kB ( 1%) ggc