Re: [RFC PATCH] ARM: thumb1: fix bad code emitted when HI_REGS involved

2024-10-04 Thread Siarhei Volkau
пт, 4 окт. 2024 г. в 19:07, Christophe Lyon : > > On Fri, 4 Oct 2024 at 16:59, Siarhei Volkau wrote: > > > > Hello, > > > > пт, 4 окт. 2024 г. в 16:48, Christophe Lyon : > > > > > > Hi! > > > > > > > > > On Mon, 8 Jul 20

Re: [RFC PATCH] ARM: thumb1: fix bad code emitted when HI_REGS involved

2024-10-04 Thread Siarhei Volkau
Hello, пт, 4 окт. 2024 г. в 16:48, Christophe Lyon : > > Hi! > > > On Mon, 8 Jul 2024 at 10:57, Siarhei Volkau wrote: > > > > ping > > > > чт, 20 июн. 2024 г. в 12:09, Siarhei Volkau : > > > > > > This patch deals with consequences but

Re: [RFC PATCH] ARM: thumb1: fix bad code emitted when HI_REGS involved

2024-07-08 Thread Siarhei Volkau
ping чт, 20 июн. 2024 г. в 12:09, Siarhei Volkau : > > This patch deals with consequences but not the root cause though. > > There are 5 cases which are subjects to rewrite: > case #1: > mov ip, r1 > add r2, ip > # ip is dead here > can be rewritten as: > ad

Re: [PATCH v3] ARM: thumb1: Use LDMIA/STMIA for DI/DF loads/stores

2024-07-04 Thread Siarhei Volkau
чт, 4 июл. 2024 г. в 12:45, Richard Earnshaw (lists) : > > On 20/06/2024 08:24, Siarhei Volkau wrote: > > If the address register is dead after load/store operation it looks > > beneficial to use LDMIA/STMIA instead of pair of LDR/STR instructions, > > at leas

[RFC PATCH] ARM: thumb1: fix bad code emitted when HI_REGS involved

2024-06-20 Thread Siarhei Volkau
-384 bytes / -0.42% libstdc++: -2258 bytes / -0.30% No tests provided because its hard to force GCC to emit HI_REGS in a small and straightforward function. Signed-off-by: Siarhei Volkau --- gcc/config/arm/thumb1.md | 93 +++- 1 file changed, 92 inser

[PATCH v3] ARM: thumb1: Use LDMIA/STMIA for DI/DF loads/stores

2024-06-20 Thread Siarhei Volkau
): New. (peephole2 to rewrite DI/DF store): New. * config/arm/iterators.md (DIDF): New. gcc/testsuite: * gcc.target/arm/thumb1-load-store-64bit.c: Add new test. Signed-off-by: Siarhei Volkau --- gcc/config/arm/arm.cc | 8 ++-- gcc/config/arm/iterat

Re: [PATCH v2] ARM: thumb1: Use LDMIA/STMIA for DI/DF loads/stores

2024-06-19 Thread Siarhei Volkau
ср, 19 июн. 2024 г. в 15:19, Richard Earnshaw (lists) : > > On 18/06/2024 19:14, Siarhei Volkau wrote: > > If the address register is dead after load/store operation it looks > > beneficial to use LDMIA/STMIA instead of pair of LDR/STR instructions, > > at leas

[PATCH v2] ARM: thumb1: Use LDMIA/STMIA for DI/DF loads/stores

2024-06-18 Thread Siarhei Volkau
ore-64bit.c: Add new test. Signed-off-by: Siarhei Volkau --- gcc/config/arm/iterators.md | 3 +++ gcc/config/arm/thumb1.md | 27 ++- .../gcc.target/arm/thumb1-load-store-64bit.c | 16 +++ 3 files changed, 45 insertions(+), 1 delet

Re: [RFC PATCH] ARM: thumb1: Use LDMIA/STMIA for DI/DF loads/stores

2024-06-18 Thread Siarhei Volkau
пн, 17 июн. 2024 г. в 15:43, Richard Earnshaw (lists) : > I like the idea behind this patch, but I think I'd try first doing this as a > peephole2 rule to rewrite the address in this case. That has the additional > advantage that we then estimate the size of the instruction more accurately. In

[RFC PATCH] ARM: thumb1: Use LDMIA/STMIA for DI/DF loads/stores

2024-06-16 Thread Siarhei Volkau
make check seems failing on any compilable test due to missing symbols from libnosys. I guess that arm-gnu-elf is the correct triple but it still advisable for proper commands to make & run the testsuite. Signed-off-by: Siarhei Volkau --- gcc/config/arm/arm-protos.h | 2 +- gcc/config/arm/arm