public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/99531] New: Performance regression since gcc 9 (argument passing / register allocation)
@ 2021-03-10 22:36 stefanrin at gmail dot com
2021-03-11 8:32 ` [Bug target/99531] " rguenth at gcc dot gnu.org
` (11 more replies)
0 siblings, 12 replies; 13+ messages in thread
From: stefanrin at gmail dot com @ 2021-03-10 22:36 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531
Bug ID: 99531
Summary: Performance regression since gcc 9 (argument passing /
register allocation)
Product: gcc
Version: 10.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: stefanrin at gmail dot com
Target Milestone: ---
Target: x86_64
For this source:
int func(int, int, int, int, int, int);
int caller(int a, int b, int c, int d, int e) { return func(0, a, b, c, d, e);
}
the code generated for caller is:
pushq %r12
movl %r8d, %r9d
popq %r12
movl %ecx, %r8d
movl %edx, %ecx
movl %esi, %edx
movl %edi, %esi
xorl %edi, %edi
jmp func
gcc 9 started producing the useless push/pop pair.
Mailing list link:
https://gcc.gnu.org/pipermail/gcc-help/2021-February/139885.html
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/99531] Performance regression since gcc 9 (argument passing / register allocation)
2021-03-10 22:36 [Bug target/99531] New: Performance regression since gcc 9 (argument passing / register allocation) stefanrin at gmail dot com
@ 2021-03-11 8:32 ` rguenth at gcc dot gnu.org
2021-03-11 8:32 ` [Bug target/99531] [9/10/11 Regression] " rguenth at gcc dot gnu.org
` (10 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-03-11 8:32 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Last reconfirmed| |2021-03-11
Status|UNCONFIRMED |NEW
Known to work| |8.4.0
Known to fail| |11.0, 9.3.1
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/99531] [9/10/11 Regression] Performance regression since gcc 9 (argument passing / register allocation)
2021-03-10 22:36 [Bug target/99531] New: Performance regression since gcc 9 (argument passing / register allocation) stefanrin at gmail dot com
2021-03-11 8:32 ` [Bug target/99531] " rguenth at gcc dot gnu.org
@ 2021-03-11 8:32 ` rguenth at gcc dot gnu.org
2021-03-11 9:35 ` marxin at gcc dot gnu.org
` (9 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-03-11 8:32 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|Performance regression |[9/10/11 Regression]
|since gcc 9 (argument |Performance regression
|passing / register |since gcc 9 (argument
|allocation) |passing / register
| |allocation)
Target Milestone|--- |9.4
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/99531] [9/10/11 Regression] Performance regression since gcc 9 (argument passing / register allocation)
2021-03-10 22:36 [Bug target/99531] New: Performance regression since gcc 9 (argument passing / register allocation) stefanrin at gmail dot com
2021-03-11 8:32 ` [Bug target/99531] " rguenth at gcc dot gnu.org
2021-03-11 8:32 ` [Bug target/99531] [9/10/11 Regression] " rguenth at gcc dot gnu.org
@ 2021-03-11 9:35 ` marxin at gcc dot gnu.org
2021-04-08 13:05 ` rguenth at gcc dot gnu.org
` (8 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-03-11 9:35 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |marxin at gcc dot gnu.org,
| |vmakarov at gcc dot gnu.org
--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
Started with r9-4310-geeae9314d4449b76:
caller:
.LFB0:
.cfi_startproc
pushq %r12
.cfi_def_cfa_offset 16
.cfi_offset 12, -16
movl %r8d, %r9d
popq %r12
.cfi_def_cfa_offset 8
movl %ecx, %r8d
movl %edx, %ecx
movl %esi, %edx
movl %edi, %esi
xorl %edi, %edi
jmp func
.cfi_endproc
before the revision:
caller:
.LFB0:
.cfi_startproc
movl %r8d, %r9d
movl %ecx, %r8d
movl %edx, %ecx
movl %esi, %edx
movl %edi, %esi
xorl %edi, %edi
jmp func
.cfi_endproc
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/99531] [9/10/11 Regression] Performance regression since gcc 9 (argument passing / register allocation)
2021-03-10 22:36 [Bug target/99531] New: Performance regression since gcc 9 (argument passing / register allocation) stefanrin at gmail dot com
` (2 preceding siblings ...)
2021-03-11 9:35 ` marxin at gcc dot gnu.org
@ 2021-04-08 13:05 ` rguenth at gcc dot gnu.org
2021-06-01 8:19 ` [Bug target/99531] [9/10/11/12 " rguenth at gcc dot gnu.org
` (7 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-04-08 13:05 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P2
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/99531] [9/10/11/12 Regression] Performance regression since gcc 9 (argument passing / register allocation)
2021-03-10 22:36 [Bug target/99531] New: Performance regression since gcc 9 (argument passing / register allocation) stefanrin at gmail dot com
` (3 preceding siblings ...)
2021-04-08 13:05 ` rguenth at gcc dot gnu.org
@ 2021-06-01 8:19 ` rguenth at gcc dot gnu.org
2021-12-07 13:48 ` vmakarov at gcc dot gnu.org
` (6 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-06-01 8:19 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|9.4 |9.5
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 9.4 is being released, retargeting bugs to GCC 9.5.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/99531] [9/10/11/12 Regression] Performance regression since gcc 9 (argument passing / register allocation)
2021-03-10 22:36 [Bug target/99531] New: Performance regression since gcc 9 (argument passing / register allocation) stefanrin at gmail dot com
` (4 preceding siblings ...)
2021-06-01 8:19 ` [Bug target/99531] [9/10/11/12 " rguenth at gcc dot gnu.org
@ 2021-12-07 13:48 ` vmakarov at gcc dot gnu.org
2021-12-13 19:11 ` cvs-commit at gcc dot gnu.org
` (5 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: vmakarov at gcc dot gnu.org @ 2021-12-07 13:48 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531
--- Comment #4 from Vladimir Makarov <vmakarov at gcc dot gnu.org> ---
Thank you for reporting this. It is true my patch caused this.
I've reproduced the bug on master too. I will be working on this PR. I
think a fix will be ready on the next week the best as the fix will touch cost
calculations and will require a lot of testing on different targets.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/99531] [9/10/11/12 Regression] Performance regression since gcc 9 (argument passing / register allocation)
2021-03-10 22:36 [Bug target/99531] New: Performance regression since gcc 9 (argument passing / register allocation) stefanrin at gmail dot com
` (5 preceding siblings ...)
2021-12-07 13:48 ` vmakarov at gcc dot gnu.org
@ 2021-12-13 19:11 ` cvs-commit at gcc dot gnu.org
2021-12-14 15:04 ` cvs-commit at gcc dot gnu.org
` (4 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-12-13 19:11 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531
--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Vladimir Makarov <vmakarov@gcc.gnu.org>:
https://gcc.gnu.org/g:a7acb6dca941db2b1c135107dac3a34a20650d5c
commit r12-5944-ga7acb6dca941db2b1c135107dac3a34a20650d5c
Author: Vladimir N. Makarov <vmakarov@redhat.com>
Date: Mon Dec 13 13:48:12 2021 -0500
[PR99531] Modify pseudo class cost calculation when processing move
involving the pseudo and a hard register
Pseudo class calculated on the 1st iteration should not have a
special treatment in cost calculation when processing move involving
the pseudo and a hard register.
gcc/ChangeLog:
PR target/99531
* ira-costs.c (record_operand_costs): Do not take pseudo class
calculated on the 1st iteration into account when processing move
involving the pseudo and a hard register.
gcc/testsuite/ChangeLog:
PR target/99531
* gcc.target/i386/pr99531.c: New test.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/99531] [9/10/11/12 Regression] Performance regression since gcc 9 (argument passing / register allocation)
2021-03-10 22:36 [Bug target/99531] New: Performance regression since gcc 9 (argument passing / register allocation) stefanrin at gmail dot com
` (6 preceding siblings ...)
2021-12-13 19:11 ` cvs-commit at gcc dot gnu.org
@ 2021-12-14 15:04 ` cvs-commit at gcc dot gnu.org
2022-05-27 9:44 ` [Bug target/99531] [10/11/12/13 " rguenth at gcc dot gnu.org
` (3 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-12-14 15:04 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531
--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Vladimir Makarov <vmakarov@gcc.gnu.org>:
https://gcc.gnu.org/g:973f6aedeb6489a9fdc7aeceaed0514348ee1e1a
commit r12-5957-g973f6aedeb6489a9fdc7aeceaed0514348ee1e1a
Author: Vladimir N. Makarov <vmakarov@redhat.com>
Date: Tue Dec 14 08:57:30 2021 -0500
[PR99531] Do not scan push insn for ia32 in the test
The patch prohibits scanning push insn for ia32 as push are expected not to
be generated only for x86_64 Linux ABI.
gcc/testsuite/ChangeLog:
PR target/99531
* gcc.target/i386/pr99531.c: Do not scan for ia32.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/99531] [10/11/12/13 Regression] Performance regression since gcc 9 (argument passing / register allocation)
2021-03-10 22:36 [Bug target/99531] New: Performance regression since gcc 9 (argument passing / register allocation) stefanrin at gmail dot com
` (7 preceding siblings ...)
2021-12-14 15:04 ` cvs-commit at gcc dot gnu.org
@ 2022-05-27 9:44 ` rguenth at gcc dot gnu.org
2022-06-28 10:43 ` jakub at gcc dot gnu.org
` (2 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-05-27 9:44 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|9.5 |10.4
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 9 branch is being closed
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/99531] [10/11/12/13 Regression] Performance regression since gcc 9 (argument passing / register allocation)
2021-03-10 22:36 [Bug target/99531] New: Performance regression since gcc 9 (argument passing / register allocation) stefanrin at gmail dot com
` (8 preceding siblings ...)
2022-05-27 9:44 ` [Bug target/99531] [10/11/12/13 " rguenth at gcc dot gnu.org
@ 2022-06-28 10:43 ` jakub at gcc dot gnu.org
2023-01-12 23:36 ` [Bug target/99531] [10/11 " roger at nextmovesoftware dot com
2023-07-07 10:39 ` [Bug target/99531] [11 " rguenth at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-06-28 10:43 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|10.4 |10.5
--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 10.4 is being released, retargeting bugs to GCC 10.5.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/99531] [10/11 Regression] Performance regression since gcc 9 (argument passing / register allocation)
2021-03-10 22:36 [Bug target/99531] New: Performance regression since gcc 9 (argument passing / register allocation) stefanrin at gmail dot com
` (9 preceding siblings ...)
2022-06-28 10:43 ` jakub at gcc dot gnu.org
@ 2023-01-12 23:36 ` roger at nextmovesoftware dot com
2023-07-07 10:39 ` [Bug target/99531] [11 " rguenth at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: roger at nextmovesoftware dot com @ 2023-01-12 23:36 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531
Roger Sayle <roger at nextmovesoftware dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|[10/11/12/13 Regression] |[10/11 Regression]
|Performance regression |Performance regression
|since gcc 9 (argument |since gcc 9 (argument
|passing / register |passing / register
|allocation) |allocation)
CC| |roger at nextmovesoftware dot com
--- Comment #9 from Roger Sayle <roger at nextmovesoftware dot com> ---
This has been fixed for GCC 12 and GCC 13. Thanks to Vladimir.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug target/99531] [11 Regression] Performance regression since gcc 9 (argument passing / register allocation)
2021-03-10 22:36 [Bug target/99531] New: Performance regression since gcc 9 (argument passing / register allocation) stefanrin at gmail dot com
` (10 preceding siblings ...)
2023-01-12 23:36 ` [Bug target/99531] [10/11 " roger at nextmovesoftware dot com
@ 2023-07-07 10:39 ` rguenth at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-07-07 10:39 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|10.5 |11.5
--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 10 branch is being closed.
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2023-07-07 10:39 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-10 22:36 [Bug target/99531] New: Performance regression since gcc 9 (argument passing / register allocation) stefanrin at gmail dot com
2021-03-11 8:32 ` [Bug target/99531] " rguenth at gcc dot gnu.org
2021-03-11 8:32 ` [Bug target/99531] [9/10/11 Regression] " rguenth at gcc dot gnu.org
2021-03-11 9:35 ` marxin at gcc dot gnu.org
2021-04-08 13:05 ` rguenth at gcc dot gnu.org
2021-06-01 8:19 ` [Bug target/99531] [9/10/11/12 " rguenth at gcc dot gnu.org
2021-12-07 13:48 ` vmakarov at gcc dot gnu.org
2021-12-13 19:11 ` cvs-commit at gcc dot gnu.org
2021-12-14 15:04 ` cvs-commit at gcc dot gnu.org
2022-05-27 9:44 ` [Bug target/99531] [10/11/12/13 " rguenth at gcc dot gnu.org
2022-06-28 10:43 ` jakub at gcc dot gnu.org
2023-01-12 23:36 ` [Bug target/99531] [10/11 " roger at nextmovesoftware dot com
2023-07-07 10:39 ` [Bug target/99531] [11 " rguenth at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).