Hi people! Just a few BPF related backports from master to the gcc-10 branch.
I left the changelog entry dates of the original commits untouched, and added `(cherry-pick from commit XXX)' lines to the commit messages. Hope that is ok... please let me know otherwise! :) Salud! Jose E. Marchesi (4): bpf: add support for the -mxbpf option bpf: do not save/restore callee-saved registers in function prolog/epilog bpf: more flexible support for kernel helpers bpf: remove trailing whitespaces from source files gcc/config/bpf/bpf-helpers.def | 194 ------- gcc/config/bpf/bpf-helpers.h | 530 +++++++++++------- gcc/config/bpf/bpf.c | 305 +++++----- gcc/config/bpf/bpf.md | 2 +- gcc/config/bpf/bpf.opt | 6 + gcc/config/bpf/constraints.md | 1 - gcc/config/bpf/predicates.md | 1 - gcc/doc/extend.texi | 172 +----- gcc/doc/invoke.texi | 10 +- gcc/testsuite/gcc.target/bpf/diag-funargs-2.c | 1 - gcc/testsuite/gcc.target/bpf/diag-funargs-3.c | 1 - gcc/testsuite/gcc.target/bpf/helper-bind.c | 4 +- .../gcc.target/bpf/helper-bpf-redirect.c | 4 +- .../gcc.target/bpf/helper-clone-redirect.c | 4 +- .../gcc.target/bpf/helper-csum-diff.c | 4 +- .../gcc.target/bpf/helper-csum-update.c | 4 +- .../bpf/helper-current-task-under-cgroup.c | 4 +- .../gcc.target/bpf/helper-fib-lookup.c | 4 +- .../bpf/helper-get-cgroup-classid.c | 4 +- .../bpf/helper-get-current-cgroup-id.c | 6 +- .../gcc.target/bpf/helper-get-current-comm.c | 4 +- .../bpf/helper-get-current-pid-tgid.c | 4 +- .../gcc.target/bpf/helper-get-current-task.c | 4 +- .../bpf/helper-get-current-uid-gid.c | 4 +- .../gcc.target/bpf/helper-get-hash-recalc.c | 4 +- .../gcc.target/bpf/helper-get-listener-sock.c | 4 +- .../gcc.target/bpf/helper-get-local-storage.c | 6 +- .../gcc.target/bpf/helper-get-numa-node-id.c | 4 +- .../gcc.target/bpf/helper-get-prandom-u32.c | 4 +- .../gcc.target/bpf/helper-get-route-realm.c | 4 +- .../bpf/helper-get-smp-processor-id.c | 4 +- .../gcc.target/bpf/helper-get-socket-cookie.c | 6 +- .../gcc.target/bpf/helper-get-socket-uid.c | 6 +- .../gcc.target/bpf/helper-get-stack.c | 4 +- .../gcc.target/bpf/helper-get-stackid.c | 4 +- .../gcc.target/bpf/helper-getsockopt.c | 8 +- .../gcc.target/bpf/helper-ktime-get-ns.c | 4 +- .../gcc.target/bpf/helper-l3-csum-replace.c | 4 +- .../gcc.target/bpf/helper-l4-csum-replace.c | 4 +- .../gcc.target/bpf/helper-lwt-push-encap.c | 6 +- .../gcc.target/bpf/helper-lwt-seg6-action.c | 8 +- .../bpf/helper-lwt-seg6-adjust-srh.c | 7 +- .../bpf/helper-lwt-seg6-store-bytes.c | 7 +- .../gcc.target/bpf/helper-map-delete-elem.c | 5 +- .../gcc.target/bpf/helper-map-lookup-elem.c | 5 +- .../gcc.target/bpf/helper-map-peek-elem.c | 5 +- .../gcc.target/bpf/helper-map-pop-elem.c | 5 +- .../gcc.target/bpf/helper-map-push-elem.c | 4 +- .../gcc.target/bpf/helper-map-update-elem.c | 4 +- .../gcc.target/bpf/helper-msg-apply-bytes.c | 6 +- .../gcc.target/bpf/helper-msg-cork-bytes.c | 6 +- .../gcc.target/bpf/helper-msg-pop-data.c | 4 +- .../gcc.target/bpf/helper-msg-pull-data.c | 9 +- .../gcc.target/bpf/helper-msg-push-data.c | 4 +- .../gcc.target/bpf/helper-msg-redirect-hash.c | 4 +- .../gcc.target/bpf/helper-msg-redirect-map.c | 7 +- .../gcc.target/bpf/helper-override-return.c | 6 +- .../gcc.target/bpf/helper-perf-event-output.c | 3 +- .../bpf/helper-perf-event-read-value.c | 6 +- .../gcc.target/bpf/helper-perf-event-read.c | 4 +- .../bpf/helper-perf-prog-read-value.c | 6 +- .../gcc.target/bpf/helper-probe-read-str.c | 6 +- .../gcc.target/bpf/helper-probe-read.c | 4 +- .../gcc.target/bpf/helper-probe-write-user.c | 4 +- .../gcc.target/bpf/helper-rc-keydown.c | 7 +- .../gcc.target/bpf/helper-rc-pointer-rel.c | 4 +- .../gcc.target/bpf/helper-rc-repeat.c | 6 +- .../gcc.target/bpf/helper-redirect-map.c | 6 +- .../gcc.target/bpf/helper-set-hash-invalid.c | 4 +- .../gcc.target/bpf/helper-set-hash.c | 6 +- .../gcc.target/bpf/helper-setsockopt.c | 7 +- .../gcc.target/bpf/helper-sk-fullsock.c | 4 +- .../gcc.target/bpf/helper-sk-lookup-tcp.c | 12 +- .../gcc.target/bpf/helper-sk-lookup-upd.c | 12 +- .../gcc.target/bpf/helper-sk-redirect-hash.c | 5 +- .../gcc.target/bpf/helper-sk-redirect-map.c | 6 +- .../gcc.target/bpf/helper-sk-release.c | 6 +- .../bpf/helper-sk-select-reuseport.c | 8 +- .../gcc.target/bpf/helper-sk-storage-delete.c | 6 +- .../gcc.target/bpf/helper-sk-storage-get.c | 7 +- .../gcc.target/bpf/helper-skb-adjust-room.c | 6 +- .../gcc.target/bpf/helper-skb-cgroup-id.c | 6 +- .../gcc.target/bpf/helper-skb-change-head.c | 6 +- .../gcc.target/bpf/helper-skb-change-proto.c | 4 +- .../gcc.target/bpf/helper-skb-change-tail.c | 4 +- .../gcc.target/bpf/helper-skb-change-type.c | 4 +- .../gcc.target/bpf/helper-skb-ecn-set-ce.c | 4 +- .../bpf/helper-skb-get-tunnel-key.c | 4 +- .../bpf/helper-skb-get-tunnel-opt.c | 4 +- .../bpf/helper-skb-get-xfrm-state.c | 6 +- .../bpf/helper-skb-load-bytes-relative.c | 8 +- .../gcc.target/bpf/helper-skb-load-bytes.c | 4 +- .../gcc.target/bpf/helper-skb-pull-data.c | 4 +- .../bpf/helper-skb-set-tunnel-key.c | 4 +- .../bpf/helper-skb-set-tunnel-opt.c | 4 +- .../gcc.target/bpf/helper-skb-store-bytes.c | 4 +- .../gcc.target/bpf/helper-skb-under-cgroup.c | 4 +- .../gcc.target/bpf/helper-skb-vlan-pop.c | 4 +- .../gcc.target/bpf/helper-skb-vlan-push.c | 4 +- .../gcc.target/bpf/helper-skc-lookup-tcp.c | 6 +- .../gcc.target/bpf/helper-sock-hash-update.c | 4 +- .../gcc.target/bpf/helper-sock-map-update.c | 7 +- .../bpf/helper-sock-ops-cb-flags-set.c | 7 +- .../gcc.target/bpf/helper-spin-lock.c | 4 +- .../gcc.target/bpf/helper-spin-unlock.c | 4 +- gcc/testsuite/gcc.target/bpf/helper-strtol.c | 6 +- gcc/testsuite/gcc.target/bpf/helper-strtoul.c | 6 +- .../bpf/helper-sysctl-get-current-value.c | 7 +- .../gcc.target/bpf/helper-sysctl-get-name.c | 7 +- .../bpf/helper-sysctl-get-new-value.c | 7 +- .../bpf/helper-sysctl-set-new-value.c | 7 +- .../gcc.target/bpf/helper-tail-call.c | 5 +- .../bpf/helper-tcp-check-syncookie.c | 10 +- .../gcc.target/bpf/helper-tcp-sock.c | 4 +- .../gcc.target/bpf/helper-trace-printk.c | 5 +- .../gcc.target/bpf/helper-xdp-adjust-head.c | 6 +- .../gcc.target/bpf/helper-xdp-adjust-meta.c | 6 +- .../gcc.target/bpf/helper-xdp-adjust-tail.c | 3 +- .../gcc.target/bpf/skb-ancestor-cgroup-id.c | 7 +- .../gcc.target/bpf/xbpf-callee-saved-regs-1.c | 17 + .../gcc.target/bpf/xbpf-callee-saved-regs-2.c | 17 + 121 files changed, 924 insertions(+), 904 deletions(-) delete mode 100644 gcc/config/bpf/bpf-helpers.def create mode 100644 gcc/testsuite/gcc.target/bpf/xbpf-callee-saved-regs-1.c create mode 100644 gcc/testsuite/gcc.target/bpf/xbpf-callee-saved-regs-2.c -- 2.25.0.2.g232378479e