]> git.ipfire.org Git - thirdparty/gcc.git/commit
Use canonical form for reversed single-bit insertions after reload.
authorGeorg-Johann Lay <avr@gjlay.de>
Sun, 11 Jun 2023 11:54:14 +0000 (13:54 +0200)
committerGeorg-Johann Lay <avr@gjlay.de>
Sun, 11 Jun 2023 11:54:14 +0000 (13:54 +0200)
commit3443d4ba043a5d2545107d501c6ea7c1112f04dd
treeb8f1e4894ac35529eb0506f069e7c4726aef65d9
parent20643513b8dd34c07f2b0fccf119153a30735f66
Use canonical form for reversed single-bit insertions after reload.

We now split almost all insns after reload in order to add clobber of REG_CC.
If insns are coming from insn combiner and there is no canonical form for
the respective arithmetic (like for reversed bit insertions), there is
no need to keep all these different representations after reload:
Instead of splitting such patterns to their clobber-REG_CC-analogon, we can
split to a canonical representation, which is insv_notbit for the present case.
This is a no-op change.

gcc/
* config/avr/avr.md (adjust_len) [insv_notbit_0, insv_notbit_7]:
Remove attribute values.
(insv_notbit): New post-reload insn.
(*insv.not-shiftrt_split, *insv.xor1-bit.0_split)
(*insv.not-bit.0_split, *insv.not-bit.7_split)
(*insv.xor-extract_split): Split to insv_notbit.
(*insv.not-shiftrt, *insv.xor1-bit.0, *insv.not-bit.0, *insv.not-bit.7)
(*insv.xor-extract): Remove post-reload insns.
* config/avr/avr.cc (avr_out_insert_notbit) [bitno]: Remove parameter.
(avr_adjust_insn_length): Adjust call of avr_out_insert_notbit.
[ADJUST_LEN_INSV_NOTBIT_0, ADJUST_LEN_INSV_NOTBIT_7]: Remove cases.
* config/avr/avr-protos.h (avr_out_insert_notbit): Adjust prototype.
gcc/config/avr/avr-protos.h
gcc/config/avr/avr.cc
gcc/config/avr/avr.md