[Bug target/70341] [5/6/7 Regression] cost model for addresses is incorrect, slsr is using reg + reg + CST for arm
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Sep 5 07:23:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70341
--- Comment #9 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Fredrik Hederstierna from comment #8)
> Could it be something in tree-ssa-forwprop pass?
>
> This pass is executed 4 times in -Os, and starting with GCC-4.9 it seems
> like statements that seems to generate instructions that are hard to
> eliminate later in compilation could be propagated?
No that is correct for this pass, this was done on purpose to allow for better
optimizations and better aliasing info.
Anyways if we change case 4: to default: for GCC 7, we get even better code on
aarch64 than previous versions (even at -O2):
add x0, x0, x1, sxtw 4
ldp w2, w0, [x0, 4]
cmp w2, 2
beq .L3
cmp w2, 3
beq .L4
cmp w2, 1
beq .L8
b handle_case_4
.p2align 3
.L8:
b handle_case_1
.p2align 3
.L4:
b handle_case_3
.p2align 3
.L3:
b handle_case_2
More information about the Gcc-bugs
mailing list