mbox

[00/15] Fix non-robust split condition in define_insn_and_split

Message ID cover.1636621345.git.linkw@linux.ibm.com
Headers

Message

Kewen.Lin Nov. 11, 2021, 11:24 a.m. UTC
  Hi,

This trivial patch series is the secondary product from the previous
investigation to see how many define_insn_and_split cases where
split_condition isn't applied on top of condition for define_insn
part and doesn't contain it, when there were some discussions on
whether we should warn for empty split condition or join both
conditions implicitly etc.  (See the threads[1][2]).

For some of investigated define_insn_and_splits, the corresponding
split_condition is suspected not robust, especially the split
condition has only reload_complete.  Lacking of good understanding
on the related port and the context of the code, I could be wrong.
But I think it may be a good idea to raise them and get them either
fixed or clarified.  It would be also good as preparation for the
possible conditions joining in future.  For some ports with the
proposed fixes applied, the split conditions in all
define_insn_and_splits will either have the explicit leading "&&" or
fully contain the condition for define_insn part.  In other words,
the implicit conditions joining would be one nop for this kind of
port, we don't need any other checks/fixes for it.

[1] https://gcc.gnu.org/pipermail/gcc-patches/2021-June/571647.html
[2] https://gcc.gnu.org/pipermail/gcc-patches/2021-June/572120.html

BR,
Kewen
-----

Kewen Lin (15):
  frv: Fix non-robust split condition in define_insn_and_split
  m32c: Fix non-robust split condition in define_insn_and_split
  rx: Fix non-robust split condition in define_insn_and_split
  s390: Fix non-robust split condition in define_insn_and_split
  v850: Fix non-robust split condition in define_insn_and_split
  visium: Fix non-robust split condition in define_insn_and_split
  xtensa: Fix non-robust split condition in define_insn_and_split
  alpha: Fix non-robust split condition in define_insn_and_split
  arm: Fix non-robust split condition in define_insn_and_split
  bfin: Fix non-robust split condition in define_insn_and_split
  csky: Fix non-robust split condition in define_insn_and_split
  i386: Fix non-robust split condition in define_insn_and_split
  ia64: Fix non-robust split condition in define_insn_and_split
  mips: Fix non-robust split condition in define_insn_and_split
  sh: Fix non-robust split condition in define_insn_and_split

 gcc/config/alpha/alpha.md   |  4 +--
 gcc/config/arm/arm.md       |  2 +-
 gcc/config/bfin/bfin.md     |  4 +--
 gcc/config/csky/csky.md     | 28 ++++++++++-----------
 gcc/config/frv/frv.md       | 10 ++++----
 gcc/config/i386/i386.md     | 20 +++++++--------
 gcc/config/ia64/vect.md     |  4 +--
 gcc/config/m32c/cond.md     |  4 +--
 gcc/config/mips/mips.md     |  4 +--
 gcc/config/rx/rx.md         |  2 +-
 gcc/config/s390/s390.md     |  2 +-
 gcc/config/s390/vector.md   |  4 +--
 gcc/config/sh/sh.md         |  8 +++---
 gcc/config/v850/v850.md     |  8 +++---
 gcc/config/visium/visium.md | 50 ++++++++++++++++++-------------------
 gcc/config/xtensa/xtensa.md |  4 +--
 16 files changed, 79 insertions(+), 79 deletions(-)