[PATCH] Use the improved get_attr_length in min_insn_size
Uros Bizjak
ubizjak@gmail.com
Wed Jun 10 21:24:00 GMT 2009
On 06/10/2009 10:14 PM, Jakub Jelinek wrote:
> After the large ix86 insn length computation bugfixes get_attr_length is
> something we can almost always trust (and if it very rarely happens to be
> too large, worst case we end up with 4 jumps in 16 bytes, the world doesn't
> end). This saves 38KB (resp. 33KB for 32-bit) .text from cc1plus.
> No regressions in test4jmp.sh report on cc1plus.
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
>
> 2009-06-10 Jakub Jelinek<jakub@redhat.com>
>
> * config/i386/i386.c (min_insn_size): Use get_attr_length
> for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
> For __asm return 0.
>
>
Please note, that w.r.t. to __asm statements, we have following in i386.md:
;; Describe a user's asm statement.
(define_asm_attributes
[(set_attr "length" "128")
(set_attr "type" "multi")])
Although, the length of 128 is IMO a bit high for average asm. I think
that we should use default value of 16, as it stands for type multi. I
didn't investigate, if this define is used at all in the compiler source.
Uros.
More information about the Gcc-patches
mailing list