[PATCH] xtensa: Make instruction cost estimation for size more accurate
Max Filippov
jcmvbkbc@gmail.com
Wed Jan 11 05:55:38 GMT 2023
On Mon, Jan 9, 2023 at 7:34 PM Takayuki 'January June' Suwa
<jjsuwa_sys3175@yahoo.co.jp> wrote:
>
> Until now, we applied COSTS_N_INSNS() (multiplying by 4) after dividing
> the instruction length by 3, so we couldn't express the difference less
> than modulo 3 in insn cost for size (e.g. 11 Bytes and 12 bytes cost the
> same).
>
> This patch fixes that.
>
> ;; 2 bytes
> addi.n a2, a2, -1 ; cost 3
>
> ;; 3 bytes
> addmi a2, a2, 1024 ; cost 4
>
> ;; 4 bytes
> movi.n a3, 80 ; cost 5
> bnez.n a2, a3, .L4
>
> ;; 5 bytes
> srli a2, a3, 1 ; cost 7
> add.n a2, a2, a2
>
> ;; 6 bytes
> ssai 8 ; cost 8
> src a4, a2, a3
>
> :: 3 + 4 bytes
> l32r a2, .L5 ; cost 9
>
> ;; 11 bytes ; cost 15
> ;; 12 bytes ; cost 16
>
> gcc/ChangeLog:
>
> * config/xtensa/xtensa.cc (xtensa_insn_cost):
> Let insn cost for size be obtained by applying COSTS_N_INSNS()
> to instruction length and then dividing by 3.
> ---
> gcc/config/xtensa/xtensa.cc | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
Regtested for target=xtensa-linux-uclibc, no new regressions.
Committed to master.
--
Thanks.
-- Max
More information about the Gcc-patches
mailing list