On 11/14/18 6:07 AM, Robin Dapp wrote: > noce_convert_multiple_sets creates temporaries for the destination of > every emitted cmov and expects subsequent passes to get rid of them. This > does not happen every time and even if the temporaries are removed, code > generation can be affected adversely. In this patch, temporaries are > only created if the destination of a set is used in an emitted condition > check. > > -- > > gcc/ChangeLog: > > 2018-11-14 Robin Dapp <rd...@linux.ibm.com> > > * ifcvt.c (check_need_temps): New function. > (noce_convert_multiple_sets): Only created temporaries if needed. This looks pretty reasonable. ISTM it ought to be able to go forward if it's tested independently.
jeff