On Mon, Jan 26, 2015 at 10:11:00AM +0100, Jakub Jelinek wrote: > On Mon, Jan 26, 2015 at 10:06:05AM +0100, Eric Botcazou wrote: > > > While the cleanup_barriers runs after cleaning up BLOCK_FOR_INSNs, > > > some targets like i?86/x86_64 choose to populate it again during machine > > > reorg and some target don't free it at the end of machine reorg. > > > This patch updates cleanup_barrier pass, so that it adjusts basic block > > > boundaries and BLOCK_FOR_INSNs in that case, so that we don't crash during > > > final pass. > > > > This isn't a recent regression so what about fixing it more "properly"? > > For > > example, by calling free_bb_for_insn at the end of the machinre reorg > > passes > > which called compute_bb_for_insn at the beginning? Or do the affected > > ports > > need the BB info all the way down to final? > > Yes, they do, that is why it crashed during final.
In particular, all the i386/x86_64 atom tuning AGU stuff depends on it heavily, but e.g. ix86_ok_to_clobber_flags and various others too. Jakub