http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48144
--- Comment #3 from Andrey Belevantsev <abel at gcc dot gnu.org> 2011-03-22 15:58:52 UTC --- Created attachment 23751 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23751 Current patch The ICE turned out to be the new one. We are updating the data sets on the bookkeeping blocks for the reasons outlined in the long comment in sel-sched.c. When doing this, we not only remove some insns but also add previous unknown insns (possibly transformed) to the av set of the bookkeeping block. The same insns might also happen to be in the upper av sets, but their transformation history is not reflecting the mentioned updates. We were missing this case when we have fixed the problem only for bookkeeping insns. Fixed by simply always picking up the transformation history from the blocks we are processing on the way down. This patch may let us get rid of the earlier originators stuff introduced to solve this for bookkeeping insns. Zdenek, does this patch work for you?