This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH 4.8, i386]: Enable post-reload compare optimization pass (PR28685)
On Tue, Feb 7, 2012 at 11:48 AM, Richard Guenther
>>>> (BTW: I think that the change to combine.c would be nice to have, to
>>>> find more other combine opportunities. I will propose the patch
>>> Shouldn't there be a canonical order for parallels throughout the whole
>>> compiler? ?Maybe just enforced by gen_rtx_PARALLEL / RTL checking?
>>> At least as far as I understand "execution order" of insns inside a PARALLEL
>>> is undefined.
>> All operations inside parallel happen "at the same time". And there is
>> no canonical order enforced, as sadly shown by the discrepancy between
>> combine and compare elimination passes.
> Sure - all what I say is that the fix should be to enforce such canonical
> order instead of dealing with both.
rth proposed to adopt new scheme to change combine.c. However, I don't
think this is a good idea, since it would mean "fixing" many existing
in-tree and out-of-tree targets. OTOH, I thought that swapping
operands in combine would also benefit other parts of the compiler,
namely load/store multiple patterns, maybe swap insns, and similar.
It was also fairly easy to teach combine to handle both approaches. ;)