Some questions

bryce at kampjes.demon.co.uk bryce at kampjes.demon.co.uk
Sun Apr 29 07:56:39 UTC 2007


Guillermo Adrián Molina writes:
 > > If you want to fix that limit in the register allocator I could give
 > > you some pointers. The problem is due to to how the problem is broken
 > > down into stages. I'd need to dig through code to remember the details
 > > though.
 > >
 > Yes I do want. Please let me know where to start.

If it's not an urgent problem then it may be better to wait
until after 0.13. Or to look at the register allocator during
0.13 development.

Have a look at the stages of simplification. They're done

ColouringRegisterAllocator>>processWorkLists
	simplifyWorklist isEmpty ifFalse: [^ self simplify].
	self coalesce ifTrue: [^ self].
	self freeze ifTrue: [^ self].
	spillWorklist isEmpty ifFalse: [^ self spillRegister].
	self spillMove

Sets the steps for processing. However the spill worklist has some
registers on it that shouldn't be spilled, so it tries to select a
register to spill. It discards all registers then fails.

I'd see if there are any moves that might be spilled afterwards,
if so, then all you'd need to do is allow spillRegister to fail
gracefully.

 > > I'm planning on working on the register allocator in the next release.
 > > The goal will be making it faster, it has a few serious performance
 > > problems.
 > >
 > Exupery's compile time is not a problem for me. But may be I have to wait
 > for you to finish with the register allocator, in order to try to fix the
 > limit.
 > Please let me know what do you want me to do.
 > Right now, I have allready finished with unit testing. The next thing I
 > will do is to include all the compiler classes in my project (remeber tat
 > right now, that is done in Squeak), may be it would be convenient for me
 > to wait for 0.12 before I do that.
 > 
 > Another thing, Do you want the code I made for cmovxx?

I'm interested.

Does it have unit test coverage? Exupery development relies on
testing so that's required.

When was cmov introduced? I know it was a long time ago but can't
remember precisely when. What I'm concerned with is making Exupery
incompatable with some chips that might still be being used.

Given adequate test coverage I'll add it.

Bryce


More information about the Exupery mailing list