A more appropriate fix is to disable the gcse only for those cases that you
need an edge split; add the targetm.cannot_modify_jumps_p () condition to
eliminate_partially_redundant_load. I had a patch to do a similar thing
when we don't have profiling information; in such a case we cannot be sure
that the split worth it (even when we remove redundant loads). I have
update the patch to catch also cases where the machine doesn't support
adding jumps after reload. here is the modified patch, didn't test it yet
let me know what do you think ?