On Wed, Mar 23, 2016 at 05:04:39PM +0100, Olivier Hainque wrote:
> The reason why 894 is not accounted in the base ref computation is because it
> is part of the epilogue sequence, and init_alias_analysis has:
>
> /* Walk the insns adding values to the new_reg_base_value array. */
> for (i = 0; i < rpo_cnt; i++)
> { ...
> if (could_be_prologue_epilogue
> && prologue_epilogue_contains (insn))
> continue;
>
> The motivation for this is unclear to me.
https://gcc.gnu.org/ml/gcc-patches/1999-08n/msg00048.html
> My rough understanding is that we probably really care about frame_related
> insns only here, at least on targets where the flag is supposed to be set
> accurately.
Also, possibly just prologue insns. So you might be able to modify
init_alias_analysis just to ignore the prologue and skip any need for
yet another hook.
Let's see what rth thinks. He did say the patch might need to be
redone. :)
https://gcc.gnu.org/ml/gcc-patches/1999-08n/msg00072.html
[snip]
> So, aside from the dependency issue which needs to be fixed somehow, I
> think it would make sense to consider using a strong blockage mecanism in
> expand_epilogue.
That's what we both said here
https://gcc.gnu.org/ml/gcc-patches/2011-11/msg01180.html
and David agreed too
https://gcc.gnu.org/ml/gcc-patches/2011-11/msg01842.html
but if you can have the alias analysis changes accepted that would be
even better.
--
Alan Modra
Australia Development Lab, IBM