Redundant logical operations left after early splitting
Jeff Law
law@redhat.com
Tue Feb 19 20:55:00 GMT 2008
hutchinsonandy@aim.com wrote:
> Jeff,
>
> thanks again for suggestions.
>
> As I understand it (perhaps wrongly), actual splitting only occurs after
> combine pass (by split1 pass).
Combine has some limited splitting capabilities. For example it can
try to combine 3 insns, which might not match a pattern, but can match
a splitter which generates 2 insns. I don't recall the other cases
where combine splits, nor do I offhand recall if the split insns are
ever simplified. Search for "split" in combine.c
>
> If your description is correct, you may have answered the question -
> combine is before split1 so there are no further optimisation perfromed
> on any split - since simplfy-rtx is never called.
>
> I could use expand - but I know that will cause a world of hurt by
> missing optimisations at the "word" level. So new psuedos seems my only
> way forward (at the target level)
>
> Which optimiser/pass would benefit from handling subregs better?
Well, if you get it into simplify-rtx, then it can be used by multiple
passes. Look for something like simplify_binary. A well placed
conditional breakpoint can be invaluable.
jeff
More information about the Gcc
mailing list