This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: IRA conflict graph & alternative selection
- From: Ian Lance Taylor <iant at google dot com>
- To: Paolo Bonzini <bonzini at gnu dot org>
- Cc: GCC Development <gcc at gcc dot gnu dot org>, Jeffrey A Law <law at redhat dot com>, Vladimir Makarov <vmakarov at redhat dot com>, Michael Matz <matz at suse dot de>
- Date: Fri, 13 Feb 2009 11:00:54 -0800
- Subject: Re: IRA conflict graph & alternative selection
- References: <49958DCA.5000300@redhat.com> <4995A21B.8080103@redhat.com> <4995A395.2020201@gnu.org>
Paolo Bonzini <bonzini@gnu.org> writes:
>> That is in brief how I see it and there are a lot of reload details
>> missed (like virtual register eliminations or addressing displacement
>> constraints etc).
>
> I suppose those would stay in reload?
I see no reason for those to stay in reload (especially since I think
reload should disappear entirely). It is reasonable to pick the total
maximum size of the stack frame, and thus resolve all displacement
constraints, before register allocation. Carefully relaxing these
constraints during reload can give you slightly better results for some
instructions, but only in very very few cases, and only in functions
which already have unusually large stack frames. I don't consider that
to be an important optimization. Given that, we can determine the
maximum offset for all virtual registers before register allocation,
which suffices for selection of insn constraint alternatives, and then
determine the actual offset, once, after register allocation.
Ian