This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Use the improved get_attr_length in min_insn_size


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]