]> git.ipfire.org Git - thirdparty/gcc.git/commit
rs6000: remove unused splitter on const_scalar_int_operand
authorJiufu Guo <guojiufu@linux.ibm.com>
Wed, 7 Sep 2022 05:32:55 +0000 (13:32 +0800)
committerJiufu Guo <guojiufu@linux.ibm.com>
Wed, 7 Sep 2022 05:35:18 +0000 (13:35 +0800)
commitea6e89e07f4223c8ac7877508c62bba368084999
tree2f21753b23096cbf980084200ea4765b6e97aec2
parent34ea461fdb471b4d9afa555da69dbc6d02713c54
rs6000: remove unused splitter on const_scalar_int_operand

There are two splitters, both are calling rs6000_emit_set_const to emit
instructions for constant building.
One splitter checks `const_int_operand`, this splitter is always used.
Another spitter checks `const_scalar_int_operand`, this one is never
used now.

Checking the history, that splitter is introduced around 1999 for
HOST_BITS_PER_WIDE_INT=32, as below:

(define_split
  [(set (match_operand:DI 0 "gpc_reg_operand" "")
(match_operand:DI 1 "const_double_operand" ""))]
  "HOST_BITS_PER_WIDE_INT == 32 && TARGET_POWERPC64
   && num_insns_constant (operands[1], DImode) > 1"

And `HOST_BITS_PER_WIDE_INT == 32` is eliminated later, since it is
`const_double_operand` can cover it.
When wide_int is introduced, `const_double_operand` is replaced by
`const_scalar_int_operand`.

Now, HOST_BITS_PER_WIDE_INT is forced to 64, this splitter is safe
to remove.

gcc/ChangeLog:

* config/rs6000/rs6000.md (const_scalar_int splitter): Remove.
gcc/config/rs6000/rs6000.md