commit 53d12ecd624ec901d8449cfa1917f6f90e910927 (HEAD -> master, origin/master, origin/HEAD) Author: Jose E. Marchesi <jose.march...@oracle.com> Date: Fri Jul 14 13:54:06 2023 +0200
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.march...@oracle.com> PR target/110657 * config/bpf/bpf.md: Enable instruction scheduling. diff --git a/gcc/config/bpf/bpf.md b/gcc/config/bpf/bpf.md index f6be0a21234..329f62f55c3 100644 --- a/gcc/config/bpf/bpf.md +++ b/gcc/config/bpf/bpf.md @@ -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" [