> Sure, that would be an alternative compared to always removing the
> REG_EQUAL notes when hoisting an insn and it would fix my particular
> testcase as well.
Then it's pre-approved for the branch if your testcase exhibits a regression.
> But I don't see why this can't happen with unconditional
Hi,
> OK. Then would it be enough to weaken the condition of the removal test to
>
> if (loop_invariant_p (loop, ...) != 1)
>
> in order to solve your problem?
Sure, that would be an alternative compared to always removing the
REG_EQUAL notes when hoisting an insn and it would fix my particul
> The register replacement is done by gcse but the cse pass invoked from gcse
> modifies the REG_EQUAL note. The limited scope of cse compared to gcse is
> probably the reason why the information put into the insn note isn't
> helpful. The REG_EQUAL note added to insn 2308 seems to be particularly
Hi Eric,
> The note doesn't look particularly helpful in this case, given that gcse
> has replaced r974 with r1218 in the insn. How is it created?
The register replacement is done by gcse but the cse pass invoked from gcse
modifies the REG_EQUAL note. The limited scope of cse compared to gcse i
> After gcse1 a loop body contains the following two insns. Note that gcse
> has already replaced r974 with r1218 in insn 1743 and has attached a
> REG_EQUAL note. Insn 2308 stays as a dead store - maybe thats what confuses
> the loop optimizer.
>
> (insn 2308 1740 1743 111 (set (reg/f:DI 974)
>