running out of registers

Eric W. Biederman ebiederman at lnxi.com
Thu Oct 30 06:18:00 CET 2003


Stefan Reinauer <stepan at suse.de> writes:

> Hi,
> 
> I'm running out of registers with the Quartet code, I think it's in 
> spd_set_memclk(). That function has quite a lot of state variables, so
> it seems hard to optimize registers away. The code goes fine without
> the smbus_write_byte() but those are needed to select the correct
> spdrom. Is it viable to add a couple of hooks to the code to trigger
> selection of the hub channel? I guess doing this with every spd_read_byte 
> is quite some overkill and we might save some registers that way.

That sounds like a reasonable idea.  

To confirm where you are running out of registers I would suggest
commenting out the code in question to see if it compiles without it.
Knowing that should help craft a solution.

Depending on the nature of the problem and how we are running out of
registers it might make sense to store a couple of values in a single
variable.

If you want to keep it from running forever before it gives up I suggest
-fmax-allocation-passes=8 -fdebug-live-range-conflicts.

The -fdebug-live-range-conflicts is not terribly interesting except it
tells you how many passes romcc goes through before it gives up.

The -fmax-allocation-passes=8 sets the limit on the number of register allocation
passes romcc will use.  The most I have seen it make and succeed in my regression
tests is 6.  And the default is 100.

Eric



More information about the coreboot mailing list