bpf: enable instruction scheduling

This patch adds a dummy FSM to bpf.md in order to get INSN_SCHEDULING
defined.  If the later is not defined, the `combine' pass generates
paradoxical subregs of mems, which seems to then be mishandled by LRA,
resulting in invalid code.

Tested in bpf-unknown-none.

gcc/ChangeLog:

2023-07-14  Jose E. Marchesi  <jose.marchesi@oracle.com>

	PR target/110657
	* config/bpf/bpf.md: Enable instruction scheduling.
This commit is contained in:
Jose E. Marchesi 2023-07-14 13:54:06 +02:00
parent 9206641d08
commit 53d12ecd62

View file

@ -20,6 +20,17 @@
(include "predicates.md")
(include "constraints.md")
;;;; Instruction Scheduler FSM
;; This is just to get INSN_SCHEDULING defined, so that combine does
;; not make paradoxical subregs of memory. These subregs seems to
;; confuse LRA that ends generating wrong instructions.
(define_automaton "frob")
(define_cpu_unit "frob_unit" "frob")
(define_insn_reservation "frobnicator" 814
(const_int 0) "frob_unit")
;;;; Unspecs
(define_c_enum "unspec" [