[Bug target/110657] BPF verifier rejects generated code due to invalid stack access

2023-07-14 Thread jemarch at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110657

Jose E. Marchesi  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #8 from Jose E. Marchesi  ---
Thanks for confirming.  Resolving as fixed.

[Bug target/110657] BPF verifier rejects generated code due to invalid stack access

2023-07-14 Thread kris.van.hees at oracle dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110657

--- Comment #7 from Kris Van Hees  ---
Confirmed that it resolves the issue

Thanks!

[Bug target/110657] BPF verifier rejects generated code due to invalid stack access

2023-07-14 Thread jemarch at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110657

--- Comment #6 from Jose E. Marchesi  ---
Hello Kris.

The commit above (now in gcc master) should fix the issue.  Can you please
confirm?

Thanks!

[Bug target/110657] BPF verifier rejects generated code due to invalid stack access

2023-07-14 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110657

--- Comment #5 from CVS Commits  ---
The master branch has been updated by Jose E. Marchesi :

https://gcc.gnu.org/g:53d12ecd624ec901d8449cfa1917f6f90e910927

commit r14-2522-g53d12ecd624ec901d8449cfa1917f6f90e910927
Author: Jose E. Marchesi 
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  

PR target/110657
* config/bpf/bpf.md: Enable instruction scheduling.

[Bug target/110657] BPF verifier rejects generated code due to invalid stack access

2023-07-13 Thread jemarch at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110657

--- Comment #4 from Jose E. Marchesi  ---
Looks like `combine' is generating paradoxical subregs of mems, which seem to
confuse LRA and these weird incorrect reloads end up being generated.  The
easiest fix for this is to make the backend to use the instruction scheduler,
which makes `combine' to not generate such subregs.

[Bug target/110657] BPF verifier rejects generated code due to invalid stack access

2023-07-13 Thread jemarch at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110657

Jose E. Marchesi  changed:

   What|Removed |Added

   Last reconfirmed||2023-07-13
 Ever confirmed|0   |1
 Status|UNCONFIRMED |ASSIGNED

--- Comment #3 from Jose E. Marchesi  ---
Thanks.

Confirmed with master bpf-unknown-gcc:

stxb[%fp+-20],%r7
ldxw%r7,[%fp+-20]

[Bug target/110657] BPF verifier rejects generated code due to invalid stack access

2023-07-13 Thread kris.van.hees at oracle dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110657

--- Comment #2 from Kris Van Hees  ---
Created attachment 55536
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55536=edit
Pre-processed source file

[Bug target/110657] BPF verifier rejects generated code due to invalid stack access

2023-07-13 Thread jemarch at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110657

Jose E. Marchesi  changed:

   What|Removed |Added

 CC||jemarch at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |jemarch at gcc dot 
gnu.org

--- Comment #1 from Jose E. Marchesi  ---
Can you please provide a pre-processed version of the reproducer?
Thanks.