https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111601

--- Comment #23 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Looking around, seems do_analysis properly finds out both uses of the %r10 +=
96 - the store of %r5 later in the same bb and store of %r9 earlier in the same
bb (at the start of it), and continues because both stores look to be right
form and so changeable etc.
But then probably later on we punt on changing the store earlier in the bb
(after all, changing it would be invalid, because %r10 reachable at that point
is initialized by multiple different setters and all but one don't really have
that += 96 offset in them), but somehow get_uses is only done during analysis
and the pass doesn't give up on changing the other spots when it had to give up
changing one of the uses.

Reply via email to