alpha: Introduce target specific store_data_bypass_p function [PR105209]
authorUros Bizjak <ubizjak@gmail.com>
Fri, 17 Jun 2022 15:19:44 +0000 (17:19 +0200)
committerUros Bizjak <ubizjak@gmail.com>
Mon, 20 Jun 2022 18:35:48 +0000 (20:35 +0200)
commitf8fc8a6ff7a6996fb7f12338c45d1c3450b7a397
tree260ca730f1b199cae4c78767dc1d891f593c07df
parentddc9b963ab9f267e8cc54be1fa6fcca2e8b0eb84
alpha: Introduce target specific store_data_bypass_p function [PR105209]

This patch introduces alpha-specific version of store_data_bypass_p that
ignores TRAP_IF that would result in assertion failure (and internal
compiler error) in the generic store_data_bypass_p function.

While at it, also remove ev4_ist_c reservation, store_data_bypass_p
can handle the patterns with multiple sets since some time ago.

2022-06-17  Uroš Bizjak  <ubizjak@gmail.com>

gcc/ChangeLog:

PR target/105209
* config/alpha/alpha-protos.h (alpha_store_data_bypass_p): New.
* config/alpha/alpha.cc (alpha_store_data_bypass_p): New function.
(alpha_store_data_bypass_p_1): Ditto.
* config/alpha/ev4.md: Use alpha_store_data_bypass_p instead
of generic store_data_bypass_p.
(ev4_ist_c): Remove insn reservation.

gcc/testsuite/ChangeLog:

PR target/105209
* gcc.target/alpha/pr105209.c: New test.

(cherry picked from commit cc378e655740e93743e7f43e14faaff707aef6c1)
gcc/config/alpha/alpha-protos.h
gcc/config/alpha/alpha.cc
gcc/config/alpha/ev4.md
gcc/testsuite/gcc.target/alpha/pr105209.c [new file with mode: 0644]