------- Comment #2 from abel at gcc dot gnu dot org 2010-07-13 14:07 ------- Confirmed on the 4.4 branch. The problem is latent on trunk.
When we have added support for moving insns through mutually exclusive insns, it was made possible to move conditional jumps across block boundaries. But we didn't fix move_cond_jump accordingly, as it assumes that the jump can be moved only through insns in the same block. Fixed by the below patch that seems to work on the test case. Could you check whether it works for your full program? -- abel at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |abel at gcc dot gnu dot org, | |amonakov at gcc dot gnu dot | |org AssignedTo|unassigned at gcc dot gnu |abel at gcc dot gnu dot org |dot org | Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2010-07-13 14:07:55 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44919