> From: Richard Henderson [mailto:[email protected]]
> On 09/06/2012 08:06 AM, Ian Bolton wrote:
> > If I don't use my split pattern, I could alter combine to remove the
> > requirement that parent is a MEM.
> >
> > What do you think?
>
> I merely question the calling out of CONST as special.
>
> Either you've got some pattern that handles SYMBOL_REF
> the same way, or you're missing something.
Oh, I understand now. Thanks for clarifying.
Some digging has shown me that the transformation keys off
the equivalence, as highlighted below. It's always phrased in
terms of a const and never a symbol_ref.
after ud_dce:
6 r82:DI=high(`arr')
7 r81:DI=r82:DI+low(`arr')
REG_DEAD: r82:DI
REG_EQUAL: `arr'
8 r80:DI=r81:DI+0xc
REG_DEAD: r81:DI
REG_EQUAL: const(`arr'+0xc) <----- this equivalence
after combine:
7 r80:DI=high(const(`arr'+0xc))
8 r80:DI=r80:DI+low(const(`arr'+0xc))
REG_EQUAL: const(`arr'+0xc) <----- this equivalence
Based on that, and assuming I remove the constraints on the
pattern, would you say the patch is worthy of commit?
Thanks,
Ian