On Fri, Dec 07, 2012 at 11:25:38AM +0100, Steven Bosscher wrote: > Perhaps somewhere during the development of ree.c struct ext_cand was > GGC-allocated, in which case TODO_ggc_collect would make sense, to > collect the ext_cands (there can be many of them). But since ext_cands > are not GGC-allocated, the only garbage "produced" by ree.c is when it > removes redundant extensions (via delete_insn). This is typically only > a very small percentage of the instructions, so there isn't a lot of > garbage produced.
That isn't the only garbage produced, it also updates the PATTERNs of various instructions with something different. Have you done any measurement on what kind of percentage of the instructions is modified, or is "very small percentage" just a guess? E.g. on x86_64 it changes quite a lot of instructions if I remember well. I'm not saying we can't live without GC collection after REE, just saying it isn't at all obvious. Jakub