Conditional negation elimination in tree-ssa-phiopt.c

Jeff Law law@redhat.com
Wed Aug 27 22:13:00 GMT 2014


On 08/13/14 08:57, Richard Earnshaw wrote:
> The problem with the frankenmonster patterns is that they tend to
> proliferate into the machine description, and before you know where you
> are the back-end is full of them.
Can't argue with that :-)

>
> I really do think that the best solution would be to try and catch this
> during expand if possible and generate the right pattern from the start;
> then you don't risk combine failing to come to the rescue after several
> intermediate transformations have taken place.
So the big question in my mind is what form do we want through the 
gimple optimizers (COND_EXPR or branchless) and given the chosen form, 
can we see a complex-enough expression at expansion time to realize it's 
just conditional negation and DTRT based on what capabilities the target 
has?

If keeping the COND_EXPR form allows us to make good decisions at 
expansion time, I'm not opposed to pulling out those bits from phi-opt 
and making the transformation conditional on target attributes during 
expansion.



jeff



More information about the Gcc mailing list