This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH]: Fix PR26725: ICE in check_reg_live, at haifa-sched.c:4645
Richard Sandiford wrote:
...
I agree that your fix is more obvious and clear than mine. The reason
why I've chosen not to fix rtl_redirect_edge_and_branch_force is that
BB_DIRTY is 'set if insns in BB are modified'.
force_nonfallthru_and_redirect doesn't modify e->src, so, I thought,
there is no enough argument to set BB_DIRTY for e->src anytime
rtl_redirect_edge_and_branch_force is invoked.
I don't really follow. force_nonfallthru_and_redirect (as used by
rtl_redirect_edge_and_branch_force) will change the jump at the end
of e->src, so I'm not sure why you say it "doesn't modify e->src".
I'm not sure in what you say. If edge can could be redirected just with
a change of the jump, then it would be done so in
redirect_edge_and_branch. If we made it to the
force_nonfallthru_and_redirect, it means that the only choice we've left
is to generate new jump_block.
Anyway, the bb flags should be changed where bb is actually modified,
so, may be, it should be force_nonfallthru_and_redirect the one to fix.
--
Maxim