On 9/21/19 2:48 PM, Paul Koning wrote: > > >> On Sep 20, 2019, at 1:45 PM, Jeff Law <l...@redhat.com> wrote: >> >> On 9/20/19 11:22 AM, Richard Biener wrote: >>> ... It seems to be that for the goal to keep a target alive a >>> variant #2 conversion (according to the wiki) should be closely >>> mirror CC0 behavior and thus should be easier to achieve and with >>> less patterns touched than the 'good' variant. Can you >>> acknowledge that and would such 'simple' conversions be OK? >> Unless the target has condition code preserving arithmetic a >> variant #2 conversion is the only way to go. > > Yes. > >> Now if someone did a variant #2 without the optimization bits (ie, >> adding appropriate _set_flags pattern variants), I think that >> should be considered explicitly OK even though the code quality >> would potentially suffer. Essentially it's a choice between >> dropping the port or keeping the port, but with slightly less >> optimization. THe latter seems like a better choice to me. > > True. Then again, the added work of creating the pattern pairs is > modest. With define_subst, much of the work can be automated. The patterns and support to handle optimization can be added after the basic conversion is done. In fact, that's precisely how I'd approach it.
> > For pdp11, I found this to be the case; the hard part was to learn > what is needed, and for that the Wiki ends up a big help. Also, > pdp11 is harder than most because it has two CC registers (one for > float ops, one for the rest). I don't know all the others, but for > example VAX only has one, and I'm pretty sure the same applies to > m68k. m68k is like pdp11 in this regard. Two condition code registers, one in the main processor and another for the 68881 FP unit. jeff