This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]