[Bug target/99531] [11 Regression] Performance regression since gcc 9 (argument passing / register allocation)

2024-05-21 Thread olegendo at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531 --- Comment #12 from Oleg Endo --- (In reply to Oleg Endo from comment #11) > > This caused PR 115148 I absolutely lack the imagination to see the connection of the change in #c6 and PR 115148. This is the change in the output code that

[Bug target/99531] [11 Regression] Performance regression since gcc 9 (argument passing / register allocation)

2024-05-20 Thread olegendo at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531 Oleg Endo changed: What|Removed |Added CC||olegendo at gcc dot gnu.org --- Comment #11

[Bug target/58166] ARMv5: poor register allocation in function containing smull instruction

2024-03-27 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58166 Andrew Pinski changed: What|Removed |Added Status|NEW |RESOLVED Target Milestone|---

[Bug target/113022] GCN offloading bricked by "amdgcn: Work around XNACK register allocation problem"

2024-01-08 Thread tschwinge at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113022 Thomas Schwinge changed: What|Removed |Added Resolution|--- |FIXED Status|UNCONFIRMED

[Bug target/113022] GCN offloading bricked by "amdgcn: Work around XNACK register allocation problem"

2023-12-15 Thread ams at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113022 --- Comment #1 from Andrew Stubbs --- This is what I get for trying to get this done before vacation. :( Yes, there's probably something in mkoffload that has to match the default change from -mxnack=any to -mxnack=off on the older ISAs.

[Bug target/113022] New: GCN offloading bricked by "amdgcn: Work around XNACK register allocation problem"

2023-12-14 Thread tschwinge at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113022 Bug ID: 113022 Summary: GCN offloading bricked by "amdgcn: Work around XNACK register allocation problem" Product: gcc Version: 14.0 Status: U

[Bug middle-end/80283] [11/12/13/14 Regression] bad SIMD register allocation

2023-12-14 Thread rsandifo at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80283 --- Comment #39 from Richard Sandiford --- (In reply to Andrew Pinski from comment #38) > For aarch64, the test from comment #11 is so much worse on the trunk than in > GCC 13.2.0. I've been working on a fix for that. I'm hoping to post it

[Bug middle-end/80283] [11/12/13/14 Regression] bad SIMD register allocation

2023-12-13 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80283 --- Comment #38 from Andrew Pinski --- For aarch64, the test from comment #11 is so much worse on the trunk than in GCC 13.2.0.

Register allocation problem

2023-12-12 Thread Andrew Stubbs
Hi all, I'm trying to solve an infinite loop in the "reload" pass (LRA). I need early-clobber on my load instructions and it goes wrong when register pressure is high. Is there a proper way to fix this? Or do I need to do something "hacky" like fixing a register for use with reloads?

[Bug target/112433] RISC-V GCC-15 feature: Split register allocation into RVV and non-RVV, and make vsetvl PASS run between them

2023-11-13 Thread kito at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112433 --- Comment #4 from Kito Cheng --- Yeah, 3 major goal in LLVM is improving scheduling, partial spilling and re-materialization, but none of those points are issue for RISC-V GCC :P Ref:

[Bug target/112433] RISC-V GCC-15 feature: Split register allocation into RVV and non-RVV, and make vsetvl PASS run between them

2023-11-13 Thread juzhe.zhong at rivai dot ai via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112433 --- Comment #3 from JuzheZhong --- Just talked with Lehua offline. We don't think splitting RA can improve performance a lot. We should consider it more seriously instead of support this blindly. Since splitting RA will increase compile-time

[Bug target/112433] RISC-V GCC-15 feature: Split register allocation into RVV and non-RVV, and make vsetvl PASS run between them

2023-11-12 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112433 Andrew Pinski changed: What|Removed |Added Severity|normal |enhancement

[Bug c/112433] RISC-V GCC-15 feature: Split register allocation into RVV and non-RVV, and make vsetvl PASS run between them

2023-11-07 Thread juzhe.zhong at rivai dot ai via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112433 --- Comment #2 from JuzheZhong --- (In reply to Kito Cheng from comment #1) > Give few more background why LLVM must do that way: LLVM can't allocate new > pseudo register during register allocation process, however spilling vector >

[Bug c/112433] RISC-V GCC-15 feature: Split register allocation into RVV and non-RVV, and make vsetvl PASS run between them

2023-11-07 Thread kito at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112433 --- Comment #1 from Kito Cheng --- Give few more background why LLVM must do that way: LLVM can't allocate new pseudo register during register allocation process, however spilling vector register with specific length may require scratch

[Bug c/112433] New: RISC-V GCC-15 feature: Split register allocation into RVV and non-RVV, and make vsetvl PASS run between them

2023-11-07 Thread juzhe.zhong at rivai dot ai via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112433 Bug ID: 112433 Summary: RISC-V GCC-15 feature: Split register allocation into RVV and non-RVV, and make vsetvl PASS run between them Product: gcc Version: 14.0 Status

RE: [x86_64 PATCH] PR target/110551: Tweak mulx register allocation using peephole2.

2023-11-01 Thread Jiang, Haochen
> -Original Message- > From: Uros Bizjak > Sent: Thursday, November 2, 2023 3:23 AM > To: Roger Sayle > Cc: gcc-patches@gcc.gnu.org > Subject: Re: [x86_64 PATCH] PR target/110551: Tweak mulx register allocation > using peephole2. > > On Wed, Nov 1, 2023 at 1

Re: [x86_64 PATCH] PR target/110551: Tweak mulx register allocation using peephole2.

2023-11-01 Thread Uros Bizjak
On Wed, Nov 1, 2023 at 1:58 PM Roger Sayle wrote: > > > Hi Uros, > > > From: Uros Bizjak > > Sent: 01 November 2023 10:05 > > Subject: Re: [x86_64 PATCH] PR target/110551: Tweak mulx register allocation > > using peephole2. > > > > On Mon

RE: [x86_64 PATCH] PR target/110551: Tweak mulx register allocation using peephole2.

2023-11-01 Thread Roger Sayle
Hi Uros, > From: Uros Bizjak > Sent: 01 November 2023 10:05 > Subject: Re: [x86_64 PATCH] PR target/110551: Tweak mulx register allocation > using peephole2. > > On Mon, Oct 30, 2023 at 6:27 PM Roger Sayle > wrote: > > > > > > This patch is a follow-u

Re: [x86_64 PATCH] PR target/110551: Tweak mulx register allocation using peephole2.

2023-11-01 Thread Uros Bizjak
On Mon, Oct 30, 2023 at 6:27 PM Roger Sayle wrote: > > > This patch is a follow-up to my previous PR target/110551 patch, this > time to address the additional move after mulx, seen on TARGET_BMI2 > architectures (such as -march=haswell). The complication here is > that the flexible multiple-set

[x86_64 PATCH] PR target/110551: Tweak mulx register allocation using peephole2.

2023-10-30 Thread Roger Sayle
This patch is a follow-up to my previous PR target/110551 patch, this time to address the additional move after mulx, seen on TARGET_BMI2 architectures (such as -march=haswell). The complication here is that the flexible multiple-set mulx instruction is introduced into RTL after reload, by

Re: Register allocation cost question

2023-10-11 Thread Andrew Stubbs
this. It could be connected. both things should not happen. This is now confirmed to be unrelated: the instruction moving values from the new registers to the old must be followed by a no-op in certain instruction combinations due to GCN having only partial hardware dependency detection. The register

Re: Register allocation cost question

2023-10-11 Thread Richard Earnshaw (lists) via Gcc
On 11/10/2023 09:58, Andrew Stubbs wrote: > On 11/10/2023 07:54, Chung-Lin Tang wrote: >> >> >> On 2023/10/10 11:11 PM, Andrew Stubbs wrote: >>> Hi all, >>> >>> I'm trying to add a new register set to the GCN port, but I've hit a >>> problem I don't understand. >>> >>> There are 256 new registers

Re: Register allocation cost question

2023-10-11 Thread Andrew Stubbs
On 11/10/2023 07:54, Chung-Lin Tang wrote: On 2023/10/10 11:11 PM, Andrew Stubbs wrote: Hi all, I'm trying to add a new register set to the GCN port, but I've hit a problem I don't understand. There are 256 new registers (each 2048 bit vector register) but the register file has to be

Re: Register allocation cost question

2023-10-11 Thread Andrew Stubbs
On 10/10/2023 20:09, Segher Boessenkool wrote: Hi Andrew, On Tue, Oct 10, 2023 at 04:11:18PM +0100, Andrew Stubbs wrote: I'm also seeing wrong-code bugs when I allow more than 32 new registers, but that might be an unrelated problem. Or the allocation is broken? I'm still analyzing this.

Re: Register allocation cost question

2023-10-11 Thread Chung-Lin Tang via Gcc
On 2023/10/10 11:11 PM, Andrew Stubbs wrote: > Hi all, > > I'm trying to add a new register set to the GCN port, but I've hit a > problem I don't understand. > > There are 256 new registers (each 2048 bit vector register) but the > register file has to be divided between all the running

Re: Register allocation cost question

2023-10-10 Thread Segher Boessenkool
Hi Andrew, On Tue, Oct 10, 2023 at 04:11:18PM +0100, Andrew Stubbs wrote: > I'm also seeing wrong-code bugs when I allow more than 32 new registers, > but that might be an unrelated problem. Or the allocation is broken? I'm > still analyzing this. It could be connected. both things should not

Register allocation cost question

2023-10-10 Thread Andrew Stubbs
Hi all, I'm trying to add a new register set to the GCN port, but I've hit a problem I don't understand. There are 256 new registers (each 2048 bit vector register) but the register file has to be divided between all the running hardware threads; if you can use fewer registers you can get

[Bug middle-end/111621] [RISC-V] Bad register allocation in vadd.vi may cause operational error

2023-10-08 Thread juzhe.zhong at rivai dot ai via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111621 JuzheZhong changed: What|Removed |Added CC||juzhe.zhong at rivai dot ai --- Comment

[Bug middle-end/111621] [RISC-V] Bad register allocation in vadd.vi may cause operational error

2023-10-07 Thread mumuxi_ll at outlook dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111621 --- Comment #2 from liu xu --- I'm sorry about that and will notice that next time. The toolchain I used was built using the gcc master branch, and another point that needs to be added is that only the vadd.vi instruction with mask will

[Bug middle-end/111621] [RISC-V] Bad register allocation in vadd.vi may cause operational error

2023-09-28 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111621 --- Comment #1 from Andrew Pinski --- Created attachment 56012 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=56012=edit testcase (-march=rv64imafdcv -mabi=lp64d -O3) Please next time attach the testcase (or put it inline) and not just a

[Bug middle-end/111621] New: [RISC-V] Bad register allocation in vadd.vi may cause operational error

2023-09-28 Thread mumuxi_ll at outlook dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111621 Bug ID: 111621 Summary: [RISC-V] Bad register allocation in vadd.vi may cause operational error Product: gcc Version: 14.0 Status: UNCONFIRMED Severity

[COMMITTED] bpf: liberate R9 for general register allocation

2023-08-11 Thread Jose E. Marchesi via Gcc-patches
We were reserving one of the hard registers in BPF in order to implement dynamic stack allocation: alloca and VLAs. However, there is kernel code that has inline assembly that requires all the non-fixed registers to be available for register allocation. This patch: 1. Liberates r9 that is now

[Bug rtl-optimization/51041] register allocation of SSE register in loop with across eh edges

2023-07-07 Thread vmakarov at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51041 --- Comment #4 from Vladimir Makarov --- I believe it is the same problem as PR110215 which was solved recently by checking whether pseudo values are used in the exception handler and the handler does not return control flow back to the function

[Bug target/99531] [11 Regression] Performance regression since gcc 9 (argument passing / register allocation)

2023-07-07 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531 Richard Biener changed: What|Removed |Added Target Milestone|10.5|11.5 --- Comment #10 from Richard

[Bug rtl-optimization/90249] [11/12/13/14 Regression] Code size regression on thumb2 due to sub-optimal register allocation starting with r265398

2023-07-07 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90249 Richard Biener changed: What|Removed |Added Target Milestone|10.5|11.5 --- Comment #18 from Richard

[Bug middle-end/80283] [11/12/13/14 Regression] bad SIMD register allocation

2023-07-07 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80283 Richard Biener changed: What|Removed |Added Target Milestone|10.5|11.5 --- Comment #37 from Richard

[Bug rtl-optimization/70164] [11/12/13/14 Regression] Code/performance regression due to poor register allocation on Cortex-M0

2023-07-07 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70164 Richard Biener changed: What|Removed |Added Target Milestone|10.5|11.5 --- Comment #32 from Richard

[Bug target/65139] Improve register allocation for aarch64_*_sisd_or_int3 patterns

2023-05-16 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65139 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |6.0 Status|ASSIGNED

[Bug target/36539] Poor register allocation from IRA

2023-05-14 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36539 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |4.8.0 Resolution|---

Re: [PATCH 2/2] aarch64: Improve register allocation for lane instructions

2023-05-10 Thread Richard Sandiford via Gcc-patches
Richard Biener writes: > On Wed, May 10, 2023 at 12:05 AM Richard Sandiford via Gcc-patches > wrote: >> >> Andrew Pinski writes: >> > On Tue, May 9, 2023 at 11:02 AM Richard Sandiford via Gcc-patches >> > wrote: >> >> >> >> REG_ALLOC_ORDER is much less important than it used to be, but it >>

[Bug rtl-optimization/106518] Exchange/swap aware register allocation (generate xchg in reload)

2023-04-26 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
r2 | swpb r3 | swpw r2,r3 ret Finally, the swpw instruction on its own can be used to exchange two word mode registers without a temporary, so a new pattern and peephole2 have been added to catch this. As described in the PR rtl-optimization/106518, register allocation

[Bug middle-end/56183] [meta-bug][avr] Problems with register allocation

2023-03-31 Thread gjl at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56183 Bug 56183 depends on bug 90706, which changed state. Bug 90706 Summary: [10/11/12/13 Regression] Useless code generated for stack / register operations on AVR https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90706 What|Removed

[Bug target/109116] vector_pair register allocation bug

2023-03-15 Thread bergner at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109116 Peter Bergner changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Ever confirmed|0

[Bug target/109116] vector_pair register allocation bug

2023-03-13 Thread chip.kerchner at ibm dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109116 --- Comment #2 from Chip Kerchner --- This could be a bigger issue with register allocation after the disassemble of an opaque object like vector_pair or MMA.

[Bug rtl-optimization/109116] vector_pair register allocation bug

2023-03-13 Thread chip.kerchner at ibm dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109116 --- Comment #1 from Chip Kerchner --- This has been in GCC since the initial version that supported __vector_pair (10.x)

[Bug rtl-optimization/109116] New: vector_pair register allocation bug

2023-03-13 Thread chip.kerchner at ibm dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109116 Bug ID: 109116 Summary: vector_pair register allocation bug Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl

[Bug target/99531] [10/11 Regression] Performance regression since gcc 9 (argument passing / register allocation)

2023-01-12 Thread roger at nextmovesoftware dot com via Gcc-bugs
] |Performance regression |Performance regression |since gcc 9 (argument |since gcc 9 (argument |passing / register |passing / register |allocation) |allocation) CC

Re: [x86 PATCH] PR rtl-optimization/107991: peephole2 to tweak register allocation.

2023-01-11 Thread Uros Bizjak via Gcc-patches
assignments/colouring using 3 hard > regs. > r85 in di > r86 in ax > r87 in si > > A better (optimal) register allocation requires only 2 hard regs. > r85 in di > r86 in si > r87 in di > > Fortunately, this over-allocation is cleaned up later (during > cprop_hard

RE: [x86 PATCH] PR rtl-optimization/107991: peephole2 to tweak register allocation.

2023-01-10 Thread Roger Sayle
'] argc:0 Hence there are three pseudos (allocnos) to be register allocated; r85, r86 & r87. Currently, reload produces the following assignments/colouring using 3 hard regs. r85 in di r86 in ax r87 in si A better (optimal) register allocation requires only 2 hard regs. r85 in di r86 in si

Re: [x86 PATCH] PR rtl-optimization/107991: peephole2 to tweak register allocation.

2023-01-10 Thread Richard Sandiford via Gcc-patches
two mov's are required to work around >> the lack of a subf (subtract from) or rsub (reverse subtract) insn. >> >> Not uncommonly, if y is dead after this subtraction, register allocation >> can be improved by clobbering y. >> >> y -= x >>

Re: [x86 PATCH] PR rtl-optimization/107991: peephole2 to tweak register allocation.

2023-01-09 Thread Uros Bizjak via Gcc-patches
b (reverse subtract) insn. > > Not uncommonly, if y is dead after this subtraction, register allocation > can be improved by clobbering y. > > y -= x > x = y > > For the testcase in PR 107991, things are slightly more complicated, > where y is not itself dead

[x86 PATCH] PR rtl-optimization/107991: peephole2 to tweak register allocation.

2023-01-09 Thread Roger Sayle
e implemented on x86 as tmp = x x = y x -= tmp where a scratch register and two mov's are required to work around the lack of a subf (subtract from) or rsub (reverse subtract) insn. Not uncommonly, if y is dead after this subtraction, register allocation can be improved by clob

[Bug rtl-optimization/106553] pre-register allocation scheduler is now RMW aware

2022-08-08 Thread tnfchris at gcc dot gnu.org via Gcc-bugs
4 [ _9 ]) (expr_list:REG_DEAD (reg/v:V4SF 93 [ r2 ]) (nil)))) So I don't really see why the live range of _9 was extended... so maybe this is register allocation after all. It's weird that -fno-schedule-insns removes the redundant moves in all cases though.. But perhaps that's just coincidence...

[Bug rtl-optimization/106553] pre-register allocation scheduler is now RMW aware

2022-08-08 Thread amonakov at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106553 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org ---

[Bug rtl-optimization/106553] New: pre-register allocation scheduler is now RMW aware

2022-08-08 Thread tnfchris at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106553 Bug ID: 106553 Summary: pre-register allocation scheduler is now RMW aware Product: gcc Version: 11.3.1 Status: UNCONFIRMED Severity: normal Priority: P3

[Bug rtl-optimization/106518] Exchange/swap aware register allocation (generate xchg in reload)

2022-08-04 Thread hubicka at gcc dot gnu.org via Gcc-bugs
is inconsistent since we have no way to explicitly express push/pop operations that renumber the registers. Some years ago I made patch for that https://gcc.gnu.org/pipermail/gcc-patches/1999-November/021921.html Even if you make representation correct register allocation for stack based CPU is quite

[Bug rtl-optimization/106518] Exchange/swap aware register allocation (generate xchg in reload)

2022-08-04 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106518 Richard Biener changed: What|Removed |Added Keywords||missed-optimization, ra --- Comment

[Bug rtl-optimization/106518] New: Exchange/swap aware register allocation (generate xchg in reload)

2022-08-03 Thread roger at nextmovesoftware dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106518 Bug ID: 106518 Summary: Exchange/swap aware register allocation (generate xchg in reload) Product: gcc Version: unknown Status: UNCONFIRMED Severity

[Bug target/99531] [10/11/12/13 Regression] Performance regression since gcc 9 (argument passing / register allocation)

2022-06-28 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531 Jakub Jelinek changed: What|Removed |Added Target Milestone|10.4|10.5 --- Comment #8 from Jakub Jelinek

[Bug rtl-optimization/90249] [10/11/12/13 Regression] Code size regression on thumb2 due to sub-optimal register allocation starting with r265398

2022-06-28 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90249 Jakub Jelinek changed: What|Removed |Added Target Milestone|10.4|10.5 --- Comment #17 from Jakub Jelinek

[Bug middle-end/80283] [10/11/12/13 Regression] bad SIMD register allocation

2022-06-28 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80283 Jakub Jelinek changed: What|Removed |Added Target Milestone|10.4|10.5 --- Comment #36 from Jakub Jelinek

[Bug rtl-optimization/70164] [10/11/12/13 Regression] Code/performance regression due to poor register allocation on Cortex-M0

2022-06-28 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70164 Jakub Jelinek changed: What|Removed |Added Target Milestone|10.4|10.5 --- Comment #31 from Jakub Jelinek

[Bug target/99531] [10/11/12/13 Regression] Performance regression since gcc 9 (argument passing / register allocation)

2022-05-27 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531 Richard Biener changed: What|Removed |Added Target Milestone|9.5 |10.4 --- Comment #7 from Richard

[Bug rtl-optimization/90249] [10/11/12/13 Regression] Code size regression on thumb2 due to sub-optimal register allocation starting with r265398

2022-05-27 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90249 Richard Biener changed: What|Removed |Added Target Milestone|9.5 |10.4 --- Comment #16 from Richard

[Bug middle-end/80283] [10/11/12/13 Regression] bad SIMD register allocation

2022-05-27 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80283 Richard Biener changed: What|Removed |Added Target Milestone|9.5 |10.4 --- Comment #35 from Richard

[Bug rtl-optimization/70164] [10/11/12/13 Regression] Code/performance regression due to poor register allocation on Cortex-M0

2022-05-27 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70164 Richard Biener changed: What|Removed |Added Target Milestone|9.5 |10.4 --- Comment #30 from Richard

Re: [x86 PATCH] PR target/92578: Peephole2s to tweak cmove register allocation.

2022-04-26 Thread Uros Bizjak via Gcc-patches
ecnt; > if (moves == komove) > newcnt -= 2; > return newcnt; > } > > Comparing code generation on godbolt.org shows an interesting evolution > over time, as changes in register allocation affect the cmove sequence. > > GCC 4.1.2 (4 instructions, suboptimal m

[x86 PATCH] PR target/92578: Peephole2s to tweak cmove register allocation.

2022-04-25 Thread Roger Sayle
generation on godbolt.org shows an interesting evolution over time, as changes in register allocation affect the cmove sequence. GCC 4.1.2 (4 instructions, suboptimal mov after cmov). leal-2(%rsi), %eax cmpl%edx, %edi cmove %eax, %esi movl%esi, %eax

[Bug rtl-optimization/104405] Inefficient register allocation on complex arithmetic

2022-02-07 Thread ebotcazou at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104405 --- Comment #8 from Eric Botcazou --- > There is of course the option to switch to alternate heuristics if, by > heuristic, the argument/return part of the function is a big part of it (aka > for toy examples or small functions which do happen

[Bug rtl-optimization/104405] Inefficient register allocation on complex arithmetic

2022-02-07 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104405 --- Comment #7 from Richard Biener --- (In reply to Eric Botcazou from comment #6) > > But seems to me a simple enough thing that we should be able to handle. > > Register allocation is a global problem though, so what ha

[Bug rtl-optimization/104405] Inefficient register allocation on complex arithmetic

2022-02-06 Thread ebotcazou at gcc dot gnu.org via Gcc-bugs
||ebotcazou at gcc dot gnu.org --- Comment #6 from Eric Botcazou --- > But seems to me a simple enough thing that we should be able to handle. Register allocation is a global problem though, so what happens on toy examples is not always representative of what happens in r

[Bug rtl-optimization/104405] Inefficient register allocation on complex arithmetic

2022-02-06 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104405 --- Comment #5 from Andrew Pinski --- (In reply to Tamar Christina from comment #4) > But seems to me a simple enough thing that we should be able to handle. It looks simple but register allocation especially with demands on some thi

[Bug rtl-optimization/104405] Inefficient register allocation on complex arithmetic

2022-02-06 Thread tnfchris at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104405 --- Comment #4 from Tamar Christina --- (In reply to Andrew Pinski from comment #2) > The big question becomes now is really an issue in real world code or just a > toy benchmark which is testing argument/return passing optimizations? Can't

[Bug rtl-optimization/104405] Inefficient register allocation on complex arithmetic

2022-02-06 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104405 Andrew Pinski changed: What|Removed |Added Component|middle-end |rtl-optimization

[Bug middle-end/104405] Inefficient register allocation on complex arithmetic

2022-02-06 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104405 Andrew Pinski changed: What|Removed |Added Last reconfirmed||2022-02-06 Keywords|

[Bug middle-end/104405] Inefficient register allocation on complex arithmetic

2022-02-05 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104405 --- Comment #1 from Andrew Pinski --- I am almost positive there are duplicates of this bug already. It is similar to the struct argument passing one too.

[Bug c/104405] New: Inefficient register allocation on complex arithmetic

2022-02-05 Thread tnfchris at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104405 Bug ID: 104405 Summary: Inefficient register allocation on complex arithmetic Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: missed-optimization Severity

[Bug target/64691] Suboptimal register allocation for bytes comparison on i386

2021-12-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64691 Andrew Pinski changed: What|Removed |Added Ever confirmed|0 |1 Last reconfirmed|

[Bug target/99531] [9/10/11/12 Regression] Performance regression since gcc 9 (argument passing / register allocation)

2021-12-14 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531 --- Comment #6 from CVS Commits --- The master branch has been updated by Vladimir Makarov : https://gcc.gnu.org/g:973f6aedeb6489a9fdc7aeceaed0514348ee1e1a commit r12-5957-g973f6aedeb6489a9fdc7aeceaed0514348ee1e1a Author: Vladimir N. Makarov

[Bug target/99531] [9/10/11/12 Regression] Performance regression since gcc 9 (argument passing / register allocation)

2021-12-13 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531 --- Comment #5 from CVS Commits --- The master branch has been updated by Vladimir Makarov : https://gcc.gnu.org/g:a7acb6dca941db2b1c135107dac3a34a20650d5c commit r12-5944-ga7acb6dca941db2b1c135107dac3a34a20650d5c Author: Vladimir N. Makarov

[Bug target/99531] [9/10/11/12 Regression] Performance regression since gcc 9 (argument passing / register allocation)

2021-12-07 Thread vmakarov at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531 --- Comment #4 from Vladimir Makarov --- 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

[Bug rtl-optimization/86901] [AArch64] Suboptimal register allocation for int/float reinterpret

2021-08-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86901 Andrew Pinski changed: What|Removed |Added Keywords|ra | Last reconfirmed|2020-05-16 00:00:00

[Bug target/91796] Sub-optimal YMM register allocation.

2021-08-19 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91796 Hongtao.liu changed: What|Removed |Added CC||crazylht at gmail dot com --- Comment #10

[Bug target/91796] Sub-optimal YMM register allocation.

2021-08-19 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91796 --- Comment #9 from Andrew Pinski --- In GCC 5-8 we produced: vpcmpeqd%ymm2, %ymm2, %ymm2 vpsllq $63, %ymm2, %ymm2 vandnpd %ymm1, %ymm2, %ymm1 vandpd %ymm2, %ymm0, %ymm0 vorpd %ymm1, %ymm0,

[Bug tree-optimization/96234] Sub-optimal register allocation with a signed integer literal.

2021-08-19 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96234 Andrew Pinski changed: What|Removed |Added Severity|normal |enhancement --- Comment #2 from Andrew

[Bug target/91753] Bad register allocation of multi-register types

2021-08-12 Thread tnfchris at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91753 Tamar Christina changed: What|Removed |Added Status|NEW |RESOLVED CC|

[Bug rtl-optimization/50898] Register allocation depends on function return expression on x86 32-bits

2021-08-07 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=50898 Andrew Pinski changed: What|Removed |Added Resolution|--- |FIXED Target Milestone|---

[Bug target/101693] Terrible SIMD register allocation with a tight loop operating on 8 registers.

2021-08-02 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101693 Richard Biener changed: What|Removed |Added Target||x86_64-*-* i?86-*-*

[Bug rtl-optimization/101693] Terrible SIMD register allocation with a tight loop operating on 8 registers.

2021-08-02 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101693 --- Comment #2 from Richard Biener --- Created attachment 51238 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51238=edit your testcase Attached the testcase for reference. The odd thing is there's nothing apperantly wrong with what we

[Bug rtl-optimization/101693] Terrible SIMD register allocation with a tight loop operating on 8 registers.

2021-07-30 Thread ts.tomeksopel at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101693 --- Comment #1 from Tomasz Sobczyk --- PS. when #define USE_VNNI is commented out it exhibits similar behaviour to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80283

[Bug rtl-optimization/101693] New: Terrible SIMD register allocation with a tight loop operating on 8 registers.

2021-07-30 Thread ts.tomeksopel at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101693 Bug ID: 101693 Summary: Terrible SIMD register allocation with a tight loop operating on 8 registers. Product: gcc Version: 11.2.0 Status: UNCONFIRMED

[Bug rtl-optimization/82237] [AArch64] Destructive operations result in poor register allocation after scheduling

2021-07-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82237 --- Comment #1 from Andrew Pinski --- I think this has been fixed. I cannot reproduce it in 8.2 or the trunk. I could see it in 7.3 though.

[Bug target/79185] [8 Regression] register allocation in the addition of two 128/9 bit ints

2021-06-11 Thread drraph at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79185 --- Comment #17 from Raphael C --- Tested in gcc 11.1 with -O2 ai(__int128, __int128): mov r9, rdi mov rax, rdx mov r8, rsi mov rdx, rcx add rax, r9 adc rdx, r8 ret

[Bug target/99531] [9/10/11/12 Regression] Performance regression since gcc 9 (argument passing / register allocation)

2021-06-01 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531 Richard Biener changed: What|Removed |Added Target Milestone|9.4 |9.5 --- Comment #3 from Richard Biener

[Bug rtl-optimization/90249] [9/10/11/12 Regression] Code size regression on thumb2 due to sub-optimal register allocation starting with r265398

2021-06-01 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90249 Richard Biener changed: What|Removed |Added Target Milestone|9.4 |9.5 --- Comment #15 from Richard

[Bug middle-end/80283] [9/10/11/12 Regression] bad SIMD register allocation

2021-06-01 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80283 Richard Biener changed: What|Removed |Added Target Milestone|9.4 |9.5 --- Comment #34 from Richard

[Bug rtl-optimization/70164] [9/10/11/12 Regression] Code/performance regression due to poor register allocation on Cortex-M0

2021-06-01 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70164 Richard Biener changed: What|Removed |Added Target Milestone|9.4 |9.5 --- Comment #29 from Richard

[Bug target/79185] [8 Regression] register allocation in the addition of two 128/9 bit ints

2021-05-14 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79185 Jakub Jelinek changed: What|Removed |Added Target Milestone|8.5 |9.0 Status|NEW

[Bug middle-end/80283] [9/10/11/12 Regression] bad SIMD register allocation

2021-05-14 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80283 Jakub Jelinek changed: What|Removed |Added Target Milestone|8.5 |9.4 --- Comment #33 from Jakub Jelinek

[Bug rtl-optimization/70164] [9/10/11/12 Regression] Code/performance regression due to poor register allocation on Cortex-M0

2021-05-14 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70164 Jakub Jelinek changed: What|Removed |Added Target Milestone|8.5 |9.4 --- Comment #28 from Jakub Jelinek

  1   2   3   4   5   6   7   8   9   >