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