This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Extracting information from GCC register allocation
- From: Ian Lance Taylor <iant at google dot com>
- To: Nikolaos Kavvadias <nkavv at physics dot auth dot gr>
- Cc: gcc-help at gcc dot gnu dot org
- Date: 14 Nov 2006 10:22:41 -0800
- Subject: Re: Extracting information from GCC register allocation
- References: <1163450950.10266.ezmlm@gcc.gnu.org> <4559DD3C.9010704@physics.auth.gr>
Nikolaos Kavvadias <nkavv@physics.auth.gr> writes:
> 1. Is it possible to emit something close to assembly with
> pseudo-registers instead of registers? I mean, is it possible to do this
> just before each one of these passes? Or would it be possible to
> devise such pass (e.g. an emitter just prior greg). I can see some RTL
> stuff with pseudos (e.g. *.lreg) but is it semantically complete in
> order to be possible to translate it to assembly (even though with
> infinite registers)?
Yes.
> 2. Is it possible to explicitly mark the fill/spill instructions (or
> RTL statements) in such RTL dumps?
It would take a bit of work in reload, but, yes, it is possible.
> 3. Supposedly a <machine.h> description is devised that has a
> ridiculously large of registers (so that spills *almost* never will
> occur).
> Will this approach the effect of register allocation for infinite
> registers or there exist other GCC-specific constraints. What are the
> limits in the number of registers, registers in classes, allocable
> registers etc (i've seen some very bad restrictions in LCC due to the
> use of masks with host-dependent size).
There are no gcc constraints of this form, up to having a few million
hard registers. Implementing a very large number of hard registers
will tend to slow the compiler down, as there are a number of arrays
and bitmaps which are sized to the number of registers.
> 4. There is some discussion around gmp/mpfr support in GCC lately. Are
> we close to using arbitrary-size integers throught the GCC
> infrastructure?
No, not at all. That would be very slow and would bring little
benefit.
Ian