Multy-core CPUs

bryce at kampjes.demon.co.uk bryce at kampjes.demon.co.uk
Mon Oct 22 20:30:41 UTC 2007


Robert Withers writes:
 > My thinking is that getting the messaging working is the first step,  
 > followed by looking at synchronization problems, and then looking at  
 > what things like Exupery may offer to speed things up.
 > 
 > The example I gave of MacroTransforms is telling.  Currently an  
 > #ifTrue: message is macro transformed into bytecodes that do the  
 > #ifTrue: inline.  I have had to back that out so the #ifTrue: can be  
 > intercepted if the receiver is non-local.  At runtime, it would be  
 > nice to see that if the receiver is in fact local, then some form of  
 > inlining could be used, otherwise intercept.  Since this is runtime  
 > selected bytecodes, I thought of Exupery.

One option would be to just disable ifTrue: inlining using Klaus's
code and wait for Exupery to solve the speed problem introduced. Full
message inlining should be able to optimise the message sends out
of ifTrue:. This optimisation is planned for Exupery 2.0.

I'm still working to get to 1.0 so waiting doesn't make sense if
you need the speed now or in the next year or two.

Optimising ifTrue: implemented with message sends is a simple use of
the dynamic inlining work pioneered by Urs Holzle in Self.

Bryce



More information about the Squeak-dev mailing list