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