------- Comment #2 from vmakarov at redhat dot com 2008-10-24 22:21 ------- Andreas, thanks for the useful preliminary analysis. The problem is a bit different than 37674. Loop4 contains Loop5 and there is an exit from Loop5 right to Loop1 and store (from hard reg in L5 to memory in L1) is removed because the corresponding pseudo-register is not changed in L5 and L4. In this case we should propagate hard register conflicts as it is done for live ranges in ira-build.c::copy_live_ranges_to_removed_store_destination.
I have a patch to solve the problem. Unfortunately I have not enough disk space to make bootstrap on s390 on available to me. But at least it went to 3rd stage. After patch testing I am going to submit it. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37884