This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Use the improved get_attr_length in min_insn_size
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: Richard Henderson <rth at redhat dot com>, gcc-patches at gcc dot gnu dot org
- Date: Wed, 10 Jun 2009 23:15:01 +0200
- Subject: Re: [PATCH] Use the improved get_attr_length in min_insn_size
- References: <20090610201412.GD4822@tyan-ft48-01.lab.bos.redhat.com>
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<firstname.lastname@example.org>
* 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.
[(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.