Re: GCC 4.1: Problem with old-loop and REG_EQUAL notes

2007-05-04 Thread Eric Botcazou
> 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

Re: GCC 4.1: Problem with old-loop and REG_EQUAL notes

2007-05-04 Thread Andreas Krebbel
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

Re: GCC 4.1: Problem with old-loop and REG_EQUAL notes

2007-05-04 Thread Eric Botcazou
> 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

Re: GCC 4.1: Problem with old-loop and REG_EQUAL notes

2007-05-04 Thread Andreas Krebbel
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

Re: GCC 4.1: Problem with old-loop and REG_EQUAL notes

2007-05-03 Thread Eric Botcazou
> 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) >