ifcvt/crossjump patch: Fix PR 42496, 21803
Bernd Schmidt
bernds@codesourcery.com
Wed Apr 14 21:09:00 GMT 2010
On 04/10/2010 12:35 PM, Eric Botcazou wrote:
> Could you split it up though, i.e. have a first patch to fix PR 21803/42496
> and a second patch for the additional optimization? This helps reghunting.
Here's the second part. This one should help most architectures, not
just the ones with conditional execution. I've observed it helps on
i686 and arm, with the following being a typical result:
.L18:
ldr r1, [r2, #4]
cmp r1, #34
- it hi
- ldrhi r3, .L98+12
- bhi .L28
ldr r3, .L98+12
+ bhi .L28
ldrb r2, [r3, #4] @ zero_extendqisi2
cbz r2, .L29
ldr r3, [r3, #8]
Compared with the previous version, this one has one additional bugfix
(reject all jumps that have a PARALLEL pattern). Successfully tested
earlier on arm-linux-gnueabi
(qemu-system-armv7{arch=armv7-a/thumb,thumb,}), also tested with a SPEC
run on Cortex-A9 within CodeSourcery's gcc-4.4; another re-bootstrap on
i686-linux now in progress. Ok?
Bernd
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: ifcvt-across.diff
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20100414/9e6e0396/attachment.ksh>
More information about the Gcc-patches
mailing list