[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