https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119681
--- Comment #11 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Artemiy Volkov from comment #10) > > CMIIW, but this live range splitting is done a bit later by web and works > well in the case where those pseudos' live ranges can be split without > changing the CFG. To handle the case when multiple definitions of a > variable are visible at the exit BB, you need to create copies of the exit > BB before you can rename the variable, which is what I do in this patch. I am not sure you need a copy of the exit BB but rather splitting the edge and do an insert of a move on the new BB and allow the other parts of GCC do the copy ... This is basically what out of SSA does rather than a full exit BB copy.