This is the mail archive of the gcc@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: insn length attribute and code size optimization


On Wed, Feb 03, 2010 at 06:23:19AM -0800, Ian Lance Taylor wrote:
> fanqifei <fanqifei@gmail.com> writes:
> 
> > According to the internal manual, insn length attribute can be used to
> > to calculate the length of emitted code chunks when verifying branch
> > distances.
> > Can it be used in code size optimization?
> 
> I suppose it could, but it isn't.  Instead of asking the backend for
> the length of instructions, the compiler asks the backend for the cost
> of instructions.  The backend is free to determine that cost however
> it likes.  When using -Os, using the size of the instruction is a good
> measure of cost.

It seems to me that there's a hard ordering problem here: we can't
determine insn lengths, using the current framework, until very late.
We need at least (A) whole instructions, not just RTL expressions; (B)
register allocation to select alternatives; (C) branch shortening to
determine branch alternatives.

I'm curious if anyone thinks there's a generic solution to this (that
doesn't involve a complete instruction selection rewrite :-).

-- 
Daniel Jacobowitz
CodeSourcery


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