[v3,0/7] ifcvt: Convert multiple

Message ID 20211206184352.42264-1-rdapp@linux.ibm.com
Headers
Series ifcvt: Convert multiple |

Message

Robin Dapp Dec. 6, 2021, 6:43 p.m. UTC
  Hi Richard,

as requested, this is the whole series (without the s390-specific parts)
in total.  7/7 is "new" as it was posted separately as "8/7" before
but actually does not change too much compared to the rest.

Supposing that the adjusted 4/7 is OK after recent discussions, if I'm
not mistaken, 5/7, 6/7 (very minor) and 7/7 still need review.

Robin Dapp (7):
  ifcvt: Check if cmovs are needed.
  ifcvt: Allow constants for noce_convert_multiple.
  ifcvt: Improve costs handling for noce_convert_multiple.
  ifcvt/optabs: Allow using a CC comparison for emit_conditional_move.
  ifcvt: Try re-using CC for conditional moves.
  testsuite/s390: Add tests for noce_convert_multiple.
  ifcvt: Run second pass if it is possible to omit a temporary.

 gcc/expmed.c                                  |   8 +-
 gcc/expr.c                                    |  10 +-
 gcc/ifcvt.c                                   | 366 +++++++++++++++---
 gcc/optabs.c                                  | 135 +++++--
 gcc/optabs.h                                  |   4 +-
 gcc/rtl.h                                     |  11 +-
 gcc/testsuite/gcc.dg/ifcvt-4.c                |   2 +-
 .../gcc.target/s390/ifcvt-two-insns-bool.c    |  39 ++
 .../gcc.target/s390/ifcvt-two-insns-int.c     |  39 ++
 .../gcc.target/s390/ifcvt-two-insns-long.c    |  39 ++
 10 files changed, 551 insertions(+), 102 deletions(-)
 create mode 100644 gcc/testsuite/gcc.target/s390/ifcvt-two-insns-bool.c
 create mode 100644 gcc/testsuite/gcc.target/s390/ifcvt-two-insns-int.c
 create mode 100644 gcc/testsuite/gcc.target/s390/ifcvt-two-insns-long.c